chapter 5. 딥빌리프넷 - seoul national university › courses › ml2017 › ch5_dbn.pdf ·...
TRANSCRIPT
Chapter 5. 딥빌리프넷
<기계학습개론> 강의
서울대학교컴퓨터공학부
장병탁
교재: 장교수의딥러닝, 홍릉과학출판사, 2017.
Slides Prepared by
장병탁, 최성호
Biointelligence Laboratory
School of Computer Science and Engineering
Seoul National University
Version 20170928
목차
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 2
5.1 RBM 구조 ………………………………………… 3
5.2 RBM 학습 …………………………………………. 5
5.3 딥빌리프넷(DBN) ………………………………… 12
5.4 응용사례 ……………………………...…………… 21
제한볼쯔만머신(Restricted Boltzmann Machine, RBM)
입력뉴런층과하나의은닉뉴런층으로구성된무감독학습신경망모델
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.1 RBM 구조
3
제한볼쯔만머신의특징
입력뉴런간에, 은닉뉴런간에연결선이없다. 반면원래의볼쯔만머신은모든뉴
런들이다른모든뉴런과연결된완전그래프형태의망구조를가진다.
확률모델이다. 반면퍼셉트론은결정적모델이다.
제한볼쯔만머신의상위층뉴런은감독학습신호를받지않으며, 입력신호를한단
계변환하는은닉뉴런역할을한다. 이러한모델은통계에서은닉변수모델(latent
variable model)로도알려져있으며마코프랜덤필드(Markov random field, MRF)와
같은계열의모델이다.
제한볼쯔만머신각뉴런의계산
𝑃 ℎ𝑗 𝕩 = 𝜎( 𝑖𝑤𝑗𝑖𝑥𝑖)
𝑃 𝕙 𝕩 = 𝑗 𝑃 ℎ𝑖 𝕩
𝑃(𝕩|𝕙) = 𝑖 𝑃 𝑥𝑖 𝕙
𝑃(𝕩𝑖|𝕙) = 𝜎( 𝑗𝑤𝑗𝑖ℎ𝑗)
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.1 RBM 구조
4
볼쯔만머신의학습 무감독학습과정이기때문에우도 𝑃(𝕩)를최대화하도록학습
𝑃 𝕩 =
𝕙
𝑃(𝕩, 𝕙) =
𝕙
1
𝑍exp −𝐸 𝕩, 𝕙 =
𝕙
exp[−𝐸(𝕩, 𝕙)]
𝕙′ 𝕩′ exp[−𝐸(𝕩′, 𝕙′)]
𝐸 𝕩,𝕙 = − 𝑗 𝑖 ℎ𝑗𝑤𝑗𝑖𝑥𝑖
𝑤𝑗𝑖 : 𝑖번째입력뉴런과 𝑗번째은닉뉴런을연결하는연결선의가중치
최대우도값또는로그우도값을갖는가중치벡터를찾는문제
𝕨∗ = argmax𝕨log 𝑃(𝕩) = argmax
𝕨𝐿(𝑋; 𝜃)
로그우도추정법의정의로부터매개변수에대한미분값이 0으로수렴해야함
𝜕𝐿(𝑋; 𝜃)
𝜕𝑤𝑗𝑖→ 0
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.2 RBM 학습
5
대조다이버전스(contrastive divergence) 방법 두개의확률분포차이를최소화함으로써학습하는방식
𝜕𝐿(𝑋; 𝜃)
𝜕𝑤𝑗𝑖= 𝑃(𝕩, 𝜃)
𝜕log𝑓(𝕩; 𝜃)
𝜕𝜃𝑑𝑥 −1
𝑁
𝑑=1
𝑁𝜕log𝑓 𝕩 𝑑 ; 𝜃
𝜕𝜃
= 𝑥𝑖 ℎ𝑗 𝑃(𝕩,𝜃) − 𝑥𝑖 ℎ𝑗 𝑋
= 𝑥𝑖 ℎ𝑗 ∞− 𝑥𝑖 ℎ𝑗 0
𝑓 𝑃 : 분포 𝑃에대한 𝑓의기대치
𝑓 𝑋 : 학습데이터 𝑋에대한기대치
𝑓 𝑃 − 𝑓 𝑋 : 두기대치차이
𝑥𝑖 ℎ𝑗 ∞: 몬테칼로시뮬레이션으로두기대치차이를추정한것
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.2 RBM 학습
6
제한볼쯔만머신
무한번반복해야계산되는 𝑥𝑖 ℎ𝑗 ∞를한번의몬테칼로시뮬레이션으로대치하
여추정
𝑥𝑖 ℎ𝑗 ∞ − 𝑥𝑖 ℎ𝑗 0 ≈ 𝑥𝑖 ℎ𝑗 1 − 𝑥𝑖 ℎ𝑗 0
따라서학습식은다음과같이주어진다.
𝑤𝑗𝑖 ← 𝑤𝑗𝑖 + ∆𝑤𝑗𝑖
∆𝑤𝑗𝑖 = −𝜂𝜕𝐿 𝑋;𝜃
𝜕𝑤𝑗𝑖= −𝜂( 𝑥𝑖 ℎ𝑗 0 − 𝑥𝑖 ℎ𝑗 1)
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.2 RBM 학습
7
제한볼쯔만머신학습알고리듬1. 은닉뉴런의수 𝐻를정하고가중치를초기화한다.
2. 관측뉴런에학습벡터 𝕩를입력한다.
3. For 𝑗 = 1 to 𝐻
𝑃 ℎ𝑗 𝕩 을계산
4. 위의 3을여러번반복한다.
5. 모든 𝑖, 𝑗쌍에대해서 𝑥𝑖와 ℎ𝑗가동시에 on이되는수를계산해서 𝑥𝑖 ℎ𝑗 0라한다.
6. For 𝑖 = 1 to 𝐻
𝑃 𝑥𝑖 𝕙 을계산
7. 위의 6을여러번반복한다.
8. For 𝑗 = 1 to 𝐻
𝑃 ℎ𝑗 𝕩 을계산 // 6의결과를이용하여
9. 위의 8을여러번반복한다.
10. 모든 𝑖, 𝑗쌍에대해서 𝑥𝑖와 ℎ𝑗가동시에 on이되는수를계산해서 𝑥𝑖 ℎ𝑗 1라한다.
11. 모든 𝑖, 𝑗쌍에대해서가중치를다음과같이변경한다.
∆𝑤𝑗𝑖 = 𝜂 𝑥𝑖 ℎ𝑗 0− 𝑥𝑖 ℎ𝑗 1
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.2 RBM 학습
8
응용예: 패턴생성
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.2 RBM 학습
9
응용예: 패턴생성
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.2 RBM 학습
10
딥빌리프넷(deep belief network, DBN)
제한볼쯔만머신을빌딩블록으로하여여러층을쌓은딥러닝아키텍처
특징
층을깊게쌓은신경망을학습하는데있어서널리알려진오차신호희석
(vanishing gradient) 문제가있다.
오차신호희석문제를해결하기위해아래층(입력에가까운층)에서부터위층
으로가면서순차적으로선훈련을진행한다. 이기술을층별선훈련(layerwise
pre-training)이라고한다.
입력과같은출력을재생성하는오토인코더또는분류기로사용할수있다.
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN)
11
층별선훈련방법
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN)
12
딥빌리프넷오토인코더와분류기
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN)
13
딥빌리프넷의확률식
일반적인딥빌리프넷이관측가능한입력벡터를 𝕩와 𝑙개의은닉층을가지며, 이때 𝑘번째층의
값을 𝕙𝑘라고하자. 이렇게딥네트워크구조가결정된딥빌리프넷은다음과같은결합확률분
포를갖는확률그래프모델로정의된다.
𝑃 𝕩, 𝕙1,∙∙∙, 𝕙𝑙 = 𝑃 𝕩 𝕙1
𝑘=1
𝑙−2
𝑃 𝕙𝑘 𝕙𝑘+1 𝑃(𝕙𝑙−1, 𝕙𝑙)
𝕙𝑙−1과 𝕙𝑙의관계는조건부확률이아님을유의하자.
계층별관계를나타내는조건부확률및결합확률(최상단의두층)은 RBM을이용한층별선
훈련을통해얻는다.
이와같이계층별관계및네트워크를확률을이용해표현할경우, 학습데이터에포함되지않
은패턴도샘플링을통해생성할수있다는장점을갖는다.
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN)
14
영상데이터에대한딥빌리프넷의학습과정개요
1. 영상의픽셀값들을입력벡터로사용하여층별선훈련을통해첫번째층을
학습한후, 은닉층의출력벡터를구한다.
2. 하위은닉층의출력벡터를입력벡터로취급하여다음계층을학습한다.
3. 2의과정을딥네트워크구조에따라상위층으로올라가면서반복한다.
4. (오토인코더학습의경우) Wake-Sleep 알고리듬을통해미세조정을수행한
다.
5. (분류기학습의경우) 오류역전파알고리듬을통해미세조정을수행한다.
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN)
15
응용예: 필기체숫자인식문제와생성문제
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN)
16
응용예: 필기체숫자인식문제와생성문제
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN)
17
드랍아웃(dropout)
딥네트워크를학습하는데에있어은닉층안의일부노드를강제로꺼버리는과정
을통해분류성능을크게향상시키는트릭(Srivastava et al., 2014).
ImageNet에딥러닝을성공적으로적용했던사례인 AlexNet에서도사용됨
드랍아웃의적용과효과
매학습데이터하나마다각각은닉뉴런별로일정확률(예를들면 0.5)로강제로
꺼질뉴런을무작위로선택
이러한과정을통해, 만약 𝐻개의은닉뉴런을가지고있었다면, 마치 2𝐻개의다른
네트워크를가지고앙상블을만든효과를갖게됨
앙상블의모든네트워크의가중치는공유되어강력한정규화효과를지니게됨
여러개의모델을한번에다루는효과를부여하게되어훨씬설명력이좋은다수의
모델을학습
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN) - 드랍아웃
18
드랍아웃을수행한모델의추론
다수의모델의결과를합쳐서이용하는효과를가지므로, 가중치의값들을반
으로줄여서연산을수행하면된다. 이과정은출력들의기하평균을취하여다
음계층으로보내는것과동일한효과를낸다.
은닉층이여러개일경우의드랍아웃
매은닉층마다 0.5 드랍아웃을사용하는것이좋다.
입력계층의드랍아웃
입력게층에도드랍아웃사용하는것이좋다고알려져있다.
딥빌리프넷에서의드랍아웃
미세조정과정에서감독학습을할때적용할수있다.
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.3 딥빌리프넷(DBN) - 드랍아웃
19
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.4 응용사례 –얼굴방향인식문제
20
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.4 응용사례 –얼굴방향인식문제
21
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.4 응용사례 –얼굴방향인식문제
22
Hinton & Salakhutdinov, 2006
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.4 응용사례 –문서의코드화
23
Hinton & Salakhutdinov, 2006
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
5.4 응용사례 –문서의코드화
24
RBM의구조
입력뉴런층과하나의은닉뉴런층으로구성된무감독학습신경망모델
RBM의학습
무감독학습과정이기때문에우도 𝑃(𝕩)를최대화하도록학습
최대우도값또는로그우도값을갖는가중치벡터를찾는문제로대조다이버전스를이용
딥빌리프넷
제한볼쯔만머신을빌딩블록으로하여여러층을쌓은딥러닝아키텍처
층별선훈련방법을이용
응용예: 필기체숫자인식문제와생성문제
드랍아웃
응용사례
얼굴방향인식문제
문서의코드화
© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
요약
25