Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

15,823 views

Published on

순환신경망(recurrent neural networks)에 대한 기초 개념 강의.
4시간 강의와 2시간 실습으로 구성.
RNN 체험을 위한 자료와 기본 개념 이해를 돕기 위한 부록을 추가.

Published in: Data & Analytics

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

  1. 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. 2. 목 차  Part 1: 순환신경망(RNN)의 개요  Part 2: 순환신경망의 기본 모듈과 망의 구조 만들기  Part 3: 순환신경망의 적용 사례: 언어모델을 중심으로  Part 4: 순환신경망의 다양한 활용과 확장  부록 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 2
  3. 3. 순환신경망의 개요 Part 1 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 3
  4. 4. 인공신경망(artificial neural networks) 리뷰  신경세포(뉴런)의 망으로 구성된 뇌를 모사하여 계산 모델을 구성 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 4 입력 출력 정보의 흐름(feedforward) 뉴런 신경망
  5. 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. 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. 7. 순서 데이터 모델링 사례: 말과 글을 인식하고 이해하고 대응하는 S/W © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 7 ‘Hound’ by Soundhound
  8. 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. 9. 순환신경망의 기본 구조 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 9 순환(recurrent) 연결 입력 출력 RNN 모듈 “인공 뉴런(뇌세포)”
  10. 10. 순환신경망 as API © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 10 API: 응용프로그램 인터페이스(application program interface) 입력 출력 상태(state)의 변화
  11. 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. 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. 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. 14. RNN의 다양한 적용 방법과 사례 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 14 무엇을 입력하고 출력하는지에 따라 유연하게 활용할 수 있다. 소비자의 상품평(글)이 긍정적인지 부정적인지 판별 한국어  영어 자동 번역 사진을 한 장 주면, 사진의 설명 문장을 생성 예: 블랙박스 영상을 프레임 단위로 입력받아 사고 발생여부 판별 순환신경망의 ‘기본적인‘ 설정. 매 입력마다 출력반응을 생성 오늘은 이거 하나만 알고 가셔도 충분합니다. 입력 출력 RNN 모듈
  15. 15. RNN의 다양한 적용 방법과 사례 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 15 사진을 좌에서 우로, 위에서 아래로 순서대로 훑으면서 사진 속의 물체를 인식하거나 생성 입력이 순서가 없는 고정된 모양(예: 사진)이어도, 적절한 순서에 따라 ‘처리’할 수 있다.
  16. 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. 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. 18. RNN 적용 대표 사례: 뉴럴 음성 인식기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 18 Baidu, DeepSpeech2 (2015) 하나의 딥러닝 모델로, 영어와 중국어를 모두 인식 RNN 모듈을 여러 층을 쌓아 복잡한 문제를 해결
  19. 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. 20. 구글 뉴럴 기계번역기(2016) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 20 전체 구성은 Encoder-Decoder Encoder와 Decoder는 각각 8층의 순환신경망으로 구성 순환신경망을 구성하는 기본 모듈로는 LSTM을 사용
  21. 21. RNN 적용 대표 사례: 지문을 보고 질문에 대해 답하기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 21 Memory Network: 순환신경망에 외부 메모리를 붙인 모델
  22. 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을 조합하여 이미지의 캡션을 자동으로 생성
  23. 23. 이미지 캡션 생성 모델 23
  24. 24. 이미지 캡션 생성 사례 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 24 놀라울 정도로 정확한 설명도 나오지만(윗줄), 엉뚱한 결과를 내기도 한다(하단)
  25. 25. Part 1 요약  순환신경망(RNN)은 딥러닝의 핵심 도구 중 하나  인공신경망이 순서가 있는 데이터(text, audio, video 등)를 자연스럽게 다루게 해주는 도구  언어 지능, 음성 지능, 시각 지능을 구현하는데 필수 도구  순서 데이터를 이해하고, 주석을 달며, 새로 만들어내기도 함  다른 모델과 결합하여 다중 지능을 구현하는데 기여함 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 25
  26. 26. 순환신경망의 기본 모듈과 망의 구조 만들기 Part 2 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 26
  27. 27. ‘간단한’ 수학식을 하나 살펴봅시다 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 27 x y y = wx + b 순환신경망의 기본 동작을 이해하는 데는 선형(linear) 식과 몇 가지 비선형(non-linear) 함수만 알면 충분합니다. 기울기, 가중치 weight 절편, bias 입력 출력 고차 공간을 둘로 나누는 ‘하이퍼평면’
  28. 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. 29. 시스템의 상태(state)에 대해 이해해봅시다  상태, 상태의 변화 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 29 State-transition digram
  30. 30. 시스템의 상태(state)에 대해 이해해봅시다  보통 우리는 직접 볼 수 없는 ‘숨겨진, 알려지지 않은 상태에 관심이 있습니다 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 30 • 목표: 순서대로 주어지는 관측값을 보고, ‘숨겨진 상태(hidden’ states)’를 추적하거나 학습
  31. 31. 순환신경망의 기본 개념 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 31 입력: 여러 개의 값이 벡터 형태로 일괄 전달됨 특정 시점에서 출력을 뽑는다. 예) 예측상태의 변화 (hidden) 이제까지의 강의에서 본 바와 같이 연결선(화살표)마다 ‘가중치(weight)’가 부여됨
  32. 32. 순환신경망의 기본 개념 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 32 (Slide from Stanford CS231n 2015~2016 winter class) RNN은 외부 입력과 자신의 이전 상태를 입력받아 자신의 상태를 갱신한다.
  33. 33. 순환신경망의 기본 개념 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 33 (Slide from Stanford CS231n 2015~2016 winter class) 모든 시간대에서 동일한 매개변수(parameter)를 적용!
  34. 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. 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. 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. 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. 38. 순환신경망을 이용한 언어 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 38(Slide from Stanford CS231n 2015~2016 winter class) 다음에 무슨 글자 또는 단어가 나올지 예측하는 모델 (one-hot encoding)
  39. 39. 순환신경망을 이용한 언어 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 39(Slide from Stanford CS231n 2015~2016 winter class) 다음에 무슨 글자 또는 단어가 나올지 예측하는 모델 • 출력: 각 글자별 ‘확신’ 정도 • 녹색 값이 높고, 빨간 색 값이 낮도록 매개변수 W_*를 조정(학습) 학습 단계
  40. 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. 41. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 41 이제 순환신경망의 대표 모듈인 LSTM을 살펴볼 차례입니다.
  42. 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. 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. 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. 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. 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. 47. LSTM의 동작을 순서대로 살펴보기(애니메이션) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 47 (동그라미 안의 기호는 곱하기와 더하기입니다) (Slide from Stanford CS231n 2015~2016 winter class)
  48. 48. LSTM의 동작을 순서대로 살펴보기(애니메이션) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 48 (동그라미 안의 기호는 곱하기와 더하기입니다) (Slide from Stanford CS231n 2015~2016 winter class)
  49. 49. LSTM의 동작을 순서대로 살펴보기(애니메이션) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 49 (동그라미 안의 기호는 곱하기와 더하기입니다) (Slide from Stanford CS231n 2015~2016 winter class)
  50. 50. LSTM의 동작을 순서대로 살펴보기(애니메이션) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 50 (동그라미 안의 기호는 곱하기와 더하기입니다) (Slide from Stanford CS231n 2015~2016 winter class)
  51. 51. LSTM의 동작 이해 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 51(Slide from Stanford CS231n 2015~2016 winter class)
  52. 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. 53. RNN vs. LSTM © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 53(Slide from Stanford CS231n 2015~2016 winter class)
  54. 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. 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. 56. 기본 RNN의 또다른 표현 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 56 𝑋𝑡 ℎ 𝑡−1 ℎ 𝑡 𝑌𝑡 Simple RNN
  57. 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. 58. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 58 여기까지 순환신경망의 기본 모듈을 살펴보았습니다. 이제 기본 모듈로 어떤 망을 구성하고 어떻게 쓸 수 있는지 살펴보겠습니다 .
  59. 59. RNN의 다양한 적용 방법과 사례(다시보기) © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 59 무엇을 입력하고 출력하는지에 따라 유연하게 활용할 수 있다. 소비자의 상품평(글)이 긍정적인지 부정적인지 판별 한국어  영어 자동 번역 사진을 한 장 주면, 사진의 설명 문장을 생성 예: 블랙박스 영상을 프레임 단위로 입력받아 사고 발생여부 판별 순환신경망의 ‘기본적인‘ 설정. 매 입력마다 출력반응을 생성 입력 출력 RNN 모듈 (Slide from Stanford CS231n 2015~2016 winter class)
  60. 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. 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. 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. 63. Part 2 요약  순환신경망의 기본 구성 모듈  Vanilla RNN, LSTM, GRU  장단기 메모리(LSTM)와 GRU의 내부 동작  ‘게이트’를 이용하여 입력값의 반영 과정과 상태의 변화, 출력 조정  순서 데이터에서 ‘long-term dependency’를 잘 반영하는 모델이 좋은 모델!  순환신경망의 기본 모듈로 구성하는 다양한 망의 구조  양방향, 다층/딥 구조, 인코더-디코더 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 63
  64. 64. 순환신경망의 적용 사례: 언어모델을 중심으로 Part 3 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 64
  65. 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. 66. (확률 기반) 언어 모델  목표: 문장별 확률을 계산  왜?  어떻게?  문장에서 단어 또는 글자의 순서에 대한 분포를 이용  보통 다음 단어 예측하는 문제로 처리 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 66 (contents from https://web.stanford.edu/class/cs124/lec/languagemodeling.pdf)
  67. 67. 언어 모델: n-그램 기반 분석 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 67 https://books.google.com/ngrams
  68. 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. 69. RNN의 ‘마법같은’ 성능 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 69 Stanford Computer Vision Lab (Prof. Fei-Fei Li) ImageNet 구축, 대회 주관
  70. 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. 71. 순환신경망을 이용한 언어 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 71 (Slide from Stanford CS231n 2015~2016 winter class) 기존에는 단어 단위 언어 모델 적용  글자 단위 RNN 언어 모델의 놀라운 성능 • 출력: 각 글자별 ‘확신’ 정도 • 녹색 값이 높고, 빨간 색 값이 낮도록 매개변수 W_*를 조정(학습) 학습 단계 테스트(추론) 단계 • 한 글자를 입력 • 글자별 확률값이 출력됨 • 이 확률분포에서 글자를 하나 샘플링 • 선택한 글자를 다음 입력 으로 사용
  72. 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. 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. 74. 프로그램(code)을 학습 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 74(Slide from Stanford CS231n 2015~2016 winter class) 리눅스 소스 코드(474MB)를 학 습한 후, 유사한 C 코드를 생성
  75. 75. 분석: 반복학습을 통해 성능 향상 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 75(Slide from Stanford CS231n 2015~2016 winter class)
  76. 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. 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. 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. 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. 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. 81. 순환신경망으로 음악 생성하기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 81 Img source: http://yoavz.com/music_rnn/
  82. 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. 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. 84. Part 3 요약  언어 모델(language model)  기존에는 n-gram 모델이 많이 쓰임  순환신경망을 이용한 언어 모델  단어 단위 언어 모델  글자 단위 언어 모델  순환신경망 언어 모델의 효용성  다양한 문서 생성  (기호 수준의) 음악 생성 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 84
  85. 85. 순환신경망의 다양한 활용과 확장 Part 4 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 85
  86. 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. 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. 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. 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. 90. 인코더-디코더 신경망 모델 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 90
  91. 91. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 91
  92. 92. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 92
  93. 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. 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. 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. 96. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 96
  97. 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. 98. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 98
  99. 99. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 99
  100. 100. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 100
  101. 101. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 101 기존 RNN 모듈(예: LSTM)의 셀은 학습 과정에서 ‘메모리’와 ‘컨트롤러’가 혼재되어 생성된다
  102. 102. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 102
  103. 103. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 103
  104. 104. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 104
  105. 105. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 105
  106. 106. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 106
  107. 107. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 107
  108. 108. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 108
  109. 109. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 109
  110. 110. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 110
  111. 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. 112. © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 112
  113. 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. 114. 기초 개념 이해 보조 자료 부록 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 114
  115. 115. 모델은 무엇이고 왜 필요한가요?  나머지 18장의 그림은 여기에서 확인: https://www.facebook.com/JSYoo86/posts/1358264517564445 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 115
  116. 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. 117. bias를 벡터/행렬 연산에 포함시키기 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 117(slide by 고재형) weight가 1로 고정된 추가의 입력으로 처리
  118. 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. 119. 인공지능: 어떻게 똑똑한 컴퓨터 시스템을 만들 것인가? © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 119 세상(world)을 인식하고 이해할 필요가 있다 기본적인 음성 및 시각 능력 언어 이해 행동 예측 컴퓨터 비전 Computer Vision 자연언어 처리/이해 Natural Language Processing / Understanding 음성 인식 Speech Recognition + 지능적인 행동을 해야 한다 지능형 에이전트 Intelligent Agent
  120. 120. 꼭 딥러닝을 써야 하나요? © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 120 많은 분들이 딥러닝을 배우고 계시고 이것을 현업에 적용하고 싶어 하십니다. 그래서 모두 건너뛰고 딥러닝만 파고 계시는 분들도 많죠. 하지만 딥러닝이 꼭 다른 머신러닝들보다 좋은 성능을 내느냐 하면 그건 아닙니다. 머신러닝엔 "더 좋은" 알고리즘이란 건 없고 본인의 문제에 "더 적합한" 머신러닝이 있을 뿐이니까요. "머신러닝은 프로그래밍이 아니라 디버깅이다.“ 많은 전문가들이 처음부터 복잡한 모델을 쓰기보단 간단한 것에서 시작해 문제를 파악하고 그것을 점진적으로 해결하는 방법을 추천합니다. - 테리의 딥러닝 토크 중 (Terry Taewoong Um)
  121. 121. 딥러닝, 머신러닝 교과서 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 121 For developers and engineersFor researchers (and students)
  122. 122. Memory Networks 부록 © 2017, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 122 (slides by Kyung-Min Kim)
  123. 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. 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. 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. 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. 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. 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. 129. 1. 메모리 네트워크 신경망 메모리에 저장한 뒤 유사성 비교 신경망 메모리 네트워크의 의의

×