리뷰 논문 링크 : Similarity-Preserving Knowledge Distillation
논문 배경 설명
저자 및 논문 개요
- 발표 연도 및 학회 : 2019년, ICCV에서 공개
- Citation : 1223회 (24년 12월 24일 기준)
- 소속 기관 : Simon Fraser University(SFU), Borealis AI
- 저자 정보 :
- Frederick Tung
- Simon Fraser University(SFU) 컴퓨팅 과학부 박사 과정 졸업
- Borealis AI 연구원으로 활동
- Greg Mori
- Simon Fraser University(SFU) 컴퓨팅 과학부 교수
- Borealis AI 연구 디렉터

Knowledge Distillation이란?
- Knowledge distillation (지식 + 증류)?
- 지식 (Knowledge) + 증류(Distillation)
- 지식 (Knwoledge) : 어떤 대상에 대하여 배우거나 실천을 통하여 알게 된 명확한 인식이나 이해
→ 교사 네트워크가 학습한 모든 정보를 의미
- 증류 (Distillation) : 액체를 가열하여 생긴 기체를 냉각하여 다시 액체로 만드는 일. 여러 성분이 섞인 혼합 용액으로부터 끓는점의 차이를 이용하여 각 성분을 분리할 수 있다.
→ 교사 네트워크(대규모 모델)의 복잡한 지식을 핵심적인 형태로 추출
- 학습된 대규모 모델(교사 네트워크)의 지식을 작은 모델(학생 네트워크)에 전달하여, 경량화된 모델로도 교사와 유사한 성능을 달성

논문 리뷰
Abstraction
Knowledge distillation(지식 증류)에 대한 소개
- 훈련된 교사 네트워크의 지도 하에 학생 네트워크를 훈련시키는데 널리 사용되는 기술
- 복잡한 대규모 모델을 작은 모델로 압축하는 상황에서 큰 모델의 성능을 작은 모델로 효과적으로 전달하는데 활용
- 초기 KD는 교사 네트워크가 출력하는 Soft Target(소프트 확률 분포)을 학생 네트워크가 학습하도록 함
새로운 형태의 Knowledge distaltion 제안 배경
- 훈련된 네트워크에서 유사한 입력에 대해 Activation pattern이 유사하게 유도되는 관찰에서 영감
- 즉, 입력 데이터 간의 의미적 유사성이 네트워크 내부에 Activation pattern에도 반영
Similarity-preserving knowledge distillation 제안
- 입력 쌍의 Activation 관계를 유지하도록 학생 네트워크를 학습시키는 새로운 접근법
- 학습된 교사 네트워크에서 유사한(반대로 상이한) Activation pattern을 보이는 입력의 쌍은, 학생 네트워크에서도 유사한(반대로 상이한) Activation pattern을 유지하도록 학습하는 방법이다.
- 쉽게 정리하면,
- 교사 네트워크에서 입력 A와 B가 비슷하게 반응한다면, 학생 네트워크도 A와 B에 대해 비슷한 반응을 보이도록 학습된다.
- 반대로, 교사 네트워크에서 A와 C가 다르게 반응한다면, 학생 네트워크도 A와 C에 대해 다르게 반응하도록 학습된다.
- 핵심 : 교사 네트워크의 출력 자체를 모방하는 것이 아니라, 입력 간의 관계(유사성과 비유사성)를 학습하여 일반화 성능을 높임
- 실험은 3개의 공개 데이터셋을 가지고 접근 방식의 가능성 보여줌
Introduction
KD에 대한 필요성
- 배경 1 :
- 최근의 딥러닝 연구는 깊어지고, 넓혀지고 더 복잡한 네트워크 학습에 집중해왔다.
- 하지만, 현실 세계에서는 배포를 위한 cost를 고려해야한다. (모바일 로봇, 자율 주행 자동차)
- 배경 2 :
- 전이 학습할 때, 데이터 저작권은 source 데이터를 접근하는데 제한될 수 있다.
- 때문에, source 데이터를 활용하지 않고, source 데이터로 학습된 네트워크의 지식을 전이하는 방법을 찾는 것이 중요하다.
- 배경 3 :
- KD는자원 효율적인 신경망 압축이 동기였지만, 다른 분야에서도 사용하고 있다.
- priviliged learning
- advesarial defence
- learning with noisy data
- 단순히 KD를 사용하기만 해도 데이터 레이블을 독립으로 사용하여 학습할 때보다 더 풍부한 신호를 준다.
- 하지만, 이러한 KD의 단순함은 학생을 훈련하기 위한 교사의 지식을 가장 잘 포착하는 방법이 무엇인가하는 문제의 복잡성을 가리고 있다.
- The conceptual simplicity of knowledge distillation belies the fact that how to best capture the knowledge of the teacher to train the student.
기존 Knowledge Distillation 방법론 소개
- Traditioal KD (2015) : 교사의 Softened Class Scores를 학생이 모방
- Fit-Nets (2015) : 계층을 훈련하는 힌트(hints)를 추가하여, 학생이 교사의 중간 계층의 출력을 모방하도록 유도
- Flow-based KD (2017) : 교사의 계층 간의 흐름(flow)을 모방하도록 학생이 훈련
- Attention Transfer : 공간적 주의력(spatial attention)을 사용하여, 교사의 공간적 주의력 맵을 학생이 모방하도록 유도
- 4가지 모두 Distilattion loss를 정의하여 KD를 구현하는 방법
동기 및 아이디어
- 동기 : 의미적으로 유사한 input에 대한 신경망의 Activation pattern이 유사하다.
- CIFAR-10 test image 입력에 대한 WideResNet-16-2 네트워크의 activation map을 가지고 Channel-wise average activation을 계산
- 같은 카테고리의 이미지는 유사한 채널이 Activation되는 경향이있다. (1~1000, 1001 ~ 2000 등)
- 서로 다른 이미지에서의 Activation map의 유사성은 교사 네트워크가 학습한 유용한 의미론적 정보를 포착한다.
- 아이디어 : 이러한 의미론적 유사성을 지도 신호(Supervisiory signal)로 이용할 수 없을까?
Method
Knowledge Distillation 언급
- 정의 : 학습된 교사 네트워크의 지도 아래에서 학생 네트워크를 훈련 시키는 것
- 교사 네트워크의 역할은 추가적인 supervision을 제공하는 것
- 이를 이용한 신경망 압축에서, 학생 네트워크는 교사 네트워크보다 계산 연산이 싸다.
- shallower, thinner, cheaper
- 중요한 것은 학생 네트워크의 성능을 최대화할 수 있도록 교사 네트워크의 지식을 어떻게 인코딩하고 전달할지를 결정하는 것이다.
Traditional Knowledge Distillation (2015)
-
Geoffery Hinton, Oriol Vinyals, Jeff Dean이 제안한 초기 KD 방법론
-
교사 네트워크가 Softamx의 온도 파라미터 T를 높여 생성한 부드러운 확률 분포(Soft Targets)를 학생 네트워크가 모방
-
Distatlion loss : 교사와 학생 네트워크 간의 Sof Target 차이를 줄이도록 정의

- 앞 부분 : 기존의 ground truth label에 대한 loss 항
- 뒷 부분 : 학생 네트워크가 교사 네트워크의 softened class scores를 흉내 내도록 유도하는 항
-
교사의 네트워크의 지식을 Softened class scores의 형태로 인코딩되어 학생에게 전달
Simliarlity-Preserving Knowledge Distillation (SPKD)
- 동기 : 동일한 카테고리와 다른 카테고리의 입력들에 대해 뚜렷하게 구별되는 Activation pattern
- 가설 : 교사 네트워크 모델에서의 입력들간의 Activation 상관관계를 학생 네트워크로 전달하면, 이를 통해 지식을 효과적을 인코딩할 수 있지 않을까?
- 즉, 입력이 교사 네트워크에서 매우 유사한(반대로 상이한) Activation을 보인다면, 학생 네트워크에서도 매우 유사한(반대로 상이한) Activation을 생성하도록 유도하는 것
Pairwise Similartiy Matricies
- 주어진 b개의 이미지로 구성된 미니 배치가 네트워크를 통과하여 생성된 Activation map으로부터 Pairwise similarity matrices를 계산하고, 이를 기반으로 distillation loss를 정의함
- b x b 크기에 pairwise similarity matricies는 미니 배치 내 이미지들이 네트워크에서 유도된 Activation 유사성(비유사성)을 인코딩한다.
- 교사 네트워크의 지식을 Pairwise similarity matrices로 인코딩되어 학생 네트워크에 전달
- 학생 네트워크는 교사 네트워크의 입력 간 관계(유사성 및 비유사성)를 학습하여 성능을 향상
Notation - Activation map

