사물 이미지 분류 AI 해커톤

Computer Vision | Accuracy

  • moneyIcon 상금 : 참가시 최소 50 XP, 특별상 데이콘 후드
  • 502명 마감

 

1. CNN network(public : 0.6882)

2022.02.24 11:47 681 조회 language

안녕하세요. 이번에 CNN 모델 구조에 대해 공부하고자 대회에 참가하게 되었습니다.
순차적으로 CNN --> inception --> ResNet 에 대해 공부하고 코드를 작성하여 올릴 계획입니다.
부족한 부분이 많습니다. 틀리거나 잘못된 점을 지적해주시면 감사하겠습니다.

코드
로그인이 필요합니다
0 / 1000
lastdefiance20
2022.02.24 12:07

안녕하세요 글 잘 읽었습니다. 여기서는 data augmentation 부분에서 RandomFlip() 모듈을 사용하여 상하좌우로 모두 뒤집히는데, 저는 상하로 뒤집는 flip는 실행하지 않았기 때문에 이점이 학습에 차이를 두었는지도 궁금하네요.

과적합 방지를 위해서는 dropout 사용도 가능하지만, conv 이후 batch normalization을 진행하는것도 하나의 방법입니다. 또한 그래프에 accuracy가 아닌 val_loss가 나타나지 않아 한눈에 보이지는 않지만, 대강 60epoch 이후로 val loss가 점차 증가하는것을 보면 epoch가 너무 과도해서(?) 과적합이 일어났을수도 있을것 같습니다.

vvkwjw
2022.02.24 13:04

안녕하세요 긴 글 읽어주셔서 감사합니다. 먼저 저도 lastdefiance20님의 글을 읽어 보았는데요, 제가 상하 flip을 진행한 이유는 사람의 관점에서 생각했기 때문입니다. 사람이라면 위아래로 뒤집힌 자동차의 사진도 자동차라고 인식하게 되죠. 왜냐하면 위아래가 뒤집힌다고 해서 자동차의 기본적인 특성(바퀴, 모양) 등이 변화하지 않기 때문입니다. 따라서 모델이 기본적인 물체의 특성을 이해하기를 바라며 상하 flip을 진행했습니다! 이게 학습의 차이가 있는지는 저도 명확하게 모르겠네요. 모델 구조를 동일하게 하고 학습 환경을 동일하게 하여 테스트해 볼 필요가 있을 것 같습니다.
batch normalization은 우선 모든 conv block에 적용되어있습니다! 제가 조사한 바에 따르면 bn과 dropout을 둘다 사용하는 경우가 성능이 좀 더 좋다는 말이 많아서 마지막에 언급했습니다만, 많은 논문이나 모델 구조들을 봤을 때 둘 중 하나만 사용하는 것들이 많아 이번에는 bn만 적용해 보았습니다.
epoch의 경우 제가 val_accuracy가 가장 높은 상태의 weight를 저장하고 이후 결과 예측 부분에서는 해당 weight를 load하여 진행하였기 때문에 그 부분에 대한 과적합은 아닐 것으로 생각됩니다!! 댓글 달아주셔서 감사합니다!! 논의 하고 싶으신 거나 지적하실 부분은 언제든 더 말씀해 주세요! 저도 공부가 많이 되네요

lastdefiance20
2022.02.24 13:33

그렇군요 기본적인 특성이 변화하지 않는다는 점에 집중하는것도 좋은 관점인것 같습니다. 그점에 대해서는 저도 한번 실험해봐야겠네요! 답변 감사합니다