본문 바로가기

딥러닝

Continual Learning (2) Deep Generative Replay 논문 번역

이 글은 Continual Learning을 위한 방법 중 첫 번째로 메모리를 활용한 Deep Generative Replay 구조를 설명한 논문을 번역한 글입니다.

이는 우리의 뇌에서 영감을 받아 generator, solver의 두 네트워크로 구성된 모델(scholar)를 학습시키는 프레임워크입니다.

이 논문의 가장 큰 특징은 generator 네트워크를 사용해서 이전 tasks에서 학습한 분포를 기반으로 데이터를 생성시킬 수 있다는 것입니다.

이렇게 생성한 데이터와 함께 새로운 task에 대한 실제 데이터를 모델에 넣어줌으로써 새로운 task를 학습하더라도 이전 tasks에 대한 성능을 유지할 수 있게 됩니다.

 

(번역하는 과정에서 이해가 가지 않는 말이나 매끄럽지 못한 문장들도 있는데 양해 부탁드립니다ㅠ)

 


 

 

초록

Multiple tasks를 풀 수 있는 인공지능을 학습하는 것은 catastrophic forgetting이라 불리는 고질적인 문제로 어려움이 있었다. 비록 단순히 이전 데이터를 replay(학습용 데이터에 계속 넣어주는 것)함으로써 이 문제를 어느 부분 해결할 수 있지만, 거대한 메모리를 필요로 하며 실제로 활용하기에는 대개 과거 데이터에 접근하는 것이 어렵기 때문에 불가능에 가까웠다. 생성해내는 특성을 가진 해마(hippocampus)를 단기 기억 시스템으로 사용하는 우리의 뇌에서 영감을 받아, 우리는 생성모델인 generator와 task를 해결하는 모델인 solver가 협력하는 구조를 가진 Deep Generative Replay를 제안한다. 이 두 모델을 가지고 이전 task의 학습용 데이터를 쉽게 만들 수 있으며, 새로운 task의 데이터와 함께 학습될 수 있다. 우리는 이를 이미지 분류 task를 포함하는 여러 순차적 학습 환경에서 테스트했다.

 

1 도입

인간과 큰 영장류는 계속 새로운 기술을 배우고 평생동안 지식을 축적하는 특색이 있다. 설치류 같은 작은 척추동물까지도 뉴런 사이에 확립된 연결이 1년 이상 지속된다. 게다가, 영장류는 과거 기억에 심각하게 영향을 주지 않으면서 새로운 지식을 통합하고 인지 능력을 확장시킨다. 이렇게 유연한 메모리 시스템은 시냅스의 가소성과 안정성 사이의 균형을 잘 맞춰준다.

 

그러나 딥뉴럴넷의 순차적 학습은 catastrophic forgetting이라고 불리는 현상으로 어려움이 있었다. Catastrophic forgetting이란 새로운 task를 학습시킬 때, 이전에 학습했던 tasks에 대한 모델의 성능이 갑자기 낮아지는 현상이다. 인공신경망에서 입력은 네트워크의 매개 변수에 의한 출력과 일치한다. 따라서 새로운 task를 위해 네트워크를 학습함으로써 이전 지식을 거의 완전히 잊어버리게 할 수 있다. 이러한 문제는 여러 tasks에 대해 순차적으로 학습시키는 것의 가장 큰 장애물이 되었다.

 

지금까지 catastrophic forgetting을 완화시키기 위한 연구는 대개 과거 데이터를 저장하는 episodic memory 시스템에 기반을 두고 있었다. 이는 샘플들을 저장하고 계속해서 재생시킴으로써 새로운 task의 실제 샘플들과 같이 학습시킴으로써, 네트워크 파라미터를 여러 tasks에 대해 공동으로 최적화하는 방식이다. 이 방식으로 학습된 네트워크가 각 task로만 학습된 개별 네트워크와 동일한 성능을 낼 수 있지만, 메모리 기반의 방식은 과거 입력을 저장하고 재생시키는데 거대한 메모리를 필요로 한다는 단점이 있다. 게다가, 이러한 데이터 저장과 재생은 실제로는 거의 활용될 수가 없다.

 

