chapter 4. 컨볼루션신경망 · 4.1 컨볼루션신경망의기본개념...
TRANSCRIPT
Chapter 4. 컨볼루션신경망
<기계학습개론> 강의
서울대학교컴퓨터공학부
장병탁
교재: 장교수의딥러닝, 홍릉과학출판사, 2017.
Slides Prepared by
장병탁, 류제환, 박경화
Biointelligence Laboratory
School of Computer Science and Engineering
Seoul National University
Version: 20170924
목차
4.1 컨볼루션신경망의기본개념 ………………………… 4
4.2 AlexNet ……………………………………………....... 15
4.3 DeepFace ………………………………………......… 21
4.4 GoogLeNet ………………………………………......… 34
요약 …………………………………….……….....…… 38
2© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
들어가는질문
컨볼루션신경망(CNN)이영상처리에특히성공적인특성은무엇인가?
CNN 모델설계시도메인지식을반영할수있는방법에는어떤것이있는가
컨볼루션커널의핵심아이디어는무엇인가? 장점과단점은?
풀링의종류와각방법의장단점은무엇인가?
커널의종류크기갯수, 특징맵의종류크기갯수, 스트라이드크기, 컨볼루션층
과풀링층의수가상호간그리고전체일반화능력에미치는영향은무엇인가?
실세계문제해결에성공한 CNN 모델의사례는어떤것이있는가?
각모델사례에서성공의핵심요인은어디에있다고생각하는가?
각모델의특성을 Distributed Representation vs. Localist Representation의
Tradeoff 관점에서분석하시오.
각 CNN 딥러닝모델에서다수의층의필요한또는유용한이유는무엇인가? 과
적합문제를피하면서층을추가하는방법은?
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 3
4.1 컨볼루션신경망의기본개념
완전연결다층신경망(MLP)의문제점 인접한두계층의뉴런들간에완전연결구조(fully connected)
이론적으로는문제해결이가능하나큰영상의경우문제복잡도가매우커짐 이미지의위치, 각도, 크기변화등에취약 별도의특징추출(feature extraction)이필요
컨볼루션신경망(CNN)의해결책 부분적인수용영역을갖는컨볼루션커널을도입하여복잡도를감소시킴 층을쌓아가며입력영상의정보를재조합, 점진적으로추상적인특징지도를학습 이미지의위치, 각도, 크기변화등에상대적으로견고 특징추출과분류의두단계를하나로통합
컨볼루션신경망의특성 컨볼루션층(convolution layer)과서브샘플링층(subsampling layer)을반복적으로적용
서로다른위치에있는컨볼루션커널들의가중치를공유(weight sharing)
문제특징에맞는여러종류의컨볼루션커널을설계해서사용가능
컨볼루션신경망의장점 실제매개변수의수보다훨씬적은수를학습 빠른학습속도 / 우수한일반화능력 일반적으로우수한성능(AlexNet, DeepFace, GoogLeNet 등의성공사례)
4© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
컨볼루션신경망의기본구조
컨볼루션신경망의구조
다수의컨볼루션층 (C)
다수의서브샘플링층 (S)
후반의완전연결층 (F)
“A”자문자이미지를인식하는 CNN의구조(LeCon et al., 1998)
5© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
컨볼루션층
CNN (Convolutional Neural Network) 입력이미지에컨볼루션커널을적용하여특징맵(feature map) 생성
컨볼루션커널 특징을추출하는일종의템플릿(template)
위치를바꾸어가며여러번반복적으로적용
위치가바뀌어도연결가중치는공유(weight sharing)
위치에무관한특징추출 & 학습할전체매개변수수감소특징
서로다른특징맵 (커널)
6© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
컨볼루션층의예시
연결선(가중치) 종류의수 완전연결층: 5 x 5 = 25
지역연결층: 2 + 3 + 3 + 2 = 13
컨볼루션층: 3 (같은색은같은가중치)
7© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
컨볼루션: 입력이미지에서특징맵까지
8© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
컨볼루션: 입력이미지에서특징맵까지
9© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
컨볼루션: 입력이미지에서특징맵까지
10© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
서브샘플링층
서브샘플링 공간적해상도를줄여줌
차원축소
문제의복잡도감소
물체의위치및각도변화에견고
서브샘플링의종류 최대풀링(max pooling)
최대치를취함
평균풀링(average pooling)
평균치를취함
Min pooling
L2-norm pooling
11© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
CNN의예: LeNet5
LeCun에의해고안됨(1998)
구조 입력(Input) : 32x32 픽셀이미지 컨볼루션 : 5x5 특징맵사용 서브샘플링 : ½ 로축소 완전연결층 : 방사기저함수(RBF) 사용
신경망층에의한크기변화 입력 : 32 x 32
C1 : 6 x 28 x 28
S2 : 6 x 14 x 14
C3 : 16 x 10 x 10
S4 : 16 x 5 x 5
C5 : 120
F6 : 84
출력 : 10
12© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
CNN의예: LeNet5
출력값계산
: 출력영상특징값: 목표영상특징값
모델파라미터수 전체연결선 : 약 187,000 개
((28 x 28) x 236 x 10의완전연결)
실제학습되는가변가중치 : 약 14,000 개
완전연결다층신경망의 10% 이하
13© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
y
j= ( f
i- w
ij)2 ,
i=1
84
å j = 0,1,...,9
CNN의예: LeNet5
LeNet5의활성함수
컨볼루션층: 시그모이드함수(sigmoidal function)
완전연결층: 가우스분포형태의방사기저함수(radial basis function, RBF)
정류선형유닛 (rectified linear unit, ReLU)
최근에가장많이사용되는활성함수
포화가되지않는(non-saturating) 비선형구조(cf. 시그모이드: 포화되는(saturating) 비선형구조
오차신호희석문제(vanishing gradient problem)을완화, 빠른수렴
14© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
4.2 AlexNet
9층딥러닝구조 (Krizhevsky, Sutskever, & Hinton, 2012) ILSVRC-2012 1위: 상위 5개(top-5 error) 테스트에러율 15.3% (2위 : 26.2%)
딥러닝이기존의컴퓨터비전기법의성능을월등히능가한최초사례
GPU 사용
후속딥러닝연구촉발
15© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
대규모물체인식콘테스트(ILSVRC) 에서
사용되는대용량데이터집합
카테고리 ~ 2만 2천개, 이미지 ~ 1천 5백만
장
웹에서수집한이미지 +
아마존미케니컬터크(AMT) 크라우드소싱
을이용한라벨링
ILSVRC(ImageNet Large-Scale Visual
Recognition Challenge)
PASCAL Visual Object Challenge의일부
카테고리 = 1,000 개, 훈련이미지 = 120만
장
검증이미지 = 5만장, 테스트이미지 = 15
만장
ImageNet Data
쉬운클래스
어려운클래스
16© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
ImageNet 데이터집합에대한매년성능향상
ILSVRC’10ILSVRC’11ILSVRC’12
AlexNet
ILSVRC’13ILSVRC’14
VGG
ILSVRC’14
GoogleNet
ILSVRC’15
ResNet
19 layers22 layers
28.2
25.8
16.4
11.7
7.36.7
3.57
152 layers
shallow8 layers8 layers
17© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
AlexNet의구조
8개의가중치층 (5개의컨볼루션, 3개의완전연결)
마지막완전연결층(fully-connected, fc)의출력 → 클래스에대한확률분포를생성하는함수(소프트맥스)에입력
노드의활성화함수로 ReLU 사용
다항분포로지스틱회귀함수(logistic regression function)를최대화하도록학습
제 1,2,5 컨볼루션층: w/ 서브샘플링, 제 3,4 컨볼루션층: w/o 서브샘플링
18© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
GPU 병렬처리
GTX 580 GPU (3GB) x 2 사용
단일 GPU로 120만장의훈련이미지학습불가능
전체망을각 GPU로분산
각 GPU는각층에서절반의커널을수용
1-2 / 3-4 / 4-5 층: 같은 GPU에있는커널맵에만연결
2-3 / 5-fc / fc-fc 층: 다른 GPU의커널맵까지포함하여연결
19© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
Dropout
앙상블학습(ensemble learning)
서로다른모델들의예측을결합함으로테스트에러를낮춤
딥러닝모델은학습요구시간이크기때문에앙상블학습이어려움
드랍아웃(dropout)
뉴런의출력을일정확률로 0으로결정 : “제거된” 뉴런은전파와역전파모두참여하지
않음
매번다른구조를샘플링 → 앙상블학습과비슷한효과
공적응(co-adaptation) 제거효과:
뉴런간의의존도를낮춤
테스트시 (모든뉴런의출력 x 0.5):
드랍아웃망들의 예측분포의기하평균
AlexNet 적용
완전연결망에만 이용
w/o 드랍아웃: 과다학습(overfitting)
현상발생
수렴시간은통상의 2배
20© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
4.3 DeepFace
21© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
https://www.slideshare.net/mesalu015/deepface-56191516
얼굴인식이어려운이유
나이에따라 감정에따라
자세에따라 조명에따라
얼굴이달라지기때문.
변형, 왜곡, 클러터, 가림등등..
22© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
기존얼굴인식방법
기존의머신러닝알고리즘으로시도
SVM (support vector machines), PCA (principal component analysis),
LDA (linear discriminant analysis)
학습데이터의수가많을때에는학습이잘되지않음
컴퓨터비전분야의시도
얼굴/물체인식에서다양한디스크립터(기술자)를 찾는연구
디스크립터는사람이미리고안해야
영상의모든위치에같은연산자를사용
최근에는학습을통해디스크립터를자동으로추출하는방법이많이이용
문제에특화된특징들을학습을통해자동으로추출할수있기때문에인식문제에서성능이더좋음
23© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
24© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
25© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
사진과비디오어디서든쓸수있는얼굴인식딥러닝모델
페이스북에서개발, 9층짜리심층신경망을사용하여인간수준의얼굴인식성능을데모.
DeepFace는일반 CNN과는달리노드들이가중치를공유하지않음
이신경망은지역적으로연결된 1억 2천만개의노드와매개변수로 구성.
심층망으로학습한특징벡터와정확한모델기반정렬알고리듬을 결합
최종분류단계에서간단한분류기를사용하였음에도불구하고일반환경에서뛰어난얼굴인식성능
심층망의학습을위하여 4천명의사람에대한 4백만장의얼굴영상이학습데이터로사용
야외환경에서모은얼굴데이터셋인 LFW에대해서 97.35%의정확도.
이는최신얼굴인식성능을 27% 향상한것이고인간이보이는성능과거의유사.
(Taigman, Yang, Ranzato, & Wolf, 2014).
26© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
전체구조: 전처리부
컨볼루션층 C1 32×11×11×3@152×152, 2픽셀간격 3×3의공간이웃에대해서맥스풀링층 M2. C3
C1 M2 C3 층의목적은모서리(edge)와 질감(texture)과 같은저수준의특징들을추출.
대부분의계산에관여하지만 매개변수의수는적으며, 입력을단순한지역적특징집합으로단지확장.
맥스풀링층은 CNN의출력이지역적인변환에덜민감하도록만드는역할.
작은등록에러에대해견고.
그러나많은층의풀링을사용하면구체적인얼굴구조와정확한위치에대한정보를잃어버림
27© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
전체구조: 매개변수감소부, 지역층
세개의층(L4, L5, L6)은지역적으로연결. 앞선컨볼루션층처럼 이들은필터뱅크를 적용.
특징맵의모든위치들이서로다른필터집합을학습.
정합된영상의다른지역이다른지역적통계값을가짐.
컨볼루션이공간적불변가정은성립하지않음
특징추출의계산에는부담을주지않지만학습에참여하는매개변수의수에는영향을줌.
가중치공유없이지역연결층을사용해도되는이유:
지역연결층의출력유닛들각각이입력영상의아주큰패치에의해영향을받는다는가정하에정당화
28© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
전체구조: 완전연결부
눈과입의위치와모양과같이얼굴영상의멀리떨어진부분에서추출된특징들간의상관관계를찾음
첫번째의완전연결층(F7)의출력은얼굴표상특징벡터로사용
지역적인디스크립터를풀링하는기존의 LBP 기반표상과대조적
마지막완전연결층의출력은 K개클래스에대한소프트맥스에입력되어클래스표지에대한분포를출력 :
29© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
30© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
31© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
학습
학습의목표는올바른클래스(얼굴표지)의확률을최대화
학습샘플각각에대한교차엔트로피손실을최소화함으로써얻음
K가진짜표지에대한인덱스일때손실은
L의매개변수에대한경사도를계산, 확률적경사도강하(SGD) 사용하여매개변수를변경하여최소화
경사도는표준적인오류역전파알고리듬에의해계산.
ReLU 활성화함수 max(0, x)를사용희소성(sparsity) - 평균적으로최상위층에있는특징요소들의 75%가 0의값을가짐
이소프트역치비선형함수는매컨볼루션후에(국부연결층및완전연결층) 적용되며여러층을거쳐반복적으로적용되는과정에서매우비선형적이고희소한(sparse) 특징을생성
희소성은드랍아웃(dropout)이라불리는정규화방법을사용하여보장
딥페이스망의경우표상
32
𝐺 𝐼 = 𝑔{𝐹7}(𝑔{𝐿6}(⋯ (𝑔{𝐺1} 𝑇 𝐼, 𝜃𝑇 )⋯ )
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
DeepFace
학습방법및결과
다중클래스분류문제, 오류역전파알고리듬을사용하여확률적경사도강하법(stochastic gradient descent, SGD) 으로전방향딥신경망을학습
더많은수의사람을포함해도에러는크게증가되지않는것으로해석
더큰데이터셋을사용함으로써더욱더성능을향상할수있음을암시
아주큰얼굴인식데이터에대해서는깊은신경망구조가필요
33© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
4.4 GoogLeNet
더깊게. 더깊게. 하지만너무무겁지않게.
22층짜리컨볼루션신경망으로인셉션모듈이라는빌딩블록을반복적으로사용
딥러닝은층의수와각층에포함되는노드의수 성능. 하지만노드수 컴퓨팅파워와기억용량. 과다학습의위험.
인셉션모듈(inception module)의핵심아이디어:
컨볼루션신경망의최적인지역적희소구조를찾아내고이를사용가능한자원으로근사
이행불변성(translation invariance)
필터의크기를 1×1, 3×3, 5×5의세가지로제한.
각단계에서다른병렬풀링경로를더해주는것이유용.
https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html
인셉션모듈
34© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
GoogLeNet 문제점과해결책: 인셉션모듈
상위층으로갈수록고차의추상적인특징들을추출되어그공간적인밀집도가줄어들기때문에컨볼루션사이즈축소
문제점: 아주많은수의필터에대해서컨볼루션층을구성할때비용이많이소모.
해결법: 임베딩(embedding)의 이점을활용하여, 계산량이크게증가하게되면차원을줄임
구글넷구조의핵심:
상위층에서의계산복잡도를줄이면서각층의노드수를증가시킴. 큰크기의패치를사용하여계산량이많은컨볼루션을하기전에차원축소(1×1 컨볼루션)를 사용함으로써이를구현.
다양한스케일시각정보들의 특징들을동시에결합하는것이좋다는실용적인직관을따름.
성능에약간의손해를보면서계산비용을줄이는방법. 3~10배의속도를향상하면서도유사한성능을달성.
35© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html
GoogLeNet
학습
보조분류기: 인셉션모듈의출력위에작은컨볼루션망을추가하는방식
보조분류기에서계산되는손실값이구글넷전체손실값에 (0.3의할인가중치를곱해서) 더해짐.
추론시에는이보조망은사용되지않음.
추가망의구체적인구조
필터크기와간격의평균풀링층을사용하여 4×4×512의 (4a)층출력과4×4×528의 (4d) 염탐층(stag)
1,024개의정류선형유닛(ReLU) 뉴런으로구성된완전연결층
70% 비율로소거된출력을갖는드랍아웃층
소프트맥스손실치를갖는선형층의분류기(주분류기와같은 1000개의분류를예측하나추론시에는사용않음)
모델과데이터병렬성을이용하는 DistBelief 분산학습시스템을이용
비동기확률적경사도강하알고리듬을사용
0.9의모멘텀요소와고정된학습률사용
매 8번학습주기마다 4%씩학습률을줄임
36© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html
GoogLeNet
데이터
알렉스넷(AlexNet)에 비해 12배적은수의매개변수를사용하면서도더높은정확도를획득
대회에서구글넷은독립적으로 7가지의버전을훈련시킨후이를앙상블하여결과를예측
2012년의 SuperVision 방법에비해서성능을상대적으로 56.5% 향상한것이며,
2011년우승팀인 Clarifai에비해서 40% 상대적인성능향상을이룸
37© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html
요약
컨볼루션신경망 컨볼루션과서브샘플링을반복적으로적용하는깊은신경망구조
문제복잡도는줄이며이미지의크기, 위치, 각도변화등에상대적으로견고
AlexNet 딥러닝이기존의컴퓨터비전기법의성능을월등히능가한사례로후속딥러닝연구를촉발함
Dropout 기법을사용하여과적합문제를완화
DeepFace 얼굴인식에특화된딥러닝모델로페이스북에서개발함
분류정확도가기존의머신러닝및컴퓨터비전분야의연구보다 27%
향상되었으며, 이는인간이보이는성능과거의유사
GoogLeNet 인셉션모듈(inception module)을도입하여컨볼루션신경망의최적인지역적
희소구조를찾아내고이를사용가능한자원으로근사
알렉스넷(AlexNet)에비해 12배적은수의매개변수를사용하면서도
더높은정확도를획득함
38© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr