최근의 발전에도 불구하고, 기억 증강 심층 신경망은 특히 드문 사건을 기억하는 데 있어 평생 및 원샷 학습에 관한 한 여전히 제한적이다. 우리는 딥 러닝에 사용하기 위한 대규모 수명 메모리 모듈을 제시한다. 모듈은 효율성을 위해 가장 가까운 이웃 알고리즘을 활용하므로 큰 메모리 크기로 확장된다. 가장 가까운 이웃 쿼리를 제외하고 모듈은 완전히 차별화되고 추가 감독 없이 종단 간 훈련을 받는다. 이것은 평생 동안, 즉 훈련 중에 재설정할 필요 없이 작동한다. 우리의 메모리 모듈은 감독된 신경망의 모든 부분에 쉽게 추가될 수 있다. 다용성을 보여주기 위해 이미지 분류에서 테스트된 간단한 컨볼루션에서 심층 시퀀스 간 및 반복 컨볼루션 모델에 이르기까지 여러 네트워크에 추가한다. 모든 경우에, 향상된 네트워크는 평생 원샷 학습을 기억하고 수행할 수 있는 능력을 얻는다. 우리 모듈은 과거에 수천 개의 단계에서 보여진 훈련 예를 기억하고 있으며, 그것으로부터 성공적으로 일반화할 수 있다. 우리는 옴니글롯 데이터 세트에 대한 원샷 학습을 위한 새로운 최첨단 기술을 설정하고 대규모 기계 번역 작업에 대한 반복 신경망에서 life-long 원샷 학습을 처음으로 시연한다.
기계 학습 시스템은 컴퓨터 비전(Krizhevsky et al., 2012)에서 음성 인식(Hinton et al., 2012) 및 기계 번역(Sutskever et al., 2014; Bahdanau et al., 2014; Cho et al., 2014)에 이르기까지 많은 영역에서 성공적이었다. 신경 기계 번역(NMT)은 매우 성공적이어서 일부 언어 쌍의 경우 평균적으로 인간 번역기의 품질에 접근한다(Wu et al., 2016). 하지만 평균적으로 단어들이 중요하다. 풍부한 훈련 데이터에서 문장이 비슷할 때 번역이 정확할 것이다. 그러나 도스토예프스키(독일어로 도스토예프스키)와 같은 희귀한 단어를 접하게 되면 많은 모델들이 실패할 것이다. 도스토예프스키의 정확한 독일어 번역은 모델이 번역을 충분히 학습할 수 있는 훈련 데이터에 충분히 나타나지 않는다.
이 유명한 러시아 작가에 관한 더 많은 예시 문장이 결국 훈련 데이터에 추가될 수도 있지만, 다른 종류의 희귀 단어 또는 희귀 사건들이 많이 있다. 이것은 현재의 딥 러닝 모델의 일반적인 문제를 보여준다. 훈련 데이터를 확장하고 이러한 희귀하거나 새로운 이벤트를 처리하도록 다시 훈련해야 한다. 반면에, 인간은 종종 하나의 예를 통해 평생 동안 배운다. 우리는 다양한 신경망에서 원샷 학습을 가능하게 하는 평생 메모리 모듈을 제시한다. 우리의 메모리 모듈은 키-값 쌍으로 구성된다. 키는 신경망의 선택된 계층의 활성화이며, 값은 주어진 예에 대한 실측 목표이다. 이러한 방식으로, 네트워크가 훈련됨에 따라, 메모리가 증가하고 더 유용해집니다. 결국 유사한 활성화로 과거 데이터의 지식을 활용하는 예측을 제공할 수 있습니다. 새로운 예가 주어지면, 네트워크는 그것을 메모리에 쓰고, 그 예가 단 한 번만 제시되었더라도 나중에 그것을 사용할 수 있다. 장기 기억력을 갖는 것에는 많은 장점이 있다. 원샷 학습은 그 자체로 바람직한 속성이며, 우리가 아래에서 보여줄 것처럼, 일부 작업은 그것 없이는 간단히 해결할 수 없다. 번역과 같은 대규모 훈련 세트가 있는 실제 작업도 장기 기억의 혜택을 받을 수 있다. 마지막으로, 기억은 훈련 예시로 거슬러 올라갈 수 있기 때문에, 모델이 내리는 결정을 설명하는 데 도움이 될 수 있으며, 따라서 모델의 이해도를 향상시킬 수 있다. 대부분의 딥 러닝 평가는 평균 성능에 초점을 맞추고 원샷 구성 요소가 없기 때문에 평생 원샷 학습 모델의 성능을 측정하는 방법은 즉시 명확하지 않다. 따라서 우리는 메모리 모듈이 실제로 작동한다는 것을 보여주기 위해 몇 가지 방법으로 평가한다.
(1) 우리는 명시적인 원샷 학습 평가를 가진 유일한 데이터 세트인 잘 알려진 원샷 학습 작업 Omniglot을 평가한다. 이 데이터 세트는 작고 모듈의 평생 학습 능력의 혜택을 받지 못하지만, 우리는 여전히 최고의 이전 결과를 능가하고 새로운 최첨단 기술을 설정한다.
(2) 우리는 평생 원샷 학습을 필요로 하는 합성 작업을 고안한다. 이 작업에서 표준 모델은 잘 작동하지 않지만 우리 모델은 잘 해결할 수 있어 장점을 보여준다.
(3) 마지막으로, 우리는 평생 원샷 학습 모듈을 가진 영어-독일어 번역 모델을 훈련시킨다. 평균적으로 매우 우수한 성능을 유지하고 있으며 원샷 학습도 가능하다. 질적인 측면에서, 우리는 그것이 도스토예프스키와 같은 드물게 발생하는 단어들을 번역할 수 있다는 것을 발견했다. 정량적 측면에서, 우리는 평가 전에 관련 번역을 보여줌으로써 생성된 번역에 대한 BLEU 점수를 크게 높일 수 있음을 알 수 있다.
우리의 메모리는 메모리 키의 행렬 K, 메모리 값의 벡터 V, 메모리에 저장된 항목의 age를 추적하는 추가 벡터 A로 구성된다. 키는 키 크기의 임의 벡터일 수 있으며, 메모리 값은 클래스 또는 토큰 ID를 나타내는 단일 정수라고 가정한다. 메모리 크기의 메모리를 삼중으로 정의한다.
메모리 쿼리는 우리가 정규화된 것으로 가정하는 키 크기의 벡터이다. 쿼리 q가 주어지면, 우리는 q로 점 곱을 최대화하는 키 중 하나로 q의 가장 가까운 이웃을 정의한다.
키가 정규화되었기 때문에, 위의 개념은 코사인 유사성과 관련하여 가장 가까운 이웃에 해당한다. 우리는 또한 NNk(q,M)를 나타내는 가장 가까운 이웃을 찾기 위해 그것의 자연스러운 확장을 사용할 것이다. 실험에서 우리는 항상 k = 256개의 가장 가까운 이웃들의 집합을 사용했다.
쿼리 q가 주어졌을 때, 메모리 M = (K, V, A)는 가장 가까운 이웃을 계산합니다(코사인 유사도를 줄임으로써 계산).
그리고 주요 결과로 값 V [n1]을 반환합니다. 또한, 우리는 코사인 유사성 di = q · K [ni]와 반환 소프트맥스(d1 · t, ., dk · t)를 계산할 것이다. 매개 변수 t는 소프트맥스 온도의 역수를 나타내며 실험에서 t = 40으로 설정합니다. 메모리 출력이 다시 밀도 벡터에 내장되는 모델에서, 우리는 메모리의 신뢰도에 대한 신호를 제공하기 위해 내장 출력에 해당하는 softmax 구성 요소를 곱한다.
따라서 메모리 모듈의 전방 계산은 매우 간단하며, 유일한 흥미로운 부분은 우리가 아래에서 논의하는 가장 가까운 이웃을 효율적으로 계산하는 방법이다. 그러나 우리는 또한 기억이 어떻게 훈련되는지에 대한 질문에 답해야 한다.
이제 쿼리 q 외에 원하는(감독되는) 올바른 값 v도 제공된다고 가정합니다. 분류의 경우, 이 v는 클래스 라벨이 될 것이다. 시퀀스 투 시퀀스 작업에서 v는 현재 시간 단계의 원하는 출력 토큰입니다. 위와 같이 k개의 가장 가까운 이웃들(n1, ., nk)을 계산한 후, p는 V [np] = v, b는 V [np] != v. 우리는 np를 양의 이웃이라고 부르고 nb는 음의 이웃이라고 부른다. 상위-k 사이에 양의 이웃이 없을 때, 우리는 K[np] 대신 값이 v인 모든 벡터를 메모리로부터 선택한다. 우리는 메모리 손실을 다음과 같이 정의한다.
기억의 q와 key가 모두 정규화되어 있으므로 위의 손실 항에 있는 곱은 q, 양의 key와 음의 key 사이의 코사인 유사성에 해당한다는 것을 기억하라. 동일한 항에 대해 코사인 유사성이 최대이므로 양의 키와 유사성을 최대화하고 음의 키와 유사성을 최소화하고자 합니다. 그러나 일단 그것들이 충분히 떨어져 있으면(우리의 모든 실험에서 α, 0.1의 차이로), 우리는 어떤 손실도 전파하지 않는다.
손실 계산 외에도 새롭게 제시된 쿼리 q가 v에 해당한다는 점을 감안하여 메모리 M도 업데이트할 것입니다. 업데이트는 메모리 모듈이 이미 반환한 주요 값이 올바른 값 v인지 아닌지에 따라 다른 방식으로 수행됩니다. 이전과 같이 n1 = NN(q,M)을 q에 가장 가까운 이웃으로 합니다. 메모리가 이미 올바른 값을 반환한 경우, V [n1] = v인 경우, 현재 키와 q의 평균을 취하여 정규화함으로써 n1에 대한 키만 업데이트합니다.
이후에 A(age) 는 초기화 한다.
반대로, V [n1] != v일 때, 우리는 메모리에서 새로운 위치를 찾아 쌍 (q, v)을 쓴다. 어떤 곳을 골라야 할까요? 최대 사용 기간을 가진 메모리 항목을 찾아 그 중 하나에 씁니다(임의로 선택됨). 보다 공식적으로, 우리는 n''= argmaxiA[i] + ri를 선택합니다. 여기서 |ri | <|M|은 비동기 다중 훈련에서 경주 조건을 피하기 위해 선택에서 일부 무작위성을 도입하는 무작위 숫자입니다. 그런 다음 다음과 같이 설정합니다.
평생학습에 활용할 수 있는 장기기억 모듈을 제시했다. 그것은 다재다능하기 때문에 다양한 딥 러닝 모델과 다양한 계층에 추가하여 네트워크에 원샷 학습 기능을 제공할 수 있다. 제시된 메모리 모듈의 몇몇 부분들은 보다 상세하게 조정되고 연구될 수 있었다. 올바른 키로 쿼리를 평균화하는 업데이트 규칙을 매개 변수화할 수 있습니다. 가장 가까운 단일 인접 라우터만 반환하는 대신 네트워크의 다른 계층에서 처리할 수 있도록 다수의 인접 라우터도 반환할 수 있습니다. 우리는 향후 연구를 위해 이 질문들을 남겨두었다. 그러나 우리가 직면한 주요 문제는 표준 메트릭이 이 시나리오에 초점을 맞추지 않기 때문에 원샷 학습을 평가하는 것이 어렵다는 것이다. 이 작업에서, 우리는 우리의 접근 방식을 조사하기 위해 표준 메트릭을 채택했다. 예를 들어, 번역 작업에서 우리는 테스트 세트의 절반을 나머지 절반의 컨텍스트로 사용했고, 여전히 표준 BLEU 점수를 보고합니다. 이것은 우리 모듈이 작동한다는 것을 보여줄 수 있지만, 그것은 일시적인 해결책일 뿐이다. 원샷과 평생 학습의 진전을 가속화하기 위해서는 더 나은 측정 기준이 필요하다. 따라서, 우리는 현재의 작업을 딥 모델이 일생 동안 희귀한 사건을 기억하는 법을 배우도록 하는 방법의 첫 번째 단계로 간주한다.