SlideShare a Scribd company logo
1 of 129
Download to read offline
순환신경망(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
목 차
 Part 1: 순환신경망(RNN)의 개요
 Part 2: 순환신경망의 기본 모듈과 망의 구조 만들기
 Part 3: 순환신경망의 적용 사례: 언어모델을 중심으로
 Part 4: 순환신경망의 다양한 활용과 확장
 부록
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 2
순환신경망의 개요
Part 1
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 3
인공신경망(artificial neural networks) 리뷰
 신경세포(뉴런)의 망으로 구성된 뇌를 모사하여 계산 모델을 구성
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 4
입력 출력
정보의 흐름(feedforward)
뉴런
신경망
리뷰: 인공신경망에 쓰이는 활성화 함수
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 함수를 적용함
순서가 있는 패턴의 모델링
© 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”
순서 데이터 모델링 사례:
말과 글을 인식하고 이해하고 대응하는 S/W
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 7
‘Hound’ by Soundhound
(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%)
순환신경망의 기본 구조
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 9
순환(recurrent) 연결
입력
출력
RNN
모듈
“인공 뉴런(뇌세포)”
순환신경망 as API
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 10
API: 응용프로그램 인터페이스(application program interface)
입력 출력
상태(state)의 변화
RNN의 기본 활용 분야
 순서 데이터에 꼬리표 달기(Sequence labeling)
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 11
A. Graves, Supervised Sequence Labelling with Recurrent Neural Networks, 2012.
문서 감정 분류
Sentiment classification
필기체
인식
음성
인식
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)
개월
(천 명)
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)
RNN의 다양한 적용 방법과 사례
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 14
무엇을 입력하고 출력하는지에 따라 유연하게 활용할 수 있다.
소비자의 상품평(글)이
긍정적인지 부정적인지 판별
한국어  영어 자동 번역
사진을 한 장 주면, 사진의 설명 문장을 생성
예: 블랙박스 영상을 프레임 단위로 입력받아 사고 발생여부 판별
순환신경망의 ‘기본적인‘ 설정. 매 입력마다 출력반응을 생성
오늘은 이거 하나만 알고 가셔도 충분합니다.
입력
출력
RNN
모듈
RNN의 다양한 적용 방법과 사례
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 15
사진을 좌에서 우로, 위에서 아래로
순서대로 훑으면서
사진 속의 물체를 인식하거나 생성
입력이 순서가 없는 고정된 모양(예: 사진)이어도, 적절한 순서에 따라 ‘처리’할 수 있다.
RNN 적용 대표 사례:
필기체 인식, 합성, 생성
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 16
INPUT OUTPUT
Doosan. Building your tomorrow today
Proud Global Doosan
(none)
펜으로 필기하는 과정을 순환신경망으로 학습
체험해봅시다 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
RNN 적용 대표 사례: 뉴럴 음성 인식기
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 18
Baidu, DeepSpeech2 (2015)
하나의 딥러닝 모델로, 영어와 중국어를 모두 인식
RNN 모듈을 여러 층을 쌓아 복잡한 문제를 해결
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을 연결하여 구성
구글 뉴럴 기계번역기(2016)
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 20
전체 구성은 Encoder-Decoder
Encoder와 Decoder는 각각 8층의 순환신경망으로 구성
순환신경망을 구성하는 기본 모듈로는 LSTM을 사용
RNN 적용 대표 사례:
지문을 보고 질문에 대해 답하기
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 21
Memory Network: 순환신경망에 외부 메모리를 붙인 모델
딥러닝 모델의 조합
© 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을 조합하여 이미지의 캡션을 자동으로 생성
이미지 캡션 생성 모델
23
이미지 캡션 생성 사례
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 24
놀라울 정도로 정확한 설명도 나오지만(윗줄), 엉뚱한 결과를 내기도 한다(하단)
Part 1 요약
 순환신경망(RNN)은 딥러닝의 핵심 도구 중 하나
 인공신경망이 순서가 있는 데이터(text, audio, video 등)를
자연스럽게 다루게 해주는 도구
 언어 지능, 음성 지능, 시각 지능을 구현하는데 필수 도구
 순서 데이터를 이해하고, 주석을 달며, 새로 만들어내기도 함
 다른 모델과 결합하여 다중 지능을 구현하는데 기여함
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 25
순환신경망의 기본 모듈과
망의 구조 만들기
Part 2
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 26
‘간단한’ 수학식을 하나 살펴봅시다
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 27
x
y
y = wx + b
순환신경망의 기본 동작을 이해하는 데는
선형(linear) 식과 몇 가지 비선형(non-linear) 함수만 알면 충분합니다.
기울기,
가중치
weight
절편,
bias
입력
출력
고차 공간을 둘로 나누는 ‘하이퍼평면’
리뷰: 인공신경망에 쓰이는 활성화 함수
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 함수를 적용함
시스템의 상태(state)에 대해 이해해봅시다
 상태, 상태의 변화
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 29
State-transition digram
시스템의 상태(state)에 대해 이해해봅시다
 보통 우리는 직접 볼 수 없는 ‘숨겨진, 알려지지 않은 상태에
