40
Chapter 2. 신경망 <기계학습 개론> 강의 서울대학교 컴퓨터공학부 장병탁 교재: 장교수의 딥러닝, 홍릉출판사, 2017. Slides Prepared by 장병탁, 손성호 Biointelligence Laboratory School of Computer Science and Engineering Seoul National University

Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망 강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

Chapter 2. 신경망

<기계학습개론> 강의

서울대학교컴퓨터공학부

장병탁

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

Slides Prepared by

장병탁, 손성호

Biointelligence Laboratory

School of Computer Science and Engineering

Seoul National University

Page 2: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

목차

2.1 퍼셉트론 …………………..……………………… 3

2.2 델타규칙 …………………………………………... 9

2.3 다층퍼셉트론 ……………………………………… 20

2.4 오류역전파알고리듬 ……….………………...…… 26

2.5 활용사례 ……………………………..…………… 35

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

Page 3: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

인공신경세포 (Artificial Neuron)

생물신경세포 인공신경세포

2.1 퍼셉트론

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

Page 4: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.1 퍼셉트론

부정확한소자 (1011 개뉴런)

소자속도느림 (10-3 초)

아날로그회로망 (1014 개연결선)

내용기반메모리 (전역적/관계적)

패턴/연상기반연산 (연관적)

분산적병렬처리

학습(경험/데이터)기반암묵적지식

정확한소자 (논리소자)

소자속도매우빠름 (10 –9 초)

디지털회로망 (전자회로망)

주소기반메모리 (국지적/독립적)

논리/산술적연산 (조작적)

중앙집중식순차처리

프로그래밍기반명시적지식

컴퓨터와뇌의비교

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

Page 5: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.1 퍼셉트론

퍼셉트론구조

생물학적신경세포의작동방식을수학적으로모델링한인공뉴런

뇌의구조를모사한정보처리방식

1958년 Rosenblatt가학습이가능함을증명

인접한두뉴런의연결부분인시냅스에서학습이일어남

출력노드의활성화값

임계논리활성화함수: 임계치를넘으면 +1을, 넘지않으면 -1을출력

Rosenblatt의퍼셉트론(단순퍼셉트론)은하나의임계논리유닛으로구성

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

𝑠 =

𝑖=1

𝑛

𝑤𝑖𝑥𝑖 +𝑤0 =

𝑖=0

𝑛

𝑤𝑖𝑥𝑖 = 𝐰 ∙ 𝐱

Page 6: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.1 퍼셉트론

단순퍼셉트론의작동원리

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

𝑤1𝑥1 + 𝑤2𝑥2 + 𝑏 = 0

Page 7: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.1 퍼셉트론

퍼셉트론의학습 학습목표: 주어진학습패턴들을두개의클래스로분류하는경계면찾기

학습패턴 x가입력될때출력되는 f를계산, 목표출력과일치하지않으면변경

퍼셉트론학습규칙

학습예를반복적으로관측하면서가중치를변경하면선형분리가가능한분류문제의경우올바른분류기를학습할수있음

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

𝑓 𝑠 = +1 𝑖𝑓 𝑠 > 0−1 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

Page 8: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.1 퍼셉트론

단순퍼셉트론의학습원리

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

X ∙ W − θ = 0

W

|W|

X ∙ W − θ > 0

X ∙ W − θ < 0

초평면방정식:

초평면위쪽

초평면아래쪽원점

X

초평면에직교하는단위벡터

선형뉴런시작:

가중치벡터 w 를랜덤하게생성

테스트:

벡터 𝑥 ∈ 𝑃 ∪ 𝑁 를랜덤하게선택𝑥 ∈ 𝑃이고 w ∙ 𝑥 > 0이면 goto 테스트,

𝑥 ∈ 𝑃이고 w ∙ 𝑥 ≥ 0이면 goto 더하기,

𝑥 ∈ 𝑁이고 w ∙ 𝑥 < 0이면 goto 테스트,

