논문 링크: Neural Turing Machines
논문 정보
| 항목 | 내용 |
|---|---|
| 출판 시점 | 2014년 |
| 저자 | Alex Graves, Greg Wayne, Ivo Danihelka |
| 주제 | Memory-augmented neural network, differentiable memory |
핵심 아이디어
Neural Turing Machine은 neural network에 외부 memory를 붙인 구조이다. Controller는 RNN처럼 동작하고, 별도의 memory matrix에 대해 differentiable read/write operation을 수행한다.
Neural Turing Machine은 attention을 사용해 memory 위치를 부드럽게 선택함으로써, discrete memory access를 gradient descent로 학습 가능하게 만든다.
읽기와 쓰기는 특정 address 하나를 hard하게 고르는 대신, memory location에 대한 weight distribution을 사용한다. 따라서 전체 시스템을 end-to-end로 학습할 수 있다.
왜 중요한가
이 논문은 attention을 sequence alignment뿐 아니라 memory access mechanism으로 사용할 수 있음을 보여준다. Copy, associative recall, sorting 같은 algorithmic task에서 일반 RNN보다 더 잘 일반화하는 모습을 보였다.
수식으로 보는 핵심
NTM의 memory는 matrix다.
Read head는 memory location에 대한 weight vector 를 만든다. 읽기 결과는 memory row의 weighted sum이다.
Write는 erase vector 와 add vector 로 표현된다.
Content-based addressing은 key 와 memory row의 cosine similarity로 weight를 만든다.
NTM의 핵심 수식은 discrete address를 직접 고르지 않고, memory 위치에 대한 확률분포 로 read/write를 미분 가능하게 만든다는 점이다.
그래서 copy, associative recall 같은 algorithmic task도 input-output example만으로 gradient descent 학습이 가능해진다.
왜 외부 Memory가 필요한가
일반 RNN은 hidden state 하나에 과거 정보를 압축한다. 짧은 sequence나 단순 pattern에는 충분할 수 있지만, copy, sorting, associative recall처럼 많은 정보를 저장하고 다시 꺼내야 하는 algorithmic task에서는 hidden state만으로 부족하다.
NTM은 neural network에 읽고 쓸 수 있는 외부 memory matrix를 붙여 이 문제를 해결하려 한다.
Controller와 Memory
Controller는 LSTM이나 feedforward network가 될 수 있다. Controller는 매 step마다 read head와 write head의 parameter를 출력한다. Memory는 개의 slot과 각 slot의 vector로 이루어진 matrix이며, head는 memory location에 대한 weight distribution을 만든다.
Read는 memory row들의 weighted sum이다. Write는 erase vector와 add vector를 이용해 여러 위치를 부드럽게 수정한다.
NTM의 핵심 trick은 memory address를 discrete index가 아니라 differentiable weight distribution으로 표현하는 것이다.
Addressing Mechanism
NTM은 content-based addressing과 location-based addressing을 결합한다. Content-based addressing은 key와 비슷한 memory content를 찾는다. Location-based addressing은 이전 head 위치에서 조금 이동하거나, sharpen 연산으로 분포를 더 뾰족하게 만든다.
이 조합 덕분에 NTM은 associative memory처럼 내용으로 찾을 수도 있고, tape head처럼 순차적으로 이동할 수도 있다.
실험의 의미
Copy task에서 NTM은 입력 sequence를 memory에 저장한 뒤 다시 출력하는 전략을 배울 수 있다. Associative recall에서는 key-value처럼 일부 item을 보고 다음 item을 찾아내는 행동을 보인다. 이 결과는 network가 단순 pattern matching을 넘어 절차적인 memory access를 배울 수 있음을 시사한다.
한계
NTM은 학습이 까다롭고, memory access가 soft하기 때문에 긴 sequence에서 분포가 흐려질 수 있다. 또 실제 program처럼 명확한 discrete algorithm을 학습한다고 보기는 어렵다. 이후 Differentiable Neural Computer는 memory allocation과 temporal link를 추가해 일부 한계를 보완했다.
읽을 포인트
- content-based addressing과 location-based addressing
- read head, write head, erase/add vector
- differentiable memory가 algorithm learning에 주는 의미
- Differentiable Neural Computer와 memory-augmented model 계열로 이어지는 흐름
정리
Neural Turing Machine은 neural network와 외부 memory를 end-to-end로 결합하려는 중요한 시도다. 현대 Transformer의 attention도 넓게 보면 differentiable memory read로 해석할 수 있기 때문에, 이 논문은 memory-augmented model의 역사적 출발점으로 읽을 가치가 있다.