만약오버피팅이일어날시 모델변경이나criterion변경을통해해결가능할까요?

2021.09.14 11:03 1,426 조회

질문입니다. 예를들어 보통 베이스라인이 주어졌을 때, train accuracy가 높게 나왔고 해결 사항이 overfitting인 경우 입니다.


이럴 경우 저희가 보통 알고 있는 overfitting 해결 방법(augentation, dropout, reguralization, 모델 경량화) 외에도

모델을 바꾸는것, loss-function을 바꾸는 것 등을 통해서  overfitting이 해소될 수가 있을까요?


기초적인 질문이지만, 제가 인공지능 대회에 참가한 지 되지 않았고, 그래서 어떠한 방법으로 overfitting이 해소가 될지 잘 몰라서요 ㅠㅠ 여기 대회 많이 참가하시고, 모델 많이 돌려보신분들의 대답이 간절합니다 ㅠㅠㅠ 그럼 읽어주셔서 감사합니다.

로그인이 필요합니다
0 / 1000
Jay Hong
2021.09.14 11:09

데이터 전처리 단계에서 train set과 Validation Set을 구성하고,
모델을 학습 단계에서 Train_set으로 학습을, Validation_Set으로 관찰함으로써, overfitting을 방지할 수 있습니다!

질문주신 loss_function 은 잘 모르겠지만.. 
metrics 관점에서는 overfitting을 억제할 수 있다고 본 기억이 있습니다.
ex) Accuracy로 채점이 되더라도, Data label이 Imbalance하다면 F1-Score를 사용해 볼 수 있다 등

완다
2021.09.14 11:14

아 넵 제가하고싶은 만약 제가 train/valid셋을 나누고, 예를들어 CNN모델중 ResNEt을 선정하고, loss function을 crossentropy 으로 설정했는데 accuracy가 99퍼로 나왔지만 overfitting으로 인해 valid accuracy가 70퍼 정도 나온 상태라고 가정하겠습니다. 이런 경우, dropout이나 저희가 알고 있는 오버피팅을 해소하는 방법말고도 모델을 변경 ex resnet --> alexnet이나 loss function 을 변경하면 오버피팅이 해소될 수도 있냐는 말 이였습니다...!

Jay Hong
2021.09.15 11:58

아아 그럴 때 모델을 바꾸는 게 효과적인 경우도 있습니다~!
최근에 종료된 "자연어 기반 기후기술분류 AI 경진대회" 코드 공유 참고하시면, 다양한 모델이 다양한 성능을 낸 것을 보실 수 있습니다!

완다
2021.09.15 12:01

넵 답변해주셔서 너무 감사합니다! 

Jay Hong
2021.09.15 12:05

즐코되세요 :)