특히, 인간과 큰 영장류는 새로운 지식을 제한된 경험으로도 학습하고 계속해서 과거 기억을 가지고 있을 수 있다. 여러 생물학적 메커니즘이 작용했겠지만, 영장류의 뇌와 인공신경망의 가장 큰 차이는 분리되어 서로 상호작용하는 메모리 시스템에 있다. 보완 학습 시스템(CLS) 이론은 해마와 신피질(neocortex)를 포함하는 듀얼 메모리 시스템의 중요성에 대해 설명한다. 해마는 빠른 속도로 최근 경험을 암호화하고, 짧은 시간 안에 행해지는 기억 추적은 잠잘 때나 의식적/무의식적인 회상을 할 때에 재활성화된다. 기억은 암호화된 경험이 여러 번 재생되어 활성화될 때마다 신피질에 통합된다 - 이는 강화학습 에이전트를 학습할 때 경험 재생을 사용하도록 영감을 준 메커니즘이다.

 

최근에는 해마가 단순히 경험을 반복하는 버퍼 기능 이상을 수행한다는 연구 결과도 나오고 있다. 메모리 추적을 재활성화하면 더 유연한 결과가 나타난다. 재활성화를 통한 변경은 통합된 메모리에 문제를 만들어내고, 동시에 해마에서 특정 메모리 추적들을 자극시키는 것은 경험한 적 없는 거짓된 기억을 만들어낸다. 이러한 특성으로 해마가 재생 버퍼보다 생성 모델일 때 더 나음을 알 수 있다. 특히, Boltzmann machines나 variational autoencoder와 같은 깊은 생성 모델은 실제 데이터와 거의 유사한 고차원의 샘플들까지 만들어낼 수 있다.

 

우리는 과거 데이터를 보유하지 않고도 순차적으로 딥뉴럴넷을 학습하기 위한 방법론을 제안한다. 우리의 deep generative replay 프레임워크로 pseudo-data를 계속 만들어내며 재생시킴으로써 모델은 이전에 획득한 지식을 보유하게 된다. 특히 GANs를 사용한 생성 모델을 학습시켜서 과거 데이터를 모방하도록 했다. 이렇게 생성된 데이터는 과거 tasks를 나타내기 위해 이전 task solver의 출력으로 나온 결과와 함께 모델에 넣어지게 된다. Generator, solver 쌍으로 구성된 scholar라고 불리는 모델은 가짜 input과 target을 필요한 만큼 생성할 수 있다. 그리고 이렇게 생성된 input-target pairs는 새로운 데이터 함께 generator와 solver 네트워크를 업데이트한다. 그러므로 scholar 모델은 생성된 input-target pairs를 활용하여 기존 지식을 잊어버리지 않고 새로운 task를 학습할 수 있으며, 구조가 다른 네트워크까지도 학습할 수 있다.

 

이 scholar 네트워크로 구현한 deep generative replay 프레임워크로 실제 과거 데이터 없이도 지식을 보유할 수 있기 때문에, 보안이 중요한 다양한 상황에 실제로 활용 가능하다. 최근 GANs를 학습하는 방법이 발전하여 다양한 도메인의 모델이 실제 데이터 분포를 만들어낼 수 있게 되었다. 비록 우리의 모델은 이미지 분류 tasks로 테스트하였지만, 입력 데이터 공간 정보를 완벽히 재현할 수 있다면 어떤 task에도 활용가능하다.

 

2 관련 작업

Catastrophic forgetting 혹은 catastrophic interference라고 불리는 용어는 1980년대 McCloskey와 Cohen에 의해 처음 소개되었다. 그들은 catastrophic interference가 뉴럴넷의 궁극적인 한계이며, 뉴럴넷이 많이 일반화되었을 경우 생기는 단점이라고 주장했다. Catastrophic forgetting의 원인이 연구되지 않았기 때문에, input의 특징을 매개변수화되는 뉴럴넷 특성 상 새로운 샘플들로 학습할 경우 이미 성립된 식에 변화를 가져온다고 알려졌다. 몇몇 연구는 순차적 학습 환경에서 경험적으로 나온 결과를 설명하고, 이전의 모든 데이터를 재생하는 것과 같은 몇 가지 원시적인 솔루션을 제공한다.

