3. Neural Turing Machine (NTM) 란 [Graves+2014]
• NTM이란、외부기억장치(메모리)와 읽기/쓰기 기능을 갖춘
Neural Network
• 복사 및 분류등과 같은 알고리즘을 학습하는 것이 가능
• Neural Network 이므로 Back Propagation 으로 학습 가능
Controller
MemoryRead Head Write Head
input
3
output
NTM
메모리와 읽기/쓰기 기능도
포함하여 전체가
Neural Network !
4. 예 : NTM으로 계열 2배 복사 작업의 학습
입력계열 출력계열
0100 NTM 01000100
011 011011
110111 110111110111
10010 1001010010
학습시
4
입력계열을 2배로 복사한 계열로 만듬
입력계열과 출력계열을 학습 데이터로 NTM을 학습시키는 것이 가능
6. One-Shot Learning 란 ?
일반적인 NN의 학습
1개(또는 소수)의 예를 보여준 것만으로도 인식할 수
있도록 하도 싶다
One-Shot Learning
한번만 봐도 기억
(인간처럼!!)
6
...
많은 학습 데이터가 필요
7. One-Shot Learning 방법 : NN algorithm
학습 시 테스트 시
トリナクリ
ア
토리나쿠리아!
학습 데이터의
이미지 전체를
기억한다. 기억 중에서 가장 가까
운 이미지를 답한다.
이 접근법의 과제
• 이미지의 유사도는 어떻게 측정하면 좋을까 ?
• Nearest-Neighbor 알고리즘은 최적일까 ?
⇒ NTM을 사용하여、Nearest-Neighbor알고리즘
(보다 좋은 알고리즘) 을 공부해보자 !
ピザ 弥勒菩薩
7
8. 논문개요
• Neural Turing Machine (NTM) 을 개조한 Memory-
Augmented Neural Network (MANN)을 제안
• One-Shot Learning 을 MANN 으로 수행
• Omniglot 데이터셋으로 평가 시 고성능을 달성
8
9. Ominglot 데이터 셋이란
• 다양한 문자종류로 이루어진 이미지 데이터 셋
• 문자는 1623종류, 각 문자 이미지는 20개
• 우선 학습용과 테스트용으로 문자종류를 나눈다.
• 1200문자종류를 학습으로, 423문자종류를 테스트로 사용
9
10. 작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
• 빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
10
기억
11. 11
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
12. •
•
•
•
12
1
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
13. 1 2
오답 !
•
•
•
•
13
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
14. 1 2
오답 !2
•
•
•
•
14
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
15. 2
•
•
•
•
15
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
16. 2
•
•
•
•
16
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
17. •
•
•
•
17
3
2
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
18. 3 1
오답 !2
•
•
•
•
18
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
19. 3 1
오답 !2 1
•
•
•
•
19
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
20. 2 1
•
•
•
•
20
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
21. 2 1
•
•
•
•
21
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
22. 2 1
•
•
•
•
22
2
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
23. 2 2
정답 !2 1
•
•
•
•
23
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
24. 2 2
정답 !2 1
•
•
•
•
24
이하 50회 계속 ...
작업설정
“소수의 문제예를 본 것만으로 바로 인식이 가능”
하도록 학습시키자 !!
•
•
•
이런 일련의 프로세스를 에피소드라 부른다.
에피소드의 전반에서는 번호(답)를 랜덤하게 추정하지만,
에피소드의 후반으로 갈 수록 정답률이 올라간다.
빠르게 정답률이 올라간다 = One-Shot Learning 이 잘 된다.
기억
25. 엔피소드 작성법
1. 문자종류를 5개 선택하여、1~5까지 랜덤하게 섞는다.
2. 각 문자종류로부터 10개의 이미지를 선택한다.
3. 이러한 50개의 이미지를 랜덤하게 섞는다 :
1 episode
작업: 이미지 𝑥𝑡를보여주고、그번호(1~5)를 답하게한다.
직후에정답번호 𝑦𝑡 를보여준다.
25
...
26. 학습과 테스트의 흐름
학습 시
테스트용 에피소드는 학습
에 사용하지 않은 것으로
테스트 시
대량의 에피소드로 학습
(문자를 분류하는 방법을 학습)
アいアいうアうえおお...アお
ああはイイういははあ...イう
らむららももあむよよ...よも
에피소드 길이 =50
26
ฆ ญฆ ฆช ฆ ... คกข…
1에피소드 중에 급격하게 정답률이 상승하면,
One-Shot Learning이 잘할 수 있게 되는 것
27. 실험결과
MANN
(제안된 방법)
LSTM
(기준)
40000 에피소드 정도 학습하면、
2번째에서 80% 정도 정답률
27
• 학습방법은 MANN과 동일
• LSTM에서는 정답률이 좋지않음. 원인으로는
LSTM 셀은 과거의 데이터를 확실하게 기억
할 수 없기 때문이라고 생각된다
n-th instance = 각 라벨 문자 이미지를 n번째 볼때의 정답률
29. 실험결과 : 다른 방법과 비교
• Nearest-Neighbor 알고리즘보다도 MANN 쪽이 고성능
• 콘트롤러가 Feedforward인 MANN의 경우、 메모리는 기억
을 저장할 수 있다.
• LRUA(후술)이 없는 MANN (NTM)은 성능이 낮다.
29
30. MANN의 구조 : 개념도
( , (000100))
Memory
RReeaaddHHeeaadd
Write Head
Controller
LSTM
cell_size=200
(write weight의
계산방법은 후술)
𝒊i는 메모리 번지
30
Read Head
31. MANN의 구조 : 수식
• 읽기
kt 로부터 메모리에서
읽어내는 부분을 결정
(read weight)
i는 메모리 번지를 표시
• 쓰기 : 라벨과 이미지 쌍을 메모리에 저장한다.
write weight 계산
값 at를 write weight 에
따라 메모리에 쓰기
least used weight
최근에 사용되지 않은 메모리 영역을 나타내는
가중치 (후술)
31
32. MANN의 구조와 NTM과의 차이
• MANN 은 Least Recently Used Access (LRUA)의
기능이 있다 !!!
• MANN은 location-based addressing을 사용하지 않음.
used weight 의 계산
※ 정확히는 used weight이
작은 상위 m 개에서 값을
1로 한다
32
새로운 이미지의 정보는 아직 사용하지 않는 메모리 번지에 쓰고 싶다.
LRUA가 그것을 가능하게 하고있다. (LRUA가 없다면 안됀다)
33. 관련논문 소개 : One-Shot Learning
• Matching Network [Vinyals2016]
• 본논문 ”Meta-Learning with Memory-Augmented Neural Network” 의 후속
• Omniglot 데이터셋 One-Shot Learning에서 MANN보다도 좋은 성능을 냄.
[Lake2012]
33
• Hierarchical Bayesian Program Learning
• 필기문자모델을 디자인하고 베이지안으로 학습
34. 관련논문 소개 : Memory를 갖춘 Neural Network
34
Memory = 정보를 유지하여 나중에 꺼내는 일이 가능한 장치
Memory를 가진 장점
• 나중에 필요로 하는 정보를 안정적으로 보존가능
•
•
•
LSTM의 내부상태는 장기 보존용에 적합하지않음
복사작업 등 : [Ivo2016]
강화학습에서의 예 : [Junhyuk2016]
• 조합하고 싶은 정보를 “탁자 위에 배열하는” 것이 가능하다.
• QA 작업: [Sukhbaatar2016]
35. 관련 논문 소개 : Memory를 가진 Neural Network
•
•
메모리에서 읽어들이는 방법과 메모리에 기록하는 방법을 모두 학습
메모리의 읽기/쓰기 attention은、Hard or Soft [Caglar2016]
• Memory Network [Weston2015, Sukhbaatar2016,Felix2016]
•
•
•
입력문을 메모리에 저장하여, 질문에 답하는데 필요한 부분을 추출入力
메모리에서 읽기는 attention (가중치)를 사용(Hard or Soft)
메모리에 쓸 내용 (embedding vector)는 학습
• 쓰는 방법은 학습하지않음
• Neural Turing Machine 계
입력문
입력문
질문
응답
질문
응답
メモリ部分
35
36. 정리
36
• NTM를 응용하여、One-Shot Learning이 가능하다
• One-Shot Learning으로서 성능은 우수하나 최고는 아
니다.
• 이번에는 One-Shot Learning (Nearest-Neighbor적인
알고리즘)을 NTM으로 학습하였지만, 다른 작업에서도
유사한 아이디어를 사용하면
• 예로 active learning 등...
• 작업에 따라 、LRUA와 같은 기능을 생각할 필요가 있는 과제