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