1day_1paper
1day_1paper copied to clipboard
[72] Similarity of Neural Network Representations Revisited (CKA)
CCA가 다변수 상황에서 similarity 를 측정할 수 있지만, invertible linear transform 에 invariant 하기 때문에 data-point 의 수보다 더 높은 차원의 representation 에서는 잘 동작하지 못함. CKA (Centered Kernel Alignment) 를 representation 끼리의 relation measurement 에 사용함.
paper youtube - ML explained - author's presentation ppt
사전지식
Centering Matrix
centering matrix 란, identity matrix $I_n$ 에서 1로 가득찬 J 행렬 에 scaling 을 해서 뺀 matrix다
예를 들면, 다음과 같다.
centering matrix 는 symmetric 하고, idempotent 하다 idempotent matrix (멱등행렬) 는 자기 자신을 제곱해도 자신이 나오는 행렬이다.
Centering matrix $C_m$, $C_n$ 이 있다고 해보자. X matrix 양쪽에 C를 곱함으로 써 ( $C_mXC_n$ ) centering 을 수행할 수 있다. $C_m$ 을 왼쪽에다가 곱한다는 건, $C_mX$ 의 칼럼 값들의 평균을 0으로 만들어주겠다는 소리고, $C_n$ 을 오른쪽에다가 곱하는건, row 값들의 평균을 0으로 만들어주겠다는 소리다.
Hilbert-Schmidt Independence Criterion
두 random variable 이 독립인지 테스트할 때 써먹기 좋다.
random variable A 와 B 가 있을 때,
Cov(A, B) = 0
이 독립을 의미하지는 않는다.
모든 bounded continuous function s
와 t
에 대해서, Cov(s(A), t(B)) = 0
이 성립하는게 독립이라고 한다.
59년 논문 이야긴데, 나도 잘 모르겠다...
2005년 NIPS gretton et al 에서는
모든 bounded continuous function들을 본다는 건 tractable 하지 않기 때문에,
universal Reproducing Kernel Hilbert Spaces (RKHS) F, G 의 s, t 에 대해, 다음을 구했다.
그리고 Hilbert-Schmidt Independence Criterion (HSIC) 를 upper bound 로 정의를 했는데, 효과를 톡톡히 봤다고 한다.
요 HSIC 갖고 loss 도 만들고 하는 걸 보면, (https://arxiv.org/pdf/1910.00270.pdf) 쓸모가 있는 것 같다.
2개의 kernel K,L 에 대해 empirical estimator HSIC 는 다음과 같이 정의된다.
where,
H == centering matrix
만약 다음과 같은 linear kernel 이라면,
이러한 일반화 식을 뽑아낼 수 있다.
CKA
일반적으로, similarity 를 구한다면 다음과 같이 dot product 로 구한다.
feature 와 feature 의 similarity 다.
data point 끼리의 similarity 도 구해볼 수 있는데, 보통 gram-matrix 라고도 불리는 녀석들이다.
이들끼리는 다음과 같은 관계가 성립한다.
vec() 은 vecorize 를 의미한다.
여기서 양쪽을 normalize 해주면, 이전에 CKA 라고 불리는 개념이 완성된다.
여기에 kernel trick을 넣어준다. K tilde
, L tilde
는 centered kernel matrix, H는 centering matrix
kernel 을 모든 example 에 대해 계산하고, 행과 열에 centering 을 하는 것.
linear case 에서 feature 를 centering 하는 느낌.
왜 normalize 를 해주는고,, 하니,
HSIC은 본래 isotropic scaling 에 대해 variant 한데, normalize를 하면 invariant 해진다고 한다. (https://arxiv.org/abs/1203.0550)
커널은 다음과 같이 다양한 것들을 써 볼 수 있다고 한다.
Result
이제 이게 의미가 있는 지 살펴봐야 하는데,
10개의 다른 10-layer CNN 을 CIFAR-10 에 학습시켜 보면서 (각각 다른 initialize 로 2번씩) 검증을 한다.
다른 initalized 모델들에서 같은 layer 끼리 feature similarity가 가장 높으면 맞춘 것!
accuracy 를 비교해보면 CKA 가 가장 잘하더라.
visualize 해봐도 확연히 차이가 나더라
Additional Exp
논문 아래쪽의 additional exp 가 재미있었다.
transformer 에 대해서 CKA 를 했을 때, attention 결과는 신기하다...!
feature 뽑은 위치는 다음과 같다.