2.1 연구 동향

연구 동향이 이전 데이터에의 접근이 현재 task에 제한되어 있는 특정 상황을 가정한다. 이러한 연구는 이미 학습된 가중치의 변화를 최소화하면서 네트워크를 최적화하는데 포커스되어 있다. Dropout이나 L2 regularization과 같은 regularization 방법은 새롭게 학습하는 것의 영향을 줄여준다. 더 나아가, elastic weight consolidation (EWC)는 이전 tasks에 대한 중요도를 기반으로 특정 가중치를 유지하는 것이 성능 하락을 막는데 도움이 된다고 말한다.

 

Multiple tasks를 풀 수 있는 딥뉴럴넷을 순차적으로 학습하기 위한 이 노력들은 task 별로 다른 파라미터를 사용해서 네트워크를 확장시킴으로써 catastrophic interference를 줄였다. 일반적으로 입력과 가까운 layers는 보편적인 특징을 가지며, output layers가 task와 관련된 outputs를 만들어낸다. 비록 각 output layers가 앞전의 layers의 변화로부터 자유롭긴 하지만, 여전히 이전 tasks에 대한 성능 하락을 가져온다. 몇 파라미터의 학습속도를 낮추는 것도 forgetting을 줄일 수 있다고 알려져 있다. 최근 제안된 Learning without Forgetting (LwF)은 이미지 분류 문제에서 공유된 네트워크 파라미터의 변화를 최소화하면서 순차적 학습을 할 때의 문제에 대해 설명한다. 이 프레임워크에서, 미세조정 전에 새로운 task 입력에 대한 네트워크의 산출물은 곧 이전 tasks에 대한 지식을 나타내며 학습 과정 내내 유지된다.

 

2.2 보완 학습 시스템 (CLS) 이론

Catastrophic forgetting을 해결하기 위한 보완 네트워크 구조를 위해 많은 연구가 이루어졌다. 이전 tasks에 대한 학습용 데이터가 없는 경우, 메모리 네트워크로부터 만들어진 pseudo-inputs와 pseudo-targets만이 네트워크를 학습시킬 수 있다. Pseudorehearsal 기술이라고 불리는 이 방법은 실제 데이터 없이 이전 input-output 패턴을 알 수 있다고 주장한다. 두 개의 binary 패턴을 짝짓는 것처럼 간단한 tasks의 경우, 단순히 random noises와 이에 상응하는 responses로 충분하다. 최근의 연구를 통해 해마의 구조를 닮은 네트워크로 작은 binary pixel images와 같은 복잡한 데이터의 continual learning이 가능하다고 주장되었다. 그러나 유의미한 고차원의 pseudo-inputs을 만들어내는 것은 어렵기 때문에, 그 어떤 것도 실생활에서 사용되는 고차원의 입력으로의 확장성을 보장하진 못했다.

우리의 generative replay 프레임워크는 학습된 과거의 데이터 분포로부터 fake inputs을 생성한다는 점에서 앞에서 언급된 pseudorehearsal 기술과는 다르다. Generative replay는 네트워크가 생성된 과거 데이터와 새로운 실제 데이터의 앙상블로써 공동으로 최적화된다는 점에서 여러 이점이 있다. Generator가 입력 분포를 잘 만들어낼 수 있다면, 그 성능은 누적된 실제 데이터 전체로 학습하는 것과 동일하다. Generative replay의 아이디어는 Mocanu et al. [24]에서 입력 분포를 파악하여 Restricted Boltzmann Machine를 학습했던 것에서도 사용되었다.

2.3 Deep Generative Models

생성 모델은 볼 수 있는 샘플을 만들어내는 모든 모델을 의미한다. 특히 우리는 생성된 샘플이 주어진 실제 분포에 있을 가능성을 최대화할 수 있도록 딥뉴럴넷에 기반한 deep generative models을 사용했다. Variational autoencoders, GANs와 같은 deep generative models은 이미지와 같은 복잡한 샘플들까지 만들어 낼 수 있다.