관심이 있습니다
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 30
• 목표: 순서대로 주어지는 관측값을 보고, ‘숨겨진 상태(hidden’ states)’를 추적하거나 학습
순환신경망의 기본 개념
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 31
입력:
여러 개의 값이
벡터 형태로 일괄 전달됨
특정 시점에서
출력을 뽑는다.
예) 예측상태의 변화
(hidden)
이제까지의 강의에서 본 바와 같이
연결선(화살표)마다 ‘가중치(weight)’가 부여됨
순환신경망의 기본 개념
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 32
(Slide from Stanford CS231n 2015~2016 winter class)
RNN은 외부 입력과 자신의 이전 상태를 입력받아 자신의 상태를 갱신한다.
순환신경망의 기본 개념
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 33
(Slide from Stanford CS231n 2015~2016 winter class)
모든 시간대에서 동일한 매개변수(parameter)를 적용!
기본 순환신경망
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 34(Slide from Stanford CS231n 2015~2016 winter class)
모든 시간대에서 동일한 매개변수를 적용: Whh , Wxh ,Why
(bias는 식에서 생략되어 있음)
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
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)
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)
순환신경망을 이용한 언어 모델
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 38(Slide from Stanford CS231n 2015~2016 winter class)
다음에 무슨 글자 또는 단어가 나올지 예측하는 모델
(one-hot encoding)
순환신경망을 이용한 언어 모델
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 39(Slide from Stanford CS231n 2015~2016 winter class)
다음에 무슨 글자 또는 단어가 나올지 예측하는 모델
• 출력: 각 글자별 ‘확신’ 정도
• 녹색 값이 높고,
빨간 색 값이 낮도록
매개변수 W_*를 조정(학습)
학습 단계
체험해봅시다 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. 시작 버튼 누르기
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 41
이제 순환신경망의 대표 모듈인
LSTM을 살펴볼 차례입니다.
장단기 메모리(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)
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)
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) 메모리의 구조를 개선해야 합니다.
장단기 메모리
(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)
장단기 메모리(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)
LSTM의 동작을 순서대로
살펴보기(애니메이션)
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 47
(동그라미 안의 기호는 곱하기와 더하기입니다)
(Slide from Stanford CS231n 2015~2016 winter class)
LSTM의 동작을 순서대로
살펴보기(애니메이션)
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 48
(동그라미 안의 기호는 곱하기와 더하기입니다)
(Slide from Stanford CS231n 2015~2016 winter class)
LSTM의 동작을 순서대로
살펴보기(애니메이션)
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 49
(동그라미 안의 기호는 곱하기와 더하기입니다)
(Slide from Stanford CS231n 2015~2016 winter class)
LSTM의 동작을 순서대로
살펴보기(애니메이션)
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 50
(동그라미 안의 기호는 곱하기와 더하기입니다)
(Slide from Stanford CS231n 2015~2016 winter class)
LSTM의 동작 이해
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 51(Slide from Stanford CS231n 2015~2016 winter class)
RNN vs. LSTM
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 52
(additive interaction)
(Slide from Stanford CS231n 2015~2016 winter class)
RNN vs. LSTM
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 53(Slide from Stanford CS231n 2015~2016 winter class)
RNN vs. LSTM
Vanishing 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.)
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)
기본 RNN의 또다른 표현
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 56
𝑋𝑡
ℎ 𝑡−1 ℎ 𝑡
𝑌𝑡
Simple RNN
Gated Recurrent Unit (GRU)
57
𝑋𝑡
ℎ 𝑡−1 ℎ 𝑡
𝑌𝑡
Gated Recurrent Unit
𝑟 𝑧
෨ℎ +
Dynamic Gate
0~1
Reset Gate
0~1
𝒓 𝒛𝟏 − 𝒛
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr
node state
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 58
여기까지 순환신경망의 기본 모듈을 살펴보았습니다.
이제 기본 모듈로 어떤 망을 구성하고
어떻게 쓸 수 있는지 살펴보겠습니다 .
RNN의 다양한 적용 방법과 사례(다시보기)
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 59
무엇을 입력하고 출력하는지에 따라 유연하게 활용할 수 있다.
소비자의 상품평(글)이
긍정적인지 부정적인지 판별
한국어  영어 자동 번역
사진을 한 장 주면, 사진의 설명 문장을 생성
예: 블랙박스 영상을 프레임 단위로 입력받아 사고 발생여부 판별
순환신경망의 ‘기본적인‘ 설정. 매 입력마다 출력반응을 생성
입력
출력
RNN
모듈
(Slide from Stanford CS231n 2015~2016 winter class)
𝑥 𝑡
ℎ 𝑓
𝑡
ℎ 𝑏
𝑡
ℎ 𝑡
𝑥 𝑡+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
다층 구조, 딥 구조 만들기
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 61
Residual connection
Skip connection
Input-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)
인코더-디코더 신경망
© 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
Part 2 요약
 순환신경망의 기본 구성 모듈
 Vanilla RNN, LSTM, GRU
 장단기 메모리(LSTM)와 GRU의 내부 동작
 ‘게이트’를 이용하여 입력값의 반영 과정과 상태의 변화, 출력 조정
 순서 데이터에서 ‘long-term dependency’를 잘 반영하는 모델이 좋은