𝑥 ∈ 𝑁이고 w ∙ 𝑥 ≤ 0이면 goto 빼기.

더하기:

w = 𝑤 + 𝑥로설정, goto 테스트

빼기:

w = 𝑤 − 𝑥로설정, goto 테스트

Page 9: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

임계활성화함수의한계

+1 또는 -1의이진값만을출력

오차는 0 아니면 2만가능: 미세한오차조정불가능

선형활성화함수

임계활성화함수의한계를해결

선형퍼셉트론: 선형활성화함수를사용하는퍼셉트론

델타규칙을사용하여학습가능 (Widrow & Hoff, 1960)

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

Page 10: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

델타규칙에의한학습알고리듬

학습데이터 N개

가중치벡터 w를갖는선형유닛의계산

학습데이터집합에대한오차 E

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

𝐷𝑁 = 𝐱 𝑑 , 𝑦(𝑑)𝑑=1

𝑁

𝑓(𝑑) = 𝑓 𝐱(𝑑); 𝐰 =

𝑖

𝑤𝑖𝑥𝑖(𝑑)

𝐸𝑁 =

𝑑=1

𝑁

𝐸𝑑 𝐸𝑑 =1

2𝑦(𝑑) − 𝑓(𝑑) 2

Page 11: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

선형퍼셉트론의구조

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

𝑥0

𝑥1

𝑥2

𝑥𝑛

𝑥(𝑑)

𝑤0

𝑤1

𝑤2

𝑤𝑛

𝑓(𝑑) ⇔ 𝑦(𝑑)

𝑓(𝑑) = 𝑓 𝑥 𝑑 ; 𝑤 = 𝑖𝑤𝑖𝑥𝑖

𝐸𝑑 =1

2𝑦 𝑑 − 𝑓 𝑑 2

𝐷𝑁 = { 𝑥 𝑑 , 𝑦 𝑑 }𝑑=1𝑁

Page 12: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

델타규칙에의한학습알고리듬(cont.)

오차를줄여주는방향으로시냅스가중치를교정

오차를가중치 𝑤𝑖에대해서미분

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

𝑤𝑖 ← 𝑤𝑖 + ∆𝑤𝑖

∆𝑤𝑖 = −𝜂𝜕𝐸𝑑𝜕𝑤𝑖

𝜕𝐸𝑑𝜕𝑤𝑖

=𝜕𝐸𝑑𝜕𝑓(𝑑)

𝜕𝑓(𝑑)

𝜕𝑤𝑖=

𝜕

𝜕𝑓(𝑑)

1

2𝑦(𝑑) − 𝑓(𝑑) 2 𝜕𝑓(𝑑)

𝜕𝑤𝑖

=1

2−2 𝑦(𝑑) − 𝑓(𝑑) 𝑥𝑖

(𝑑)= − 𝑦(𝑑) − 𝑓(𝑑) 𝑥𝑖

(𝑑)

Page 13: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

델타규칙에의한학습알고리듬(cont.)

i번째가중치의학습식

𝜂 ∈ (0,1)은학습률 (learning rate)

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

𝑤𝑖 ← 𝑤𝑖 + 𝜂 𝑦(𝑑) − 𝑓(𝑑) 𝑥𝑖(𝑑)

Page 14: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

선형퍼셉트론학습을위한델타규칙

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

선형퍼셉트론학습 (학습예_집합 𝑫𝑵, 𝜼)

각학습예는 <𝐱, 𝑦> 꼴의쌍을이루며 𝐱는입력값벡터, 𝑦는목표출력값이다.

𝜂는학습률이다 (e.g., .05).

1) 각 𝑤𝑖를크기가작고랜덤한값으로초기화

2) 종료조건이만족될때까지아래를반복

A. 각 ∆𝑤𝑖를 0으로초기화

B. 학습예_집합 𝐷𝑁의각 <𝐱, 𝑦> 에대해아래를실행

i. 선형유닛에 𝐱를입력하고출력 𝑓를계산

