본문 바로가기

AI & Data Science

2022년 제 1회 k-ium 의료 인공지능 경진대회 후기(최우수상 수상)

728x90
반응형

학과 단톡에 올라온 인공지능 경진대회를 보고 재미있어 보여서 흥미를 가졌다.

내용을 봤다. 의료 데이터(의사의 소견서)를 바탕으로 병의 유무를 판별하는 이진 분류 모델을 만드는 것이었다.

NLP 분야였는데 나는 NLP를 해본 적이 한 번도 없다. 관심도 크게 가지 않았고 다른 분야에 비해서 덜 유망해 보인다는 이유였다.

조금 알아보니 한국어가 NLP 환경이 열악하다는 글도 봤던 것 같다. 여담이지만 내 개인적인 생각으로 사람이 배우기도 한글이 영어보다 어렵다는 느낌을 받는다.  특히 국어 문법은 모음 자음 구성으로 이루어진 굉장히 복잡하고 체계적인 언어라고 생각을 한다. 그래서 나도 국어를 굉장히 못한다.. 노력해서 수능 국어 5등급.. 각설하고.

 

처음에는 학교에서 찍먹 해본 CNN 모델들 위주로 찾아보고 모델을 제작했는데 acc가 0.92 정도 나왔다. 나의 얄팍한 지식으로는 더 이상 성능을 높이는 것이 어렵다는 생각이 들었다. NLP는 Transformer가 핫하다는 내용을 듣고 노선을 변경했다. 그래서 인터넷에 조금 알아보면서 공부를 했더니 적혀 있던 말이 굉장히 인상 깊었다.

 

"NLP를 한다고? 그러면 일단 Transformer를 박아라 그러면 성능이 올라간다."

 

또한 주최 측에서 pre-trained 모델의 사용을 허가했기 때문에 나는 Transformer 기반의 BERT모델을 사용했다.

BERT 모델은 2018년 구글이 공개한 모델로 트랜스포머를 이용해서 구현됐다. 학습에 사용된 데이터는 라벨링 되지 않은 위키피디아의 25억 단어, BooksCorups의 8억 단어이다...! 이러한 모델을 내가 평가하고자 하는 데이터에 맞게 조금만 Fine-Tuning을 거치면 굉장히 성능이 좋은 모델이 만들어진다. NLP를 접해 본 지 3주밖에 되지 않았으므로 더 자세한 내용은 공부를 해서 정리해볼 생각이다.

 

현재 공부하고 있는 책은  https://wikidocs.net/book/2155 이 책이다.

아무튼 결론적으로 4000개의 Train Set으로 학습시키고 2000개의 Test Set으로 테스트해 본 결과 AUC 점수가 대략 0.99에 가까운 0.98이 나왔다. 주어진 데이터로 모두 학습시키고 모델을 만들었다. 해당 모델은 AUC점수가 0.999155로 아주 높았다. 주어진 데이터가 적고 인공지능 프로젝트가 처음이라 Over Fitting이 생기지만 않았기를 바라며.. 모델을 제출했다. 2차는 30%의 나머지 미공개 데이터로 평가한다 했는데 성능이 어떨지 매우 궁금해서 빨리 2차 데이터가 공개되었으면 좋겠다는 생각을 한다.

처음 해본 NLP 프로젝트였지만 인터넷에 해외 자료는 물론 국내 자료도 정리가 잘되고 도움 되는 것이 정말 많아서 힘들지 않고 재미있게 했던 프로젝트였다. 그리고 내가 했던 생각은 "세상에 천재들이 이렇게 많고 기술이 이만큼 발전해 있는데 내가 이 분야에서 할 수 있는 게 있을까,,?"였다. 이래서 인공지능을 하고자 하면 대학원에 가라는 게 아닐까 싶다,, 암튼 2차 기대 중,,

 

<1차 평가 기준이 될 전체 데이터에 대한 AUC Score>

 

 

 

<2차 평가 기준이 될 2차 데이터에 대한 AUC Score>

 

 

https://github.com/BanApp/2022_k-ium_Medical_AI_contest

 

GitHub - BanApp/2022_k-ium_Medical_AI_contest: 2022년 k-ium 의료인공지능경진대회 출품작(BERT based Model)

2022년 k-ium 의료인공지능경진대회 출품작(BERT based Model). Contribute to BanApp/2022_k-ium_Medical_AI_contest development by creating an account on GitHub.

github.com

플랫폼: 'Goolge Colab'

GPU: Tesla T4

GPU API: cuda

사전 학습 모델 : bert-base-multilingual-cased

약 6900개 1차 데이터로 학습 후, 약 2600개의 2차 데이터로 평가

 

최종 AUC SCORE: 0.996171

 

2654개의 데이터중 FP는 12개, FN은 13개로 총 25개의 데이터가 오분류됨.

 

결과 최우수상 수상..!

수상자들 중 나 혼자 학부생인 듯하다.. 쭈굴..

암튼 상금도 받고 나름의 스펙(?)도 만들고 좋은 경험이다.

이제 AI는 찍먹 해봤으니..

이번 방학 때는 백엔드를 다시 열심히 공부해보겠습니다..

 

"중요한 건 꺾이지 않는 마음"

 

시상식 후기도 나중에 올려보겠습니다,,

728x90
반응형