본문 바로가기

구조

ResNet (이론) 【3】최근 CNN 응용 모델 이해하고 사용하기 ResNet ResNet(Residual Network)은 마이크로소트프의 중국 연구진들이 개발하여 2015년 ILSVRC 대회에서 우승한 신경망이다. 놀라운 점은 대회에서 Top-5 오류율이 3.57%라는 것인데 보통 사람이 이미지를 인식할때 오류율이 약 5% 정도이므로 사람을 뛰어넘은 최초의 신경망으로 기록되었다. ResNet은 152개의 층 수를 가진 기존의 신경망과는 비교할 수 없을 만큼 깊은 신경망이다. 일반적으로 해결해야하는 문제가 복잡할 수록 신경망의 깊어 져야 하지만 기울기 손실(vanishing gradient) 혹은 기울기 폭발(exploding gradient)문제가 뒤따르고 깊어진 층 수 만큼 파라미터 수가 늘어나므로 에러가 커지는 상황.. 더보기
GoogleNet (인셉션 모듈/평균 풀링/보조 분류기) 【3】최근 CNN 응용 모델 이해하고 사용하기 GoogleNet (인셉션 모듈/평균 풀링/보조 분류기) 구글넷은 2014년 이미지넷 인식 대회(ILSVRC14)에서 VGG를 이기고 우승한 알고리즘이다. 구글넷은 신경망 내부 컴퓨터 자원의 활용을 높이기 위해 계산량을 일정하게 유지하면서 신경망의 깊이와 폭을 늘릴 수 있도록 설계되었다. 구글넷의 전체적인 구조는 다음의 그림과 같다. 구조도와 함께 구글넷의 특징을 몇가지 살펴 보도록 하겠다. 그림에서 표시된 세개의 부분 중 첫번째 1번이라고 표시된 보라색 상자 부분을 보자. ① 인셉션 모듈(inception module) 구조도에서 보라색 상자로 색칠되어 있는 부분을 보자. 마치 작은 신경망을 연상케 하는 모듈들이 연결되어 있다. 구글넷에서는 이렇게 신경망안.. 더보기
VGGNet (이론) 【3】최근 CNN 응용 모델 이해하고 사용하기 / VGGNet (이론) VGG는 기본적인 CNN의 구조에 깊이를 증가시킨 형태이다. 논문 "Very Deep Convolutional Networks For Large-Scale Image Recognition" 의 제목과 개요에 나와있 듯 VGG는 신경망의 깊이를 깊게 하는데 중점을 두었다. 이러한 이유로 (3,3)의 작은 필터 사이즈를 주어 깊이를 최대로 늘리고자 했다. 필터가 작으면 피처맵의 사이즈가 조금씩 줄어드므로 합성곱 층과 풀링 층을 많이 쌓을 수 있기 때문이다. VGG팀은 최대 19개 까지 층을 늘리는 실험을 통해 층이 16개 이상일 때 성능이 좋다는 것을 발견하고 층이 16개와 19개인 VGG16, VGG19 모델을 만들었다. 아래의 표를 .. 더보기
곱셈과 덧셈만 알면 정말 쉬운 '합성곱' 【2】CNN_합성곱 신경망 / Convolutional Neural Networks의 이해 곱셈과 덧셈만 알면 정말 쉬운 '합성곱' 합성곱 연산은 CNN의 핵심원리라고 할 만큼 중요하다. 그런데, 합성곱은 곱셈과 덧셈만 이용하면 되는 매우 단순한 작업이다. 그림과 함께 보면 합성곱 연산을 쉽게 이해 할 수 있을 것이다. 아래의 그림을 보자. 먼저 합성곱 연산을 위해서는 재료가 되는 입력 데이터와 필터가 필요하다. 사이즈는 (높이, 너비)로 표현하며 필터는 주로 (3,3) 또는 (5,5) 와 같은 정방행렬을 사용한다. 미리 언급했듯이 CNN의 학습 대상은 필터의 값(weight)이므로 적절한 초기 값을 설정할 필요가 있다. 이때 우리가 1장에서 다루었던 초기화 방법들이 CNN의 필터 값을 초기화 할때에도 .. 더보기
강화학습 (Reinforce Learning) 【1】Deep Learning 시작하기_머신러닝의 종류 강화학습 (Reinforce Learning) 강화학습은 앞서 소개한 세 종류의 학습과는 조금 다른 개념으로 컴퓨터의 동작이 적절한지에 대해 피드백이 있는 학습 방법을 말한다. 학습하는 컴퓨터를 에이전트라고 하며 에이전트가 어떠한 환경(environment) 안에서 하나의 행동(action)을 했을 때 옳다면 보상을(reward), 잘못되었다면 벌점(penalty)을 부여한다. 즉, 특정 환경에서 에이전트가 가장 많은 보상을 받기 위해 어떻게 행동해야 하는지 강조하는 것이다. 강화학습은 입력과 출력에 대한 데이터 쌍을 필요로 하지 않으며 차선의 행동도 허용하지 않는 특징이 있다. 강화학습에 대한 설명은 이 정도로 끝내겠다. 강화학습에 대해 자세히 알.. 더보기
반지도학습 (Semi-Supervised Learning) 【1】Deep Learning 시작하기_머신러닝의 종류 반지도학습 (Semi-Supervised Learning) 반지도 학습은 준지도 학습이라고도 불리며 위에서 다룬 지도학습과 비지도학습을 섞은 학습 방식이다. 그렇기 때문에 데이터의 형태 또한 일부는 지도학습의 데이터 형태를, 일부는 비지도학습의 데이터 형태를 취하고 있다. 즉 반지도 학습은 라벨 y가 있는 데이터와 없는 데이터를 모두 가진 데이터를 이용한다. 데이터의 형태에 맞게 학습 방식 또한 지도 학습과 비지도 학습의 조합으로 이루어져 있는데, 라벨이 없는 데이터를 그룹화 할 때 라벨이 존재하는 일부 데이터를 이용하는 방식이다. 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 더보기
비지도학습 (Unsupervised Learning) 【1】Deep Learning 시작하기_머신러닝의 종류 비지도학습 (Unsupervised Learning) 비지도 학습은 지도학습과 다르게 지도해줄 조력자의 도움 없이 컴퓨터 스스로 학습하는 형태를 말한다. 비지도 학습의 데이터는 x, y 가 존재하는 지도학습의 데이터에서 라벨 y 가 없는 형태이다. x 와 y의 관계를 파악했던 지도학습과는 달리 비지도 학습은 x들 간의 관계를 스스로 파악하는데 이는 학습에 사용된 데이터들의 특징을 분석해 그 특징별로 그룹을 나누는 것을 의미한다. 이를 통해 새로운 데이터를 입력 받으면 분류해 놓은 그룹 중 그 특징이 비슷한 그룹에 포함 시킨다. 간혹 비지도 학습과 지도학습의 분류를 혼동하는 경우가 있어 다음의 표를 보며 정리 해보자. 가장 두드러진 차이는 학습 데이터.. 더보기
Drop-out 【1】Deep Learning 시작하기_규제하라는 게 있다 Drop-out 드롭 아웃은 노드를 임의로 끄면서 학습하는 기법이다. 은닉층에 배치된 노드 중 일부를 임의로 끄면서 학습을 한다. 꺼진 노드는 신호를 전달하지 않으므로 지나친 학습을 방지하는 효과를 주는 것이다. 왼쪽의 그림은 일반적인 신경망이고 오른쪽의 그림은 드롭 아웃을 적용한 신경망의 모습이다. 일부 노드들이 꺼지고 남은 노드들로 신호가 연결되는 신경망의 형태를 볼 수 있다. 어떤 노드를 끌 지는 학습할 때마다 무작위로 선정이 되며, 시험 데이터로 평가할 때는 노드들을 전부 사용해 출력하되 노드 삭제비율(드롭아웃 비율이라고 한다)을 곱해 성능을 평가한다. 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail... 더보기
퍼셉트론 동작 【1】Deep Learning 시작하기_딥러닝이 알고 싶다! 퍼셉트론 동작 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 더보기