안녕하세요! 시험기간이기도 하고, 이래저래 진행되는 프로젝트나 일정이 많아 오랜만에 인사드리게 되었네요.
오늘의 소식은 전국구 데이터톤! Artificial Intelligence Diabetes Datathon, AIDD -인공지능 당뇨병예측 모델개발에 참여하여 최종2위의 성적으로 최우수상을 수상하게 되었다는 것입니다! 짝짝짝🎉

아싸300만원


AIDD는 과학기술정보통신부, 한국지능정보사회진흥원이 주최하고 경희의료원이 주관한 인공지능 데이터톤입니다!
(제가 경희대 재학중인데 우연히 겹쳤네요..ㅋㅋ)

주제는 당뇨병 및 합병증 추적 관찰 데이터를 활용한 당뇨병 발병 예측 인공지능 모델 개발로,
인공지능 학습용 데이터 구축 사업 중 ‘당뇨병 및 합병증 추적관찰 임상데이터’ 과제의 일환으로 진행되었다고 해요.

제가 이 블로그에 예에에에전에 업로드 한 글 중 '의사결정나무를 이용한 당뇨병 진단 모델개발'프로젝트가 있었는데,
그때 '교수님께서 모델로는 의사결정나무 단일모델을 사용해야하며 엑셀로 직접 Entropy 등을 계산해 풀어야한다'고 제한을 두셔서 정확도가 높은 모델을 개발하지 못해 아쉬움이 남는다고, 후에 좀 더 자유로은 환경에서 정확도 높은 모델을 개발해보겠다고 말을 꺼냈었는데, 그 다짐을 이렇게 지키게 되네요.

AIDD 데이터톤의 참가대상은 국내 AI, 빅데이터 관련 기업 및 연구기관 종사자, 대학/대학원생이 1~5명 단위의 팀을 구성해 누구나 참여할 수 있었고,
저희는 같은 랩실의 학부연구생 및 석사연구원이 팀을 이뤄 참여하였습니다. (AIMS)
누구나 참여할 수 있다보니 참가자분들도 다양하더라구요. 카이스트, 포항공대 재학생을 포함해 서연고서성한 등의 학생들, 석사생들, 교수님들, 인공지능 관련 책을 쓰신분들까지...

듣기로는 총 참가신청한 팀은 132 팀이었고,

그 중에서 서류 전형으로 예선에 참가할 40팀을 선정하고, 예선에서 본선에 참가할 20팀을 선정하고,

본선에서는 상위 4위까지를 선정하는 방식이었는데요!

이때 NSML 리더보드를 통해 모든 팀의 실시간 score와 순위를 확인할 수 있어서 더 승부욕이 돋고 재미가 있던 것 같습니다. (NSML 리더보드 사용법은 추가적인 글로 간단히 게시해둘 예정입니다)

예선이 딱 3일, 본선도 딱 3일이고, 1시간 당 최대 1번씩 Submit해야한다는 제한이 걸려있어서 적은시간, 적은기회 안에 타임어택으로 높은 점수를 노려봐야했었는데,
그러다보니 다들 합숙을 하시는건지.... 정말 꾸준히 submit 을 하시더라구요...
대회 진행 기간인 총 72시간, 그러니까 즉 72번의 submit 기회중에서 69번을 submit 한 팀도 있었습니다. (-> 이분들이 1등)
물론 저희 팀도 분석하느라/논의하느라 자주 밤을 샜습니다...^^,,,,, (기진맥진)
그런데......... AIDD 에서 분석시 사용되는 데이터가 의료 데이터다보니, 개인정보가 중요하다며 주최측에서 데이터셋을 주지 않아서,
참가자들은 데이터셋의 Feature 종류만 알고 데이터의 분포 등을 확인하지 못한채로 오직 서버에서 데이터를 사용하여 훈련시켜야하고,
테스트셋에는 아예 접근 자체(보는 등)를 할 수 없어서 로컬PC에서는 모델의 score값을 볼 수 없는 구조였습니다.
(score=AUC값)
즉, 우리 팀의 score를 확인할 수 있는 유일한 기회는 1시간에 1번있는 submit 을 통해서 였던거죠...
그나마 Validation set을 이용해서는 score를 확인할 수 있었으나, Test set 과는 또 차이가 있으니.. 사실상 스스로 모델을 평가할 수 있는 지표가 거의 없었다고 볼 수 있습니다.
1시간에 1번씩 성능을 확인할 수 있다면 모델이 개선되는 속도가 느릴 수 밖에요.. 이 점이 진짜 진짜 불편했습니다. -_-

