dhkim0225 / 1day_1paper

read 1 paper everyday (only weekday)
54 stars 1 forks source link

[71] SVCCA: Singular Vector Canonical Correlation Analysis for Deep Learning Dynamics and Interpretability #100

Open dhkim0225 opened 2 years ago

dhkim0225 commented 2 years ago

paper Jay Alammar youtube

layer 별 유사도를 측정하자! 이를 통해 네트워크가 overparameterize 된 것은 아닌지, 학습은 어떻게 진행되는지 등을 볼 수 있다. SV 는 Singular Vector decomposition 을 해서 붙었다. 살펴보자.

Contributions

  1. layer에 학습된 representation 의 차원과 뉴런 수는 동일한가? ==> 아니다.
    1. trained net 에서 fraction 만 SVCCA로 잘 선택해서 돌려봐도 잘 돌아간다.
  2. 학습은 어떻게 진행될까? ==> bottom up 방식으로 진행되더라
  3. SVCCA 를 conv 에서 고속으로 쓸 수 있는 방법 제안 (with discrete fourier transform)
  4. architecture 는 언제 class 별 구분을 하기 시작할까? SVCCA 로 class 별 semantic 정보들을 뽑아서 이를 탐구해 본다.

SVCCA

SVCCA 테스트를 위해 4layer dense model 로 시작한다. image (a) 학습 대상 네트워크는 2개 (다른 initialize), 회색 칠한 layer 대상으로 (b), (c), (d) 뽑음 (b) 데이터셋 별 activation 시각화 (c) Top SVD direction (d) Top SVCCA direction

재밌게도 SVCCA 값은 상당히 비슷하다.

세부적인 내용은 생략.

그래서 어떻게 쓰냐?

layer 별 output 비교에 특화되었다고 보면 된다. trained model 과 training 중인 모델의 layer 를 갖고 SVCCA 를 통해 similarity 를 뽑아낸 그림이다. image

네트워크는 bottom up 방식으로 초기 layer 들이 먼저 학습되고 나서 뒷 레이어들이 학습되더라.