GANs 프레임워크는 generator G와 discriminator D 사이의 제로썸 게임으로 설명된다. Discriminator가 생성된 샘플과 실제 샘플을 구별하는 법을 학습하는 동안, generator는 실제 분포와 최대한 가깝게 만들어내는 방법을 학습한다. 두 네트워크의 목적함수는 다음과 같다.

 

 

3 Generative Replay

먼저 앞으로 사용될 용어들을 정의하겠다. 우리의 continual learning 프레임워크에서 학습해야할 N개의 일련의 tasks를 다음과 같이 부른다.

Definition 1 task Ti는 데이터 분포 Di에 대해 모델을 최적화하는 것이며, Di의 학습용 데이터는 (xi, yi)로 주어진다.

 

우리의 모델을 scholar라고 부르며, 새로운 task를 학습할 수 있고 그 지식을 다른 네트워크에게 가르칠 수 있다. Scholar는 가르치기만 하거나 배우기만 하는 네트워크 앙상블 모델의 teacher-student 프레임워크랑 다르다는 것을 알아두자.

 

Definition 2 Scholar H는 <G, S>의 튜플이다. generator G는 실제와 같은 샘플을 생성해내는 모델이며, solver S는 세타를 매개변수로 하는 task를 해결하는 모델이다.

 

Solver는 모든 tasks를 다 해결할 수 있어야 한다. 그러므로 전체 목적함수는 모든 task sequence에 대해 편향되지 않은 losses의 합을 최소화하는 것이다.

D: 전체 데이터 분포,  L: 손실함수

Task Ti로 학습되는 동안, 모델은 Di로부터 나온 샘플들로 학습된다.

 

3.1 Proposed Method

우리는 scholar 모델에 대한 순차적인 훈련을 잘 해내려고 한다. 그러나 최신 네트워크를 복사하여 단일 scholar 모델을 학습하는 것은 일련의 scholar 모델들을 학습시키는 것과 같다. (n번째 scholar Hn : 현재 task Tn과 이전 scholar Hn-1의 지식을 학습)

sequence of scholar models

그러므로, 우리의 전체 학습 과정은 Figure 1(a)와 같다.

 

다른 scholar로부터 scholar 모델을 학습하는 것은 generator와 solver를 학습하는 두 개의 독립적인 과정으로 구성된다. 첫째, 새로운 generator는 현재 task input x를 받고, 이전 tasks로부터 x'을 재생시킨다. 실 데이터와 재생된 데이터는 새 task의 중요도를 나타내는 일정 비율로 섞인다. Generator는 누적 input 공간을 재현할 수 있도록 학습되며, 새로운 solver는 실제와 replayed된 데이터가 섞인 inputs이 넣어졌을 때 targets 파악하도록 학습된다. 여기서, replayed target은 replayed input을 이전 solver에 넣었을 때의 산출물이다. i번째 solver의 손실함수은 다음과 같다

세타i는 i번째 scholar의 네트워크 파라미터이며, r은 실데이터가 섞인 비율이다. 우리는 model을 이전 tasks로 평가하기 원하므로, test loss는 training loss에 따라 다르다.

Dpast는 과거 데이터의 누적 분포이다. 첫 번째 solver는 replayed 데이터가 없기 때문에 i=1에서 두번째 항은 무시된다.

 

우리는 task sequence를 해결하기 위한 solver와 GANs로 학습된 generator로 scholar 모델을 만들었다. 그러나 어떠한 deep generator model이든 generator로 사용 가능하다.

 

Figure 1: Scholar 모델들의 순차적인 학습. (a) Scholar 모델들을 순차적으로 학습하는 것은 최신 scholar를 복사한 단일 scholar를 연속적으로 학습하는 것과 같다. (b) 새로운 generator는 실제 샘플 x와 이전 generator로부터 만들어낸 x'가 섞인 데이터의 분포를 모방하기 위해 학습된다. (c) 새로운 solver는 실제 input-target 쌍 (x, y)와 재생된 input-target 쌍 (x', y')로 부터 학습한다. 이때 replayed response y'은 생성된 input을 이전 solver에 넣음으로써 얻는다.

 

3.2. 모의 실험

