원래 Episodic Memory in Lifelong Language Learning 이라는 딥마인드에서 NIPS2019에 제출한 논문을 보려다 참고논문으로 된 본 논문을 보고는 이 개념을 먼저 정리하고 넘어가야 되겠다 싶어 보게 되었다.

문제의식


본 논문은 아래 그림과 같은 문제를 푸는 모델을 구현할 수 있는 방법에 대한 고민으로부터 시작한다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3aaee546-1466-4d8c-ae9e-027999bef978/Untitled.png

숫자 이미지(MNIST같은)와 세모/별표 같은 이미지를 주고 두개를 더한 값을 맞추라는 문제다. 이런 Observation 데이터를 수만 개 주고 나서 맞추라는 것이 아니다. Few-shot learning이 가능한가를 묻는 것이다.

이런 문제를 풀기 위해 다음 3가지 인지적 능력이 필요하다고 정리한다.

  1. Meta-Learning(Learning to Learn)

    이것은 평범한 지도학습으로는 달성할 수 없다. train-set과 test-set의 분포가 같고, train-set이 전체 prior를 충분히 대표할 수 있으며, 모델이 train-set을 충분히 generalize한다는 가정이 있어야 성립하는 지도학습의 논리와 달리, 이런 문제에서는 train단계에서 거의(혹은 아예) 보지 못한 데이터에 대해서도 일반화를 통한 추론이 가능해야 한다.

  2. 과거 경험의 기억

    메모리를 어떻게 구현할 것인가? LSTM 으로 충분할까?

    얼마나 많은 기억들을 저장해야 충분할까? 일정 이상 비슷한 기억들을 중복 저장하는 일이 없도록 하려면 어떻게 해야 할까?

  3. 연역적 논리추론

저장된 기억(memory)들끼리, 그리고 기억들과 현재 관측(input) 사이의 유사도를 어떻게 측정할 수 있을까? 과연 어떤 기억과의 연관성이 현재의 새로운 input을 해석하는데 더 도움이 될 수 있을지 어떻게 알 수 있을까?

본 논문의 솔루션은 다음과 같다.

  1. 어떤 기억을 저장할지 결정하기 위해 surprise based signal를 바탕으로 결정하는 간단한 memory controller
  2. 확장 메모리와 현재 input 사이의 attention 메커니즘
  3. 메모리 관리에 backprop이 사용되지 않는(그래서 computationally efficient한 - 이점이 기존 memory network들과 차별화되는) 방식으로 adaptive posterior learning