모델!
 순환신경망의 기본 모듈로 구성하는 다양한 망의 구조
 양방향, 다층/딥 구조, 인코더-디코더
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 63
순환신경망의 적용 사례:
언어모델을 중심으로
Part 3
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 64
언어 모델 (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)
(확률 기반) 언어 모델
 목표: 문장별 확률을 계산
 왜?
 어떻게?
 문장에서 단어 또는 글자의 순서에 대한 분포를 이용
 보통 다음 단어 예측하는 문제로 처리
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 66
(contents from https://web.stanford.edu/class/cs124/lec/languagemodeling.pdf)
언어 모델: n-그램 기반 분석
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 67
https://books.google.com/ngrams
언어 모델: 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
RNN의 ‘마법같은’ 성능
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 69
Stanford Computer Vision Lab (Prof. Fei-Fei Li)
ImageNet 구축, 대회 주관
순환신경망 언어 모델
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 70(Slide from Stanford CS231n 2015~2016 winter class)
문서 집합(document corpus)
단어 또는 글자
(word or character)
순환신경망을 이용한 언어 모델
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 71
(Slide from Stanford CS231n 2015~2016 winter class)
기존에는 단어 단위 언어 모델 적용  글자 단위 RNN 언어 모델의 놀라운 성능
• 출력: 각 글자별 ‘확신’ 정도
• 녹색 값이 높고,
빨간 색 값이 낮도록
매개변수 W_*를 조정(학습)
학습 단계
테스트(추론) 단계
• 한 글자를 입력
• 글자별 확률값이 출력됨
• 이 확률분포에서 글자를
하나 샘플링
• 선택한 글자를 다음 입력
으로 사용
세익스피어 희곡을 학습
© 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
구조적 문서를 학습
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 73(Slide from Stanford CS231n 2015~2016 winter class)
입력: LaTeX 문서(16MB)
HTML, XML 등과 같은 문서도 잘 학습하고 생성함
프로그램(code)을 학습
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 74(Slide from Stanford CS231n 2015~2016 winter class)
리눅스 소스 코드(474MB)를 학
습한 후, 유사한 C 코드를 생성
분석: 반복학습을 통해 성능 향상
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 75(Slide from Stanford CS231n 2015~2016 winter class)
분석: ‘뉴런’ (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…”
분석: ‘뉴런’ (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을 찾기
분석: ‘뉴런’ (LSTM Cell)별 활성화
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 78(Slide from Stanford CS231n 2015~2016 winter class)
입력 글자에 따라 hidden state 값이 발화에 특정 패턴을 보이는 cell을 찾기
분석: ‘뉴런’ (LSTM Cell)별 활성화
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 79(Slide from Stanford CS231n 2015~2016 winter class)
입력 글자에 따라 hidden state 값이 발화에 특정 패턴을 보이는 cell을 찾기
공개된 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
순환신경망으로 음악 생성하기
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 81
Img source: http://yoavz.com/music_rnn/
LSTM Realbook: Generation of
Jazz 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)
체험해봅시다 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와 교대로 피아노를 연주하세요
(건반을 마우스로 오래 누르면
길게 소리납니다.)
Part 3 요약
 언어 모델(language model)
 기존에는 n-gram 모델이 많이 쓰임
 순환신경망을 이용한 언어 모델
 단어 단위 언어 모델
 글자 단위 언어 모델
 순환신경망 언어 모델의 효용성
 다양한 문서 생성
 (기호 수준의) 음악 생성
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 84
순환신경망의 다양한 활용과 확장
Part 4
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 85
다양한 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 86
Visual-Auditory Sensor Fusion for Lip Reading
Frequency discrimination task
N-MNIST experiment.
(a) Sketch of digit movement seen by the image sensor.
다양한 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
 필기체 생성, 합성
 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로 모델링
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을 다른 방식으로 구현함
인코더-디코더 신경망 모델
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 90
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 91
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 92
보다 깊은 추론(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
워크샵 소개문
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
연구: 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
(메모리넷의 상세한 소개 자료는 부록 참조)
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 96
체험해봅시다 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
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 98
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 99
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 100
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 101
기존 RNN 모듈(예: LSTM)의 셀은 학습 과정에서 ‘메모리’와
‘컨트롤러’가 혼재되어 생성된다
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 102
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 103
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 104
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 105
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 106
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 107
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 108
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 109
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 110
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
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 112
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
기초 개념 이해 보조 자료
부록
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 114
모델은 무엇이고 왜 필요한가요?
 나머지 18장의 그림은 여기에서 확인: https://www.facebook.com/JSYoo86/posts/1358264517564445
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 115
© 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)
bias를 벡터/행렬 연산에 포함시키기
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 117(slide by 고재형)
weight가 1로 고정된 추가의 입력으로 처리
© 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/
인공지능:
어떻게 똑똑한 컴퓨터 시스템을 만들 것인가?
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 119
세상(world)을 인식하고 이해할 필요가 있다
기본적인 음성 및 시각 능력
언어 이해
행동 예측
컴퓨터 비전
Computer Vision
자연언어 처리/이해
Natural Language
Processing / Understanding
음성 인식
Speech Recognition
+ 지능적인 행동을 해야 한다 지능형 에이전트
Intelligent Agent
꼭 딥러닝을 써야 하나요?
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 120
많은 분들이 딥러닝을 배우고 계시고 이것을 현업에 적용하고 싶어 하십니다. 그래서 모두 건너뛰고
딥러닝만 파고 계시는 분들도 많죠.
하지만 딥러닝이 꼭 다른 머신러닝들보다 좋은 성능을 내느냐 하면 그건 아닙니다.
머신러닝엔 "더 좋은" 알고리즘이란 건 없고 본인의 문제에 "더 적합한" 머신러닝이 있을 뿐이니까요.
"머신러닝은 프로그래밍이 아니라 디버깅이다.“
많은 전문가들이 처음부터 복잡한 모델을 쓰기보단 간단한 것에서 시작해 문제를 파악하고 그것을
점진적으로 해결하는 방법을 추천합니다.
- 테리의 딥러닝 토크 중 (Terry Taewoong Um)
딥러닝, 머신러닝 교과서
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 121
For developers and engineersFor researchers (and students)
Memory Networks
부록
© 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 122
(slides by Kyung-Min Kim)
메모리가 필요한 순환신경망
1. 메모리 네트워크
• U, W, V
• 은닉 유닛들은 연속된
벡터공간에서 오래 전 데이터
정보를 저장
• 길이가 매우 긴 입력 데이터가
주어진다면 은닉 유닛 벡터는
제한된 저장 공간에 많은 입력
정보를 저장해야함
st = tanh(Uxt + Wst-1)
yt‘ = softmax(Vst)
input
input
input
hidden
hidden
hidden
output
output
output
time 
U U U
W W W
V V V
inputhiddenoutput
U
W
V
unfold
예> 순환신경망으로 QA 모델 만들기
1. 메모리 네트워크
2017년은 앞으로의 산업계를 완전히 바꿔
놓을 새로운 기술이 본격 자리 잡는 한 해가
될 것이다. 앞으로 업계 변화를 주도할 기술
은 무엇일까.
…
두 번째는 머신러닝(기계학습)을 통한 창조
성 강한 디자인 등장이다. 머신러닝은 학습
을 통해 사물을 구별하고 이를 바탕으로
새로운 것을 창조하는 단계에 이르렀다. 최
근 `디자인 그래프`라 불리는 프로젝트로
구현됐다.
…
Q. 머신러닝으로 새로운 디자인을 창조하고자 하는
프로젝트 이름은 무엇인가?
QA 모델
A. 디자인 그래프
input
input
input
hidden
hidden
hidden
U U U
W W WW
input
input
input
hidden
hidden
hidden
U U U
W W W
…
문서 정보를 담고 있는 은닉 벡터
Question representation
질의 정보를 담고 있는 벡터
X
답변 생성
해결책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
hidden
W’ W’ W’
hidden
Hidden'
hidden
W’ W’ W’ W’
U’ U’ U’ U’ U’ U’ U’ U’ U’
1. 메모리 네트워크
해결책2: 히든 유닛 벡터를 저장
1. 메모리 네트워크
2017년은 앞으로의 산업계를 완전히 바꿔
놓을 새로운 기술이 본격 자리 잡는 한 해가
될 것이다. 앞으로 업계 변화를 주도할 기술
은 무엇일까.
…
두 번째는 머신러닝(기계학습)을 통한 창조
성 강한 디자인 등장이다. 머신러닝은 학습
을 통해 사물을 구별하고 이를 바탕으로
새로운 것을 창조하는 단계에 이르렀다. 최
근 `디자인 그래프`라 불리는 프로젝트로
구현됐다.
…
Q. 머신러닝으로 새로운 디자인을 창조하고자 하는
프로젝트 이름은 무엇인가?
QA 모델
A. 디자인 그래프
input
input
input
hidden
hidden
hidden
U U U
W W WW
input
input
input
hidden
hidden
hidden
U U U
W W W
…
Question representation
질의 정보를 담고 있는 벡터
X
답변 생성
RAM
저장
메모리 네트워크
1. 메모리 네트워크
– 질의 응답 모듈
• 스토리 (예> 문장) 선택 모듈
– 질의 q에 대해 가장 적절한 답변을 포함하고 있는 스토리 (문장) s*를 탐색
» 적절성 평가를 통해 가장 높은 점수를 받은 스토리가 선택됨
– 스토리 선택 모듈의 출력은 질의 q와 선택된 스토리 s*의 결합
» Ex> 머신러닝으로 새로운 디자인을 창조하고자 하는 프로젝트 이름은 무엇인가? 최근 `디자인 그래프
`라 불리는 프로젝트로 구현됐다.
• 답변 선택 모듈
– 가능한 답변의 집합 A={ar}1…k. 중 가장 적합한 답변 a*를 선택
– 적절성 평가 함수 (scoring function)
• G(x,y) ∈ [0,1] (H 함수도 동일)
• G(x,y) = 𝜙 𝑥U G
TUG 𝜙 𝑦(y)
• H(x,y) = 𝜙 𝑥U H
TUH 𝜙 𝑦(y)
• U는 임베딩 행렬
* arg max ( , )
i
i
s
s G q s
*
arg max ( , )
r
a r
a
a H s a
메모리 네트워크의 학습: Triplet Loss
• 학습되어야하는 함수 : G, H
• G, H 함수: 긍정 예(s* 또는 a*)와 부정 예(sㄱ* 또는 a ㄱ*) 의 점수 차이를 𝛾이상 차이가 나게 만드는
것이 목표
• 손실값(에러값): max(0, 𝛾 − 𝐺 𝑞, 𝑠
∗
+ 𝐺 𝑞, 𝑠𝑖 )
• 긍정 예와 질의의 매치 점수가 부정 예와 질의의 매치 점수보다 𝛾이상 높을 경우 손실값은 0이 됨
• 훈련 데이터 전체에 대한 손실값:
• 경사 하강법을 사용하여 파라미터 UG와 UH를 학습
1. 메모리 네트워크
* arg max ( , )
i
i
s
s G q s *
arg max ( , )
r
a r
a
a H s a
G(x,y) = 𝜙 𝑥UG
TUG 𝜙 𝑦(y)
H(x,y) = 𝜙 𝑥UH
TUH 𝜙 𝑦(y)
෍
𝑠𝑖
max(0, 𝛾 − 𝐺 𝑞, 𝑠
∗
+ 𝐺 𝑞, 𝑠𝑖 ) +
෍
𝑎𝑖
max(0, 𝛾 − 𝐻 [𝑞; 𝑠
∗
], 𝑎
∗
+ 𝐻 [𝑞; 𝑠
∗
], 𝑎𝑖 )
1. 메모리 네트워크
신경망 메모리에 저장한 뒤 유사성 비교
신경망
메모리 네트워크의 의의

More Related Content

What's hot

텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝찬웅 주
 
밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장Sunggon Song
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것NAVER Engineering
 
쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전Modulabs
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...Deep Learning JP
 
Fisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsFisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsTakao Yamanaka
 
SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料ttt_miura
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech SynthesisDeep Learning JP
 
Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験myxymyxomatosis
 
[DL輪読会]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Ima...
 [DL輪読会]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Ima... [DL輪読会]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Ima...
[DL輪読会]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Ima...Deep Learning JP
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスYusuke Uchida
 
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)Tomoyuki Hioki
 
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計Yuta Sugii
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)홍배 김
 