ii. 각선형유닛가중치 𝑤𝑖에대해

∆𝑤𝑖 ← 𝜂 𝑦 − 𝑓 𝑥𝑖를계산

iii. 각선형유닛가중치 𝑤𝑖에대해

𝑤𝑖 ← 𝑤𝑖 + ∆𝑤𝑖를실행

Page 15: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

시그모이드함수뉴런

선형퍼셉트론은선형분리가가능

한패턴분류문제만해결가능

복잡한문제를풀기위해서는

비선형결정경계를생성해야함

미분이가능하려면

연속함수일필요가있음

시그모이드(sigmoid) 함수:

비선형, 미분가능한연속함수

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

Classic

Perception 1

0.8

0.6

0.2

-2-4-6 642

0.4𝑑𝑓 𝑥

𝑑𝑥= 𝑓(𝑥)(1 − 𝑓 𝑥 )

Sigmoid function is

Differentiable

𝑥1

𝑥2

𝑥𝑛

𝑤1

𝑤2

𝑤𝑛⋮

𝑛𝑒𝑡 = 𝑖=0

𝑛

𝑤𝑖𝑥𝑖

𝑜 = 𝜎(𝑛𝑒𝑡) =1

1 + 𝑒−𝑛𝑒𝑡

𝑥0 = 1

Σ

Page 16: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

시그모이드뉴런신경망

가중치입력계산시비선형의시그모이드전이함수를거쳐서출력함(Aizerman, Braverman, & Rozonoer, 1964)

[−∞,+∞]의입력구간 s에대한출력을 0, 1 의구간으로변환해줌

미분가능

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

𝑠 =

𝑖=0

𝑛

𝑤𝑖𝑥𝑖 = 𝐰 ∙ 𝐱 𝑓 = 𝜎 𝑠 =1

1 + exp −𝑠

𝜕𝜎 𝑠

𝜕𝑠= 𝜎(𝑠)(1 − 𝜎 𝑠 )

Page 17: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.2 델타규칙

시그모이드뉴런의델타규칙

시그모이드유닛의계산

오차의가중치에대한미분

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

𝑠(𝑑) =

𝑖

𝑤𝑖𝑥𝑖(𝑑)

𝑓(𝑑) = 𝑓(𝐱(𝑑);𝐰) =1

1 + exp −𝑠(𝑑)

𝜕𝐸𝑑𝜕𝑤𝑖

=𝜕𝐸𝑑𝜕𝑓(𝑑)

𝜕𝑓(𝑑)

𝜕𝑤𝑖=

𝜕

𝜕𝑓(𝑑)

1

2𝑦(𝑑) − 𝑓(𝑑) 2 𝜕𝑓(𝑑)

𝜕𝑠(𝑑)𝜕𝑠(𝑑)

𝜕𝑤𝑖

=1

2−2 𝑦(𝑑) − 𝑓(𝑑) 𝑓(𝑑) 1 − 𝑓(𝑑) 𝑥𝑖

(𝑑)

= − 𝑦(𝑑) − 𝑓(𝑑) 𝑓(𝑑) 1 − 𝑓(𝑑) 𝑥𝑖(𝑑)

Page 18: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

𝑤𝑖 ← 𝑤𝑖 + 𝜂 𝑦(𝑑) − 𝑓(𝑑) 𝑓(𝑑)(1 − 𝑓(𝑑))𝑥𝑖(𝑑)

2.2 델타규칙

시그모이드뉴런의델타규칙(cont.)

i번째가중치의학습식

𝜂 ∈ (0,1)은학습률 (learning rate)

시그모이드를미분한항 𝒇 𝒅 (𝟏 − 𝒇 𝒅 )가추가된것외에동일함

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

Page 19: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.3 다층퍼셉트론

다층뉴런의필요성

복잡한패턴분류를위해서는입출력간의복잡한변환구조가필요

단일뉴런으로는선형분리가가능한결정경계선만을생성가능

