2020년 12월 21일 월요일

논문 리뷰 - BETTER FINE-TUNING BY REDUCING REPRESENTATIONAL COLLAPSE

 

논문 정보 : 


요약 :

  • Pretrained 모델의 representation을 훼손하지 않으면서 fine-tuning을 잘 할 수있는 regularization 방법을 제안함
  • 기존 방법들보다 속도가 빠르고 여러 task들에서 성능이 좋음


Learning Robust Representations Through Regularized fine-tuning

  • Pretrained 모델을 특정 task에 맞게 fine-tuning 하면 representation의 generalizability가 훼손됨 : 그 상태로 다른 task에 대해 fine-tuning하면 pre-trained 모델을 fine-tuning할 때보다 성능이 낮아짐
  • 따라서 pre-trained 모델의 변화량을 제한하는 여러 시도가 있었음
  • 수식화 :
    • : 현재 representation density space
    • : 학습 후 representation density space
    • 이 둘의 차이(KL divergence)를 제한

  • p(f)를 알 수 없다… -> reformulation, approximation 등의 시도가 있어왔다.

  • SMART(Jiang et al, 2019)
  • FREELB(Zhu et al, 2019)


  • 이 논문에서 제안하는 방법 : R3F
    • g : fine-tuning 함수, f: pretraining 함수
    • 전체적인 모델(g(f(x))의 변화량을 제한
    • Forward-pass를 두 번 계산해야 한다 : g f(x+z)
      하지만 기존의 기법들은 더 많은 계산이 필요하다.

  • 추가 제약 : R4F


    • 의미 : fine-tuning 함수 g의 변화량을 제한하여 f의 변화량도 제한한다.
  • Lip(g) : 함수 g의 기울기의 상한값
    • 기본 형식 : 

    • 행렬 형식 :

  • 단순히 Lip{g}를 구하면
  • 따라서  하면 Lip{g} <= 1을 만족한다.


Experiments


  • Walltime(가장 성능이 좋은 checkpoint에 도달하는 시간)이 SMART에 비해 짧다.


  • 왼쪽 : Best 성능, 오른쪽 : median 성능




    성능의 편차가 적고, 가장 좋은 성능도 거의 비슷하다(좋을 때도 많이 있다).

  • Summarization task에서는 거의 SOTA를 기록했다.



  • 위 실험은, SST-2 task에 대해 classifier + pretrained model을 fine-tuning 후, Pretrained model을 fix한 상태로 각각의 task에 대해 fine-tuning한 실험이다.

    R3F, R4F(제일 오른쪽 2개)에서 전반적으로 좋은 결과가 나왔다.
    이 말은, R3F, R4F를 사용했을 때,
    pretrained model의 representation을 훼손하지 않고 
    fine-tuning 했다라고 볼 수 있다.


Conclusion

  • 새로운 fine-tuning 방법을 제안했다. : R3F, R4F
  • 이 방법은 pretrained representation의 generalizability를 유지했으며,
    computationally efficient하고,
    실험 결과도 SOTA를 보여주었다.


2020년 12월 15일 화요일

Github package 관련 파일들 역할

 MANIFEST.in


setup.py

  • python setup.py -sdist로 소스 distribution을 만든다.


check-manifest library

  • Version Control System(VCS)에 속한 파일들과 패캐지 파일들을 비교한다.