Graph Attention Network
Graph Attention NetworkGraph Attention Network
Graph Attention NetworkTakahiro Kubo
 
帰納バイアスが成立する条件
帰納バイアスが成立する条件帰納バイアスが成立する条件
帰納バイアスが成立する条件Shinobu KINJO
 
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)WON JOON YOO
 

What's hot (20)

텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝
 
밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것
 
t-SNE Explained
t-SNE Explainedt-SNE Explained
t-SNE Explained
 
쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
 
Fisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsFisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight Maps
 
SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
 
Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験
 
[DL輪読会]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Ima...
 [DL輪読会]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Ima... [DL輪読会]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Ima...
[DL輪読会]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Ima...
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティス
 
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
 
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)
 
ResNetの仕組み
ResNetの仕組みResNetの仕組み
ResNetの仕組み
 
Graph Attention Network
Graph Attention NetworkGraph Attention Network
Graph Attention Network
 
帰納バイアスが成立する条件
帰納バイアスが成立する条件帰納バイアスが成立する条件
帰納バイアスが成立する条件
 
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
 

Similar to 순환신경망(Recurrent neural networks) 개요

인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기Byoung-Hee Kim
 
머신러닝의 개념과 실습
머신러닝의 개념과 실습머신러닝의 개념과 실습
머신러닝의 개념과 실습Byoung-Hee Kim
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement LearningKiho Suh
 
Bidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionBidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionWoodam Lim
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Othersjdo
 
Deep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural NetworkDeep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural Networkagdatalab
 
230112_word2vec1_논문리뷰.pdf
230112_word2vec1_논문리뷰.pdf230112_word2vec1_논문리뷰.pdf
230112_word2vec1_논문리뷰.pdfminalang
 
I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)Susang Kim
 
스마트폰 위의 딥러닝
스마트폰 위의 딥러닝스마트폰 위의 딥러닝
스마트폰 위의 딥러닝NAVER Engineering
 
스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기Sungchul Park
 
Attention is all you need 설명
Attention is all you need 설명Attention is all you need 설명
Attention is all you need 설명Junho Lee
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection창기 문
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection창기 문
 
CNN Architecture A to Z
CNN Architecture A to ZCNN Architecture A to Z
CNN Architecture A to ZLEE HOSEONG
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)SK(주) C&C - 강병호
 
Designing more efficient convolution neural network
Designing more efficient convolution neural networkDesigning more efficient convolution neural network
Designing more efficient convolution neural networkNAVER Engineering
 
Designing more efficient convolution neural network
Designing more efficient convolution neural networkDesigning more efficient convolution neural network
Designing more efficient convolution neural networkDongyi Kim
 
