순환신경망(recurrent neural networks) 개요

129
순환신경망(Recurrent Neural Networks) for Sequential Pattern Modeling 2017-03-22 Lecture by Kim, Byoung-Hee Biointelligence Laboratory School of Computer Science and Engineering Seoul National University http://bi.snu.ac.kr

Upload: byoung-hee-kim

Post on 05-Apr-2017

81 views

Category:

Data & Analytics


10 download

TRANSCRIPT

Page 1: 순환신경망(Recurrent neural networks) 개요

순환신경망(Recurrent Neural Networks)for Sequential Pattern Modeling

2017-03-22

Lecture by Kim, Byoung-Hee

Biointelligence Laboratory

School of Computer Science and Engineering

Seoul National University

http://bi.snu.ac.kr

Page 2: 순환신경망(Recurrent neural networks) 개요

목 차

Part 1: 순환신경망(RNN)의 개요

Part 2: 순환신경망의 기본 모듈과 망의 구조 만들기

Part 3: 순환신경망의 적용 사례: 언어모델을 중심으로

Part 4: 순환신경망의 다양한 활용과 확장

부록

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 2

Page 3: 순환신경망(Recurrent neural networks) 개요

순환신경망의 개요

Part 1

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 3

Page 4: 순환신경망(Recurrent neural networks) 개요

인공신경망(artificial neural networks) 리뷰

신경세포(뉴런)의 망으로 구성된 뇌를 모사하여 계산 모델을 구성

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 4

입력 출력

정보의 흐름(feedforward)

뉴런

신경망

Page 5: 순환신경망(Recurrent neural networks) 개요

리뷰: 인공신경망에 쓰이는 활성화 함수Neural Network Activation Functions

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 5

(A. Graves, 2012)

𝑅𝑒𝐿𝑈 𝑥 = max(𝑥, 0)

Rectified Linear Unit

[장점]

• Hidden unit에 sparsity가 나타난다• Gradient vanishing 문제가 없다• 계산이 단순해져 학습이 빠르면서 성

능 향상에도 일조

- 입력값을 처리하여 ON 또는 OFF 출력. 보통 출력값에 상, 하한을 두려 함- 신경망에서는 ‘미분 가능한’ smooth한 S자 모양 함수를 적용- 최근 딥러닝 모델에서는 ReLU를 선호- 순환신경망 내부에서는 sigmoid와 tanh 함수를 적용함

Page 6: 순환신경망(Recurrent neural networks) 개요

순서가 있는 패턴의 모델링

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 6

동역학 시스템. ODE, PDE

통계적 모델. Stochastic process. ARMA, ARIMA

HMM (Hidden Markov Model) &

SSM (State Space Model)

RNN (Recurrent Neural Networks)

Kalman Filter

, , , , , …

Kalman filter

확률그래프 모델

신경망 모델

수리적 모델

“welcome”

Page 7: 순환신경망(Recurrent neural networks) 개요

순서 데이터 모델링 사례:

말과 글을 인식하고 이해하고 대응하는 S/W

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 7

‘Hound’ by Soundhound

Page 8: 순환신경망(Recurrent neural networks) 개요

(Figure from ICML 2014 tutorial by Li Deng)

딥러닝, 음성 인식의 수준을 한 단계 올리다

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 8

단어 수가 적은제한적 상황

단어 수가 많은일상적 상황

• 전화통화음성 자동 인식 문제(switchboard)에서 99년 이후10여년 동안 성능 정체

• Microsoft Research: 2010년 딥러닝 기술로 단어 인식 오류율을~23% 에서 <15% 로 줄임(Rick

Rashid’s의 시연에서는 7% 이하)!

• Google: 2012년부터 딥러닝 적용.

2015년 RNN 기반으로 성능 대폭향상

• IBM Watson 팀은 switchboard 에대해 2015년 오류율 8%, 2017년5.5%를 달성 (사람: 5.1%)

Page 9: 순환신경망(Recurrent neural networks) 개요

순환신경망의 기본 구조

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 9

순환(recurrent) 연결

입력

출력

RNN

모듈

“인공 뉴런(뇌세포)”

Page 10: 순환신경망(Recurrent neural networks) 개요

순환신경망 as API

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 10

API: 응용프로그램 인터페이스(application program interface)

입력 출력

상태(state)의 변화

Page 11: 순환신경망(Recurrent neural networks) 개요

RNN의 기본 활용 분야

순서 데이터에 꼬리표 달기(Sequence labeling)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 11A. Graves, Supervised Sequence Labelling with Recurrent Neural Networks, 2012.

문서 감정 분류Sentiment classification

필기체인식

음성인식

Page 12: 순환신경망(Recurrent neural networks) 개요

RNN의 기본 활용 분야

시계열 예측(time series prediction)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 12

Blue=Whole Dataset, Green=Training, Red=Predictions

Airline Passengers (1949~1960)

개월

(천 명)

Page 13: 순환신경망(Recurrent neural networks) 개요

RNN의 기본 활용 분야

파형 생성(Spike or periodic function generation)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 13

Gers, Schraudolph and Schmidhuber, Learning Precise Timing with LSTM Recurrent Networks, JMLR, 2002.

Generating Timed Spikes (GTS) Periodic Function Generation (PFG)

Page 14: 순환신경망(Recurrent neural networks) 개요

RNN의 다양한 적용 방법과 사례

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 14

무엇을 입력하고 출력하는지에 따라 유연하게 활용할 수 있다.

소비자의 상품평(글)이긍정적인지 부정적인지 판별

한국어영어 자동 번역

사진을 한 장 주면, 사진의 설명 문장을 생성

예: 블랙박스 영상을 프레임 단위로 입력받아 사고 발생여부 판별

순환신경망의 ‘기본적인‘ 설정. 매 입력마다 출력반응을 생성

오늘은 이거 하나만 알고 가셔도 충분합니다.

입력

출력

RNN

모듈

Page 15: 순환신경망(Recurrent neural networks) 개요

RNN의 다양한 적용 방법과 사례

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 15

사진을 좌에서 우로, 위에서 아래로순서대로 훑으면서사진 속의 물체를 인식하거나 생성

