welcome to snu biointelligence lab!! - chapter 5. 딥빌리프넷scai/courses/ml2017/ch5_dbn.pdf ·...

25
Chapter 5. 딥빌리프넷 <기계학습 개론> 강의 서울대학교 컴퓨터공학부 장병탁 교재: 장교수의 딥러닝, 홍릉과학출판사, 2017. Slides Prepared by 장병탁, 최성호 Biointelligence Laboratory School of Computer Science and Engineering Seoul National University Version 20170928

Upload: others

Post on 11-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

Chapter 5. 딥빌리프넷

<기계학습개론> 강의

서울대학교컴퓨터공학부

장병탁

교재: 장교수의딥러닝, 홍릉과학출판사, 2017.

Slides Prepared by

장병탁, 최성호

Biointelligence Laboratory

School of Computer Science and Engineering

Seoul National University

Version 20170928

Page 2: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

목차

© 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

Page 3: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

제한볼쯔만머신(Restricted Boltzmann Machine, RBM)

입력뉴런층과하나의은닉뉴런층으로구성된무감독학습신경망모델

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.1 RBM 구조

3

Page 4: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

제한볼쯔만머신의특징

입력뉴런간에, 은닉뉴런간에연결선이없다. 반면원래의볼쯔만머신은모든뉴

런들이다른모든뉴런과연결된완전그래프형태의망구조를가진다.

확률모델이다. 반면퍼셉트론은결정적모델이다.

제한볼쯔만머신의상위층뉴런은감독학습신호를받지않으며, 입력신호를한단

계변환하는은닉뉴런역할을한다. 이러한모델은통계에서은닉변수모델(latent

variable model)로도알려져있으며마코프랜덤필드(Markov random field, MRF)와

같은계열의모델이다.

제한볼쯔만머신각뉴런의계산

𝑃 ℎ𝑗 𝕩 = 𝜎( 𝑖𝑤𝑗𝑖𝑥𝑖)

𝑃 𝕙 𝕩 = 𝑗 𝑃 ℎ𝑖 𝕩

𝑃(𝕩|𝕙) = 𝑖 𝑃 𝑥𝑖 𝕙

𝑃(𝕩𝑖|𝕙) = 𝜎( 𝑗𝑤𝑗𝑖ℎ𝑗)

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.1 RBM 구조

4

Page 5: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

볼쯔만머신의학습 무감독학습과정이기때문에우도 𝑃(𝕩)를최대화하도록학습

𝑃 𝕩 =

𝕙

𝑃(𝕩, 𝕙) =

𝕙

1

𝑍exp −𝐸 𝕩, 𝕙 =

𝕙

exp[−𝐸(𝕩, 𝕙)]

𝕙′ 𝕩′ exp[−𝐸(𝕩′, 𝕙′)]

𝐸 𝕩,𝕙 = − 𝑗 𝑖 ℎ𝑗𝑤𝑗𝑖𝑥𝑖

𝑤𝑗𝑖 : 𝑖번째입력뉴런과 𝑗번째은닉뉴런을연결하는연결선의가중치

최대우도값또는로그우도값을갖는가중치벡터를찾는문제

𝕨∗ = argmax𝕨log 𝑃(𝕩) = argmax

𝕨𝐿(𝑋; 𝜃)

로그우도추정법의정의로부터매개변수에대한미분값이 0으로수렴해야함

𝜕𝐿(𝑋; 𝜃)

𝜕𝑤𝑗𝑖→ 0

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.2 RBM 학습

5

Page 6: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

대조다이버전스(contrastive divergence) 방법 두개의확률분포차이를최소화함으로써학습하는방식

𝜕𝐿(𝑋; 𝜃)

𝜕𝑤𝑗𝑖= 𝑃(𝕩, 𝜃)

𝜕log𝑓(𝕩; 𝜃)

𝜕𝜃𝑑𝑥 −1

𝑁

𝑑=1

𝑁𝜕log𝑓 𝕩 𝑑 ; 𝜃

𝜕𝜃

= 𝑥𝑖 ℎ𝑗 𝑃(𝕩,𝜃) − 𝑥𝑖 ℎ𝑗 𝑋

= 𝑥𝑖 ℎ𝑗 ∞− 𝑥𝑖 ℎ𝑗 0

𝑓 𝑃 : 분포 𝑃에대한 𝑓의기대치

𝑓 𝑋 : 학습데이터 𝑋에대한기대치

𝑓 𝑃 − 𝑓 𝑋 : 두기대치차이

𝑥𝑖 ℎ𝑗 ∞: 몬테칼로시뮬레이션으로두기대치차이를추정한것

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.2 RBM 학습

6

Page 7: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

제한볼쯔만머신

무한번반복해야계산되는 𝑥𝑖 ℎ𝑗 ∞를한번의몬테칼로시뮬레이션으로대치하

여추정

𝑥𝑖 ℎ𝑗 ∞ − 𝑥𝑖 ℎ𝑗 0 ≈ 𝑥𝑖 ℎ𝑗 1 − 𝑥𝑖 ℎ𝑗 0

따라서학습식은다음과같이주어진다.

𝑤𝑗𝑖 ← 𝑤𝑗𝑖 + ∆𝑤𝑗𝑖

∆𝑤𝑗𝑖 = −𝜂𝜕𝐿 𝑋;𝜃

𝜕𝑤𝑗𝑖= −𝜂( 𝑥𝑖 ℎ𝑗 0 − 𝑥𝑖 ℎ𝑗 1)

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.2 RBM 학습

7

Page 8: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

제한볼쯔만머신학습알고리듬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

Page 9: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

응용예: 패턴생성

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.2 RBM 학습