주 실험을 하기 앞서, 학습된 scholar 모델만으로 새로운 네트워크를 학습하기 충분하다는 것을 먼저 보여주려고 한다. 우리는 학습된 모델을 가지고 MNIST를 분류하는 테스트를 했다. 일련의 scholar 모델들은 generative replay를 통해 처음부터 학습되었다. Table1은 전체 테스트 데이터를 분류했을 때의 정확도이다. Scholar 모델이 정보 손실없이 지식을 전달하고 있음을 알 수 있다.

 

Table 1: 순차적으로 학습된 solver의 테스트 데이터에 대한 정확도. 첫번째 solver는 실제 데이터로 학습되며, 이후의 solver들은 이전 단계에 scholar network로 부터 학습된다.

 

4 Experiment

이 섹션에서는 다양한 순차적 학습 환경에서 사용된 generative replay 프레임워크를 보여줄 것이다. Scholar 네트워크를 기반으로 하는 generative replay 방식은 생성 모델의 성능이 유일한 제약이라는 점에서 다른 continual learning 방법들에 비해 우수하다. 즉 생성 모델이 최적일 경우, generative replay를 활용해서 네트워크를 학습시키는 것은 전체 데이터로 joint training하는 것과 동일하다. 최고의 결과를 이끌어내기 위해, 우리는 generator로 WGAN-GP를 사용한다.

 

가장 먼저, generative replay가 이전 tasks와 새로운 task 모두에서 성능을 저하시키면서 순차적으로 학습이 가능한지 테스트한다. 4.1에서는 네트워크를 순차적으로 독립적인 tasks에 대해 학습하고 망각의 정도를 측정한다. 4.2에서는 네트워크를 두 개의 다르지만 관련된 도메인에 대해 학습한다. 이를 통해 generative replay가 우리의 scholar 네트워크뿐만 아니라 다른 구조에서도 continual learning을 가능하게 함을 알 수 있다. 4.3에서는 학습용 데이터의 disjoint(서로 겹치지 않는) subset에 대해 네트워크를 학습시키면서 다양한 tasks로부터 meta-task를 수행하기 위해 scholar 네트워크가 지식을 모을 수 있음을 보여준다.

 

우리는 다양한 replay 방법으로 solver의 성능을 비교한다.
-. Generative replay를 활용한 우리의 모델은 GR로 부른다.
-. 완벽한 generator를 가정하여 상한선으로 정했다. 이 경우를 나타내기 위해 실제 과거 데이터와 이전 solver 네트워크로부터 예측된 targets를 짝지어서 replay했다. 이러한 케이스를 exact replay (ER)라고 부른다.
-. 반대로 생성된 샘플들이 실제 분포를 전혀 따르지 않는 경우도 고려하여 이러한 케이스를 Noise라고 부른다.
-. 생성된 데이터없이 학습된 solver 네트워크는 None이라고 부른다.

 

4.1 독립적인 tasks 학습하기

흔히 continual learning 논문에 사용되는 실험은 간단한 이미지 분류 문제이다. 그 문제의 입력은 각 task 마다 다르게 입력의 픽셀 값을 랜덤으로 섞어서 나열한 MNIST 이미지이다. Solver는 입력 순열을 제대로된 클래스로 분류해야 한다. 대부분의 경우, 모든 픽셀들이 tasks 간에 바뀐 것이 아니라면, tasks가 서로 독립적이며 네트워크의 보존 강도를 측정하는 데 도움이 된다.

 

Figure 2: MNIST pixel permutation tasks 결과.
(a) 순차적으로 학습하는 동안의 각 task의 테스트 성능. Replay 없이는 이전 tasks에 대한 성능이 떨어졌다.
(b) 학습된 tasks에 대한 테스트 정확도의 평균값. Replayed 입력이 실제 데이터를 닮을수록 더 높은 정확도가 나왔다.

 

이전 task의 데이터를 replay함으로써 generative replay가 이전의 지식을 유지하는 것을 볼 수 있다. Figure 2(a)를 보면 replay 없이 학습된 solver (보라색)에 비교했을 때, generative replay를 활용한 solver (주황색)가 여러 tasks를 순차적으로 학습하면서 이전 task 성과를 유지하는 것을 볼 수 있다. 평균 정확도는 tasks를 누적하여 측정되었고 Figure 2(b)와 같다. Generative replay를 활용한 solver가 학습한 tasks에 대해 거의 완벽한 성능을 낸 것에 비해, 순차적으로 학습된 solver (보라색)는 catastrophic forgetting을 가져왔다. Recorded responses와 함께 Random gaussian noises를 replay하는 것은 도움이 되지 않았다 (핑크색).

 

