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 |
---|