ML & DL/Basic

Knowledge Distillation

룰루랄라룰루랄라 2024. 5. 23. 20:19

Knowledge Distillation

: 지식 증류, 미리 학습된 큰 Teacher 모델을 이용하여 Student 모델을 학습함

: 작은 student 모델을 사용하여 모델 압축(경량화)에 사용되기도 함

: unlabeled data 에 pseudo-labeling 을 적용하기도 함

 

1. Unlabeled data 만 있을때

label 없이 input 을 넣은 후 나온 output 을 이용하여 KL divergence loss 를 구함 ( 두 확률 분포의 차이를 계산 )

이때 loss 를 이용한 역전파는 student 모델에서만 일어남

 

2. labeled data 가 있을때

1) labeled data 를 input 으로 넣고, teacher 와 student 의 softmax(T=t) 를 거친 soft label 끼리 distillation loss(KL divergence loss) 를 구하고 그것을 이용하여 student 모델 역전파 하여 업데이트

 

2) softmax(T=1) 을 거친 prediction 과 input 에 대한 ground truth(정답, one-hot) 으로 cross-entropy loss 를 구하고 그것을 이용하여 student 모델 역전파 하여 업데이트

 

* hard label : (0,1,0) 과 같은 one-hot 벡터

* soft label : (0.2, 0.7, 0.1) 과 같이 softmax 값 (비율로 나타낸 값, 합하여 1)

 

* Softmax with Temperature T (softmax 의 T 값에 대하여)

: 기존 softmax 사용시 값 차이가 극단적이라 높은 값을 제외한 나머지에서는 정보를 얻을 수 없었음

: t 를 넣어 값을 평준화 하여 더 많은 정보를 얻도록 함

 

3. Semi-supervised Learning

pseudo labeling 을 활용한 방법

 

4. Self-Training

2019 년 ImageNet Classification 에서 SOTA 를 달성한 방법

'ML & DL > Basic' 카테고리의 다른 글

Transfer learning  (0) 2024.05.23