- T : 교사 네트워크, S : 학생 네트워크
- l : layer
- 선택되는 layer는 학생과 교사 네트워크가 동일한 깊이라면 같은 위치의 layer가 선택되고, 다른 깊이라면, 동일한 블록 내의 가장 마지막 layer를 선택한다. (구조적 차이 보완)
Pairwise Similarity Matrices 계산

- Q의 경우 기존의 A를 reshape 한 것 (b x c x h x w) → (b x chw)
- Activation 상관관계는 activation map 의 외적과 L2-벡터 정규화로 계산된다. (최종 b x b 행렬 출력)
- 외적 : 상관 관계를 행렬 형태로 계산 (엄밀히 말하면 행렬 외적을 통해 이미지들간의 dot product 계산)
- L2 - 벡터 정규화 : 크기에 대한 영향 제거하기 위함
Distillation loss

최종 loss 수식

- 기존의 데이터 레이블에 대한 Cross Entropy와 SPKD loss항의 가중합으로 정의한다.
- γ : 가중치 조철 하이퍼파라미터
모델 구조

기존 방법들과의 차이점
- Traditional KD : softened class scores를 사용
- FitNets, Flow-based distillation, Attention transfer : Activation map 사용
- SPKD : Activation map을 사용하지만, 학생 네트워크가 교사 네트워크의 표현 공간의 다른 측면을 모방
- 입력 샘플들 간의 Pairwise activation 유사성을 보존하는 것이 목표
- 이러한 점은 표현 공간의 회전과 같은 변환에 영향을 받지 않는다.
- 즉, 절대적인 표현 공간의 좌표값 대신 입력 데이터 간의 상대적인 관계(correlation)만을 학슿반다.
- 학생 네트워크가 교사 네트워크의 표현 공간 자체를 완전히 복제할 필요 없이 데이터들간의 유사성을 잘 보존하기만 하면된다!
Experiments
실험 설계


- 실험을 위해 WideResNet-16-k, WideResNet-40-k를 사용
- WideResNet : ResNet의 한 변형으로, 네트워크의 깊이를 줄이고 폭을 늘려 성능을 향상시키는데 중점을 둔 아키텍처
사용 데이터셋 및 실험
CIFAR-10

- 사이즈가 작기 때문에 distilation method를 비교하기 위해 흔히 채택되는 데이터셋
Describable Texture Dataset(DTD)

- 제한된 학습 데이터셋에 대해 distillation과 fine-tuning이 전이학습에 어떻게 결합될 수 있는지 보여주기 위함
CINIC-10

- CIFAR-10보다 더 큰 데이터셋으로 큰 데이터셋에 대해 평가해보기 위해 사용
CIFAR-10 실험 결과

- 5번의 실험
- 동일한 폭 + 다른 깊이 (1, 3)
- 다른 폭 + 동일한 깊이 (2, 4)
- 다른 폭 + 다른 깊이 (5)
- 평가 지표 : Median Error (5번의 실행 결과 기반)
- SPKD의 경우 학생 네트워크의 학습 성능을 향상시켰으며, median error를 0.5~1.2% 감소시켰다.
- 또한 5개 중 4개 실험에서 기존의 distilation 방법론들 대비 가장 낮은 error를 기록했다.
- 5번째 실험을 보면 5배 적은 파라미터를 사용하지만(5배의 압축률) teacher 대비 erorr는 0.3% 손실에 불과하다.
- SPKD가 학습된 교사 네트워크에서 Actiavtion 유사성이 의미론적 정보를 잘 인코딩하고 효과적인 지도 신호(Supervisory signal)로 작용한다. 큰 네트워크의 지식을 작은 네트워크로 효율적으로 압축할 수 있으며, 그 과정에서 정확도 손실을 최소화하면서 자원 효율성을 크게 향상 시킬 수 있다.
CIFAR-10 추가 실험 (SPKD의 loss와 성능(Top-1 Error) 간의 관계 검증)

