[논문 리뷰] Similarity-Preserving Knowledge Distillation

YJ·2025년 1월 6일

논문 리뷰

목록 보기
1/6
post-thumbnail

리뷰 논문 링크 : 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을 계산
    • Channel-wise average activation : 채널마다 activation에 대한 평균을 내는 것으로 해당 채널에 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

  • 밝은 색 : 같은 클래스간의 높은 유사성

  • 어두운 색 : 다른 클래스간의 낮은 유사성

  • 특히나 WideResNet-40-2의 경우 상대적으로 더 잘 구분(밝게), 데이터셋의 의미론적 정보를 포착할수 잇는 높은 용량임을 반영

  • SPKD loss 항 정의

    • 교사와 학생 네트워크 간의 pairswise similarity matrcies 차이를 줄이기 위해 distillation loss를 정의한다.
    • 두 pairwise similarity matrcies의 차이 (element-wise squared difference)에 대해 frobineus norm을 구해준다

최종 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 방법들을 함께 사용한 결과도 비교
    • SPKD + KD
    • SPKD + AT
  • 평가 지표 : 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의 성능 변화 확인
    • γ : 10 ~ 64000
  • 광범위한 범위에 γ에 대해 robust한 성능

추가실험 2 서로 다른 학생, 교사 네트워크에서 실험

  • 추가적으로 CIFAR-10 데이터를 가지고 서로 다른 아키텍처 계열의 학생과 교사 네트워크를 사용하여 추가 실험을 수행
    • ShuffleNetV2, WideResNet
    • MobileNetV2, WideResNet
  • 학생과 교사 네트워크가 서로 다른 아키텍처 계열인 경우에도 SPKD가 KD와 AT보다 더 뛰어난 성능을 보였다.
  • 이 논문은 교사 네트워크에서 학생 네트워크로 지식을 포착하고 전달하기 위한 새로운 증류 손실(distillation loss)을 제안한다.
  • 그러나, 여전히 해결되지 않은 질문이 있다 : 교사와 학생 네트워크의 아키텍처 설계 문제
    • 관련 연구: 여러 논문에서 증류 방법과 네트워크 구조 설계에 대해 다루고 있다.
  • 지식 증류(KD)는 처음 네트워크 압축을 위해 도입되었으며, 이후 자원 효율성을 고려하는 효율적 네트워크 아키텍처 설계에 대한 관심이 증가했다.
    • 관련 방법: Weight pruning, quantized networks, low-rank factorization 등
  • 최신(SOTA) 네트워크 압축 방법은 네트워크 크기를 최대 10배까지 크게 줄일 수 있지만, 종종 특수한 소프트웨어나 하드웨어를 필요로 한다.
    • 지식 증류의 장점은 이러한 추가적인 소프트웨어나 하드웨어 없이도 표준 딥러닝 프레임워크에서 쉽게 구현할 수 있다는 점이다.

Conclusion

정리

  1. 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를 제안하였다.
  2. 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는 이를 해결하였다.
  3. 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를 보완하는데 사용될 수 있음을 보여줬다.
  4. 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
profile
제 글이 유익하셨다면 ♡와 팔로우로 응원 부탁드립니다.

0개의 댓글