11. Long-Short Term Memory (LSTM)
10
• 게이트에 의해 정보를 선택적으로 통과
• 메모리셀에 의해 오랜 시간 기억이 가능
Gated Recurrent Unit도
자주 사용됨
f
x
i g
x
+
tanh
o
x
f
x
i g
x
+
tanh
o
x
@ time t
ht-1
xt
xt+1
ht ht+1
ct-1
Cell state
ct ct+1
@ time t+1
입력 또는 하부층 출력
전시점(t-1)
cell 데이터
전시점(t-1)
출력
출력
13. 12
종래의 접근법
품사 태그 붙이기
DT CD JJ NNVNN
The auto maker sold 1000 cars last year.입력
출력
품사 태크(45종류)
• DT: 한정사 (the, a, an, ...)
• N: 명사
• V: 동사
• CD: 숫자
• JJ: 형용사
14. 13
특징벡터 : 고차원,Sparse,binary
The auto maker sold ...
1
0
0
1
...
0
1
w0 = ‘maker’
w1 = ‘sold’
W-1 = ‘auto’
w-1 w0 w1
특징량
• w0, w1, w-1
• w0 의 문자n-gram
• w1 의 문자 n-gram
• w2 의 문자 n-gram
• 앞에는 대문자
• 문장내에서의
단어위치
Etc…
106~ 109
종래의 접근법
품사 태그 붙이기
15. 14
단어 콘볼루션 벡터
VB
The auto maker sold ...
w-1 w0 w1
뉴럴넷
특징량을 자동적으로 학습
품사 태그 붙이기
뉴럴넷
16. 15
뉴럴넷
특징벡터: 저차원,dense
The auto maker sold ...
w-1 w0 w1
특징량
랜덤하게 초기화
101~ 102
1.1
-0.5
-0.1
...
3.7
-2.1 자동적으로 학습
품사 태그 붙이기
17. 기계번역
16
(종래방법) 문구 기반 통계적 기계번역
• 【학습】 문구의 얼라이먼트(대응관계)와 번역모델의
점수를 결정.
• 【디코드】 번역모델의 점수와 언어 모델의 점수를
고려하여 최적인 번역을 결정.
내일은 영어를 공부한다
? ? ?
3.2 1.45.1
오늘은 중국어를 공부한다
18. 17
RNN에 의한 기계번역의 모델화
A B C D X Y Z
A B C D <eos> X Y Z
<eos>X Y Z
Sutskever et al., “Sequence to Sequence Learning with Neural Networks”, Arxiv, 2014
기계번역
19. 18
어텐션(Attention)에 기반한 RNN
A B C D <eos> X Y Z
<eos>X Y Z
어디에서 「주의」해서 번역할까를 학습
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
기계번역
20. 19
A B C D <eos> X Y Z
<eos>X Y Z
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
어텐션(Attention)에 기반한 RNN
어디에서「주의」해서 번역할까를 학습
기계번역
21. 20
A B C D <eos> X Y Z
<eos>X Y Z
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
어텐션(Attention)에 기반한 RNN
어디에서「주의」해서 번역할까를 학습
기계번역
22. 21
A B C D <eos> X Y Z
<eos>X Y Z
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
어텐션(Attention)에 기반한 RNN
어디에서「주의」해서 번역할까를 학습
기계번역
23. 22
자동적으로 학습되는 어텐션의 예
어텐션 모델에 의하여 단어와
단어 사이의 대응관계
(얼라이먼트)를 줄 필요가 생김.
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
기계번역
24. 자동요약
23
어텐션형 RNN에 기반한 요약
Rush et al., “A Neural Attention Model for Sentence Summarization”, EMNLP, 2015
russian defense minister ivanov called sunday for the
creation of a joint front for combating global terrorism
russia calls for joint front against terrorism
입력(원문)
출력(요약)
• Beam search에 의해 최적인 요약문을 생성
25. 언어모델
24
<s> A cat sofa
A cat
…
…is </s>
• 문장(단어열)의 자연스러움을
점수화하는 모델
• 현재까지의 단어열로부터
다음의 단어를 예측
→ 관측데이타에 높은 점수가
부여되게끔 학습
• RNN (with LSTM, GRU) 이 주류
27. 26
• 계층적Softmax를 사용하는 방법 [Morin+ 2005]
• 샘플링에 기반한 방법 [Ji+ 2016]
• Softmax함수와 유사한 별도의 함수를 사용하는 방법
• Sparsemax [Martins+ 2016]
• Spherical softmax [Vincent+ 2015]
• Self-normalization [Andreas and Klein 2015]
계산량을 줄이거나
작업정도를 높이기
위해서
Softmax문제
단어를 출력하는 계열 모델은 출력층의 계산이 부담
28. Softmax문제(Vincent 방법)
27
Vincent et al., “Efficient Exact Gradient Update for training Deep Networks with Very Large
Sparse Targets”, Arxiv, 2014
W를 명시적으로 관리하지 않음
WD
d
D: 어휘수
29. 28
Vincent et al., “Efficient Exact Gradient Update for training Deep Networks with Very Large
Sparse Targets”, Arxiv, 2014
수백배의 고속화가 실현가능함
Softmax문제(Vincent 방법)
30. Softmax문제 결론
29
• 기본적으로는 학습 시 계산량을 줄이는 방법
• 실제 Task시의 계산량을 줄이는 방법은 앞으로의 과제
• 계층적Softmax를 사용하는 방법 [Morin+ 2005]
• 샘플링에 기반한 방법 [Ji+ 2016]
• Softmax함수와 유사한 별도의 함수를 사용하는 방법
• Sparsemax [Martins+ 2016]
• Spherical softmax [Vincent+ 2015]
• Self-normalization [Andreas and Klein 2015]
31. Lateral Network
30
얇고 넓은 네트웍 구조를 사용해서 언어모델을 고속화
Devlin et al., “Pre-Computable Multi-Layer Neural Network Language Models”, EMNLP, 2015
일반적인 네트웍 Lateral Network
32. Lateral Network
31
Devlin et al., “Pre-Computable Multi-Layer Neural Network Language Models”, EMNLP, 2015
• 미리 행렬곱 계산을
해놓고, 결과를 기억해
놓음 (pre-computation)
• 학습 시에는 학습 시에는
변수가 update되므로
사용할 수 없으나, Task시
대폭적인 고속화가 됨.
얇고 넓은 네트웍 구조를 사용해서 언어모델을 고속화
33. 사진으로부터 설명문을 생성
32
Generates Image Description with RNN
Karpathy et al., “Deep Visual-Semantic Alignments for Generating Image Descriptions”, CVPR,
2015
• 사진으로부터 영역CNN
(RCNN)으로 영역의
특징량을 학습
• 사진의 설명문은 RNN으로
만듬
34. 계열모델링 : 결론
33
• 많은 언어처리 Task는 계열모델링 문제로 해결 가능
• 현재는 RNN + LSTM + Attention 을 사용하는 방법이 일반적임
• 출력층의 차원이 크기 때문에 Softmax의 계산을 어느 정도
효율화하는가가 앞으로의 과제
37. 구문해석(의존구조)
36
Chen and Manning, “A Fast and Accurate Dependency Parser using Neural Networks”, ACL, 2014
Feedforward 네트웍에 의한 Shift-reduce 해석
• Shift-reduce해석의 각 action에 대응하는 점수계산을 NN으로
수행
• 해석 알고리즘은 종래와 동일하지만, 조합되는 특징량의
설계가 필요하지 않음.
38. 37
Pei et al., “An Effective Neural Network Model for Graph-based Dependency Parsing”, ACL, 2015
동적계획법에 기반한 해석(Eisner알고리즘)
• Eisner알고리즘(다음
슬라이드)의 점수계산을
NN으로 수행
• SHift-reduce의 경우와
같이 알고리즘은 종래와
동일하지만, 조합되는
특징량의 설계가 불필요
구문해석(의존구조)
44. 43
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
45. 44
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
46. 45
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
47. 46
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
48. 47
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
49. 48
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
50. 49
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
51. 50
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
52. 51
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
53. 52
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
54. 53
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
55. 54
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
56. 55
She read a short novel.
0 1 2 3 4
(참고)Eisner’s Algorithm
57. 구문해석(구구조)
56
Dyer et al., “Recurrent Neural Network Grammars”, arXiv, 2016
LSTM에 의한 Shift-reduce해석
• Top-down으로 구구조 tree를 생성하는 LSTM모델을 제안
• 영어 WSJ로 F값 92.4(state-of-the-art)
58. 57
Tree구조의 선형화(linearization)
Vinyals et al., “Grammar as a Foreign Language”, Arxiv, 2015
• Tree구조를 추정하는 문제를 계열모델링(3층LSTM)으로 해결
• 품사태그를 사용하지 않는 쪽이 정확도가 높다 (1pt)
(기존방법에서는 품사태그의 정보가 없으면 정확도가 크게 저하)
구문해석(구구조)
59. 58
Vinyals et al., “Grammar as a Foreign Language”, Arxiv, 2015
• 모델이 부정확한 Tree구조를 출력하는 비율 1.5%(의외로 작음)
• Attention을 넣지 않으면 정확도가 크게 저하
• 최종적으로 기존 방법과 거의 비슷한 결과
Tree구조의 선형화(linearization)
구문해석(구구조)
60. Tree 구조 모델링 : 결론
59
• 언어의 구문해석에서는 Tree구조를 출력하는 것이 목적
• 기존 동적계획법, Shift-reduce법에 기반한 알고리즘의 경우,
점수함수를 뉴럴넷으로 바꿈. → (조합해서)특징량의
설계가 불필요하게 됨.
• Tree구조의 선형화에 의해 계열모델링의 기술을 그대로
사용하는 방법과 기존과 동일형태 Tree구조의 학습을 직접
수행하는 방법도 있음.
62. 61
질의응답
Hermann et al., “Teaching Machines to Read and Comprehend”, Arxiv, 2015
독해문제의 자동응답
• CNN으로부터 데이터 수집
• Bi-directional LSTM
63. 62
Hermann et al., “Teaching Machines to Read and Comprehend”, Arxiv, 2015
• Attention의 예
질의응답
독해문제의 자동응답
64. 63
Facebook bAbi Task
• Facebook이 개발한 질의응답 Task
• Task 1 부터 Task 20 까지 있음
• “기계가 언어이해를 할 수 있는가”를 평가하기 위한 데이터셋
(인간은 100% 정확히 답한다고 기대하고
Weston et al., “Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks”, arXiv,
2015
65. 64
Facebook bAbi Task
Weston et al., “Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks”, arXiv,
2015
• 가장 어려운 Task
66. 65
Dynamic Memory Networks
Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”,
arXiv, 2015
• 입력모듈:
입력문(또는 문장)을 벡터로
변환
• 질문모듈:
질문문을 벡터로 변환
• 에피소드 기억모듈:
입력문(과 질문문)을 순서대로 보면서,입력의 어느 부분에
주목할까 ?(Attention)를 결정하여, 기억벡터를 만들어 나감.
이것을 몇번 반복
• 응답모듈: 응답을 만듬
67. 66
Dynamic Memory Networks
Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”,
arXiv, 2015
68. 67
Dynamic Memory Networks
Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”,
arXiv, 2015
• 17: Positional Reasoning,
19: Path Finding 은 어려움
• 대체로 정확함
→ 좀더 어려운 문제가 필요
69. 68
Xiong et al., “Dynamic Memory Networks for Visual and Textual Question Answering”, arXiv,
2016
Dynamic Memory Networks
DMN for Visual QA
CNN으로 사진으로부터
특징벡터를 만듬
70. 69
의미해석 + Visual QA
Andreas et al., “Learning to Compose Neural Networks for Question Answering”, NAACL, 2016
(Best Paper Award)
Visual QA
71. 70
Andreas et al., “Learning to Compose Neural Networks for Question Answering”, NAACL, 2016
(Best Paper Award)
1. 질문문을 해석
2. 대응하는
뉴럴넷으로 변환
3. 지식 데이터
베이스로 응답을
질의
Visual QA
의미해석 + Visual QA
73. 72
계산 그래프
계산그래프
A, B: 변수행렬
x, y: 데이터 벡터
Merlin.jl에 의한 실행 예
>> x = Var()
>> y = Var()
>> A = Var(rand(8,5))
>> B = Var(rand(8,5))
>> z = A*x + B*y
>> f = Graph(z)
>> fx = f(rand(8,3),rand(8,3))
>> backward!(fx)
74. 73
계산그래프의 최적화
• 중간 object를 만들지 않고 한번에 계산하는 쪽이 빠름.
gemm!
BLAS에 의한 in-place연산
75. 74
• Pre-computation:
변수가 고정된 Task시에 유효
W
단어
embeddings
The auto maker ...
X
concat
x1
W
1
x2
W
2
한번 계산해서 기억해 놈
별도로 계산해서
Cache함
계산그래프의 최적화
76. 오늘의 데모
75
딥러닝에 의한 언어해석(Simple version)
https://github.com/hshindo/Merlin.jl 에 링크가 있음
77. 76
in getting their money back
... ... ... ...
g e t t i n gi n b a c k
... ...
... ... ... ...
문장레벨
CNN
특징벡터
단어레벨
CNN
CNN based POS-Tagging [Santos+ 14]
78. g e t t i n g
10 dim.
<s> <e>
CNN based POS-Tagging [Santos+ 14]
79. g e t t i g
... ... ... ...
max-pooling
10 dim.
max
n<s> <e>
문자열로부터
중요한 특징을 추출
CNN based POS-Tagging [Santos+ 14]
80. 79
Mini-batch화
• 언어 데이터는 계열길이가 가변적
• 모델에 따라서 mini-batch화(복수 샘플을 묶어서
처리함으로써 고속화)가 어려운 경우도 있음
• 바로 전의 품사 Tagger에서는 문자레벨의 CNN과
단어레벨의 CNN이 계층적으로 결합되어
있으므로, mini-batch화가 어려움.
• CPU의 실행에서는 속도의 차가 발생