사용하는뉴런의수를늘리고층을추가하여복잡한구조의의사결정경계(decision boundary)를생성할수있음

다층퍼셉트론 (Multilayer Perceptron, MLP)

여러개의퍼셉트론뉴런을여러층으로쌓은다층신경망구조

각층안에서는뉴런간연결이없으며인접한두층의뉴런간에는완전연결됨

층별활성화값

j: 시냅스후뉴런, i: 시냅스전뉴런

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

𝑠𝑗 =

𝑖

𝑤𝑗𝑖𝑥𝑖 𝑓𝑗 = 𝜎 𝑠𝑗 =1

1 + exp −𝑠𝑗

Page 20: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.3 다층퍼셉트론

다수 / 다층뉴런의필요성

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

Page 21: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.3 다층퍼셉트론

다층퍼셉트론신경망(MLP)

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

Page 22: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.3 다층퍼셉트론

다층퍼셉트론의혁신

시그모이드뉴런의사용

비선형모델로확장가능

연속함수이므로미분가능

은닉뉴런층의학습을가능하게하는

오류역전파알고리듬의개발로이어짐

은닉뉴런층추가

은닉층학습방법도입

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

Page 23: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

다층신경망모델 입력층, 은닉층, 출력층으로구성

각층의뉴런개수가각각 I, H, K라하면 I-H-K 다층퍼셉트론이라부름

입력유닛, 은닉유닛, 출력유닛을가리키는기호로 i, h, k를각각사용

입력뉴런 i의출력 𝑥𝑖는모든은닉뉴런 h와의연결가중치 𝑤ℎ𝑖를통해서전달됨

은닉뉴런 h의출력은모든출력뉴런 k의입력으로연결선 𝑤𝑘ℎ를통해서전달됨

매개변수

: 입력층과은닉층을연결하는가중치벡터

: 은닉층과출력층을연결하는가중치벡터

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

2.3 다층퍼셉트론

Page 24: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.3 다층퍼셉트론

다층신경망모델 출력값벡터 f

출력값의계산과정

은닉뉴런의출력값 𝑥ℎ의계산

출력뉴런의값 𝑓𝑘의계산

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

𝒇 = 𝑓1, 𝑓2, … , 𝑓𝐾 = 𝒇(𝐱,𝐰)

𝑠ℎ =

𝑖=0

𝐼

𝑤ℎ𝑖(1)

𝑥𝑖 𝑥ℎ = 𝜎 𝑠ℎ =1

1 + exp −𝑠ℎ

𝑠𝑘 =

ℎ=0

𝐻

𝑤𝑘ℎ(2)

𝑥ℎ 𝑓𝑘 = 𝜎 𝑠𝑘 =1

1 + exp −𝑠𝑘

𝑓𝑘 = 𝑓𝑘 𝑥,𝑤 = 𝜎

ℎ=0

𝐻

𝑤𝑘ℎ(2)

𝜎

𝑖=0

𝐼

𝑤ℎ𝑖(1)

𝑥𝑖

Page 25: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

출력뉴런 j에대한가중치벡터변경

𝑥𝑖(𝑙−1)

: 𝑙 − 1층에있는뉴런들의활성화값

𝑠𝑗(𝑙): 𝑙층의 j번째뉴런의총입력값

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

𝐰𝑗 ← 𝐰𝑗 + ∆𝐰𝑗

∆𝐰𝑗 = 𝜂 𝑦𝑗 − 𝑓𝑗 𝑓𝑗 1 − 𝑓𝑗 𝐱𝑗

𝑠𝑗(𝑙)

= 𝐰𝑗(𝑙)

∙ 𝐱𝑗(𝑙−1)

=

𝑖

𝑤𝑗𝑖(𝑙)𝑥𝑖(𝑙−1)

𝑥𝑗(𝑙)

= 𝑓𝑗(𝑙)

= 𝜎(𝑠𝑗(𝑙))

