딥러닝소개 < 인공지능입문 > 강의 허민오 Biointelligence Laboratory School of Computer Science and Engineering Seoul National University (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 1
Playground (playground.tensorflow.org) 2018, 인공지능입문, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 2
https://cs.stanford.edu/people/karpathy/convnetjs/ (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 3
목차 리뷰 : 신경망 신경망에서딥러닝으로 컨볼루션망 (Convolutional neural networks) LeNet5 AlexNet GoogLeNet (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 4
Neural networks 뉴런에서인공뉴런으로 출처 : 장병탁, 장교수의딥러닝, 2017. http://bi.snu.ac.kr/courses/ml2017/ml2017.html/ (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 5
Neural networks: perceptron (Simple) Perceptron (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 6
다수 / 다층뉴런의필요성 Neural networks: MLP Multiple boundaries are needed (e.g. XOR problem) Multiple Units More complex regions are nee ded (e.g. Polygons) Multiple Layers (!) Proved that MLPs are universal function approximators, Cybenko 1989 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 7
Neural networks: MLP Multi-layer Perceptron (MLP) 다층퍼셉트론의혁신 시그모이드뉴런의사용 비선형모델로확장가능 연속함수이므로미분가능 은닉뉴런층의학습을가능하게하는오류역전파알고리즘의개발로이어짐 은닉뉴런층추가 은닉층학습방법도입 2-layer neural net or 1-hidden-layer neural net Fully-connected laye (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 8
Neural networks: Backpropagation (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 9
(C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 10
딥러닝개념과혁신점 뇌인지과학적배경 : 뇌의시각피질 딥러닝구조 시각피질 (V1,V2, V4, IT): 점차적으로복잡한정보추출 하위층 상위층 : 라인탐지, 에지검출, 물체인식등점차복잡한정보처리 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 11
딥러닝의특징 Traditional Supervised Learning f1 f 2 Input Featu r e Ex t r a ction P r e p r o c e s s i n g f 1 f n Classifier Output Deep Learning Input F e a t u r e E x t r a c t i o n F e a t u r e E x t r a c t i o n. F e a t u r e E x t r a c t i o n Classifier Output (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 12
Visualizing in Deep Neural Networks Yosinsky et al., ICML 2015 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 13
MLP 기술적문제와딥러닝의해결책 MLP 시대의한계 2 계층을넘는 MLP는잘학습되지않음 Overfitting, Local optima가많은탐색공간 매우느리고고차원데이터처리가잘되지않음 High dimensionality Slow learning time 해결책 Vanishing gradient 문제임이알려짐 ReLU Dropout, Convolution (weight sharing), Max pooling GPU, Big data Vanishing gradient (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 14
딥러닝의혁신점 (1/4) 뉴런의수를증가하거나층의수를증가하여보다복잡한문제를해결할수있음. 아주복잡한패턴분류경계면을생성 컴퓨팅파워향상 고난도학습실험수행 많은데이터 과다학습방지 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 15
딥러닝의혁신점 (2/4) 많은수의층으로구성된다층신경망을학습할수있는기술개발 오차신호희석 (vanishing gradient) 문제 : 층별선훈련 (layerwise pre-training) 방법 먼저하위층의시냅스부터상위층으로순차적으로학습 먼저무감독학습후최종적으로감독학습 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 16
딥러닝의혁신점 (3/4) 컨볼루션커널 (Convolution Kernels) 도입을통해복잡도를줄임 매층에서뉴런수용영역의크기를줄여전체매개변수수를줄임 대신다수의층을사용함. 매개변수값을공유함으로써매개변수의수를추가로줄임 서브샘플링또는풀링을사용하여차원수를또줄임. 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 17
새로운뉴런활성화함수도입으로오차희석문제완화 정류선형유닛 (ReLU, Rectified Linear Units) 뉴런이선형적으로활성화 미분시경사도가 0 이아닌상수 오차희석방지 딥러닝의혁신점 (4/4) 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 18
분산표현 (Distributed Representations) Distributed Representations 파라미터수증가에따라구분가능영역이 exponential 하게증가함 cf) knn, 차원의저주 (curse of dimensionality) From Yoshua Bengio s slides (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 19
뇌와유사한구조 두뇌신경망의구조모사 요약 : 딥러닝모델의특징 상위층으로갈수록추상화된 정보 가학습과정에서자동으로생성될것으로기대 (bottom-up, learning through layers) 문제해결과정을학습을통해최대한자동화 (end-to-end) 인간 전문가 의개입을최대한배제하고오직 raw input 과 output 사이의모든과정을데이터에서학습하는방향추구 음성인식및번역을위한딥러닝모델사례 (Baidu) 분산표현 / 정보처리 (distributed representation) 두뇌의또다른중요한특징모방 여러뉴런이협력하여정보저장 / 처리 ( 메모리적특성 ) 차원의저주를피해일반화성능향상 Local minima 문제완화됨 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 20
컨볼루션망 (Convolutional Neural Networks) Partially from Lecture note 7 cs231n class in Stanford Univ. Partially from 기계학습개론 ( 장병탁 ) 강의노트 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 21
컨볼루션신경망의기본개념 완전연결다층신경망 (MLP) 의문제점 인접한두계층의뉴런들간에완전연결구조 (fully connected) 이론적으로는문제해결이가능하나큰영상의경우문제복잡도가매우커짐 이미지의위치, 각도, 크기변화등에취약 별도의특징추출 (feature extraction) 이필요 컨볼루션신경망 (CNN) 의해결책 부분적인수용영역을갖는컨볼루션커널을도입하여복잡도를감소시킴 층을쌓아가며입력영상의정보를재조합, 점진적으로추상적인특징지도를학습 이미지의위치, 각도, 크기변화등에상대적으로견고 특징추출과분류의두단계를하나로통합 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 22
컨볼루션신경망의기본개념 컨볼루션신경망의특성 컨볼루션층 (convolution layer) 과서브샘플링층 (subsampling layer) 을반복적으로적용 서로다른위치에있는컨볼루션커널들의가중치를공유 (weight sharing) 문제특징에맞는여러종류의컨볼루션커널을설계해서사용가능 컨볼루션신경망의장점 실제매개변수의수보다훨씬적은수를학습 빠른학습속도 / 우수한일반화능력 일반적으로우수한성능 (AlexNet, DeepFace, GoogLeNet 등의성공사례 ) (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 23
컨볼루션신경망의기본구조 컨볼루션신경망의구조 다수의컨볼루션층 (C) 다수의서브샘플링층 (S) 후반의완전연결층 (F) A 자문자이미지를인식하는 CNN 의구조 (LeCun et al., 1998) (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 24
MNIST LeNet5 Visualization http://scs.ryerson.ca/~aharley/vis/conv/flat.html (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 25
컨볼루션층 CNN (Convolutional Neural Network) 입력이미지에컨볼루션커널을적용하여특징맵 (feature map) 생성 컨볼루션커널 특징을추출하는일종의템플릿 (template) 위치를바꾸어가며여러번반복적으로적용 위치가바뀌어도연결가중치는공유 (weight sharing) 위치에무관한특징추출 & 학습할전체매개변수수감소 특징 서로다른특징맵 ( 커널 ) (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 26
Convolution in CNN Slide over the image spatially Computing dot product cf) why not cross correlation? 필터의모양 1 0 1 0 1 0 1 0 1 Stride: 1 No zero padding (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ http://ufldl.stanford.edu/wiki/index.php/ufldl_tutorial 27
컨볼루션층 커널에따른결과물의차이 원본이미지 (224 x 224 x 3) 회색조이미지 (224 x 224 x 1) Kernel 의 4 가지예 ( 7 x 7 ) Source: https://www.oreilly.com/ideas/visualizing-convolutional-neural-networks (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 28
Input image to activation map (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 29
Input image to activation map (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 30
Input image to activation map (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 31
Input image to activation map (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 32
ConvNet: a sequence of ConvLayers (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 33
서브샘플링층 서브샘플링 공간적해상도를줄여줌 차원축소 문제의복잡도감소 물체의위치및각도변화에견고 서브샘플링의종류 최대풀링 (max pooling) 최대치를취함 평균풀링 (average pooling) 평균치를취함 Min pooling L2-norm pooling (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 34
ConvNet Application Example (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 35
ConvNet Application Example (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 36
ConvNet Application Example (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 37
ConvNets going Deeper and Deeper (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 38
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 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 39
CNN 의예 : LeNet5 출력값계산 84 y j = å ( f i - w ij ) 2, j = 0,1,...,9 i=1 : 출력영상특징값 : 목표영상특징값 모델파라미터수 전체연결선 : 약 187,000 개 ((28 x 28) x 236 x 10 의완전연결 ) 실제학습되는가변가중치 : 약 14,000 개 완전연결다층신경망의 10% 이하 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 40
CNN 의예 : LeNet5 LeNet5 의활성함수 컨볼루션층 : 시그모이드함수 (sigmoidal function) 완전연결층 : 가우스분포형태의방사기저함수 (radial basis function, RBF) 정류선형유닛 (rectified linear unit, ReLU) 최근에가장많이사용되는활성함수 포화가되지않는 (non-saturating) 비선형구조 (cf. 시그모이드 : 포화되는 (saturating) 비선형구조 오차신호희석문제 (vanishing gradient problem) 을완화, 빠른수렴 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 41
AlexNet 9 층딥러닝구조 (Krizhevsky, Sutskever, & Hinton, 2012) ILSVRC-2012 1 위 : 상위 5 개 (top-5 error) 테스트에러율 15.3% (2 위 : 26.2%) 딥러닝이기존의컴퓨터비전기법의성능을월등히능가한최초사례 GPU 사용 후속딥러닝연구촉발 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 42
ImageNet Data 대규모물체인식콘테스트 (ILSVRC) 에서사용되는대용량데이터집합 카테고리 ~ 2 만 2 천개, 이미지 ~ 1 천 5 백만장 웹에서수집한이미지 + 아마존미케니컬터크 (AMT) 크라우드소싱을이용한라벨링 ILSVRC(ImageNet Large-Scale Visual Recognition Challenge) PASCAL Visual Object Challenge 의일부 카테고리 = 1,000 개, 훈련이미지 = 120 만장검증이미지 = 5 만장, 테스트이미지 = 15 만장 쉬운클래스 어려운클래스 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 43
ImageNet 데이터집합에대한매년성능향상 28.2 152 layers 25.8 16.4 11.7 22 layers 19 layers 6.7 7.3 3.57 8 layers 8 layers shallow ILSVRC 15 ResNet ILSVRC 14 GoogleNet ILSVRC 14 VGG ILSVRC 13 ILSVRC 12 AlexNet ILSVRC 11 ILSVRC 10 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 44
AlexNet 의구조 8 개의가중치층 (5 개의컨볼루션, 3 개의완전연결 ) 마지막완전연결층 (fully-connected, fc) 의출력 클래스에대한확률분포를생성하는함수 ( 소프트맥스 ) 에입력 노드의활성화함수로 ReLU 사용 다항분포로지스틱회귀함수 (logistic regression function) 를최대화하도록학습 제 1,2,5 컨볼루션층 : w/ 서브샘플링, 제 3,4 컨볼루션층 : w/o 서브샘플링 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 45
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 의커널맵까지포함하여연결 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 46
앙상블학습 (ensemble learning) Dropout 서로다른모델들의예측을결합함으로테스트에러를낮춤 딥러닝모델은학습요구시간이크기때문에앙상블학습이어려움 드랍아웃 (dropout) 뉴런의출력을일정확률로 0으로고정 : 제거된 뉴런은전파와역전파모두참여하지않음 매번다른구조를샘플링 앙상블학습과비슷한효과 공적응 (co-adaptation) 제거효과 : 뉴런간의의존도를낮춤 테스트시 ( 모든뉴런의출력 x 0.5): 드랍아웃망들의예측분포의기하평균 AlexNet 적용 완전연결망에만이용 w/o 드랍아웃 : 과다학습 (overfitting) 현상발생 수렴시간은통상의 2배 (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 47
GoogLeNet 더깊게. 더깊게. 하지만너무무겁지않게. 22 층짜리컨볼루션신경망으로인셉션모듈이라는빌딩블록을반복적으로사용 딥러닝은층의수와각층에포함되는노드의수성능. 하지만노드수컴퓨팅파워와기억용량. 과다학습의위험. 인셉션모듈 (inception module) 의핵심아이디어 : 컨볼루션신경망의최적인지역적희소구조를찾아내고이를사용가능한자원으로근사 이행불변성 (translation invariance) 필터의크기를 1 1, 3 3, 5 5 의세가지로제한. 각단계에서다른병렬풀링경로를더해주는것이유용. 인셉션모듈 https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 48
문제점과해결책 : 인셉션모듈 GoogLeNet 상위층으로갈수록고차의추상적인특징들을추출되어그공간적인밀집도가줄어들기때문에컨볼루션사이즈축소 문제점 : 아주많은수의필터에대해서컨볼루션층을구성할때비용이많이소모. 해결법 : 임베딩 (embedding) 의이점을활용하여, 계산량이크게증가하게되면차원을줄임 구글넷구조의핵심 : 상위층에서의계산복잡도를줄이면서각층의노드수를증가시킴. 큰크기의패치를사용하여계산량이많은컨볼루션을하기전에차원축소 (1 1 컨볼루션 ) 를사용함으로써이를구현. 다양한스케일시각정보들의특징들을동시에결합하는것이좋다는실용적인직관을따름. 성능에약간의손해를보면서계산비용을줄이는방법. 3~10 배의속도를향상하면서도유사한성능을달성. https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 49
1x1 Convolution in GoogLeNet (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 50
학습 GoogLeNet 보조분류기 : 인셉션모듈의출력위에작은컨볼루션망을추가하는방식 보조분류기에서계산되는손실값이구글넷전체손실값에 (0.3 의할인가중치를곱해서 ) 더해짐. 추론시에는이보조망은사용되지않음. 추가망의구체적인구조 필터크기와간격의평균풀링층을사용하여 4 4 512 의 (4a) 층출력과 4 4 528 의 (4d) 염탐층 (stag) 1,024 개의정류선형유닛 (ReLU) 뉴런으로구성된완전연결층 70% 비율로소거된출력을갖는드랍아웃층 소프트맥스손실치를갖는선형층의분류기 ( 주분류기와같은 1000 개의분류를예측하나추론시에는사용않음 ) 모델과데이터병렬성을이용하는 DistBelief 분산학습시스템을이용 비동기확률적경사도강하알고리듬을사용 0.9 의모멘텀요소와고정된학습률사용 매 8 번학습주기마다 4% 씩학습률을줄임 https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 51
GoogLeNet 데이터 알렉스넷 (AlexNet) 에비해 12 배적은수의매개변수를사용하면서도더높은정확도를획득 대회에서구글넷은독립적으로 7 가지의버전을훈련시킨후이를앙상블하여결과를예측 2012 년의 SuperVision 방법에비해서성능을상대적으로 56.5% 향상한것이며, 2011 년우승팀인 Clarifai 에비해서 40% 상대적인성능향상을이룸 https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 52
Deep Residual Networks (ResNet) (C) 2007-2018, SNU Biointelligence Lab, http://bi.snu.ac.kr/ 53