관련 논문: Distilling the knowledge in a neural network(2015)
distillation: 정제. 즉, 불순물이 많은 앙상블(ensemble) 모델에 불필요한 부분을 걷어내고 최소한만을 남기는 행위
Why?
일반적으로 앙상블 모델을 사용하면 regularization이 되어 성능이 향상됨(3%)
but 너무 크고 무거운게 함정
그래서 싱글 모델로 앙상블 모델의 성능을 얻어내기 위함
How?
- 방법 1.
기존 데이터에 노이즈를 섞어서 새로운 데이터 생성 -> 앙상블 모델로 레이블링 -> 많아진 데이터로 싱글 모델 학습
데이터가 아주아주 많으면 오버피팅 문제를 해결할 수 있어서 효과적임
-방법 2.
방법1처럼 데이터를 더 생성 -> 앙상블 모델에서 나온 logit 값으로 레이블링(약간의 노이즈를 섞어주면 더 좋음) -> 새로운 데이터로 싱글모델 학습
노이즈를 섞어주면 레귤러라이즈 효과가 생김
-방법 3
앙상블 모델에서 나온 확률값(softmax)값으로 레이블링 -> 이를 학습
추가적으로 전통적인 소프트맥스은 한 레이블에 비교적 쏠리는 극단적으로 나오기 때문에,
Temperature라는 개념을 도입
logit값에 나누어주어, 모든 클래스에 확률분포가 고루 나뉘도록 만들어줌
temperature:2~5 정도로 설정
또한 cross entropy 계산시에 정답레이블에 1값을 주지 않고 각각의 클래스의 확률값을 넣어거 계산한다.
What?
앙상블 모델보다는 조금 못 하지만, 일반 싱글보다는 월등한 모델을 싱글모델과 동등한 코스트로 얻을 수 있다
'머신러닝 읽어주는 남자' 카테고리의 다른 글
docker에 대한 모든 것 (0) | 2020.01.10 |
---|---|
오분류(misclassify), 상관 없는 데이터(out-of-distribution) (0) | 2019.10.18 |
Adversarial examples (0) | 2019.01.15 |
NLP 관련 용어 총정리-1 (1) | 2018.11.08 |
Autoencoder, Variational Autoencoder 정의와 차이 (0) | 2018.07.27 |