- 3번의 실험 진행
- WideResNet-16-1/WideResNet-16-2
- WideResNet-16-2/WideResNet-40-2
- WideResNet-40-2/WideResNet-16-8
- SPKD의 loss 감소가 Top-1 error의 감소를 나타냈다.
- SPKD loss와 Top-1 error 간의 양의 상관 관계를 입증하였다.
CIFAR-10, SPKD 학습 세팅에 대한 참고사항
- 실험 결과는 수치적으로 표 형태로 추가되어있지 않지만 언급한 내용
- 참고 1 :
- 교사 네트워크와 학생 네트워크 각각의 마지막 convolution layer의 activation만을 사용하여 실험이 진행하였다. (모든 실험)
- WideResNet의 각 블록에 activation을 가지고도 실험했지만, 성능 개선이 없었기 때문
- 아마도 전체 네트워크에서 초기 convolution은 이미지들 사이의 더 generic feature만을 인코딩하기 때문일 것이다. layer가 깊어지면 깊어질수록, 좀 더 specialized feature와 의미적으로 유사한 이미지의 Activation pattern은 점점 더 뚜렷해진다.
- 참고 2 :
- Post-softmax scores를 사용하는 것보다 Activations를 사용하는게 효과가 좋았다.
- Post-softmax scores보다 중간 layer의 Activations를 사용하는 것이 데이터 간 유사도를 더 잘 계산하며, 학생 네트워크의 학습에 더 유리하다.
- Actiavtion 값이 모델의 특징 공간(feautre space)에 대한 더 세부적이고 유용한 정보를 포함하고 있기 때문일것이다.
Describable Textures Dataset(DTD) 실험 세팅
- ImageNet 데이터셋을 사용해 미리 학습된 네트워크에 대해 새로운 작업에 맞게 fine-tuning을 수행 (Student)
- fine-tuning을 할 때 AT나 SPKD를 함께 사용한 결과와 비교
- KD의 경우, source 데이터(ImageNet)와 target 데이터(DTD) 클래스가 불일치하기(disjoint) 대문에 사용불가
- 평가 지표 : Median Error (10번의 데이터 분할을 사용한 실행 결과 기반)
- 사용 네트워크 : MobileNet과 MobileNetV2 변형
- 두 네트워크 간의 유사성을 보존하는 데 초점을 맞추고 있기 때문에, 교사 네트워크를 별도로 target 데이터를 가지고 fine-tuning할 필요 없이, 입력에 대한 추론 결과를 가지고 학생 네트워크를 학습하는데 이용
- 새로운 도메인이 학습 데이터가 부족한 상황이나, 학생 네트워크가 source 도메인에 직접 접근할 수 없을 때 유용 (privileged learning)
- 훈련된 네트워크(여기서는 ImageNet)에 새로운 데이터(Texture Dataset)를 fine-tuning할 때 유용
Describable Textures Dataset(DTD) 실험 결과

- SPKD 없이 fine-tuning을 했을때보다 SPKD를 적용하여 fine-tuning을 했을때가 median error가 더 낮았다.
- MobileNet의 경우 1.1%, 1.3% 정도
- MobileNetV2의 경우 1.0% 정도
- fine-tunign을 할때 SPKD를 사용하여 성능을 향상시킬 수 있다.
- 또한 SPKD의 경우 AT를 적용한 경우보다 모든 결과에서 더 낮은 median error를 보였다.
- MobileNet에서 총 19번의 split에서 앞섰다.
- MobileNet에서 총 24번의 split에서 앞섰다.
- SPKD가 AT에 비해 Domain Shift(ImageNet → Texture Dataset)에 강건하고 효과적일 수 있다
CINIC-10 실험 세팅
- CIFAR-10보다 더 큰 데이터셋으로 큰 데이터셋에 대해 평가해보기 위해 사용
- CIFAR-10보다 많으면서 ImageNet보다는 적은
- ImageNet은 너무 많아서 검증 및 학습에 수개월 소요
- 따라서 CINIC-10 사용
- SPKD와 다른 Distillation 방법들을 함께 사용한 결과도 비교
- 평가 지표 : Median Error (앞선 실험과 달리 자세한 언급 없음)
- 사용 네트워크 : ShuffleNetV2와 MobileNetV2로 실험
CINIC-10 실험 결과