입력이 순서가 없는 고정된 모양(예: 사진)이어도, 적절한 순서에 따라 ‘처리’할 수 있다.

Page 16: 순환신경망(Recurrent neural networks) 개요

RNN 적용 대표 사례:

필기체 인식, 합성, 생성

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 16

INPUT OUTPUT

Doosan. Building your tomorrow today

Proud Global Doosan

(none)

펜으로 필기하는 과정을 순환신경망으로 학습

Page 17: 순환신경망(Recurrent neural networks) 개요

체험해봅시다 1: 영어 필기체 합성

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 17

접속

• Alex Graves의 데모 페이지 접속

• http://www.cs.toronto.edu/~graves/handwriting.html

글자입력

• 영어로 100글자까지 ‘Text’란에 입력

• 되도록이면 소문자 위주로 입력하세요.

스타일

• 필기체 스타일 선택: Style

• 글자를 정자체로 쓸지 갈겨 쓸지 선택: bias (오른쪽으로 밀 수록 정자체에 가까움)

샘플

• 몇 개의 필기체를 생성할지 지정

• 각 샘플은 jpg 파일로 다운로드 가능

There’s no place like home.Let’s count: 1, 2, 3

Page 18: 순환신경망(Recurrent neural networks) 개요

RNN 적용 대표 사례: 뉴럴 음성 인식기

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 18

Baidu, DeepSpeech2 (2015)

하나의 딥러닝 모델로, 영어와 중국어를 모두 인식

RNN 모듈을 여러 층을 쌓아 복잡한 문제를 해결

Page 19: 순환신경망(Recurrent neural networks) 개요

RNN 적용 대표 사례: 뉴럴 기계번역Neural Machine Translation (NMT)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 19

https://research.googleblog.com/2016/09/a-neural-network-for-machine.html

입력에 대한 RNN과 출력에 대한 RNN을 연결하여 구성

Page 20: 순환신경망(Recurrent neural networks) 개요

구글 뉴럴 기계번역기(2016)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 20

전체 구성은 Encoder-Decoder

Encoder와 Decoder는 각각 8층의 순환신경망으로 구성순환신경망을 구성하는 기본 모듈로는 LSTM을 사용

Page 21: 순환신경망(Recurrent neural networks) 개요

RNN 적용 대표 사례:

지문을 보고 질문에 대해 답하기

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 21

Memory Network: 순환신경망에 외부 메모리를 붙인 모델

Page 22: 순환신경망(Recurrent neural networks) 개요

딥러닝 모델의 조합

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 22

(Y. Lecun, Y. Bengio, and G. Hinton, 2015)

http://www.nature.com/nature/journal/v521/n7553/fig_tab/nature14539_F3.html

CNN과 RNN을 조합하여 이미지의 캡션을 자동으로 생성

Page 23: 순환신경망(Recurrent neural networks) 개요

이미지 캡션 생성 모델

23

Page 24: 순환신경망(Recurrent neural networks) 개요

이미지 캡션 생성 사례

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 24

놀라울 정도로 정확한 설명도 나오지만(윗줄), 엉뚱한 결과를 내기도 한다(하단)

Page 25: 순환신경망(Recurrent neural networks) 개요

Part 1 요약

순환신경망(RNN)은 딥러닝의 핵심 도구 중 하나

인공신경망이 순서가 있는 데이터(text, audio, video 등)를

자연스럽게 다루게 해주는 도구

언어 지능, 음성 지능, 시각 지능을 구현하는데 필수 도구

순서 데이터를 이해하고, 주석을 달며, 새로 만들어내기도 함

다른 모델과 결합하여 다중 지능을 구현하는데 기여함

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 25

Page 26: 순환신경망(Recurrent neural networks) 개요

순환신경망의 기본 모듈과망의 구조 만들기

Part 2

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 26

Page 27: 순환신경망(Recurrent neural networks) 개요

‘간단한’ 수학식을 하나 살펴봅시다

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 27

x

y

y = wx + b

순환신경망의 기본 동작을 이해하는 데는선형(linear) 식과 몇 가지 비선형(non-linear) 함수만 알면 충분합니다.

기울기,

가중치weight

절편,

bias

입력

출력

고차 공간을 둘로 나누는 ‘하이퍼평면’

Page 28: 순환신경망(Recurrent neural networks) 개요

리뷰: 인공신경망에 쓰이는 활성화 함수Neural Network Activation Functions

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 28

(A. Graves, 2012)

𝑅𝑒𝐿𝑈 𝑥 = max(𝑥, 0)

Rectified Linear Unit

[장점]

• Hidden unit에 sparsity가 나타난다• Gradient vanishing 문제가 없다• 계산이 단순해져 학습이 빠르면서 성

능 향상에도 일조

- 입력값을 처리하여 ON 또는 OFF 출력. 보통 출력값에 상, 하한을 두려 함- 신경망에서는 ‘미분 가능한’ smooth한 S자 모양 함수를 적용- 최근 딥러닝 모델에서는 ReLU를 선호- 순환신경망 기본 모듈의 내부에서는 sigmoid와 tanh 함수를 적용함

Page 29: 순환신경망(Recurrent neural networks) 개요

시스템의 상태(state)에 대해 이해해봅시다

상태, 상태의 변화

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 29

State-transition digram

Page 30: 순환신경망(Recurrent neural networks) 개요

시스템의 상태(state)에 대해 이해해봅시다

보통 우리는 직접 볼 수 없는 ‘숨겨진, 알려지지 않은 상태에관심이 있습니다

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 30

• 목표: 순서대로 주어지는 관측값을 보고, ‘숨겨진 상태(hidden’ states)’를 추적하거나 학습

Page 31: 순환신경망(Recurrent neural networks) 개요

순환신경망의 기본 개념

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 31

입력:

여러 개의 값이벡터 형태로 일괄 전달됨

특정 시점에서출력을 뽑는다.

예) 예측상태의 변화(hidden)

이제까지의 강의에서 본 바와 같이연결선(화살표)마다 ‘가중치(weight)’가 부여됨

