최종정리
캐글에서 타이타닉 데이터셋 제출을 해본 것을 제외하고, 직접 Commit 해보는 것은 처음이었습니다.
현재 기준으로 97.2%정도의 정확도로 2등에 위치해 있습니다.
실험을 진행하며 이번 대회에서 성능을 높이기 위한 포인트를 몇가지 남겨보고자 합니다.
(자세한 코드가 궁금하다면 아래 링크에서 확인 가능합니다.)
1. 왜 GPT 계열이 아닌 BERT 계열을 선택해야 하는가?
(이 부분과 관련하여 이전 글 제일 아래 부분에서 간략하게 다루었습니다.)
머신러닝 기법들도 적용을 했을 때, 전처리에 심혈을 기울였음에도
성능이 80% 이상 나오지 않아 BERT 계열의 모델을 최종적으로 선택하였습니다.
2. 데이터셋의 분포를 고려해야 한다.
모델을 바꾸고 파라미터 튜닝을 아무리해도 성능은 94% 정확도 이상을 넘기지 못하였습니다.
이후 데이터셋의 분포에 대해 의심을 했고 클래스간 비율이 크게 차이남을 확인할 수 있었습니다.
그래서 데이터셋의 클래스(0,1,2)에 비율에 대해 같은 가중치를 주도록 하였고,
학습을 진행했을 때 94%를 넘어 검증셋 기준 99%까지 나아감을 확인할 수 있었습니다.
(어제 학교에 가서 운영진분들께서 클래스 가중치 조정이 원래 캐글에서 치트키 같은 존재이며,
특수한 테스크에서만 효과가 있을 수도 있기에 현실과 다를 수도 있다고 답변 받았습니다.)
3. 항상 검증셋이 테스트셋을 반증하는 것은 아니다.
BERT 계열의 모델 + 데이터셋 분포 조정 + 파라미터 튜닝을 거쳐 검증셋 기준 99%의 정확도를 얻을 수 있었습니다.
하지만 검증셋에서 99%일 때보다 오히려 조금 낮은 98% 기준의 모델로 테스트셋을 예측했을 경우,
결과가 더 높게 나오는 것을 확인할 수 있습니다.
이를 좀더 개선하기 위해서 k-fold 방식등을 통해 개선하고하였으나,
이번 테스크에서는 큰 개선 결과를 보이지 못하긴 했습니다.
느낀점
앞서 언급했듯이 캐글에서는 타이타닉셋을 제외하고 처음 참여하는 대회였습니다.
(항상 공모전 위주로 해오다보니, 모델링 보다는 기획의 중요성이 컸던 것 같습니다.)
처음이다보니 삽질을 많이하기도 했고, 결과를 개선하고자 더 신경을 썼던 것 같습니다.
제가 아는 이론들을 최대한 코드로 적용해보고,
아침에 일어나서 결과를 보는 것 또한 매우 즐거웠습니다.
(하이퍼 파라미터 튜닝, AutoML, ML&DL 모델링, 데이터셋 분포 조정, 앙상블, k-fold 등등)
로컬에서 직접 돌리다보니 제한된 자원 안에서 최대한의 성능을 뽑는 것도 쉽지 않았던 것 같습니다.
최종적으로 학습을 돌리는데 하루가 걸렸고, 더 큰 모델을 적재해보는 시도는 하지 못하였습니다.
기회가 된다면 코랩이나 SageMaker등을 활용하여 결과를 비교해보고 싶습니다.
한편으로는 해커톤과 타 연합동아리 일정이 겹쳐 시간을 많이 할애하지 못한 점이 다소 아쉽습니다.
시간을 쪼개서 코드를 짜고 항상 자기 전에 돌려놓고
일어나서 결과를 보면서 어떻게 하는게 좋을지
이동시간 중에 계속 고민하면서 자기 전에 코드를 수정하였습니다.
좀 더 여유가 있었다면 더 깊게 고민해보고 모델 하나하나에 대해서도
논문 등을 참고해가면서 진행했다면 더 많이 배울 수 있었을 것 같습니다.
올해는 Diffusion과 같은 이미지 생성 모델이나 엔지니어링 관련 쪽으로 비중을 두다보니,
NLP를 소홀히 한 것 같은데 이번 실험에서 진행한 모델들에 관해서도
앞으로 논문 리뷰를 하고 글을 올려보려고 합니다.
긴 글 읽어주셔서 감사합니다.
'HAI - 교내 동아리 > Kaggle_한국 방언 분류(여름 방학)' 카테고리의 다른 글
[HAI] 2023 여름 방학 프로젝트 - 5편(학습 플로우 & BERT 계열 선정이유) (0) | 2023.08.12 |
---|---|
[HAI] 2023 여름 방학 프로젝트 - 4편(진행상황 공유) (0) | 2023.08.11 |
[HAI] 2023 여름 방학 프로젝트 - 3편(GPU 관련 Error) (0) | 2023.08.07 |
[HAI] 2023 여름 방학 프로젝트 - 2편(TensorBoard+Tip) (0) | 2023.08.06 |
[HAI] 2023 여름 방학 프로젝트 - 1편(프로젝트 소개) (0) | 2023.08.04 |