ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Continual Learning (4)
    학교 수업/ADL 2023. 10. 6. 21:28

    어제 썼어야했는데 못쓰고 오늘 쓴다. 저번 거보다 더 이해가 안갔다. 나중에 생각하련다.. 

    이번 내용은 Replay-memory based methods이다. Typical regularization methods는 past task의 data를 쓰지 못하는 경우를 가정하는 반면 이번엔 사용할 수 있다고 가정한다. regularization based 방법의 경우 많은 모델 파라미터를 저장하는데 메모리를 많이 사용했고, replay-memory based 방법은 이보다 작은 양의 메모리로 training data를 저장하려 한다. 

     

    첫 번째 대표적인 방법은 GEM(Gradient episodic memory)이다. episodic memory를 construct하는 task별 적은 수의 sample을 저장한다. $ \mathcal{L}(f_\theta, \mathcal{M})  \le  \mathcal{L}(f^{t-1}_\theta, \mathcal{M}) \text{ for all } k < t$를 만족하는 $\text{minimize}_\theta L(f_\theta(x),y)$를 푸는 문제이다. 이 말인 즉슨.. task t-1에서 representative sample M의 loss는 task t에서 loss보다 항상 크다. 즉, 현재 task의 loss는 이전 task의 loss보다 커질 수 없다. 이런 constraint로부터 시작하는데, loss에 대한 constraint를 gradient에 대한 constraint로 바꿔서 푼다.

    $$<g, g_k> := <{ {{\partial{L(f_\theta(x),y)}} \over { \partial{\theta} }}, { {\partial{L}(f_\theta,M_k)} \over {\partial{\theta}}} } >$$

    여기서 gradient란 samples M에서의 loss의 gradient에 대한 constraint를 말한다. 현재 모델에 M을 넣었을 때 loss의 gradient와 현재 task의 training data를 넣었을 때 loss의 graient가 내적했을 때 0보다 같거나 커야한다. 내적했을 때 0보다 같거나 커야한다는 건 같은 방향을 가리키고 있을 때를 의미한다 (각도 차이가 90도 이내). 왜 loss에 대한 constraint가 이렇게 바뀔 수 있는가? 이해는 잘 안된다. 같은 방향인건 loss가 작냐 크냐를 나타내진 않는다. 같은 개형인지는 나타낼 수 있어도,, 그리고 $f^{t-1}_\theta(M_k), f_\theta(M_k)$랑 $L(f_\theta(x),y), L(f_\theta, M_k)$ 가 transform되었다고 할 수 있을까????

     

     이 다음에  $\tilde{g}$가 나오는데 이게 뭔지 모르겠다. constraint를 만족시키기 위해서라는데 constraint가 만족이 안되면 forgetting해야하는 것 아닌가? 아무튼 EWC보다 성능이 좋다고 한다. 그리고 average 화 한 A-GEM이 성능이 더 좋단다. 

     

    마지막 replay-memory based 방법은 ER(Experience replay)이다. GEM 방법들은 gradients의 constraints를 이용하는 거라면, 이건 진짜 training data를 다시 직접 train하는 방법이다. 여기서 사용한 데이터셋에서는 random하게 뽑아 ER 했을 때 A-GEM보다 성능이 좋았다, 

     

    마지막 Parameter Isolated based 방법이다. 첫번째 PNN은 뭔지 모르겠는데 어쨌든 network를 늘려나간다. 그리고 DEN은 좀 이상하다. 이해하고 싶지 않은 방법이다. 그 다음 Piggyback이 좀 재밌었는데, training time에 task k에 대해 binary mask $m_k$를 train한다. 처음 pre-trained model이 있고 거기서 각 task에 맞는 binary mask를 곱해주면 된다. 그 다음 CPG는 또 pre-trained weights를 사용하는데, 첫번째로 initial weights를 pruning하고 retrain한다. 그리고 weight를 freeze 한다음 new task에 사용할 proper weights를 train한다. 그러다가 parameter가 부족하면 weights를 새로 추가한다. pick하는 부분이 잘 이해가 안간다. freeze한걸 update하는 건지, 비어있는걸 update하는건지.. 여기까지이다. 나중에 좀더 공부해서 모르는 부분에 대한 답을 적겠다. 

    '학교 수업 > ADL' 카테고리의 다른 글

    Self-Supervised Learning (2)  (1) 2023.10.19
    Self-Supervised Learning (1)  (0) 2023.10.12
    Continual Learning (3)  (0) 2023.09.26
    Continual Learning (2)  (0) 2023.09.21
    Continual Learning (1)  (0) 2023.09.21
Designed by Tistory.