𝜕𝑠𝑗(𝑙)

𝜕𝐰𝑗(𝑙)

= 𝐱(𝑙−1)

𝜕𝑓𝑗(𝑙)

𝜕𝑠𝑗(𝑙)

= 𝑓𝑗(𝑙)(1 − 𝑓𝑗

(𝑙))

Page 26: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

단순퍼셉트론에서다층퍼셉트론으로

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

Page 27: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

출력뉴런 j에대한가중치벡터변경(cont.)

𝑑번째학습예에대한오차함수

출력층 𝑑층에있는 j번째뉴런의델타값 𝛿𝑗(𝑙)

해당뉴런의입력총합에대한에러변화율의음수값

교정할오류를의미

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

𝐸𝑑 =1

2

𝑗

𝑦𝑗 − 𝑓𝑗(𝑙) 2

𝛿𝑗(𝑙)

≜ −𝜕𝐸𝑑

𝜕𝑠𝑗𝑙

Page 28: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

델타값의계산

연쇄규칙을사용

목표출력치가주어지는출력뉴런에대한델타값

출력층 𝑙층에있는 j번째뉴런에연결된시냅스의경사도

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

𝜕𝐸𝑑

𝜕𝑠𝑗(𝑙)

=𝜕𝐸𝑑

𝜕𝑓𝑗(𝑙)

𝜕𝑓𝑗(𝑙)

𝜕𝑠𝑗(𝑙)

= − 𝑦𝑗 − 𝑓𝑗(𝑙)

𝑓𝑗(𝑙)

1 − 𝑓𝑗(𝑙)

𝛿𝑗(𝑙)

= 𝑦𝑗 − 𝑓𝑗(𝑙)

𝑓𝑗(𝑙)(1 − 𝑓𝑗

(𝑙))

𝜕𝐸𝑑

𝜕𝐰𝑗(𝑙)

=𝜕𝐸𝑑

𝜕𝑓𝑗(𝑙)

𝜕𝑓𝑗(𝑙)

𝜕𝑠𝑗(𝑙)

𝜕𝑠𝑗(𝑙)

𝜕𝐰𝑗(𝑙)

= − 𝑦𝑗 − 𝑓𝑗(𝑙)

𝜕𝑓𝑗(𝑙)

𝜕𝑠𝑗(𝑙)

𝐱𝑗(𝑙−1)

= − 𝑦𝑗 − 𝑓𝑗(𝑙)

𝑓𝑗(𝑙)

1 − 𝑓𝑗(𝑙)

𝐱𝑗(𝑙−1)

= −𝛿𝑗(𝑙)𝐱𝑗(𝑙−1)

Page 29: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

델타값의계산(cont.)

은닉층에서는목표출력치가없으므로델타값을추정해야함

은닉층 𝑙층에있는 j번째뉴런의가중치수정

𝑙 + 1층의델타값 𝛿𝑘(𝑙+1)

을이용한 𝛿𝑗(𝑙)의계산

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

𝜕𝐸𝑑

𝜕𝐰𝑗(𝑙)

=𝜕𝐸𝑑

𝜕𝑠𝑗(𝑙)

𝜕𝑠𝑗(𝑙)

𝜕𝐰𝑗(𝑙)

= −𝛿𝑗(𝑙)𝐱𝑗(𝑙−1)

𝜕𝐸𝑑

𝜕𝑠𝑗(𝑙)

=

𝑘∈𝑈𝑝𝑝𝑒𝑟 𝑗

𝜕𝐸𝑑

𝜕𝑠𝑘(𝑙+1)

𝜕𝑠𝑘(𝑙+1)

𝜕𝑓𝑗(𝑙)

𝜕𝑓𝑗(𝑙)

𝜕𝑠𝑗(𝑙)

=

𝑘∈𝑈𝑝𝑝𝑒𝑟 𝑗

−𝛿𝑘(𝑙+1)

𝑤𝑘𝑗(𝑙+1)