4.2 새로운 도메인 학습하기

하나의 네트워크에 독립적인 tasks를 학습하는 것은 공유할 정보가 없기에 효율적이지 않다. 그러므로 multiple tasks를 해결함으로써 모델이 얻게되는 합리적인 장점에 대해 알아야 했다.

 

여러 도메인에서 하나의 모델을 운용하는 것은 여러 장점이 있다. 첫째, 만약에 도메인들이 완전히 독립적인 것이 아니라면 한 도메인에서의 지식으로 다른 도메인을 더 잘 그리고 빨리 이해하게 만든다. 둘째, 여러 도메인에 대해 일반화하는 것은 보편적인 지식을 학습하게 하여 아예 새로운 도메인에 활용성이 높아진다. 이러한 현상은 갓난 아기가 물체를 카테고리화하는 것을 배우는 과정에서도 볼 수 있다. 비슷하지만 다른 물체를 보았을 때, 인간은 카테고리들의 특성을 유추하고 그 물체가 속한 카테고리를 예측할 수 있다.

 

우리는 모델이 새로운 도메인의 지식을 generative replay를 통해 통합시킬 수 있는지 확인해 보았다. 이를 위해 MNIST와 Street View House Number (SVHN) 데이터를 분류하는 모델을 순차적으로 학습하고, 그 반대로도 학습했다. 실험과 관련한 자세한 사항은 보충자료에 제공되어 있다.

 

Figure 3: 두 개의 다른 도메인의 samples를 분류한 정확도
(a) MNIST -> SVHN 순으로 학습된 모델, (b) SVHN -> MNIST 순으로 학습된 모델


Generative replay(주황색)에 의해 이전 데이터가 recall됐을 때, 진짜 데이터가 predicted responses와 함께 replay된 것(초록색)처럼 첫 번째 도메인의 정보가 보유된다. 하나의 Solver에 순차적으로 학습하면 (보라색) 이전 도메인에 대한 정보를 까먹고 낮은 정확도를 보인다.

 

Figure 4: 학습된 generator에서 생성된 MNIST와 SVHN 데이터셋에 대해 1000, 2000, 5000, 10000, 20000 iterations 학습한 뒤 SVHN에 대한 샘플들. SVHN 또는 MNIST 이미지를 모방하는 샘플들로 만들어졌다.

 

Figure 3은 기존의 task (두꺼운 곡선)에서의 성능과 새로운 task (희미한 곡선)에서의 성능을 보여준다. Replay 없이 solver만이 학습된 경우, 기존 task에 대한 성능이 떨어졌다 (보라색). MNIST와 SVHN의 인풋 데이터가 유사한 생김새를 가지므로 이전의 task에 대한 성능이 0까지 떨어지진 않았지만, 감소폭이 꽤 컸다. 이와 달리, generative replay와 함께 학습된 solver는 (주황색) 첫 번째 task에 대한 성능을 유지하면서 두 번째 task에 대한 성능까지 좋았다. 실제 과거 데이터를 old solver에서 나온 response와 함께 replay시킨 것 (초록색)과 비교해서도 결과가 나쁘지 않았다. 두 경우 모두, replay 데이터 없이 학습된 모델은 새로운 task에만 온전히 최적화 되므로 새로운 task에 대해서는 성능이 살짝 더 좋았다.

 

Generative replay는 다른 continual learning 모델과도 함께 사용될 수 있다. 예를 들어, 과거 지식을 지우기 위해 현재 task 인풋을 replay하는 Learning without Forgetting (LwF)은 이전 task 인풋과 유사한 샘플들을 생성해내는 generative 모델들로 만들어 낼 수 있다. LwF는 task 별로 다른 output layers를 사용하기 위해 어떤 task가 수행되고 있는지에 대한 문맥 정보를 필요로 하기 때문에 우리는 각 task 별로 분리하여 성능을 평가했다. 여기서 generative replay를 사용하는 우리의 scholar 모델은 task 문맥이 필요없다는 것을 주목하자.

 

