코스포 x 데이콘 자동차 충돌 분석 AI경진대회 채용

[질문]클래스 불균형과 LOSS에 관하여

2023.02.08 11:28 1,962 Views

안녕하세요 대회 참가자여러분

DACON의 대회를 참석하면서 많은 공부를 하려고 하는 학부생입니다.


이번 대회의 baseline을 통해서 처음 학습을 진행해보았고

EDA를 통해 클래스가 매우 불균형 하다는 느낌을 받았습니다.


그래서 기존의 crossentropy loss 보다는 저는 FocalLoss를 이용해서 학습해보기로 하였습니다.


아래 댓글들에서 FocalLoss는 적용하기 어려울거 같다는 의견이 많았습니다.

제가 FocalLoss를 사용해본 이유는 해당 글에서 비롯했습니다.

참고 하셔서 좋은 의견 부탁드립니다.

https://shaoanlu.wordpress.com/2017/08/16/applying-focal-loss-on-cats-vs-dogs-classification-task


혹 클래스 불균형을 해결하기 위해 사용하신 방법이 있으시다면 공유 부탁드립니다.

로그인이 필요합니다
0 / 1000
EISLab_이희원
2023.02.08 13:26

FocalLoss는 Object Detection에서 사용하는 Loss function입니다.
image classification에서는 사용하지 않는 방법이라 적용하는데 어려움이 있을것으로 예상합니다.

저는 class_weight를 계산하여 CrossentropyLoss의 weights 변수에 할당하는 방법을 주로 사용했는데, 이 방법을 사용해보시는 것은 어떤가요?

낰낰교수
2023.02.08 15:52

의견 감사합니다. 
구글링에서 FocalLoss가 image classification에서도 사용된다는 글을 보고 시도해 보았는데 정확한 정보가 아니었을 수도 있겠군요.
실제 모델 학습을 진행했을 때 val score가 baseline보다 높게 나와서 괜찮겠다 했는데 아니었나보네요.
역시 공부는 끝이없는거 같습니다.

EISLab_이희원
2023.02.08 21:03

FocalLoss 공식을 구현해서 적용해보니 학습이 진행되기는 하네요.
학습해보고 결과 알려드리겠습니다.

EISLab_이희원
2023.02.09 21:13

성능이 엄청 증가하네요!!

낰낰교수
2023.02.09 22:31

뭔가 도움이 된거 같아 다행입니다!!

이세의인공지능
2023.02.10 19:30

오 좋은 사실이네요! 대단합니다!!

이세의인공지능
2023.02.08 14:50

저 또한 Focal loss는 어려움이 있어 보입니다.
저는 class imbalance를 해결하기 위해 주로 augmentation에 집중합니다.
샘플이 충분히 많은 경우, 비슷한 숫자가 되도록 샘플 추출을 해 학습 속도를 함께 향상시키기도 하지만, 이번에는 데이터의 양이 많지 않아 마찬가지로 어려움이 있어 보이네요!

낰낰교수
2023.02.08 15:53

위의 의견과 같으시군요.
모델 학습을 진행했을 때 val score가 baseline보다 높게 나와서 괜찮겠다 했는데 아니었나보네요.

사실 영상 데이터를 다루는건 처음이라 augmentation을 어떻게 진행행야 할지 감이 안오는데
힌트 하나 주시면 감사하겠습니다.

ever4red
2023.02.08 16:24

제가 현재 Talk에 나온 얘기들 기반으로 Focal Loss 실험 진행하고 있는데, 끝나고 의견 나눠보는 시간 가지면 좋을 거 같습니다.

낰낰교수
2023.02.08 16:34

감사합니다. 저는 위의 이야기를 듣고 다른 방법을 찾아보고 있습니다.
저는 baseline을 기준은로 var_score 0.3까지 달성했지만 과적합 문제가 발생했습니다.