2024 딥러닝/논문 리뷰

[논문 리뷰] Distilling the Knowledge in a Neural Network(NeurIPS, 2015)

융딩2 2024. 2. 26. 11:23

0. Abstract

  1. 거의 모든 머신 러닝 알고리즘의 성능을 향상시키는 매우 간단한 방법은 같은 데이터에 대해 여러 다른 모델을 훈련시킨 후 그들의 예측을 평균내는 것
    1. 한계점: 모델 전체의 앙상블을 사용하여 예측을 하는 것은 번거롭고, 개별 모델이 큰 신경망인 경우 특히 많은 사용자에게 배포하는 데 너무 많은 계산 비용이 들 수 있습니다.
  2. Caruana와 그의 동료들은 앙상블의 지식을 단일 모델에 압축하여 훨씬 쉽게 배포할 수 있음을 보여주었고, 우리는 다른 압축 기술을 사용하여 이 접근 방식을 더 발전시킵니다.
    1. 우리는 MNIST에서 몇 가지 놀라운 결과를 달성하고, 앙상블의 모델들의 지식을 단일 모델에 증류함으로써 많이 사용되는 상업 시스템의 음향 모델을 크게 개선할 수 있음을 보여줍니다.
  3. 또한, 하나 이상의 전체 모델과 많은 전문가 모델(전체 모델이 혼동하는 미세한 클래스를 구분하는 것을 배우는)로 구성된 새로운 유형의 앙상블을 소개합니다.
    1. 전문가의 혼합과는 달리, 이러한 전문가 모델은 빠르게 그리고 병렬로 훈련될 수 있습니다.

⇒ 결론) 앙상블을 효율적으로 하자 !

 


1. Introduction

[1] 증류를 통해 배포가 더 유용하도록

  • 기존 머신러닝에서는 훈련과 배포 사이의 다른 요구사항에도 불구하고, 유사한 모델 사용함
    • 훈련: 대규모 데이터셋에서 구조 추출 but 실시간 작동이나 계산 자원에 대한 요구사항X
    • 배포: 지연시간과 계산 자원에 대해 더 엄격한 요구사항
  • 데이터에서 구조 추출 용이 위해, 매우 큰 모델 or 모델의 앙상블 훈련시켜야됨 → 복잡한 모델
    • dropout과 같은 강력한 정규화 기법 사용하여 훈련됨
  • 훈련된 복잡한 모델로부터 지식을 증류하여 배포에 적합한 모델로 전달 가능
  • (= 대규모 모델 앙상블 → 단일 작은 모델로 지식 전달 가능)

[2] distillation방식으로 일반화한다면, 앙상블에 비해 더 좋은 성능 나타날 것

  • 새로운 데이터에 잘 적용될 수 있는 일반화 능력 갖춤의 중요성
    • 큰 모델로부터 작은 모델로 지식을 전수할 때는, 작은 모델을 큰 모델과 같은 방식으로 일반화하도록 훈련가능
      • ex. 여러 다른 모델들의 평균으로 이루어진 대형 모델이 잘 일반화된다면, 같은 방식으로 일반화하도록 훈련된 작은 모델은 앙상블을 훈련시키는 데 사용된 동일한 훈련 세트에서 정상적으로 훈련될 것이고, 테스트 데이터에서 앙상블에 비해 훨씬 더 우수한 성능을 발휘할 것

[3] 소프트 타겟, 복잡한 모델의 일반화 능력을 작은 모델에 전달하는 방법

  • 복잡한 모델이 간단한 모델들의 큰 앙상블일 경우
    • 개별 예측 분포의 산술적 또는 기하학적 평균을 소프트 타겟으로 사용
  • 소프트 타겟이 높은 엔트로피를 가질 때
    • 작은 모델은 원래 복잡한 모델보다 훨씬 적은 데이터와 훨씬 높은 학습률을 사용하여 훈련가능

[4] temperature 변수, 더 soft target이 되도록

  • distillation (최종 softmax의 temperature를 높여서)
    • 복잡한 모델(교사 모델) → 복잡한 모델이 더 soft target set를 생성하도록
    • 작은 모델(학생 모델) 학습 → 교사모델과 동일한 높은 temperature사용 → soft target과 일치하도록
    ⇒ 복잡한 모델(교사 모델)의 로짓에 작은 모델(학생 모델) 일치시키기

[5] transfer set과 train set

  • transfer set : 작은 모델(학생 모델)훈련시키는데 사용됨
    • label이 없는 데이터로 구성
  • 원래의 train set
    • 원래 train set이 잘 작동하는 방법: 작은 모델(학생 모델)이 복잡한 모델(교사 모델)에 의해 제공된 soft target과 일치 + 진정한 타겟 예측하도록 장려하는 작은 항을 목적 함수에 추가