𝑓𝑗(𝑙)(1 − 𝑓𝑗

(𝑙))

= −𝑓𝑗(𝑙)(1 − 𝑓𝑗

(𝑙)) 𝑘∈𝑈𝑝𝑝𝑒𝑟 𝑗 𝛿𝑘

(𝑙+1)𝑤𝑘𝑗

(𝑙+1)

𝛿𝑗(𝑙)

= −𝜕𝐸𝑑

𝜕𝑠𝑗(𝑙)

Page 30: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

델타값의계산(cont.)

𝑙층의 j번째뉴런에연결된시냅스가중치벡터의일반변경식

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

𝐰𝑗(𝑙)

← 𝐰𝑗(𝑙)

+ ∆𝐰𝑗(𝑙)

∆𝐰𝑗(𝑙)

= −𝜂𝜕𝐸𝑑

𝜕𝐰𝑗(𝑙)

= 𝜂𝛿𝑗(𝑙)𝐱𝑗(𝑙−1)

𝛿𝑗(𝑙)

=

𝑓𝑗(𝑙)

1 − 𝑓𝑗(𝑙)

𝑦𝑗 − 𝑓𝑗(𝑙)

for 𝑗 ∈ 𝑂𝑢𝑡𝑝𝑢𝑡𝑠

𝑓𝑗(𝑙)

1 − 𝑓𝑗(𝑙)

𝑘∈𝑈𝑝𝑝𝑒𝑟 𝑗

𝛿𝑘(𝑙+1)

𝑤𝑘𝑗

(𝑙+1)for 𝑗 ∈ 𝐻𝑖𝑑𝑑𝑒𝑛𝑠

Page 31: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

상위층의델타값을이용한하위층뉴런의델타값계산

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

𝛿3 = 𝑤34𝛿4 +𝑤35𝛿5

Page 32: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

오류역전파알고리듬의한계

학습속도가느림

극복방법: 모멘텀항을추가하여학습을가속(Yin, 1996)(Bishop, 2006)

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

∆𝑤𝑗𝑖 𝑡 = 𝜂𝛿𝑗𝑥𝑗𝑖∆𝑤𝑗𝑖 𝑡 = 𝜂𝛿𝑗𝑥𝑗𝑖 + 𝛼∆𝑤𝑗𝑖 𝑡 − 1 , 0 < 𝛼 < 1

Page 33: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.4 오류역전파알고리듬

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

오류역전파(error back-propagation) 학습알고리듬

Given: 학습데이터 𝐷 = 𝑥(𝑑), 𝑦(𝑑)𝑛=1

𝑁, 학습률 𝜂, 다층퍼셉트론구조 𝑓(𝐱,𝐰)

Find: 다층퍼셉트론연결가중치벡터

𝐰𝐵𝑃 = 𝑎𝑟𝑔𝑚𝑖𝑛𝐰1

2 𝑑=1𝑁 𝑘=1

𝐾 𝑓𝑘 𝐱(𝑑), 𝐰 − 𝑦𝑘(𝑑) 2

Procedure: 다층퍼셉트론학습

1. 연결가중치 𝑤𝑗𝑖를임의의작은값으로초기화한다.

2. 입력데이터 𝐱(𝑑) 하나를입력층에넣고활성화값을전방으로전달하면서출력값

𝑓𝑘 𝐱(𝑑), 𝐰 , 𝑘 = 1, … , 𝑘를계산한다.

3. 각출력뉴런 k에대한오차 𝛿𝑘 = 𝑓𝑘 − 𝑦𝑘 𝑓𝑘 1 − 𝑓𝑘 를계산한다

(𝑓𝑘 = 𝑓𝑘 𝐱(𝑑), 𝐰 ).

4. 출력뉴런 k에대한연결가중치값의증분 ∆𝑤𝑘ℎ = −𝜂𝜕𝐸𝑑

𝜕𝑤𝑘ℎ= 𝜂𝛿𝑘𝑥ℎ 을계산한다.