PR-218: MFAS: Multimodal Fusion Architecture Search
PR-218: MFAS: Multimodal Fusion Architecture SearchPR-218: MFAS: Multimodal Fusion Architecture Search
PR-218: MFAS: Multimodal Fusion Architecture SearchSunghoon Joo
 

Similar to 순환신경망(Recurrent neural networks) 개요 (20)

인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기
 
머신러닝의 개념과 실습
머신러닝의 개념과 실습머신러닝의 개념과 실습
머신러닝의 개념과 실습
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning
 
Bidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionBidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehension
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 
Deep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural NetworkDeep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural Network
 
230112_word2vec1_논문리뷰.pdf
230112_word2vec1_논문리뷰.pdf230112_word2vec1_논문리뷰.pdf
230112_word2vec1_논문리뷰.pdf
 
I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)
 
스마트폰 위의 딥러닝
스마트폰 위의 딥러닝스마트폰 위의 딥러닝
스마트폰 위의 딥러닝
 
스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기
 
Attention is all you need 설명
Attention is all you need 설명Attention is all you need 설명
Attention is all you need 설명
 
Nlp study1
Nlp study1Nlp study1
Nlp study1
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection
 
CNN Architecture A to Z
CNN Architecture A to ZCNN Architecture A to Z
CNN Architecture A to Z
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
Designing more efficient convolution neural network
Designing more efficient convolution neural networkDesigning more efficient convolution neural network
Designing more efficient convolution neural network
 
Designing more efficient convolution neural network
Designing more efficient convolution neural networkDesigning more efficient convolution neural network
Designing more efficient convolution neural network
 
Mt
MtMt
Mt
 