- 일관적으로 SPKD를 사용했을때 baseline student보다 성능이 더 좋았다.
- ShuffleNetV2 1.3%, 1.5% 정도
- MobileNet 0.6% 정도
- 또한 다른 distillation 기법들과 비슷한 성능을 냈다.
- CINIC-10 데이터셋 같이 큰 데이터셋에서도 성능이 보장된다.
- 두 가지 distillation 기법(AT + SPKD)을 같이 적용한 결과 1.4%, 1.9% 정도 성능 향상이 있었다.
- SPKD가 AT를 보완해준다. (KD와 함께 사용한 경우에도)
추가 실험 1 Sensitivity analysis

- 하이퍼파라미터 γ에 따른 SPKD의 성능 변화 확인
- 광범위한 범위에 γ에 대해 robust한 성능
추가실험 2 서로 다른 학생, 교사 네트워크에서 실험

- 추가적으로 CIFAR-10 데이터를 가지고 서로 다른 아키텍처 계열의 학생과 교사 네트워크를 사용하여 추가 실험을 수행
- ShuffleNetV2, WideResNet
- MobileNetV2, WideResNet
- 학생과 교사 네트워크가 서로 다른 아키텍처 계열인 경우에도 SPKD가 KD와 AT보다 더 뛰어난 성능을 보였다.
- 이 논문은 교사 네트워크에서 학생 네트워크로 지식을 포착하고 전달하기 위한 새로운 증류 손실(distillation loss)을 제안한다.
- 그러나, 여전히 해결되지 않은 질문이 있다 : 교사와 학생 네트워크의 아키텍처 설계 문제
- 관련 연구: 여러 논문에서 증류 방법과 네트워크 구조 설계에 대해 다루고 있다.
- 지식 증류(KD)는 처음 네트워크 압축을 위해 도입되었으며, 이후 자원 효율성을 고려하는 효율적 네트워크 아키텍처 설계에 대한 관심이 증가했다.
- 관련 방법: Weight pruning, quantized networks, low-rank factorization 등
- 최신(SOTA) 네트워크 압축 방법은 네트워크 크기를 최대 10배까지 크게 줄일 수 있지만, 종종 특수한 소프트웨어나 하드웨어를 필요로 한다.
- 지식 증류의 장점은 이러한 추가적인 소프트웨어나 하드웨어 없이도 표준 딥러닝 프레임워크에서 쉽게 구현할 수 있다는 점이다.
Conclusion
정리
- We proposed similarity-preserving knowledge distillation: a novel form of knowledge distillation that aims to preserve pairwise similarities in the student’s representation space, instead of mimicking the teacher’s representation space.
- 교사 네트워크의 표현 공간을 모방하는 것이 아닌 학생 네트워크의 표현 공간에서 데이터간의 유사성을 유지하도록 학습하는 새로운 형태의 KD인 SPKD를 제안하였다.
- Moreover, in a transfer learning setting, when traditional class score based distillation is not directly applicable, we have shown that similarity-preserving distillation provides a robust solution to the challenging domain shift problem.
- 전이학습에 Traditional KD 방법이 직접적으로 적용되지 않을때 Domain shift에 강건한 SPKD는 이를 해결하였다.
- We have also shown that similarity-preserving distillation complements the state-of-the-art attention transfer method and captures teacher knowledge that is not fully encoded in spatial attention maps.
- SPKD가 Sota AT를 보완하는데 사용될 수 있음을 보여줬다.
- We believe that similarity-preserving distillation can provide a simple yet effective drop-in replacement for (or complement to) traditional forms of distillation in a variety of application areas.
- 또한 SPKD가 다음의 분야에서 Traditional KD를 대체할 수 있다고 생각한다.
- model compression
- privileged learining
- adversarial defence
- learning with noisy data