Page 32: 순환신경망(Recurrent neural networks) 개요

순환신경망의 기본 개념

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 32

(Slide from Stanford CS231n 2015~2016 winter class)

RNN은 외부 입력과 자신의 이전 상태를 입력받아 자신의 상태를 갱신한다.

Page 33: 순환신경망(Recurrent neural networks) 개요

순환신경망의 기본 개념

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 33

(Slide from Stanford CS231n 2015~2016 winter class)

모든 시간대에서 동일한 매개변수(parameter)를 적용!

Page 34: 순환신경망(Recurrent neural networks) 개요

기본 순환신경망

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 34(Slide from Stanford CS231n 2015~2016 winter class)

모든 시간대에서 동일한 매개변수를 적용: Whh , Wxh ,Why

(bias는 식에서 생략되어 있음)

Page 35: 순환신경망(Recurrent neural networks) 개요

RNN의 계산 그래프 표현Computational Graphs for RNN

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 35

모든 시간대에서 동일한 매개변수를 적용: Whh , Wxh , bh

1tanh( )

t hh t xh t hh W h W x b

RNN 내부의 동작은 곱셈, 덧셈, 활성화 함수 적용만 알면 이해할 수 있습니다.

(하얀 노드: operation, 노드 간 연결: tensor)

Images from Graham Neubig, Neural Machine Translation and Sequence-to-sequence Models: A Tutorial, arXiv:1703.01619v1

Page 36: 순환신경망(Recurrent neural networks) 개요

Recurrent Neural Networks

시간축을 따라 펼친 RNN은 무제한 개의 층을 가지는 딥 신경망으로도볼 수 있습니다.

𝑥𝑡: input at time 𝑡

𝑠𝑡: hidden state at time 𝑡 (memory of the network).

𝑓: is an activation function (e.g, 𝑡𝑎𝑛ℎ() and ReLUs).

U, V, W: network parameters (unlike a feedforward neural network, an RNN

shares the same parameters across all time steps).

g: activation function for the output layer (typically a softmax function).

y: the output of the network at time 𝑡

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