PR-218: MFAS: Multimodal Fusion Architecture Search
PR-218: MFAS: Multimodal Fusion Architecture SearchPR-218: MFAS: Multimodal Fusion Architecture Search
PR-218: MFAS: Multimodal Fusion Architecture Search
 

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

  • 1. 순환신경망(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
  • 2. 목 차  Part 1: 순환신경망(RNN)의 개요  Part 2: 순환신경망의 기본 모듈과 망의 구조 만들기  Part 3: 순환신경망의 적용 사례: 언어모델을 중심으로  Part 4: 순환신경망의 다양한 활용과 확장  부록 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 2
  • 3. 순환신경망의 개요 Part 1 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 3
  • 4. 인공신경망(artificial neural networks) 리뷰  신경세포(뉴런)의 망으로 구성된 뇌를 모사하여 계산 모델을 구성 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 4 입력 출력 정보의 흐름(feedforward) 뉴런 신경망
  • 5. 리뷰: 인공신경망에 쓰이는 활성화 함수 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 함수를 적용함
  • 6. 순서가 있는 패턴의 모델링 © 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”
  • 7. 순서 데이터 모델링 사례: 말과 글을 인식하고 이해하고 대응하는 S/W © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 7 ‘Hound’ by Soundhound
  • 8. (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%)
  • 9. 순환신경망의 기본 구조 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 9 순환(recurrent) 연결 입력 출력 RNN 모듈 “인공 뉴런(뇌세포)”
  • 10. 순환신경망 as API © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 10 API: 응용프로그램 인터페이스(application program interface) 입력 출력 상태(state)의 변화
  • 11. RNN의 기본 활용 분야  순서 데이터에 꼬리표 달기(Sequence labeling) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 11 A. Graves, Supervised Sequence Labelling with Recurrent Neural Networks, 2012. 문서 감정 분류 Sentiment classification 필기체 인식 음성 인식
  • 12. 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) 개월 (천 명)
  • 13. 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)
  • 14. RNN의 다양한 적용 방법과 사례 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 14 무엇을 입력하고 출력하는지에 따라 유연하게 활용할 수 있다. 소비자의 상품평(글)이 긍정적인지 부정적인지 판별 한국어  영어 자동 번역 사진을 한 장 주면, 사진의 설명 문장을 생성 예: 블랙박스 영상을 프레임 단위로 입력받아 사고 발생여부 판별 순환신경망의 ‘기본적인‘ 설정. 매 입력마다 출력반응을 생성 오늘은 이거 하나만 알고 가셔도 충분합니다. 입력 출력 RNN 모듈
  • 15. RNN의 다양한 적용 방법과 사례 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 15 사진을 좌에서 우로, 위에서 아래로 순서대로 훑으면서 사진 속의 물체를 인식하거나 생성 입력이 순서가 없는 고정된 모양(예: 사진)이어도, 적절한 순서에 따라 ‘처리’할 수 있다.
  • 16. RNN 적용 대표 사례: 필기체 인식, 합성, 생성 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 16 INPUT OUTPUT Doosan. Building your tomorrow today Proud Global Doosan (none) 펜으로 필기하는 과정을 순환신경망으로 학습
  • 17. 체험해봅시다 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
  • 18. RNN 적용 대표 사례: 뉴럴 음성 인식기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 18 Baidu, DeepSpeech2 (2015) 하나의 딥러닝 모델로, 영어와 중국어를 모두 인식 RNN 모듈을 여러 층을 쌓아 복잡한 문제를 해결
  • 19. 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을 연결하여 구성
  • 20. 구글 뉴럴 기계번역기(2016) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 20 전체 구성은 Encoder-Decoder Encoder와 Decoder는 각각 8층의 순환신경망으로 구성 순환신경망을 구성하는 기본 모듈로는 LSTM을 사용
  • 21. RNN 적용 대표 사례: 지문을 보고 질문에 대해 답하기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 21 Memory Network: 순환신경망에 외부 메모리를 붙인 모델
  • 22. 딥러닝 모델의 조합 © 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을 조합하여 이미지의 캡션을 자동으로 생성
  • 24. 이미지 캡션 생성 사례 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 24 놀라울 정도로 정확한 설명도 나오지만(윗줄), 엉뚱한 결과를 내기도 한다(하단)
  • 25. Part 1 요약  순환신경망(RNN)은 딥러닝의 핵심 도구 중 하나  인공신경망이 순서가 있는 데이터(text, audio, video 등)를 자연스럽게 다루게 해주는 도구  언어 지능, 음성 지능, 시각 지능을 구현하는데 필수 도구  순서 데이터를 이해하고, 주석을 달며, 새로 만들어내기도 함  다른 모델과 결합하여 다중 지능을 구현하는데 기여함 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 25
  • 26. 순환신경망의 기본 모듈과 망의 구조 만들기 Part 2 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 26
  • 27. ‘간단한’ 수학식을 하나 살펴봅시다 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 27 x y y = wx + b 순환신경망의 기본 동작을 이해하는 데는 선형(linear) 식과 몇 가지 비선형(non-linear) 함수만 알면 충분합니다. 기울기, 가중치 weight 절편, bias 입력 출력 고차 공간을 둘로 나누는 ‘하이퍼평면’
  • 28. 리뷰: 인공신경망에 쓰이는 활성화 함수 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 함수를 적용함
  • 29. 시스템의 상태(state)에 대해 이해해봅시다  상태, 상태의 변화 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 29 State-transition digram
  • 30. 시스템의 상태(state)에 대해 이해해봅시다  보통 우리는 직접 볼 수 없는 ‘숨겨진, 알려지지 않은 상태에 관심이 있습니다 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 30 • 목표: 순서대로 주어지는 관측값을 보고, ‘숨겨진 상태(hidden’ states)’를 추적하거나 학습
  • 31. 순환신경망의 기본 개념 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 31 입력: 여러 개의 값이 벡터 형태로 일괄 전달됨 특정 시점에서 출력을 뽑는다. 예) 예측상태의 변화 (hidden) 이제까지의 강의에서 본 바와 같이 연결선(화살표)마다 ‘가중치(weight)’가 부여됨
  • 32. 순환신경망의 기본 개념 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 32 (Slide from Stanford CS231n 2015~2016 winter class) RNN은 외부 입력과 자신의 이전 상태를 입력받아 자신의 상태를 갱신한다.
  • 33. 순환신경망의 기본 개념 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 33 (Slide from Stanford CS231n 2015~2016 winter class) 모든 시간대에서 동일한 매개변수(parameter)를 적용!
  • 34. 기본 순환신경망 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 34(Slide from Stanford CS231n 2015~2016 winter class) 모든 시간대에서 동일한 매개변수를 적용: Whh , Wxh ,Why (bias는 식에서 생략되어 있음)
  • 35. 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
  • 36. 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)
  • 37. 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)
  • 38. 순환신경망을 이용한 언어 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 38(Slide from Stanford CS231n 2015~2016 winter class) 다음에 무슨 글자 또는 단어가 나올지 예측하는 모델 (one-hot encoding)
  • 39. 순환신경망을 이용한 언어 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 39(Slide from Stanford CS231n 2015~2016 winter class) 다음에 무슨 글자 또는 단어가 나올지 예측하는 모델 • 출력: 각 글자별 ‘확신’ 정도 • 녹색 값이 높고, 빨간 색 값이 낮도록 매개변수 W_*를 조정(학습) 학습 단계
  • 40. 체험해봅시다 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. 시작 버튼 누르기
  • 41. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 41 이제 순환신경망의 대표 모듈인 LSTM을 살펴볼 차례입니다.
  • 42. 장단기 메모리(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)
  • 43. 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)
  • 44. 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) 메모리의 구조를 개선해야 합니다.
  • 45. 장단기 메모리 (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)
  • 46. 장단기 메모리(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)
  • 47. LSTM의 동작을 순서대로 살펴보기(애니메이션) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 47 (동그라미 안의 기호는 곱하기와 더하기입니다) (Slide from Stanford CS231n 2015~2016 winter class)
  • 48. LSTM의 동작을 순서대로 살펴보기(애니메이션) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 48 (동그라미 안의 기호는 곱하기와 더하기입니다) (Slide from Stanford CS231n 2015~2016 winter class)
  • 49. LSTM의 동작을 순서대로 살펴보기(애니메이션) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 49 (동그라미 안의 기호는 곱하기와 더하기입니다) (Slide from Stanford CS231n 2015~2016 winter class)
  • 50. LSTM의 동작을 순서대로 살펴보기(애니메이션) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 50 (동그라미 안의 기호는 곱하기와 더하기입니다) (Slide from Stanford CS231n 2015~2016 winter class)
  • 51. LSTM의 동작 이해 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 51(Slide from Stanford CS231n 2015~2016 winter class)
  • 52. RNN vs. LSTM © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 52 (additive interaction) (Slide from Stanford CS231n 2015~2016 winter class)
  • 53. RNN vs. LSTM © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 53(Slide from Stanford CS231n 2015~2016 winter class)
  • 54. RNN vs. LSTM Vanishing 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.)
  • 55. 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)
  • 56. 기본 RNN의 또다른 표현 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 56 𝑋𝑡 ℎ 𝑡−1 ℎ 𝑡 𝑌𝑡 Simple RNN
  • 57. Gated Recurrent Unit (GRU) 57 𝑋𝑡 ℎ 𝑡−1 ℎ 𝑡 𝑌𝑡 Gated Recurrent Unit 𝑟 𝑧 ෨ℎ + Dynamic Gate 0~1 Reset Gate 0~1 𝒓 𝒛𝟏 − 𝒛 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr node state
  • 58. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 58 여기까지 순환신경망의 기본 모듈을 살펴보았습니다. 이제 기본 모듈로 어떤 망을 구성하고 어떻게 쓸 수 있는지 살펴보겠습니다 .
  • 59. RNN의 다양한 적용 방법과 사례(다시보기) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 59 무엇을 입력하고 출력하는지에 따라 유연하게 활용할 수 있다. 소비자의 상품평(글)이 긍정적인지 부정적인지 판별 한국어  영어 자동 번역 사진을 한 장 주면, 사진의 설명 문장을 생성 예: 블랙박스 영상을 프레임 단위로 입력받아 사고 발생여부 판별 순환신경망의 ‘기본적인‘ 설정. 매 입력마다 출력반응을 생성 입력 출력 RNN 모듈 (Slide from Stanford CS231n 2015~2016 winter class)
  • 60. 𝑥 𝑡 ℎ 𝑓 𝑡 ℎ 𝑏 𝑡 ℎ 𝑡 𝑥 𝑡+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
  • 61. 다층 구조, 딥 구조 만들기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 61 Residual connection Skip connection Input-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)
  • 62. 인코더-디코더 신경망 © 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
  • 63. Part 2 요약  순환신경망의 기본 구성 모듈  Vanilla RNN, LSTM, GRU  장단기 메모리(LSTM)와 GRU의 내부 동작  ‘게이트’를 이용하여 입력값의 반영 과정과 상태의 변화, 출력 조정  순서 데이터에서 ‘long-term dependency’를 잘 반영하는 모델이 좋은 모델!  순환신경망의 기본 모듈로 구성하는 다양한 망의 구조  양방향, 다층/딥 구조, 인코더-디코더 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 63
  • 64. 순환신경망의 적용 사례: 언어모델을 중심으로 Part 3 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 64
  • 65. 언어 모델 (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)
  • 66. (확률 기반) 언어 모델  목표: 문장별 확률을 계산  왜?  어떻게?  문장에서 단어 또는 글자의 순서에 대한 분포를 이용  보통 다음 단어 예측하는 문제로 처리 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 66 (contents from https://web.stanford.edu/class/cs124/lec/languagemodeling.pdf)
  • 67. 언어 모델: n-그램 기반 분석 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 67 https://books.google.com/ngrams
  • 68. 언어 모델: 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
  • 69. RNN의 ‘마법같은’ 성능 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 69 Stanford Computer Vision Lab (Prof. Fei-Fei Li) ImageNet 구축, 대회 주관
  • 70. 순환신경망 언어 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 70(Slide from Stanford CS231n 2015~2016 winter class) 문서 집합(document corpus) 단어 또는 글자 (word or character)
  • 71. 순환신경망을 이용한 언어 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 71 (Slide from Stanford CS231n 2015~2016 winter class) 기존에는 단어 단위 언어 모델 적용  글자 단위 RNN 언어 모델의 놀라운 성능 • 출력: 각 글자별 ‘확신’ 정도 • 녹색 값이 높고, 빨간 색 값이 낮도록 매개변수 W_*를 조정(학습) 학습 단계 테스트(추론) 단계 • 한 글자를 입력 • 글자별 확률값이 출력됨 • 이 확률분포에서 글자를 하나 샘플링 • 선택한 글자를 다음 입력 으로 사용
  • 72. 세익스피어 희곡을 학습 © 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
  • 73. 구조적 문서를 학습 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 73(Slide from Stanford CS231n 2015~2016 winter class) 입력: LaTeX 문서(16MB) HTML, XML 등과 같은 문서도 잘 학습하고 생성함
  • 74. 프로그램(code)을 학습 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 74(Slide from Stanford CS231n 2015~2016 winter class) 리눅스 소스 코드(474MB)를 학 습한 후, 유사한 C 코드를 생성
  • 75. 분석: 반복학습을 통해 성능 향상 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 75(Slide from Stanford CS231n 2015~2016 winter class)
  • 76. 분석: ‘뉴런’ (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…”
  • 77. 분석: ‘뉴런’ (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을 찾기
  • 78. 분석: ‘뉴런’ (LSTM Cell)별 활성화 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 78(Slide from Stanford CS231n 2015~2016 winter class) 입력 글자에 따라 hidden state 값이 발화에 특정 패턴을 보이는 cell을 찾기
  • 79. 분석: ‘뉴런’ (LSTM Cell)별 활성화 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 79(Slide from Stanford CS231n 2015~2016 winter class) 입력 글자에 따라 hidden state 값이 발화에 특정 패턴을 보이는 cell을 찾기
  • 80. 공개된 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
  • 81. 순환신경망으로 음악 생성하기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 81 Img source: http://yoavz.com/music_rnn/
  • 82. LSTM Realbook: Generation of Jazz 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)
  • 83. 체험해봅시다 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와 교대로 피아노를 연주하세요 (건반을 마우스로 오래 누르면 길게 소리납니다.)
  • 84. Part 3 요약  언어 모델(language model)  기존에는 n-gram 모델이 많이 쓰임  순환신경망을 이용한 언어 모델  단어 단위 언어 모델  글자 단위 언어 모델  순환신경망 언어 모델의 효용성  다양한 문서 생성  (기호 수준의) 음악 생성 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 84
  • 85. 순환신경망의 다양한 활용과 확장 Part 4 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 85
  • 86. 다양한 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 86 Visual-Auditory Sensor Fusion for Lip Reading Frequency discrimination task N-MNIST experiment. (a) Sketch of digit movement seen by the image sensor.
  • 87. 다양한 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
  • 88.  필기체 생성, 합성  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로 모델링
  • 89. 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을 다른 방식으로 구현함
  • 90. 인코더-디코더 신경망 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 90
  • 91. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 91
  • 92. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 92
  • 93. 보다 깊은 추론(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 워크샵 소개문
  • 94. 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
  • 95. 연구: 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 (메모리넷의 상세한 소개 자료는 부록 참조)
  • 96. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 96
  • 97. 체험해봅시다 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
  • 98. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 98
  • 99. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 99
  • 100. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 100
  • 101. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 101 기존 RNN 모듈(예: LSTM)의 셀은 학습 과정에서 ‘메모리’와 ‘컨트롤러’가 혼재되어 생성된다
  • 102. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 102
  • 103. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 103
  • 104. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 104
  • 105. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 105
  • 106. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 106
  • 107. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 107
  • 108. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 108
  • 109. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 109
  • 110. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 110
  • 111. 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
  • 112. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 112
  • 113. 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
  • 114. 기초 개념 이해 보조 자료 부록 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 114
  • 115. 모델은 무엇이고 왜 필요한가요?  나머지 18장의 그림은 여기에서 확인: https://www.facebook.com/JSYoo86/posts/1358264517564445 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 115
  • 116. © 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)
  • 117. bias를 벡터/행렬 연산에 포함시키기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 117(slide by 고재형) weight가 1로 고정된 추가의 입력으로 처리
  • 118. © 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/
  • 119. 인공지능: 어떻게 똑똑한 컴퓨터 시스템을 만들 것인가? © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 119 세상(world)을 인식하고 이해할 필요가 있다 기본적인 음성 및 시각 능력 언어 이해 행동 예측 컴퓨터 비전 Computer Vision 자연언어 처리/이해 Natural Language Processing / Understanding 음성 인식 Speech Recognition + 지능적인 행동을 해야 한다 지능형 에이전트 Intelligent Agent
  • 120. 꼭 딥러닝을 써야 하나요? © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 120 많은 분들이 딥러닝을 배우고 계시고 이것을 현업에 적용하고 싶어 하십니다. 그래서 모두 건너뛰고 딥러닝만 파고 계시는 분들도 많죠. 하지만 딥러닝이 꼭 다른 머신러닝들보다 좋은 성능을 내느냐 하면 그건 아닙니다. 머신러닝엔 "더 좋은" 알고리즘이란 건 없고 본인의 문제에 "더 적합한" 머신러닝이 있을 뿐이니까요. "머신러닝은 프로그래밍이 아니라 디버깅이다.“ 많은 전문가들이 처음부터 복잡한 모델을 쓰기보단 간단한 것에서 시작해 문제를 파악하고 그것을 점진적으로 해결하는 방법을 추천합니다. - 테리의 딥러닝 토크 중 (Terry Taewoong Um)
  • 121. 딥러닝, 머신러닝 교과서 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 121 For developers and engineersFor researchers (and students)
  • 122. Memory Networks 부록 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 122 (slides by Kyung-Min Kim)
  • 123. 메모리가 필요한 순환신경망 1. 메모리 네트워크 • U, W, V • 은닉 유닛들은 연속된 벡터공간에서 오래 전 데이터 정보를 저장 • 길이가 매우 긴 입력 데이터가 주어진다면 은닉 유닛 벡터는 제한된 저장 공간에 많은 입력 정보를 저장해야함 st = tanh(Uxt + Wst-1) yt‘ = softmax(Vst) input input input hidden hidden hidden output output output time  U U U W W W V V V inputhiddenoutput U W V unfold
  • 124. 예> 순환신경망으로 QA 모델 만들기 1. 메모리 네트워크 2017년은 앞으로의 산업계를 완전히 바꿔 놓을 새로운 기술이 본격 자리 잡는 한 해가 될 것이다. 앞으로 업계 변화를 주도할 기술 은 무엇일까. … 두 번째는 머신러닝(기계학습)을 통한 창조 성 강한 디자인 등장이다. 머신러닝은 학습 을 통해 사물을 구별하고 이를 바탕으로 새로운 것을 창조하는 단계에 이르렀다. 최 근 `디자인 그래프`라 불리는 프로젝트로 구현됐다. … Q. 머신러닝으로 새로운 디자인을 창조하고자 하는 프로젝트 이름은 무엇인가? QA 모델 A. 디자인 그래프 input input input hidden hidden hidden U U U W W WW input input input hidden hidden hidden U U U W W W … 문서 정보를 담고 있는 은닉 벡터 Question representation 질의 정보를 담고 있는 벡터 X 답변 생성
  • 125. 해결책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 hidden W’ W’ W’ hidden Hidden' hidden W’ W’ W’ W’ U’ U’ U’ U’ U’ U’ U’ U’ U’ 1. 메모리 네트워크
  • 126. 해결책2: 히든 유닛 벡터를 저장 1. 메모리 네트워크 2017년은 앞으로의 산업계를 완전히 바꿔 놓을 새로운 기술이 본격 자리 잡는 한 해가 될 것이다. 앞으로 업계 변화를 주도할 기술 은 무엇일까. … 두 번째는 머신러닝(기계학습)을 통한 창조 성 강한 디자인 등장이다. 머신러닝은 학습 을 통해 사물을 구별하고 이를 바탕으로 새로운 것을 창조하는 단계에 이르렀다. 최 근 `디자인 그래프`라 불리는 프로젝트로 구현됐다. … Q. 머신러닝으로 새로운 디자인을 창조하고자 하는 프로젝트 이름은 무엇인가? QA 모델 A. 디자인 그래프 input input input hidden hidden hidden U U U W W WW input input input hidden hidden hidden U U U W W W … Question representation 질의 정보를 담고 있는 벡터 X 답변 생성 RAM 저장
  • 127. 메모리 네트워크 1. 메모리 네트워크 – 질의 응답 모듈 • 스토리 (예> 문장) 선택 모듈 – 질의 q에 대해 가장 적절한 답변을 포함하고 있는 스토리 (문장) s*를 탐색 » 적절성 평가를 통해 가장 높은 점수를 받은 스토리가 선택됨 – 스토리 선택 모듈의 출력은 질의 q와 선택된 스토리 s*의 결합 » Ex> 머신러닝으로 새로운 디자인을 창조하고자 하는 프로젝트 이름은 무엇인가? 최근 `디자인 그래프 `라 불리는 프로젝트로 구현됐다. • 답변 선택 모듈 – 가능한 답변의 집합 A={ar}1…k. 중 가장 적합한 답변 a*를 선택 – 적절성 평가 함수 (scoring function) • G(x,y) ∈ [0,1] (H 함수도 동일) • G(x,y) = 𝜙 𝑥U G TUG 𝜙 𝑦(y) • H(x,y) = 𝜙 𝑥U H TUH 𝜙 𝑦(y) • U는 임베딩 행렬 * arg max ( , ) i i s s G q s * arg max ( , ) r a r a a H s a
  • 128. 메모리 네트워크의 학습: Triplet Loss • 학습되어야하는 함수 : G, H • G, H 함수: 긍정 예(s* 또는 a*)와 부정 예(sㄱ* 또는 a ㄱ*) 의 점수 차이를 𝛾이상 차이가 나게 만드는 것이 목표 • 손실값(에러값): max(0, 𝛾 − 𝐺 𝑞, 𝑠 ∗ + 𝐺 𝑞, 𝑠𝑖 ) • 긍정 예와 질의의 매치 점수가 부정 예와 질의의 매치 점수보다 𝛾이상 높을 경우 손실값은 0이 됨 • 훈련 데이터 전체에 대한 손실값: • 경사 하강법을 사용하여 파라미터 UG와 UH를 학습 1. 메모리 네트워크 * arg max ( , ) i i s s G q s * arg max ( , ) r a r a a H s a G(x,y) = 𝜙 𝑥UG TUG 𝜙 𝑦(y) H(x,y) = 𝜙 𝑥UH TUH 𝜙 𝑦(y) ෍ 𝑠𝑖 max(0, 𝛾 − 𝐺 𝑞, 𝑠 ∗ + 𝐺 𝑞, 𝑠𝑖 ) + ෍ 𝑎𝑖 max(0, 𝛾 − 𝐻 [𝑞; 𝑠 ∗ ], 𝑎 ∗ + 𝐻 [𝑞; 𝑠 ∗ ], 𝑎𝑖 )
  • 129. 1. 메모리 네트워크 신경망 메모리에 저장한 뒤 유사성 비교 신경망 메모리 네트워크의 의의