9

Page 10: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

응용예: 패턴생성

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.2 RBM 학습

10

Page 11: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

딥빌리프넷(deep belief network, DBN)

제한볼쯔만머신을빌딩블록으로하여여러층을쌓은딥러닝아키텍처

특징

층을깊게쌓은신경망을학습하는데있어서널리알려진오차신호희석

(vanishing gradient) 문제가있다.

오차신호희석문제를해결하기위해아래층(입력에가까운층)에서부터위층

으로가면서순차적으로선훈련을진행한다. 이기술을층별선훈련(layerwise

pre-training)이라고한다.

입력과같은출력을재생성하는오토인코더또는분류기로사용할수있다.

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN)

11

Page 12: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

층별선훈련방법

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN)

12

Page 13: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

딥빌리프넷오토인코더와분류기

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN)

13

Page 14: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

딥빌리프넷의확률식

일반적인딥빌리프넷이관측가능한입력벡터를 𝕩와 𝑙개의은닉층을가지며, 이때 𝑘번째층의

값을 𝕙𝑘라고하자. 이렇게딥네트워크구조가결정된딥빌리프넷은다음과같은결합확률분

포를갖는확률그래프모델로정의된다.

𝑃 𝕩, 𝕙1,∙∙∙, 𝕙𝑙 = 𝑃 𝕩 𝕙1

𝑘=1

𝑙−2

𝑃 𝕙𝑘 𝕙𝑘+1 𝑃(𝕙𝑙−1, 𝕙𝑙)

𝕙𝑙−1과 𝕙𝑙의관계는조건부확률이아님을유의하자.

계층별관계를나타내는조건부확률및결합확률(최상단의두층)은 RBM을이용한층별선

훈련을통해얻는다.

이와같이계층별관계및네트워크를확률을이용해표현할경우, 학습데이터에포함되지않

은패턴도샘플링을통해생성할수있다는장점을갖는다.

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN)

14

Page 15: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

영상데이터에대한딥빌리프넷의학습과정개요

1. 영상의픽셀값들을입력벡터로사용하여층별선훈련을통해첫번째층을

학습한후, 은닉층의출력벡터를구한다.

2. 하위은닉층의출력벡터를입력벡터로취급하여다음계층을학습한다.

3. 2의과정을딥네트워크구조에따라상위층으로올라가면서반복한다.

4. (오토인코더학습의경우) Wake-Sleep 알고리듬을통해미세조정을수행한

다.

5. (분류기학습의경우) 오류역전파알고리듬을통해미세조정을수행한다.

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN)

15

Page 16: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

응용예: 필기체숫자인식문제와생성문제

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN)

16

Page 17: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

응용예: 필기체숫자인식문제와생성문제

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN)

17

Page 18: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

드랍아웃(dropout)

딥네트워크를학습하는데에있어은닉층안의일부노드를강제로꺼버리는과정

을통해분류성능을크게향상시키는트릭(Srivastava et al., 2014).

ImageNet에딥러닝을성공적으로적용했던사례인 AlexNet에서도사용됨

드랍아웃의적용과효과

매학습데이터하나마다각각은닉뉴런별로일정확률(예를들면 0.5)로강제로

꺼질뉴런을무작위로선택

이러한과정을통해, 만약 𝐻개의은닉뉴런을가지고있었다면, 마치 2𝐻개의다른

네트워크를가지고앙상블을만든효과를갖게됨

앙상블의모든네트워크의가중치는공유되어강력한정규화효과를지니게됨

여러개의모델을한번에다루는효과를부여하게되어훨씬설명력이좋은다수의

모델을학습

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN) - 드랍아웃

18

Page 19: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

드랍아웃을수행한모델의추론

다수의모델의결과를합쳐서이용하는효과를가지므로, 가중치의값들을반

으로줄여서연산을수행하면된다. 이과정은출력들의기하평균을취하여다

음계층으로보내는것과동일한효과를낸다.

은닉층이여러개일경우의드랍아웃

매은닉층마다 0.5 드랍아웃을사용하는것이좋다.

입력계층의드랍아웃

입력게층에도드랍아웃사용하는것이좋다고알려져있다.

딥빌리프넷에서의드랍아웃

미세조정과정에서감독학습을할때적용할수있다.

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.3 딥빌리프넷(DBN) - 드랍아웃

19

Page 20: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.4 응용사례 –얼굴방향인식문제

20

Page 21: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.4 응용사례 –얼굴방향인식문제

21

Page 22: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.4 응용사례 –얼굴방향인식문제

22

Page 23: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

Hinton & Salakhutdinov, 2006

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.4 응용사례 –문서의코드화

23

Page 24: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

Hinton & Salakhutdinov, 2006

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

5.4 응용사례 –문서의코드화

24

Page 25: Welcome to SNU Biointelligence Lab!! - Chapter 5. 딥빌리프넷scai/Courses/ML2017/Ch5_DBN.pdf · 2017-09-28 · Chapter 5. 딥빌리프넷  강의 서울대학교컴퓨터공학부

RBM의구조

입력뉴런층과하나의은닉뉴런층으로구성된무감독학습신경망모델

RBM의학습

무감독학습과정이기때문에우도 𝑃(𝕩)를최대화하도록학습

최대우도값또는로그우도값을갖는가중치벡터를찾는문제로대조다이버전스를이용

딥빌리프넷

제한볼쯔만머신을빌딩블록으로하여여러층을쌓은딥러닝아키텍처

층별선훈련방법을이용

응용예: 필기체숫자인식문제와생성문제

드랍아웃

응용사례

얼굴방향인식문제

문서의코드화

© 2017, 장교수의딥러닝, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

요약

25