← Back to Blog

[Paper Review] Neural Turing Machines

paper review > deep learning

2026-07-093 min read

#paper-review #deep-learning #memory #attention #neural-turing-machine

논문 링크: 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다.

MtRN×MM_t \in \mathbb{R}^{N \times M}

Read head는 memory location에 대한 weight vector wtw_t를 만든다. 읽기 결과는 memory row의 weighted sum이다.

rt=i=1Nwt(i)Mt(i)r_t = \sum_{i=1}^{N} w_t(i)M_t(i)

Write는 erase vector ete_t와 add vector ata_t로 표현된다.

M~t(i)=Mt1(i)[1wt(i)et]\tilde{M}_t(i) = M_{t-1}(i)\left[1 - w_t(i)e_t\right] Mt(i)=M~t(i)+wt(i)atM_t(i) = \tilde{M}_t(i) + w_t(i)a_t

Content-based addressing은 key ktk_t와 memory row의 cosine similarity로 weight를 만든다.

K(kt,Mt(i))=ktMt(i)ktMt(i)K(k_t, M_t(i)) = \frac{k_t \cdot M_t(i)}{\lVert k_t \rVert \lVert M_t(i) \rVert}

NTM의 핵심 수식은 discrete address를 직접 고르지 않고, memory 위치에 대한 확률분포 wtw_t로 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는 NN개의 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를 추가해 일부 한계를 보완했다.

읽을 포인트

정리

Neural Turing Machine은 neural network와 외부 memory를 end-to-end로 결합하려는 중요한 시도다. 현대 Transformer의 attention도 넓게 보면 differentiable memory read로 해석할 수 있기 때문에, 이 논문은 memory-augmented model의 역사적 출발점으로 읽을 가치가 있다.