Figure 5에서는 LwF 알고리즘을 이전 네트워크를 유지하기 위해 task 별로 다르게 생성되는 인풋으로 학습되는 variant LwF-GR과 비교했다. 여기서 LwF 논문에서 제안한 것과 같이 먼저 새로운 네트워크의 앞 부분을 어느정도 학습한 뒤 그 다음에 전체 네트워크를 미세조정하는 방식을 사용했다.

LwF 알고리즘을 사용해서 학습된 solver (초록색)는 미세조정이 시작되는 타이밍에서 두 task끼리 공유되는 부분의 네트워크가 변화하여 첫 번째 task에 대한 성능이 떨어졌다. 그러나 generative replay를 사용했을 때 (주황색) 네트워크는 대부분의 과거 지식을 유지했다.

 

Figure 5: LwF와 LwF-GR (LwF augmented with generative replay)의 각 도메인에서 samples를 분류하는 성능.
네트워크는 SVHN으로 학습된 뒤 MNIST로 학습된다.
공유되는 네트워크 파라미터가 미세조정되는 순간, SVHN task (두꺼운 선)에 대한 테스트 정확도는 떨어졌다. 그러나 generative replay가 loss를 떨어트리는 것을 많이 방지했다 (주황색). 두 네트워크 모두 MNIST task에 대해서는 높은 정확도를 보였다 (희미한 선).

 

4.3 새로운 클래스 학습하기

Tasks 간에 input과 target이 많이 다른 상황에서도 generative replay가 과거 지식을 잘 만들어낼 수 있음을 보여주기 위해, 네트워크가 순차적으로 disjoint(서로소인) 데이터에 학습되는 실험을 하였다. 특히 agent가 동시에 소수의 클래스 만을 접근할 수 있다고 상황을 가정했다. 순차적으로 아예 새로운 클래스들에 대해 학습된 이후에는 agent가 결국 모든 클래스에 대한 샘플들을 제대로 분류해내야 한다. 우리는 MNIST 데이터셋에 대해 실험을 진행했다.

일반적으로 클래스와 관계없이 인공신경망을 학습하는 것은 새로운 분포를 맞추기 위해 네트워크가 변하기 때문에 굉장히 어려운 일이다. 그러므로 이전 input와 target 분포를 나타내도록 데이터를 replay하는 것은 균형있는 네트워크를 학습하기 위해 중요하다. 그래서 generator가 누적 실제 데이터의 input와 target 분포를 나타낼 수 있는 정도에 따라 앞에서 소개한 ER, GR, Noise, None 상황에 대해 비교할 것이다. ER와 GR 모델의 경우, input과 target 분포 모두 누적 분포 형태를 나타냈다. Noise 모델은 target은 누적 분포를 유지했지만 input 분포는 현재 분포만을 나타냈다. None 모델은 input, target 둘 다 현재 분포만을 나타냈다.

 

Figure 6: MNIST의 10개의 label 중 2개씩 분류하는 5개의 tasks에 대해 순차적으로 학습된 모델들.
우리의 네트워크(GR)만이 최고의 조건(ER)에 가까운 테스트 성능을 보였다.

 

Figure 6에서 우리는 MNIST를 2개의 클래스에 대한 샘플들만을 가지도록 5개의 서로 다른(disjoint) 부분집합으로 나누었다. 네트워크가 부분집합에 대해 순차적으로 학습되면서 아무 replay도 없이 학습된 분류기 (보라색)는 완전히 이전 classes에 대해 잊고 새로운 부분집합에 대해서만 학습한다는 것을 볼 수 있었다. Noise generator (핑크색)에서 볼 수 있듯이, 의미있는 input 분포 없이 이전 output 분포만 회복하는 것은 지식을 유지하는 데에 도움이 되지 않았다. Input과 output 분포 모두를 기억했을 때 (주황색) generative replay가 이전에 학습했던 클래스를 제대로 떠올릴 수 있었고, 모델이 학습했던 모든 classes를 분류할 수 있었다.

 