2. Distillation

  • T에 더 높은 값을 사용하면 클래스에 대한 더 부드러운 확률 분포 생성
  • distillation의 가장 간단한 학습 과정
    • label이 없을 때 (일반적인 경우)
      • transfer set에 대해 학습할때,,
      • 1) transfer set의 각 케이스에 대해 높은 temperature가진 복잡한 모델(교사 모델) 사용하여 생성된 soft target분포
      • 2) distillation 모델로 전달
      • 3) distillation model(학생 모델) 훈련 시 동일한 높은 temperature 사용. but 학습 후에는 temperature=1
    • label이 있을 때 학습 방법 (일부여도)
      • 정확한 label을 사용하여 soft target을 수정
      • 2 가지 다른 목적 함수의 가중 평균 사용 (더 나은 접근법 !)
        • 1번째 목적함수: soft target과의 cross entropy
          • 복잡한 모델로부터 soft target생성하는데 사용된 것 & 동일한 높은 temperature에서 증류된 모델의 softmax 사용하여 계산
        • 2번째 목적함수: 정확한 label과의 cross entropy
          • 증류된 모델의 softmax에서 동일한 로짓 사용, temperature=1일때 계산
        ⇒ 2번째 목적함수에 낮은 가중치 사용하는게 젤 좋음 !
    • 부드러운 타겟에 의해 생성된 기울기의 크기가 $1/T^2$에 비례= 메타 파라미터의 실험 동안 distillation에 사용되는 temperature가 변경되더라도 hard target과 soft target의 상대적 기여도가 대략 변하지 않도록 보장
    • → 하드 타겟과 부드러운 타겟을 모두 사용할 때 이를 $T^2$로 곱하는 것

3. Preliminary experiments on MNIST

[1] temperature 관련 실험

  • 세팅 & 결과 비교
    • 60,000개 훈련 데이터 전체
    • (baseline+) 1200개의 선형 은닉 유닛을 가진 2개의 은닉층을 가진 단일 큰 신경망으로 훈련
      • 특이점
        • dropout (정규화 방법): 가중치 제약
          • 가중치 공유하는 지수적으로 많은 모델들의 앙상블 훈련
        • 입력 이미지의 어떤 방향으로든 최대 두 픽셀까지 jitteriing
      • 결과
        • 67개의 테스트 오류를 달성
    • (baseline) 800개의 수정된 선형 은닉 유닛을 가진 2개의 은닉층을 가진 더 작은 신경망으로 훈련
      • 특이점
        • 정규화 없음
      • 결과
        • 146개의 오류를 달성
      • (knowledge distillation) (temperature=20 추가했을때) 결과
        • 74개의 테스트 오류 달성
        • = soft target과 일치하는 추가 작업에 대해서만 정규화 함
    ⇒ 결론) temperature 잘 조정해서, soft target이 distillation 모델에 상당한 양의 지식을 전달 가능
    • 두 은닉층 각각에 300개 이상의 유닛이 있을 때
      • (temperature≥ 8일 때) 결과
        • 모두 비슷했음
    • 두 은닉층 각각에 30개의 유닛이 있을때 (이전보다 극적 감소)
      • (2.5 ≤ temperature ≤ 4) 결과
        • 더 높거나 낮은 temperature보다 현저히 더 나은 결과
  • = transfer set가 어떠한 변환도 포함하지 않아도, 변환된 훈련 데이터로부터 배운 일반화하는 방법에 대한 지식 포함

[2] transfer set 관련 실험

  • 세팅 & 결과 비교
    • transfer set에서 숫자 3의 모든 예제 생략
    • 기본
      • 결과
        • distillated model은 test set의 1010개의 3중 133개가 3에 해당하는
        • 206개의 테스트 오류 달성
      • 결과 해석
        • 대부분의 오류: 학습된 3 클래스의 bias가 너무 낮기에 발생
        • = 모델이 각 클래스에 대해 충분히 '선호도'를 가지지 않기 때문에, 분류 오류가 발생하기 쉬움
    • bias를 3.5만큼 증가시킴 (테스트셋에서 전체 성능 최적화)
      • 결과
        • 109개의 테스트 오류 달성
    ⇒ 결론) 따라서, 올바른 bias 사용시, distillated된 모델은 3을 본적 없음에도 불구하고, 테스트 3의 98.6% 달성 가능= 올바른 bias 사용시, 처음보는 데이터에 대해서도 높은 정확도로 맞출 수 있음

4. Experiments on speech recognition

