오늘은 Continual Learning 방법론 중 Regularization-based 방법을 쭈욱 살펴보려고 한다. 대표적인 방법으로는 EWC, SI, UCL 방법이 있어서, 차례로 조금 디테일하게 포스팅해보겠다. 참고로 글쓴이도 초심자라.. 잘못된 내용이 있을 수 있다. (댓글로 지적해주세요!)
Overview
- 아래 방법들은 previous parameter와 current parameter를 가깝게 encourage하고자 하는 방법들로, 네트워크 전체를 retrain 하는 방법들이다.
- L2-regularizer로 규제할 수도 있지만, 이렇게 현재의 task를 규제하게 되면 지나치게 규제가 들어가 새로운 학습이 되는 것을 막는다. 따라서 아래 3가지 방법들이 요구되는 것이다.
- 아래 3가지 방법들의 공통된 논제는 "어떻게 파라미터들의 importance를 측정할 것인가? " 이다. 과거 task에서 중요했던 파라미터는 규제를 줘서 일부러 미래의 task에서 학습되지 못하게 유지하는 것이다.
- 또한 아래 방법들은 hyperparameter에 민감하다고 알려져 있다. (개선한 논문 : A-GEM 등)
1. EWC (PNAS'17)
Overcoming catastrophic forgetting in neural networks (PNAS 2017)
# Motivation
- 현재 DL 방법론에서는 이전에 배운 information을 현재의 information 보다 상대적으로 잊어버리는 "catastrophic forgetting"을 피할 수 없다. 이 원인은 sequential 하게 들어오는 task 마다 optimize 되는 network의 weight가 다르기 때문이다. (모든 데이터를 한번에 학습하는 기존 세팅의 경우에는 weight가 joint하게 optimize되기 때문에 이런 현상이 발생하지 않음)
- 특히 Multi-task learning의 경우도 이러한 문제 해결에 적합 X
- 따라서 weight 파라미터들의 중요성을 판단해 학습 속도를 slow down(느리게) 하는 EWC를 제안
# Methodology : Elastic Weight Consolidation
- 전체 데이터를 task A와 task B 두개의 파트로 나눌 때, EWC의 목표는 task A 학습 시 파라미터를 규제하여 task B에도 잘 적용되도록 만드는 것.
- 따라서 여기서 중요한 것은 1) 어떻게 constraint를 적용할 것이며 2) 어떻게 important 한 파라미터를 고를 것인지?
- 위 figure에서처럼 각 A, B에서 좋은 성능을 내는 parameter region이 있다고 할 때, penalty를 주지 않으면 task B 학습에서 이전에 학습한 task A를 잊게 된다. 또한 모든 weight 파라미터에 동일한 coefficient로 penalty를 주면 너무 과하게 규제가 들어가 task B 학습이 아예 어려워진다.
- 따라서 EWC는 task A의 weight 중 중요한 weight들에게 패널티를 줘서, task B에 대한 솔루션을 찾는 방식으로 작동한다.
- 이러한 방법의 원리는 probabilistic 관점으로 해결한다. 파라미터를 optimize 하는 과정은, 가장 probable한 값을 찾는 과정과 비슷하기 때문이다. (likelihood function)
- 전체 데이터셋 $D$가 주어졌을 때, 파라미터 $\theta$의 사후분포는 다음과 같은 베이지안 식(1) 으로 정의된다. 그런데 여기서 전체 데이터의 task가 A, B로 나뉘는 상황을 상상하면, 식(2)와 같은 형태로 다시 나타낼 수 있다. 중간에 $D_A$가 condition으로 들어간 것을 확인할 수 있다. 따라서 $logp(\theta|D_A)$에는 task A에 대한 모든 정보가 들어가게 된다.
- 따라서 위 $logp(\theta|D_A)$를 통해 우리는 task A에서 어떤 파라미터가 중요했는지? 에 대한 정보를 얻을 수 있다.
- 하지만 우리는 여기서 정확한 사후분포(poterior)를 얻는 것은 어려움이 있으므로, 이 사후분포를 일단 가우시안으로 approximate 한 후 $\theta^*_A$를 얻은 뒤 Fisher information matrix $F$의 diagonal 정보를 이용한다.
- 여기서 Fisher information matrix는 log likelihood function을 taylor expansion 했을 때의 2번 미분한 값으로, log likelihood function의 curvature를 나타낸다. 그리고 $F^-1$는 가우시안에서 covariance로 알려져 있다.
- 마지막으로 각 파라미터별 위 Fisher information(=각 파라미터들의 분산의 역수)을 이용해 minimize하는 EWC의 $L(\theta)$ loss 식은 다음과 같다. (new와 old task 사이 파라미터들의 difference에 대한 quadratic penalty)
- EWC는 결론적으로 task A의 task B의 learning parameter들을 가깝게 만드는 역할을 한다. (이전 old task의 파라미터와 새로운 task의 파라미터를 가깝게 위치하도록 encourage)
2. SI (ICML'17)
Continual Learning Through Synapic Intelligence (ICML'17)
# Motivation
- Domain-specific한 학습을 synapses 개념을 도입해 importance를 consolidate하는 방향으로 진행하자.
# Methodology: Synaptic framework
- 해당 paper에서는 "parameter"라는 용어와 "synapse"라는 용어를 동일하게 사용한다. 따라서 목표는 각 individual synapse에 importance를 부여해 catastrophic forgetting을 해결하는 것이라고 할 수 있다. (개인적으로 제일 재밌게 읽었다)
- 위 그림은 서로다른 task의 파라미터(=weight) space를 그린 그림이다. 검정색 굵은 선은 parameter의 trajectory이고, 두 task는 서로 다른 loss로 최적화되고 있는 상황이다. (아마 task incremental learning을 가정하는 것 같기도) 여기서 task 1에 이어 ask 2에 대해 gradient descent learning을 진행하는 상황을 생각해보자. 그림에 의하면 task2는 파라미터 $\theta(t_2)$를 살펴봤을 때 잘 minimize가 되었지만, task 1에서 해당 $\theta(t_2)$ 파라미터는 loss를 증가시키는 파라미터가 됨을 알 수 있다.
- 위 그림에서 설명하고 있는 현상이 catastrophic forgetting이다. 이러한 의미는 task 1 문제를 푸는데 $\theta(t_2)$가 꽤 "중요한" 파라미터였음을 알 수 있고, 이 의미는 "task 2를 풀 때 task 1에서 중요한 파라미터는 바꾸면 안된다"라는 뜻이다.
- 결론적으로 중요한 파라미터는 past tasks를 위해 남기고, 상대적으로 중요하지 않은 파라미터는 미래의 학습을 위해 사용하는 것이 아이디어이다.
- Train process는 parameter의 trajectory로 추측할 수 있으며, 여기서 loss의 미세한 change는 gradient로 알 수 있다. 그리고 이는 다음과 같이 서술될 수 있다. 여기서 $\delta_k(t)$는 parameter update를 나타낸다.
- 그리고 entire trajectory에서의 loss 변화를 계산하려면, 전체 구간에서의 change를 단순히 더하면 된다. 더한다 == 적분은 국룰이니, initial point $t_0$부터 final point $t_1$까지의 change를 다음과 같이 식(7)로 나타낼 수 있다. 그리고 이를 individual parameter로 decompose하면 식 (8)을 얻는다.
- 식 (8)에서 $w_k^\mu$는 해당 파라미터가 total loss변화에 얼마나 기여하는지를 나타낸다고 이해할 수 있다. 따라서 이게 이 논문에서 말하는 importance measure이다.
- 결론적으로 특정 파라미터 $\theta_k$의 importance는 1) 해당 파라미터가 loss drop에 얼마나 기여하는가 / 2) 이전 step의 파라미터보다 얼마나 멀리 움직였는가 로 결정된다.
- 우리의 목표는 total loss function의 minimum을 찾는 것이지만, continual learning의 특성상 모든 task를 한번에 접근할 수 없으므로 우리는 당연히 total loss에 접근할 수 없다. 따라서 과거의 task의 loss들을 모두 더한 "surrogate loss" 개념을 도입해 원래의 loss의 대타로 사용한다. 아래 그림처럼 surrogate loss를 꽤 잘 original loss를 대표함(=동일한 minimum을 가짐)을 알 수 있다.
3. UCL (NeurIPS'19)
Uncertainty-based Continual Learning with Adaptive Regularization (NeurIPS'19)
# Motivation
- 최근의 regularization-based methods들은 각 parameter들의 importance를 추정해 per-parameter regularization을 적용한다. 하지만 이 방법들은 개별 파라미터들을 저장해야하기 때문에, 모델 저장을 위한 메모리 cost가 요구된다. 그리고 이러한 단점은 network size가 커질 때 문제가 된다.
- 따라서 regularizaion terms로 더 적은 additional parameter를 사용한 모델을 제안
# Methodology
- Standard bayesian online learning framework를 적용
- 뉴럴넷은 결국 $p(y|x, W)$를 구하는 것인데, (Input $x$와 weight parameter $W$가 주어질 때 y값의 분포) 여기서 $W$ 파라미터에 대한 분포도 또 다른 어떤 파라미터들로 $p(W|\alpha, D)$ 이렇게 구성될 것이다. 따라서 최종 목표는 이 $p(W|\alpha, D)$ 사후분포를 추정하는 것에 있는데, 여기서 우리는 정확한 사후분포를 추정할 수 없으므로 Variational inference(변분추론)을 이용해 사후분포를 간단한 분포로 근사한다.
- 따라서 변분추론의 원리에 따라 Kullback-Leibler divergence를 이용해 minimize 해야할 식을 쓰면 다음과 같다. 여기서 $D_KL$은 KL divergence를 뜻하고, $q(W|\theta)$는 가우시안근사된 사후분포를(여기서 $\theta = (\mu, \sigma)$가 되며 backpropagation으로 구할 수 있다고 알려져있다.), $p(W|\alpha)$는 원래 weight parameter에 대한 사후분포를 뜻한다.
- 뉴럴넷은 결국 $p(y|x, W)$를 구하는 것인데, (Input $x$와 weight parameter $W$가 주어질 때 y값의 분포) 여기서 $W$ 파라미터에 대한 분포도 또 다른 어떤 파라미터들로 $p(W|\alpha, D)$ 이렇게 구성될 것이다. 따라서 최종 목표는 이 $p(W|\alpha, D)$ 사후분포를 추정하는 것에 있는데, 여기서 우리는 정확한 사후분포를 추정할 수 없으므로 Variational inference(변분추론)을 이용해 사후분포를 간단한 분포로 근사한다.
- 위 Standard bayesian online learning을 Continual Learning setting 적용하면 다음과 같을 것이다. 특정 task $t$가 있고, 그 task의 data를 $D_t$라고 할 때 위 minimize 시켜야 할 식은 다음과 같이 변화된다. 즉, 현재 $t$ context에서 근사한 사후분포인 $q(W|\theta_t)$를 이전 $t-1$ context에서 근사한 $q(W|\theta_t-1)$과 가까이 하려는 의도이다.
- 위 두 식(3), (4)들에서 결국 KL-divergence term은 regularization term 역할을 한다. 위 식 (4)를 조금 더 확장해, 가우시안 mean-field approximation case를 가정하고 $D_{KL}((q(W|\theta_t) || q(W|\theta_{t-1}))$를 closed-form으로 다시 쓰면 다음과 같다. $l$은 각 layer를 뜻하고, 각 layer별로 weight matrix 분포의 $\mu$와 $\sigma$가 정의된다. (task t와 t-1 사후분포 사이의 거리(KLD)를 나타낸 것이라고 이해했다..) 결국 우리의 목표는 아래 식을 minimize 하는 것이 목표이다.
- 위 식에서 각각 (a)와 (b) term을 modifying 하는 것이 UCL 방법의 목표라고 할 수 있겠다. 결국 위 식은 t-1과 t context에서의 $\mu$와 $\sigma$가 같아질 때 가장 minimize 된다. 즉, UCL도 위 EWC와 같이 결국 continual learning setting에서는 각 task가 layer별로 가지는 weight 들의 가우시안분포 파라미터($\mu$와 $\sigma$)를 task 차이 없이 가까이 하는 것이 목표구나 라는 나름대로의 결론을 얻었다.
(아닐수도 있음)- 조금 더 자세히 설명하자면, 위 식(5)에서 미루어볼 때 결국 (a)의 경우 현재 task의 $\mu$인 $\mu_t^{(l)}$과 이전 t-1 task인 $\mu_{t-1}^{(l)}$ 사이의 Frobenius norm(=distance)를 측정하는 term이 된다. 그리고 covariance matrix $diag((\sigma_{t-1}^{(l)}))$은 $\mu_t^{(l)}$의 regularizatino term 역할을 하고 있다고 한다.
(하 ㅠ 멍청한 나 ㅠ) - 따라서 $\sigma_{t-1}^{(l)}$을 우리는 uncertainty라고 부르고, 이는 per-weight regularization strenths를 조절하는 factor가 된다. 낮은 uncertainy를 가지는 weight는 important한 weight로 간주되며, 높은 패널티를 부과한다.
- 마지막으로 (b)의 경우는 t-1의 $\sigma$와 t의 $\sigma$가 같아질 때 minimize 되므로, 결국 이는 $\sigma_t^2$의 regularization term 역할을 한다.
- 조금 더 자세히 설명하자면, 위 식(5)에서 미루어볼 때 결국 (a)의 경우 현재 task의 $\mu$인 $\mu_t^{(l)}$과 이전 t-1 task인 $\mu_{t-1}^{(l)}$ 사이의 Frobenius norm(=distance)를 측정하는 term이 된다. 그리고 covariance matrix $diag((\sigma_{t-1}^{(l)}))$은 $\mu_t^{(l)}$의 regularizatino term 역할을 하고 있다고 한다.
- 그럼 위 (a), (b) term 들을 수정해보자. 일단 (a)부터 접근하자면, uncertainty의 정의를 각 weight 분포의 $\mu$에서 network의 node단위로 확장한다. 그리고 이러한 node uncertainy에 대해 위와 동일하게 낮은 uncertainy를 가지는 노드들은 높은 규제 강도를 부여한다.
반응형