Figure 7: task 1, 2, 3, 4, 5를 순차적으로 학습한 이후 학습된 generator가 만들어낸 샘플들. Generator는 누적 데이터 분포를 나타낼 수 있도록 학습되었다.

 

과거 데이터는 아예 사용할 수 없다고 가정했기 때문에, 우리는 현재 inputs과 이전 generator로부터 생성된 샘플들 모두를 모방할 수 있는 generator를 학습시켰다. 그 결과 generator는 학습했던 샘플들의 누적으로 입력의 분포를 나타낼 수 있다. Figure 7과 같이 학습된 generator에서 생성된 샘플들은 학습된 classes을 동일하게 포함함을 볼 수 있다.

5 Discussion

우리는 이전에 학습한 데이터를 닮은 가짜 데이터를 생성함으로써 여러 tasks에 대해 순차적 학습이 가능한 deep generative replay 프레임워크를 제안했다. Generator와 solver로 구성된 학습된 scholar 모델은 task를 위한 기초지식 역할을 한다. 비록 일련의 scholar 모델들 사이의 연속적인 지식 전이를 설명했지만, 네트워크가 약간 변하는 것은 유사한 다른 문제를 해결할 수 있도록 만들어준다. 예를 들어, 이전 scholar 모델이 과거 네트워크의 동일한 복사본일 경우, 학습 절차를 명시적으로 나눠주지 않고 multiple tasks를 학습할 수 있다.

 

유사한 방법으로 EWC와 같은 규제 방법과 LwF에서와 같이 공유된 parameters에 규제를 가하며 학습하는 방법은 이전 네트워크의 지식을 보호함으로써 catastrophic forgetting을 완화시킬 수 있다는 것을 보여주었다. 그러나 규제 방법은 weight를 보호하기 위해 부가적인 loss terms를 이용해서 네트워크에 제약을 주는데, 잠재적으로 과거-현재 tasks의 성능 간에 tradeoff가 있을 수 있다. 또한, 이러한 방식에서 모든 tasks에 대해 좋은 성능을 보장하기 위해서는 네트워크의 크기가 거대해야 한다. EWC의 경우 모든 tasks를 학습하는 동안 같은 구조를 유지해야 한다. LwF의 단점도 두 가지가 있다 : 성능이 tasks 간의 연관성에 의해 영향을 받으며, 한 task를 학습하는 시간이 이전에 학습한 tasks의 개수만큼 선형적으로 증가한다.

 

Deep generative replay 메커니즘은 저장된 네트워크로 생성된 input-target pairs만을 사용하여 이전 지식만을 유지한다는 장점이 있다. 그리고 이전 tasks와 새로운 task의 성능간의 균형을 맞추는 것이 쉬우며 지식 전달이 용이하다. 무엇보다, 네트워크가 모든 task 목표를 위해 공동으로 최적화되어, generator가 이전 입력 공간을 완벽히 나타낼 수 있다면 모든 tasks에 대해 좋은 성능을 보장할 수 있다. Generative replay framework의 유일한 단점은 알고리즘이 generator의 성능에 많이 좌지우지된다는 것이다. 실제로, 4.3 절에서 세팅한 조건으로 SVHN 데이터셋을 학습하면서 모델의 성능이 떨어지는 것을 확인했다. 구체적인 연구방법은 보충자료에 제공되어 있다.

 

EWC, LwF, 그리고 우리의 프레임워크는 다른 수준으로 메모리를 보유하고 있는 것에 기반이 있다는 점에서 완전히 다르지는 않다. 그럼에도, 각 방법마다 학습 방법이나 네크워크를 구성하기 위해 제약사항이 있고, 어떤 두 가지를 간단히 혼합하기가 어렵다. 우리는 이 세가지 프레임워크를 적절히 섞었을 때 continulal learning의 만성적인 문제를 해결하기 위한 더 나은 방법이 나올 수 있다고 생각한다.

 

앞으로 generative replay를 위한 연구는 강화학습 영역 혹은 지속적으로 진화하는 네트워크 쪽으로 확장될 것이다. 또한, deep generative models의 발전이 직접적으로 더 복잡한 도메인에서 generative replay 프레임워크의 성능을 향상시켜줄 것을 기대한다.