[1] 이 실험의 contribution 요약

  • 자동 음성 인식(ASR)에 사용되는 딥 뉴럴 네트워크(DNN) 음향 모델의 앙상블 효과 조사
  • 이 실험의 contribution
    • 이 논문에서의 distillation전략이 단일 모델로 모델 앙상블하는데에 더 성능 good
    • (동일 훈련 데이터로 직접 학습된 동일 크기의 모델보다)

[2] 머 여기서도 distillation방법이 잘 통했다

  • 현재 최첨단 ASR시스템 작동 과정
    • DNN 사용하여 파형에서 유도된 feature의 (짧은) 시간적 context를
    • 숨겨진 마르코프모델(HMM)의 이상 상태들에 대한 확률분포로 매핑
    • DNN은 각 시간마다 삼음소(tri-phone) 상태의 클러스터들에 대한 확률분포 생성
    • 디코더: 언어 모델 하에서 높은 확률 상태 사용 & 가능한 전사를 생성하는 사이의 최선의 타협을 찾는 HMM 상태들을 통한 경로를 찾음

 

4.1 Results

[1] 실험 세팅

  • 실험 세팅
    • 동일한 구조와 훈련 방식으로 10개의 모델을 훈련
    • 모델들은 서로 다른 초기값으로 시작되어, 앙상블의 평균 예측이 개별 모델들을 크게 능가하도록
    • 데이터 세트를 달리하는 실험은 결과에 큰 영향을 주지 않아, 간단한 접근법 선택
    • 증류 과정에서는 온도 [1, 2, 5, 10]을 시험해 보고, 하드 타겟에 대한 교차 엔트로피에 대해 0.5로 설정

[2] Table 1 해석

  • Table 1 해석
    • 결론) distillated 접근 방식이 하드 레이블 사용하여 단일 모델 훈련시키는 것 보다 성능 좋음
    • 10개 모델의 앙상블(10xEnsemble)로 프레임 분류 정확도 개선의 80%이상이 증류된 모델로 전달됨 (MNIST관련 preliminary실험 결과와 유사)
      • 앙상블은 목표 함수 불일치로 인해 최종 목표인 WER에 대해 조금 성능 나아짐
      • 이후 앙상블에 의해 달성된 WER 개선 → 다시 한번 증류된 모델로 이전됨

[3] 음향 모델 학습 관련 해석

  • 음향 모델 학습 관련 해석
    • 방법) 학습된 더 큰 모델의 클래스 확률과 일치시킴으로써 작은 음향 모델 학습
    • 큰 레이블이 없는 데이터셋 사용 & temperature=1로 distillation 수행
    • 하드 레이블로 훈련된 큰 모델과 작은 모델의 오류율 사이 차이의 28%만큼 작은 모델의 오류율 줄임.

5. Training ensembles of specialists on very big datasets

  • 각각이 혼동될 수 있는 클래스의 서로 다른 부분 집합에 집중하는 전문가 모델(교사 모델)을 학습
  • 대략적인 학습 방법
    • 예제 데이터셋 사용 - 우리는 특정 데이터셋의 예를 들어 앙상블 학습에 필요한 전체 계산량을 줄일 수 있는 방법을 보여줍니다.
    • 전문가 모델 학습 - 각 전문가 모델이 혼동될 수 있는 서로 다른 클래스의 부분 집합에 초점을 맞추도록 학습함으로써 계산량을 줄입니다.
    • 세부 차별화에 초점을 맞춘 전문가의 문제점 - 세부적인 구분에 초점을 맞춘 전문가 모델은 매우 쉽게 과적합(overfit) 될 수 있습니다.
    • 과적합 방지 방법 - 과적합을 방지하기 위해 소프트 타겟(soft targets)을 사용하는 방법을 설명합니다.

5.1 The JFT dataset & 5.2 Specialist Models

(직접 만든 ppt로 설명 대체)

 


6. Soft Targets as Regularizers

 


코드

 

https://colab.research.google.com/drive/1H-SV1rQUnHUTg-Hk13896tdjE5HzxFFe?usp=sharing

 

KD_1.ipynb

Colaboratory notebook

colab.research.google.com

(https://github.com/Seonghoon-Yu/AI_Paper_Review/blob/master/Classification/Knowledge_distillation(2014).ipynb 깃허브 참고)


Comment

1. Temperature(T) 값 설정 기준? 이 논문에선 2~5가 적절하다고 했는데, 이 논문의 실험들에서 그렇게 나온 결과인지 아니면 다른 논문/실험들에도 범용적으로 사용될수있는 기준치인지?

2. knowledge trasfer, knowledge distillation, transfer learning 차이?