오늘은 새로 나온 강의는 없어서 어제 피어 세션 때 얘기했던 CutMix, Softmax의 soft labeling, CE와 KL-divergence에 대해 조사하였다.
각 class의 이미지 두 장을 mix하는 기법 중 하나
한 image의 random 부분을 crop한 후, 그 위치에 그 크기만큼 다른 image를 넣은 새로운 image를 만든다.
일반적으로 CutOut, MixUp보다 더 좋은 성능을 발휘한다.(CutOut 데이터나 MixUp 데이터로 학습한 모델에 대한 경우가 아닌 모든 상황에 해당한다.)
각 image에 대해 특정 부분이 제거되고 나머지 부분을 통해 class를 판단해야 하므로, feature를 여러 군데에서 학습하게 해 generalization이 잘 된다.
일반적으로 classification에서 softmax를 사용할 때, 예측값이 1에 가깝게, 나머지는 0에 가깝게 학습이 될텐데, 이 때 예측한 클래스와 나머지 클래스 간의 값의 차이가 크다. 즉 hard labeling이라고 할 수 있다.
이로 인해 Knowledge distillation과 같은 경우, Student model과 Teacher model의 각각의 예측을 구할 때 일반 softmax를 사용하면, 예측한 class 이외의 정보를 잃어버릴 수 있다.(예를 들어 어떤 image의 class가 고양이지만 개의 feature도 0.2만큼 들어있다고 할 때, soft label로는 (0.8, 0.2)로 표현할 수 있겠지만, 일반 softmax로는 (1,0)으로 나오므로 개의 feature를 학습할 수 없게 된다.)
따라서 이런 경우 softmax의 hyperparameter T를 증가시켜, 각 예측값 간의 차이를 smoothing 시켜, 다른 특징들도 잘 학습할 수 있게 해준다.
둘 다 이론적으로 큰 차이는 없다.
다만 CE는 Ground truth가 있는 문제에서 주로 사용하고, KL-divergence는 Ground truth가 없는 문제에서 주로 사용하는 것 같다고 멘토님께서 말씀해주셨다.
최근에는 KL-divergence 대신 CE를 쓰는 경우도 있다고 한다.
아직 정확한 차이는 잘 모르겠다. 공부가 필요하다.