5. 은닉뉴런 h에대한오차 𝛿ℎ = 𝑓ℎ 1 − 𝑓ℎ 𝑘𝑤𝑘ℎ𝛿𝑘를계산한다.

6. 은닉뉴런 h에대한연결가중치의증분 ∆𝑤ℎ𝑖 = −𝜂𝜕𝐸𝑑

𝜕𝑤ℎ𝑖= 𝜂𝛿ℎ𝑥𝑖를계산한다.

7. 가중치의값을모두수정한다.

𝑤𝑗𝑖 ← 𝑤𝑗𝑖 + ∆𝑤𝑗𝑖 for 𝑗 ∈ 𝑈𝑝𝑝𝑒𝑟(𝑖)

Page 34: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

2.5 활용사례

다층신경망의활용

다양한감독학습문제에적용가능

입력과출력이다차원인경우

입력과출력이이산값 / 연속값인경우

MNIST 데이터셋에적용(LeCun, Cortes, & Burges, 1998)

입력: 숫자이미지픽셀값의벡터

출력: 0부터 9까지의숫자클래스값

스팸메일여과기만들기(Clark, Koprinska, & Poon, 2003)

입력: 메일에나오는단어들에대한빈도수벡터

출력: 스팸인지아닌지를판별하는두개의클래스값

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

Page 35: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

신경망의응용사례

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

2.5 활용사례

Page 36: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

다층신경망의구체적인활용사례: 얼굴방향인식

학습데이터: 20명의다른사람을촬영한 624장의흑백이미지(Mitchell, 1997)

가로 120픽셀, 세로 128픽셀의이미지를가로 30픽셀, 세로 32픽셀로가공 신경망의입력층뉴런수를줄여계산부담을더는효과

각픽셀은 0에서 255 사이의밝기를가짐

사진속얼굴이바라보는방향은상, 좌, 우, 정면 4가지로분류

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

2.5 활용사례

Page 37: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

다층신경망의구체적인활용사례: 얼굴방향인식(cont.)

실험에사용한모델

입력층뉴런: 가공이미지의픽셀수와같은 960개

은닉층뉴런: 3개

출력층뉴런: 4개

각뉴런이얼굴이바라보는방향중하나에대응됨

가장큰값을보이는뉴런의방향이이미지속얼굴방향과같도록학습을진행

학습방법

신경망의가중치는크기가작은랜덤값으로초기화

학습가속을위해경사도계산시모멘텀항추가

학습을 50번반복할때마다검토용데이터(validation set)에대한성능을측정, 가장높은인식정확도를보이는신경망을얻음

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

2.5 활용사례

Page 38: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

얼굴방향인식문제를학습한신경망과학습된가중치의분포

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

2.5 활용사례

Page 39: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

다층신경망의구체적인활용사례: 얼굴방향인식(cont.)

은닉층의경우뉴런개수를자유롭게조절하여모델성능에변화를줄수있음

Mitchell의실험결과

은닉층뉴런이 3개인경우 학습시간: 5분

테스트데이터에대한방향인식정확도: 90%

은닉층뉴런이 30개인경우 학습시간: 60분

테스트데이터에대한방향인식정확도: 91.5%

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

2.5 활용사례

Page 40: Chapter 2. 신경망scai/Courses/ML2017/ch2.pdf · 2017-09-12 · Chapter 2. 신경망  강의 서울대학교컴퓨터공학부 장병탁 교재: 장교수의딥러닝,

퍼셉트론

생물학적신경세포의작동방식을수학적으로모델링한인공뉴런

델타규칙

선형퍼셉트론의학습을위해사용

다층퍼셉트론

비선형모델로확장됨, 미분가능: 오류역전파알고리듬의개발로연결

오류역전파알고리듬

상위층뉴런의델타값을이용하여하위층뉴런의델타값을계산

활용사례

얼굴인식, 음성인식등복잡한패턴인식에응용됨

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

요약