왜 이렇게 한거에요.....!!!! 분석할 데이터셋에 대해 아무것도 알 수 없으면 그게 분석일까요? 최적 모델/파라미터 찾는 노가다지....!!!! ㅠㅠ

교수님께서도 데이터분석 공모전을 진행하는데 데이터셋을 안주는건 아닌것같다고 하셨습니다.


이게 본선 리더보드인데요~ 2 위에 랭킹되어있는 AIMS 가 저희 팀입니다!
수상팀의 최종 Score는 1등팀 0.903932, 2등팀(우리) 0.887426, 3등팀 0.866463, 4등팀 0.859686 으로 마무리가 되었습니다.
모델 평가시 사용된 'Score'는 ROC-Curve 하단 영역의 넓이, 즉 AUC 값 이었습니다.
그런데 저는 이해가 안됐던게, ROC-curve를 그릴때 당연히 True Label과 Predict 'Probability' 를 input 하여 구해야하는데, 이 데이터톤에서는 Predict Probability가 아니라 Predict Label을 넣어 구한다는 것입니다.
그러면 ROC-curve 그래프에는 대각선의 끝과 끝을 잇는 점과, 그 중간의 하나의 점만(Threshold=1개) 찍히게 되고 결과적으로 삼각형의 형태를 가지게 되죠.
ROC-curve는 보통 그렇게 안그릴텐데 왜 이렇게한건지 잘 모르겠습니다.
모델 개발을 하다 느낀것은.... score = 0.90 과 0.88 사이에는 엄청난 벽이 있고, 0.88 과 0.86 사이에는 엄청난 벽이 있다는 것입니다.. 물론 0.86 언저리까지 오는데도 벽은 있지만요..

아무튼! 이번 데이터톤이 제 인생에서 처음으로 참가한 인공지능 개발 챌린지였는데, 좋은 성과를 얻어 기쁩니다 :>
대회가 진행되던 6일동안 랩실 선배님들과 함께 이런저런 논의를 하며 공부한것도, 학습에 큰 도움이 되었습니다.
선배님들이 진짜 캐리하셨어요.. 다들 고생하셨어요 TT

곧이어 부정맥 진단 모델 개발 인공지능 데이터톤도 참가할 예정인데, 이건 주최측의 사정으로 일정이 미뤄지는바람에 시험기간과 겹쳐서........ 할지 말지 살짝 고민중입니다. -> 미참가로 결정
저는 밀린 과제/수업/일정 등등이 많아서.. 나중에 글을 또 쓰도록 하고 이만 줄이겠습니다.
안뇽



+12.08 추가)
내일(12.09) 시상식 및 모델 발표가 오프라인/온라인으로 있습니다!

코로나때문에 발표자 1명만 오프라인으로 참석할 수 있고, 남은 팀원은 온라인으로 참석해야한다고 하더라구요. (아쉽)

시상식 후기는 내일 이 글에 추가적으로 남기기로 하고,

저희가 구현한 모델을 설명하는 글을 따로 올릴까는 생각중에 있습니다.

아마 시험이 끝나고 업로드하게되지않을까싶네요! 


+12.09 추가)
시상식이 끝난후, 짧은 후기!!

시상식은 말씀드린대로 온/오프라인 혼합 형태로 이루어졌고, 랩장님이자 팀장님께서 오프라인으로 발표를 하러 가셨습니다!

저는 온라인으로 시상식을 봤는데, 1등팀하고 4등팀이 포항공대 학생들, 3등팀이 모 대학의 교수님들이셨습니다! ㄷ.ㄷ,,

시상과 함께 각 팀의 모델 설명(발표)을 들을 수 있어서 유익한 시간이었던것같습니다. (대체 1등팀 무슨짓을한것인가 했는데!)

괜히 저희 팀 이름 한명한명 불리면서 상을 주시니 감격스럽더라구요.

다음에도 또 랩실 인원들과 함께 좋은 대회에 참여할 수 있었으면 좋겠습니다 :>

 

 

 

 

 

 

+ Recent posts