손동작 분류 AI 해커톤

정형 | Accuracy

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

 

[public 15위, private 9위 0.89768] CNN

2022.03.20 23:36 1,880 Views language

안녕하세요! 허접이라 이번 대회의 접근법에 대해 좀처럼 감을 못 잡고 있었는데,
다행히 고수 분들의 CNN 코드 공유가 있어서 덕분에 괜찮은 결과를 얻게 되었습니다. 감사합니다.
기세현님이 공유해주신 CNN 코드를 베이스로 하고, 숫자만 조금 조정해서 작업했기 때문에 이런 걸 올려도 되나 싶긴 하지만,
그래도 혹시 도움이 될 수도 있다 생각해서 이렇게 올려봅니다. 좋은 아이디어를 주신 기세현님에게 다시 한번 감사합니다.

기존 코드에서 수정한 부분은 다음과 같습니다.

1. 딥러닝 모델이기 때문에 saclering을 적용해 주었고 여러 sacler 중 RobustScaler를 선택했습니다.
2. EarlyStopping의 기준을 val_acc 에서 val_loss로 바꿨습니다. 다만 ModelCheckpoint는 val_acc를 그대로 사용했습니다.
3. tensorflow의 seed를 조정해 주었습니다. random요소가 적어서 fold의 seed와 별도로 설정했습니다.
4. model 구조를 조금 수정하고 activation function 을 전부 elu로 바꾸었습니다.

생각만 하고 시도하지 않은 작업은 다음과 같습니다.

1. Threshold 조절 : 이유는 모르겠지만 train data에서 가장 많은 비율을 차지하고 있는 3번 label의 예측 값이 가장 적은 경우가 많았습니다.
3번을 좀 더 많이 예측하도록 조절해주면 score 향상이 있을 것 같습니다.
2. ensemble : 보통 ensemble을 이용하면 score가 상승하는 경우가 많아서 여러 모델을 시도해 보았다면 이들을 이용해 ensemble하려 했습니다.
3. col 순서 변경 : conv를 이용한 예측이기 때문에 col의 배치를 바꿔도 예측 성능에 변화가 있을 것 같았습니다.
원본 데이터의 col에 대한 정보가 너무 없고, 경우의 수가 많아 시도는 하지 않았습니다.

아무튼 모두 고생 많으셨고, 다들 하시고 계신 일/하고자 하는 일에 좋은 결과 있으셨으면 좋겠습니다! 파이팅입니다!

Code