𝑠𝑡 = 𝑓 𝑈𝑥𝑡 +𝑊𝑠𝑡−1

)𝑦 = 𝑔(𝑉𝑠𝑡

36

(이 그림과 기호를 익혀두면, RNN 프로그램을 살펴볼 때 이해가 빠릅니다)매개변수 기호를 간략히 표현: U, V, W

(Slide from ‘Deep Learning’ Book Seminar of BI Lab)

Page 37: 순환신경망(Recurrent neural networks) 개요

Computing the Gradient

in a Recurrent Neural Network The use of back-propagation on the unrolled graph is called

the back-propagation through time (BPTT) algorithm The backpropagation algorithm can be extended to BPTT by unfolding RNN in time

and stacking identical copies of the RNN.

As the parameters that are supposed to be learned (U, V and W) are shared by all

time steps in the network, the gradient at each output depends, not only on the

calculations of the current time step, but also the previous time steps.

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

순환신경망 학습 과정에서는 BPTT 알고리즘이 적용됩니다.

BPTT 알고리즘은

• 계산 그래프에서 화살표 역방향으로

• 출력의 오차 정보를 담은 미분값(gradient)을 전달하여

• 순차적으로 망의 중간에 있는 매개변수를 갱신하는 절차입니다.

37(Slide from ‘Deep Learning’ Book Seminar of BI Lab)

Page 38: 순환신경망(Recurrent neural networks) 개요

순환신경망을 이용한 언어 모델

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 38(Slide from Stanford CS231n 2015~2016 winter class)

다음에 무슨 글자 또는 단어가 나올지 예측하는 모델

(one-hot encoding)

Page 39: 순환신경망(Recurrent neural networks) 개요

순환신경망을 이용한 언어 모델

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 39(Slide from Stanford CS231n 2015~2016 winter class)

다음에 무슨 글자 또는 단어가 나올지 예측하는 모델

• 출력: 각 글자별 ‘확신’ 정도• 녹색 값이 높고,

빨간 색 값이 낮도록매개변수 W_*를 조정(학습)

학습 단계

Page 40: 순환신경망(Recurrent neural networks) 개요

체험해봅시다 2: 내가 그린 기린 그림

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 40

1. Google AI Experiment 페이지에서 Quick, Draw! 페이지에 접속

https://aiexperiments.withgoogle.com/quick-draw

3. 컴퓨터가 그려달라는 사물을 확인하고

4. 빠르게(20초 이내에) 그리면서컴퓨터가 얼마나 잘 맞추는지 살펴봅시다

2. 시작 버튼 누르기

Page 41: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 41

이제 순환신경망의 대표 모듈인

LSTM을 살펴볼 차례입니다.

Page 42: 순환신경망(Recurrent neural networks) 개요

장단기 메모리(LSTM):

기본 순환신경망의 확장

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 42

복잡한 문제를 풀기 위해 여러 층을 쌓을 필요가 생기는데,

이 때, 기본 RNN은 여러 가지 문제가 생깁니다. gradient exploding or vanishing 오류 정보 전달 실패 big model cannot learn well

(Slide from Stanford CS231n 2015~2016 winter class)

Page 43: 순환신경망(Recurrent neural networks) 개요

Long-Term Dependencies

43

The clouds are in the sky

http://colah.github.io/posts/2015-08-Understanding-LSTMs/© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

바로 얼마 전의 입력값은 잘 기억하여 반영할 수 있습니다.

(short-term memory)

Page 44: 순환신경망(Recurrent neural networks) 개요

Longer-Term Dependencies

44http://colah.github.io/posts/2015-08-Understanding-LSTMs/© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

보다 이전의 입력 정보가 오래 기억되어 전달되도록 하기 위해서는(long-term memory) 메모리의 구조를 개선해야 합니다.

Page 45: 순환신경망(Recurrent neural networks) 개요

장단기 메모리(Long Short-Term Memory)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 45

연구자들은 LSTM의 동작을 설명하기 위해여러 가지 방식으로 그림으로 표현합니다.

LSTM에는 입력, 기억, 출력의 정도를 조절하는 세 개의 게이트(gate)가 있습니다.

기본 순환신경망과 달리, 내부에 cell이 추가되었습니다.

(Slide from Stanford CS231n 2015~2016 winter class)

Page 46: 순환신경망(Recurrent neural networks) 개요

장단기 메모리(Long Short-Term Memory)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 46

망각(forget) 게이트 입력(input) 게이트

출력(output) 게이트

: element-wise product

(같은 크기의 두 벡터 또는 행렬을 각 원소끼리 곱하는 연산)

LSTM의 동작은 수식으로는 ‘간단히’ 표현됩니다.(프로그램을 짤 때도 이 계산식만 넣으면 됩니다)

1tanh( )

t hh t xh th W h W xVanilla RNN에서의 상태 업데이트

LSTM에서의 상태 업데이트 1tanh( )

hh t xh tg W h W x

이전 셀 상태(c)를 잊고 새로운 입력 상태(g)를 반영할지 여부를 조정

(Slide from Stanford CS231n 2015~2016 winter class)

Page 47: 순환신경망(Recurrent neural networks) 개요

LSTM의 동작을 순서대로살펴보기(애니메이션)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 47

(동그라미 안의 기호는 곱하기와 더하기입니다)

(Slide from Stanford CS231n 2015~2016 winter class)

Page 48: 순환신경망(Recurrent neural networks) 개요

LSTM의 동작을 순서대로살펴보기(애니메이션)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 48

(동그라미 안의 기호는 곱하기와 더하기입니다)

(Slide from Stanford CS231n 2015~2016 winter class)

Page 49: 순환신경망(Recurrent neural networks) 개요

LSTM의 동작을 순서대로살펴보기(애니메이션)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 49

(동그라미 안의 기호는 곱하기와 더하기입니다)

(Slide from Stanford CS231n 2015~2016 winter class)

Page 50: 순환신경망(Recurrent neural networks) 개요

LSTM의 동작을 순서대로살펴보기(애니메이션)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 50

(동그라미 안의 기호는 곱하기와 더하기입니다)

(Slide from Stanford CS231n 2015~2016 winter class)

Page 51: 순환신경망(Recurrent neural networks) 개요

LSTM의 동작 이해

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 51(Slide from Stanford CS231n 2015~2016 winter class)

Page 52: 순환신경망(Recurrent neural networks) 개요

RNN vs. LSTM

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 52

(additive interaction)

(Slide from Stanford CS231n 2015~2016 winter class)

Page 53: 순환신경망(Recurrent neural networks) 개요

RNN vs. LSTM

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 53(Slide from Stanford CS231n 2015~2016 winter class)

Page 54: 순환신경망(Recurrent neural networks) 개요

RNN vs. LSTMVanishing Gradient

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 54

RNN

LSTM

시간이 지나면 이전 입력값을 잊어버린다

• 은닉노드의 입력, 망각, 출력 게이트가 각각 노드의 하단, 좌측, 상단에 작은 원으로 표시되었으며, 열린 상태(○)

와 닫힌 상태(-)로 간략히 표기

• 이전 입력값의 정보가 계속 저장되어필요한 시점에 출력에 반영된다

(figures from A. Graves et al., A novel connectionist system for unconstrained handwriting recognition, IEEE T PAMI, 2009.)

Page 55: 순환신경망(Recurrent neural networks) 개요

LSTM의 변형 모델

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 55

GRU (gated recurrent unit)는 LSTM을 간략화한 모델

리셋(r)과 업데이트(z)의 두 개의 게이트가 있다. Cell이 없다.

모듈 구성과 연결 구조에 따라다양한 변형 가능

(Slide from Stanford CS231n 2015~2016 winter class)

Page 56: 순환신경망(Recurrent neural networks) 개요

기본 RNN의 또다른 표현

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 56

𝑋𝑡

ℎ𝑡−1 ℎ𝑡

𝑌𝑡

Simple RNN

Page 57: 순환신경망(Recurrent neural networks) 개요

Gated Recurrent Unit (GRU)

57

𝑋𝑡

ℎ𝑡−1 ℎ𝑡

𝑌𝑡

Gated Recurrent Unit

𝑟 𝑧

෨ℎ +

Dynamic Gate

0~1Reset Gate

0~1

𝒓 𝒛𝟏 − 𝒛

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

node state

Page 58: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 58

여기까지 순환신경망의 기본 모듈을 살펴보았습니다.

이제 기본 모듈로 어떤 망을 구성하고

어떻게 쓸 수 있는지 살펴보겠습니다 .

Page 59: 순환신경망(Recurrent neural networks) 개요

RNN의 다양한 적용 방법과 사례(다시보기)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 59

무엇을 입력하고 출력하는지에 따라 유연하게 활용할 수 있다.

소비자의 상품평(글)이긍정적인지 부정적인지 판별

한국어영어 자동 번역사진을 한 장 주면, 사진의 설명 문장을 생성

예: 블랙박스 영상을 프레임 단위로 입력받아 사고 발생여부 판별

순환신경망의 ‘기본적인‘ 설정. 매 입력마다 출력반응을 생성

입력

출력

RNN

모듈

(Slide from Stanford CS231n 2015~2016 winter class)

Page 60: 순환신경망(Recurrent neural networks) 개요

𝑥𝑡

ℎ𝑓𝑡

ℎ𝑏𝑡

ℎ𝑡

𝑥𝑡+1

ℎ𝑓𝑡+1

ℎ𝑏𝑡+1

ℎ𝑡+1

𝑥𝑡+2

ℎ𝑓𝑡+2

ℎ𝑏𝑡+2

ℎ𝑡+2

forward

backward

양방향 순환신경망Bi-directional RNN

시간의 순방향을 따르는 RNN과 역방향을 따르는 RNN을 각각 두고,

두 RNN의 출력을 합쳐 하나로 출력합니다.

음성 인식, 필기체 인식 등에서 표준적으로 적용됩니다.

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 60

Page 61: 순환신경망(Recurrent neural networks) 개요

다층 구조, 딥 구조 만들기

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 61

Residual connection

Skip connectionInput-to-hidden

Hidden-to-output

Usual stacking

단순히 층을 쌓기보다는 (stacking)

매 층이 잔차 계산을 하도록 구성하거나 (residual connection) ,

층 간 점프를 허용하는 구성을 통해 (skip connection)

학습의 효율, (속도와) 정확도를 높입니다.

' ( )x x F x

identity mapping with residual

residual

(figure from Graves, 2013)

(figure from Google’s NMT paper, 2016)

Page 62: 순환신경망(Recurrent neural networks) 개요

인코더-디코더 신경망

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 62

인코더 또는 디코더를 순환신경망으로 구성

Part 4에서 인코더-디코더 신경망에 대해 조금 더 살펴보겠습니다.

자동으로 답장 메일 보내는 모델을 LSTM 기반의 인코더-디코더 모델로 구성한 사례

https://research.googleblog.com/2015/11/computer-respond-to-this-email.html

Page 63: 순환신경망(Recurrent neural networks) 개요

Part 2 요약

순환신경망의 기본 구성 모듈 Vanilla RNN, LSTM, GRU

장단기 메모리(LSTM)와 GRU의 내부 동작 ‘게이트’를 이용하여 입력값의 반영 과정과 상태의 변화, 출력 조정

순서 데이터에서 ‘long-term dependency’를 잘 반영하는 모델이 좋은모델!

순환신경망의 기본 모듈로 구성하는 다양한 망의 구조 양방향, 다층/딥 구조, 인코더-디코더

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 63

Page 64: 순환신경망(Recurrent neural networks) 개요

순환신경망의 적용 사례:

언어모델을 중심으로

Part 3

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 64

Page 65: 순환신경망(Recurrent neural networks) 개요

언어 모델 (Language Model)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 65

Learning to generate (discrete) sequences

u v

u' v

u'' v

Variable-order context

can used to predict v

6-gram

5-gram

4-gram

Bi-gram을 연결하여 문장 생성

Uni-gram의 빈도로Word Cloud 만들기

?

음악 생성: 다음에 나올 음은?

(slides from https://web.stanford.edu/class/cs124/lec/languagemodeling.pdf)

Page 66: 순환신경망(Recurrent neural networks) 개요

(확률 기반) 언어 모델

목표: 문장별 확률을 계산

왜?

어떻게?

문장에서 단어 또는 글자의 순서에 대한 분포를 이용

보통 다음 단어 예측하는 문제로 처리

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 66

(contents from https://web.stanford.edu/class/cs124/lec/languagemodeling.pdf)

Page 67: 순환신경망(Recurrent neural networks) 개요

언어 모델: n-그램 기반 분석

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 67

https://books.google.com/ngrams

Page 68: 순환신경망(Recurrent neural networks) 개요

언어 모델: n-그램 기반 분석

Stanford Sentiment Treebank:

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 68

유명한 영화 리뷰 사이트인 rottentomatoes.com의

영화평에 대해 Amazon Mechanical Turk을 이용하

여 사람들에게 sentiment를 평가하도록 해보았다.

N-그램 통계 분석 결과

•짧은 n-그램은 대부분 중립적

•긴 n-그램의 빈도는 대체로 균일

•극단적인 평은 매우 적음

Contents from https://cs.uwaterloo.ca/~mli/presentation_BoruiYe.pdf

Page 69: 순환신경망(Recurrent neural networks) 개요

RNN의 ‘마법같은’ 성능

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 69

Stanford Computer Vision Lab (Prof. Fei-Fei Li)

ImageNet 구축, 대회 주관

Page 70: 순환신경망(Recurrent neural networks) 개요

순환신경망 언어 모델

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 70(Slide from Stanford CS231n 2015~2016 winter class)

문서 집합(document corpus)단어 또는 글자

(word or character)

Page 71: 순환신경망(Recurrent neural networks) 개요

순환신경망을 이용한 언어 모델

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 71

(Slide from Stanford CS231n 2015~2016 winter class)

기존에는 단어 단위 언어 모델 적용글자 단위 RNN 언어 모델의 놀라운 성능

• 출력: 각 글자별 ‘확신’ 정도• 녹색 값이 높고,

빨간 색 값이 낮도록매개변수 W_*를 조정(학습)

학습 단계

테스트(추론) 단계

• 한 글자를 입력• 글자별 확률값이 출력됨• 이 확률분포에서 글자를

하나 샘플링• 선택한 글자를 다음 입력

으로 사용

Page 72: 순환신경망(Recurrent neural networks) 개요

세익스피어 희곡을 학습

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 72(Slide from Stanford CS231n 2015~2016 winter class)

입력: 세익스피어의 모든 희곡(4.4MB) RNN 모델: LSTM[512] * 3 layer

Page 73: 순환신경망(Recurrent neural networks) 개요

구조적 문서를 학습

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 73(Slide from Stanford CS231n 2015~2016 winter class)

입력: LaTeX 문서(16MB)

HTML, XML 등과 같은 문서도 잘 학습하고 생성함

Page 74: 순환신경망(Recurrent neural networks) 개요

프로그램(code)을 학습

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 74(Slide from Stanford CS231n 2015~2016 winter class)

리눅스 소스 코드(474MB)를 학습한 후, 유사한 C 코드를 생성

Page 75: 순환신경망(Recurrent neural networks) 개요

분석: 반복학습을 통해 성능 향상

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 75(Slide from Stanford CS231n 2015~2016 winter class)

Page 76: 순환신경망(Recurrent neural networks) 개요

분석: ‘뉴런’ (LSTM Cell)별 활성화

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 76(Slide from Stanford CS231n 2015~2016 winter class)

입력 글자에 따라 hidden state 값이 발화에 특정 패턴을 보이는 cell을 찾기

“”… a large portion of cells that do not do anything interpretable…”

Page 77: 순환신경망(Recurrent neural networks) 개요

분석: ‘뉴런’ (LSTM Cell)별 활성화

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 77(Slide from Stanford CS231n 2015~2016 winter class)

“… about 5% of them turn out to have learned quite

interesting and interpretable algorithms…”

입력 글자에 따라 hidden state 값이 발화에 특정 패턴을 보이는 cell을 찾기

Page 78: 순환신경망(Recurrent neural networks) 개요

분석: ‘뉴런’ (LSTM Cell)별 활성화

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 78(Slide from Stanford CS231n 2015~2016 winter class)

입력 글자에 따라 hidden state 값이 발화에 특정 패턴을 보이는 cell을 찾기

Page 79: 순환신경망(Recurrent neural networks) 개요

분석: ‘뉴런’ (LSTM Cell)별 활성화

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 79(Slide from Stanford CS231n 2015~2016 winter class)

입력 글자에 따라 hidden state 값이 발화에 특정 패턴을 보이는 cell을 찾기

Page 80: 순환신경망(Recurrent neural networks) 개요

공개된 char-rnn 코드의 다양한 활용

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 80

그리고, 음악도 생성합니다!

https://highnoongmt.wordpress.com/2015/05/22/lisls-stis-recurrent-neural

-networks-for-folk-music-generation/

https://soundcloud.com/seaandsailor/sets/char-rnn-composes-irish-folk-music

Page 81: 순환신경망(Recurrent neural networks) 개요

순환신경망으로 음악 생성하기

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 81Img source: http://yoavz.com/music_rnn/

Page 82: 순환신경망(Recurrent neural networks) 개요

LSTM Realbook: Generation ofJazz chord progressions

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 82

https://keunwoochoi.wordpress.com/2016/02/19/lstm-realbook/

Char-RNN / Word-RNN

Character(word)-level language models

an LSTM cell

Preprocess into text-format scores

Keras and Theano codes(https://github.com/keunwoochoi/lstm_real_book)

Dataset configuration

Results (click to hear)

Page 83: 순환신경망(Recurrent neural networks) 개요

체험해봅시다 3: 컴퓨터와 피아노 듀엣

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 83

1. Google AI Experiment 페이지 중 Google Magenta 프로젝트 팀의 데모 접속

https://aiexperiments.withgoogle.com/ai-duet

2. 시작 버튼 누르기 3. AI와 교대로 피아노를 연주하세요(건반을 마우스로 오래 누르면

길게 소리납니다.)

Page 84: 순환신경망(Recurrent neural networks) 개요

Part 3 요약

언어 모델(language model)

기존에는 n-gram 모델이 많이 쓰임

순환신경망을 이용한 언어 모델

단어 단위 언어 모델

글자 단위 언어 모델

순환신경망 언어 모델의 효용성

다양한 문서 생성

(기호 수준의) 음악 생성

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 84

Page 85: 순환신경망(Recurrent neural networks) 개요

순환신경망의 다양한 활용과 확장

Part 4

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 85

Page 86: 순환신경망(Recurrent neural networks) 개요

다양한 RNN 모듈

Phased LSTM: Accelerating Recurrent Network Training for Long or

Event-based Sequences (NIPS 2016)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 86Visual-Auditory Sensor Fusion for Lip Reading

Frequency discrimination task

N-MNIST experiment.

(a) Sketch of digit movement seen by the image sensor.

Page 87: 순환신경망(Recurrent neural networks) 개요

다양한 RNN 모듈

Using Fast Weights to Attend to the Recent Past (NIPS 2016)

the benefits of using fast weights in the multi-level visual attention model

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 87

Integrating glimpses in visual attention models

Given the input face image, the goal is to classify the subject’s facial

expression into one of the six different categories: neutral, smile, surprise,

squint, disgust and scream. The task is more realistic and challenging than

the previous MNIST experiments. Not only does the dataset have

unbalanced numbers of labels, some of the expressions, for example squint

and disgust, are are very hard to distinguish. In order to perform well on this

task, the models need to generalize over different lighting conditions and

viewpoints

Page 88: 순환신경망(Recurrent neural networks) 개요

필기체 생성, 합성 http://www.cs.toronto.edu/~graves/

handwriting.html

댄스 생성 http://peltarion.com/creative-ai

RNN 기반의 DL로 댄스 생성

필기체 생성과 유사한 기법이핵심적으로 사용됨

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 88

혼합 밀도망(Mixture Density Network)

신경망 또는 순환신경망이 확률분포를 정하는 데 필요한 매개변수를 출력

펜의 다음 위치를 Gaussian Mixture로 모델링

Page 89: 순환신경망(Recurrent neural networks) 개요

Stacked Bidirectional LSTM

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 89

자연어 처리(NLP)에 적용한 Stacked Bidirectional LSTM

http://book.paddlepaddle.org/index.en.html

Baidu에서는 양방향 RNN을 다른 방식으로 구현함

Page 90: 순환신경망(Recurrent neural networks) 개요

인코더-디코더 신경망 모델

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 90

Page 91: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 91

Page 92: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 92

Page 93: 순환신경망(Recurrent neural networks) 개요

보다 깊은 추론(Reasoning)을 위한 확장-

Attention & Memory

Reasoning, Attention, Memory (RAM)

NIPS Workshop 2015

• In order to solve AI, a key component is the use of long term dependencies as

well as short term context during inference

• To combine memory with reasoning, a model must learn

how to access it, i.e. to perform *attention* over its

memory• Attention: positive results on machine translation and image captioning

• Memory

• Small short-term memory

• Large long-term memory

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 93

워크샵 소개문

Page 94: 순환신경망(Recurrent neural networks) 개요

Neural Turing Machine

• 신경망(NN): [External Input, External Output] 형태의 대규모

관측 데이터에서 학습

• 순환 신경망(RNN): 순환 NN에 내장 메모리 기능 추가

• 뉴럴 튜링 머신(NTM): 외장 메모리와 결합된 NN. 사람의

단기적 작업기억 (working memory) 능력 모사

RNN (LSTM) 대비 복사(copy) 성능 비교

[A. Graves, G. Wayne, I. Danihelka, 2014]

동적 N-gram 모델 (이진 비트, 6-gram)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 94

Page 95: 순환신경망(Recurrent neural networks) 개요

연구: Memory Networks

Class of models that

combine large memory

with learning component

that can read and write to

it.

응용 자연어 문서 읽고 이해하기

자동 질의응답(Q&A)

모델 Dynamic MN

End-to-end MN

구성: 네 가지 요소 I: (input feature map) this

converts incoming data to

the internal feature

representation.

G: (generalization) this

updates memories given

new input.

O: this produces new output

(in feature representation

space) given the memories.

R: (response) converts

output O into a response

seen by the outside world.

[J. Weston, S. Chopra, A. Bordes, 2015]

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 95

(메모리넷의 상세한 소개 자료는 부록 참조)

Page 96: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 96

Page 97: 순환신경망(Recurrent neural networks) 개요

체험해봅시다 4: 설명으로 사진 찾기

97

http://cs.stanford.edu/people/karpathy/deepimagesent/rankingdemo/

2. 검색 문장을 입력해보세요예) A city street corner from a park view

[그림 테두리 색]

- 빨강: 부적절한 검색 결과- 초록: 성공적 검색- 노랑: top 5에 포함되지 않은 정답 사진

3. 검색된 그림을 클릭하여 분석 결과를 확인해보세요

1. Andrej Karpathy의 데모 홈페이지에 접속

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr

Page 98: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 98

Page 99: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 99

Page 100: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 100

Page 101: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 101

기존 RNN 모듈(예: LSTM)의 셀은 학습 과정에서 ‘메모리’와‘컨트롤러’가 혼재되어 생성된다

Page 102: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 102

Page 103: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 103

Page 104: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 104

Page 105: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 105

Page 106: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 106

Page 107: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 107

Page 108: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 108

Page 109: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 109

Page 110: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 110

Page 111: 순환신경망(Recurrent neural networks) 개요

Part 4 요약

‘좋은’ RNN 모듈 연구는 현재 ‘핫 토픽’

예) Phased LSTM, Using fast weights, …

강화학습(RL)을 이용하여 새로운 모듈 구조를 학습하기도 함

RNN의 다양한 구조와 활용 혼합 밀도망 (Mixture Density Network)

Seq2Seq, 인코더-디코더 망

CNN과 결합한 인코더-디코더 망

RNN의 확장(augmentation)

메모리를 추가

주의집중(attention) 기작을 추가

RNN as a controller

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 111

Page 112: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 112

Page 113: 순환신경망(Recurrent neural networks) 개요

Keras를 이용한 RNN 실습

주제 1: Text Generation 언어 모델: 영어 문서를 낱글자 단위로 학습 학습한 모델로 한 글자씩 문장을 생성 데이터: ‘이상한 나라의 앨리스’

주제 2: Sequence Classification Sequence labeling / classification

영화평이 positive한지 negative한지 분류 데이터: IMDb의 영화평 모음

주제 3: Time Series Prediction 회귀(regression) 방식으로 시계열 예측 항공 승객 수의 변화를 예측 데이터: 항공 승객 수 데이터(1949~1960)

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 113

Page 114: 순환신경망(Recurrent neural networks) 개요

기초 개념 이해 보조 자료

부록

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 114

Page 115: 순환신경망(Recurrent neural networks) 개요

모델은 무엇이고 왜 필요한가요?

나머지 18장의 그림은 여기에서 확인: https://www.facebook.com/JSYoo86/posts/1358264517564445

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 115

Page 116: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 116(slides by 고재형)

vectors are the natural language of neural networks

(C. Olah & S. Carter)

Page 117: 순환신경망(Recurrent neural networks) 개요

bias를 벡터/행렬 연산에 포함시키기

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 117(slide by 고재형)

weight가 1로 고정된 추가의 입력으로 처리

Page 118: 순환신경망(Recurrent neural networks) 개요

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 118

Image source: https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/

Page 119: 순환신경망(Recurrent neural networks) 개요

인공지능: 어떻게 똑똑한 컴퓨터 시스템을 만들 것인가?

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 119

세상(world)을 인식하고 이해할 필요가 있다

기본적인 음성 및 시각 능력

언어 이해

행동 예측

컴퓨터 비전Computer Vision

자연언어 처리/이해Natural Language

Processing / Understanding

음성 인식Speech Recognition

+ 지능적인 행동을 해야 한다 지능형 에이전트Intelligent Agent

Page 120: 순환신경망(Recurrent neural networks) 개요

꼭 딥러닝을 써야 하나요?

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 120

많은 분들이 딥러닝을 배우고 계시고 이것을 현업에 적용하고 싶어 하십니다. 그래서 모두 건너뛰고딥러닝만 파고 계시는 분들도 많죠.

하지만 딥러닝이 꼭 다른 머신러닝들보다 좋은 성능을 내느냐 하면 그건 아닙니다.

머신러닝엔 "더 좋은" 알고리즘이란 건 없고 본인의 문제에 "더 적합한" 머신러닝이 있을 뿐이니까요.

"머신러닝은 프로그래밍이 아니라 디버깅이다.“

많은 전문가들이 처음부터 복잡한 모델을 쓰기보단 간단한 것에서 시작해 문제를 파악하고 그것을점진적으로 해결하는 방법을 추천합니다.

- 테리의 딥러닝 토크 중 (Terry Taewoong Um)

Page 121: 순환신경망(Recurrent neural networks) 개요

딥러닝, 머신러닝 교과서

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 121

For developers and engineersFor researchers (and students)

Page 122: 순환신경망(Recurrent neural networks) 개요

Memory Networks

부록

© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 122

(slides by Kyung-Min Kim)

Page 123: 순환신경망(Recurrent neural networks) 개요

메모리가 필요한 순환신경망

1. 메모리 네트워크

• U, W, V

• 은닉 유닛들은 연속된벡터공간에서 오래 전 데이터정보를 저장

• 길이가 매우 긴 입력 데이터가주어진다면 은닉 유닛 벡터는제한된 저장 공간에 많은 입력정보를 저장해야함

st = tanh(Uxt + Wst-1)

yt‘ = softmax(Vst)

input

input

input

hidden

hidden

hidden

outp

ut

outp

ut

outp

ut

time

U U U

W W W

V V V

input

hiddenoutp

ut

U

W

Vunfold

Page 124: 순환신경망(Recurrent neural networks) 개요

예> 순환신경망으로 QA 모델 만들기

1. 메모리 네트워크

2017년은 앞으로의 산업계를 완전히 바꿔놓을 새로운 기술이 본격 자리 잡는 한 해가될 것이다. 앞으로 업계 변화를 주도할 기술은 무엇일까.

…두 번째는 머신러닝(기계학습)을 통한 창조성 강한 디자인 등장이다. 머신러닝은 학습을 통해 사물을 구별하고 이를 바탕으로새로운 것을 창조하는 단계에 이르렀다. 최근 `디자인 그래프`라 불리는 프로젝트로구현됐다. …

Q. 머신러닝으로 새로운 디자인을 창조하고자 하는프로젝트 이름은 무엇인가?

QA 모델A. 디자인 그래프

input

input

input

hid

den

hid

den

hid

den

U U U

W W WW

input

input

input

hid

den

hid

den

hid

den

U U U

W W W …

문서 정보를 담고 있는 은닉 벡터

Question representation

질의 정보를 담고 있는 벡터

X

답변 생성

Page 125: 순환신경망(Recurrent neural networks) 개요

해결책1: 양방향 순환신경망 (bi-directional RNN)

• 앞방향 순환신경망: 원본 문장의 가장 앞의 단어부터 인코더 순환신경망의 입력으로 주어짐

• 뒷방향 순환신경망: 원본 문장의 가장 뒤의 단어부터 인코더 순환신경망의 입력으로 주어짐

• 인코더 순환신경망의 은닉 유닛은 앞방향 / 뒷방향 순환신경망의 은닉 유닛을 단순 이어붙임(concatenation)

input

input

input

hidden

hidden

hidden

U U U

W W W

input

input

input

hidden

hidden

hidden

U U U

W W W

input

input

input

hidden

hidden

hidden

U U U

W W W W

hidden

hidden

hidden

W’ W’ W’

hidden

hidden

hiddenW’ W’ W’

hidden

Hidden'

hidden

W’ W’ W’ W’

U’ U’ U’ U’ U’ U’ U’ U’ U’

1. 메모리 네트워크

Page 126: 순환신경망(Recurrent neural networks) 개요

해결책2: 히든 유닛 벡터를 저장

1. 메모리 네트워크

2017년은 앞으로의 산업계를 완전히 바꿔놓을 새로운 기술이 본격 자리 잡는 한 해가될 것이다. 앞으로 업계 변화를 주도할 기술은 무엇일까.

…두 번째는 머신러닝(기계학습)을 통한 창조성 강한 디자인 등장이다. 머신러닝은 학습을 통해 사물을 구별하고 이를 바탕으로새로운 것을 창조하는 단계에 이르렀다. 최근 `디자인 그래프`라 불리는 프로젝트로구현됐다. …

Q. 머신러닝으로 새로운 디자인을 창조하고자 하는프로젝트 이름은 무엇인가?

QA 모델A. 디자인 그래프

input

input

input

hid

den

hid

den

hid

den

U U U

W W WW

input

input

input

hid

den

hid

den

hid

den

U U U

W W W …Question representation

질의 정보를 담고 있는 벡터

X

답변 생성

RAM저장

Page 127: 순환신경망(Recurrent neural networks) 개요

메모리 네트워크

1. 메모리 네트워크

– 질의 응답 모듈

• 스토리 (예> 문장) 선택 모듈

– 질의 q에 대해 가장 적절한 답변을 포함하고 있는 스토리 (문장) s*를 탐색

» 적절성 평가를 통해 가장 높은 점수를 받은 스토리가 선택됨

– 스토리 선택 모듈의 출력은 질의 q와 선택된 스토리 s*의 결합

» Ex> 머신러닝으로 새로운 디자인을 창조하고자 하는 프로젝트 이름은 무엇인가? 최근 `디자인 그래프`라 불리는 프로젝트로 구현됐다.

• 답변 선택 모듈

– 가능한 답변의 집합 A={ar}1…k. 중 가장 적합한 답변 a*를 선택

– 적절성 평가 함수 (scoring function)

• G(x,y) ∈ [0,1] (H 함수도 동일)

• G(x,y) = 𝜙𝑥U GTUG𝜙𝑦(y)

• H(x,y) = 𝜙𝑥U HTUH𝜙𝑦(y)

• U는 임베딩 행렬

* arg max ( , )i

is

s G q s

*arg max ( , )

r

a ra

a H s a

Page 128: 순환신경망(Recurrent neural networks) 개요

메모리 네트워크의 학습: Triplet Loss

• 학습되어야하는 함수 : G, H

• G, H 함수: 긍정 예(s* 또는 a*)와 부정 예(sㄱ* 또는 a ㄱ*) 의 점수 차이를 𝛾이상 차이가 나게 만드는것이 목표

• 손실값(에러값): max(0, 𝛾 − 𝐺 𝑞, 𝑠∗+ 𝐺 𝑞, 𝑠𝑖 )

• 긍정 예와 질의의 매치 점수가 부정 예와 질의의 매치 점수보다 𝛾이상 높을 경우 손실값은 0이 됨

• 훈련 데이터 전체에 대한 손실값:

• 경사 하강법을 사용하여 파라미터 UG와 UH를 학습

1. 메모리 네트워크

* arg max ( , )i

is

s G q s*

arg max ( , )r

a ra

a H s a

G(x,y) = 𝜙𝑥UGTUG𝜙𝑦(y)

H(x,y) = 𝜙𝑥UHTUH𝜙𝑦(y)

𝑠𝑖

max(0, 𝛾 − 𝐺 𝑞, 𝑠∗+ 𝐺 𝑞, 𝑠𝑖 ) +

𝑎𝑖

max(0, 𝛾 − 𝐻 [𝑞; 𝑠∗], 𝑎

∗+ 𝐻 [𝑞; 𝑠

∗], 𝑎𝑖 )

Page 129: 순환신경망(Recurrent neural networks) 개요

1. 메모리 네트워크

신경망 메모리에 저장한 뒤 유사성 비교

신경망메모리 네트워크의 의의