2019, the Better
의료인공지능대회 HeLP Challenge 참가 후기
공식 대회 기간은 6주, 대회 준비 기간은 대략 8주 정도. 약 2달 간의 대장정이 끝났다. 본 HeLP Challenge
는 서울아산병원이 주최하는 의료인공지능 개발 콘테스트다(관련 링크). 그 중 우리 팀이 참가한 주제는 2-2 병리조직 슬라이드에서 breast cancer metastasis 여부 판정
이다. 말 그대로 병리조직 슬라이드에서 암이 있는지 없는지 판정할 수 있는 모델을 구현하는 것이 이 주제의 목적. 본 대회에 관한 설명과 관련 기술적인 이슈들, 진행 상황 등은 Git에 정리해 놓았다. 보다 이번 글에서는 대회에 참가하면서 느꼈던 것들을 솔직하게 써보고자 한다.
도커와의 첫 만남
대회가 Docker 기반의 클라우드 시스템으로 이루어져있었다. 모델을 학습하기 위해서는 코드와 함께 도커 이미지를 만들어 클라우드에 업로드하고, 클라우드는 업로드된 이미지를 로드하는 방식으로 진행되었다. 도커에 대해 아무것도 몰랐기 때문에, 그리고 대회에서 제공해준 도커의 설명이 나같은 초보자에게는 너무나도 빈약한 정보였기때문에 고구마 천 개 정도 먹은 마음으로 컴퓨터 앞에 앉았다. 어디서부터 어떻게 도커를 공부해야할지 몰랐기에 이것저것 구글링하고, inflearn의 Ralf Yang님의 강의도 들어보고, 유튜브에서도 이것저것 찾아봤다. 하루동안 도커랑 씨름하니까 어느정도 도커가 뭔지 알게 된 것만 같은 느낌이 들었다. 그 밖에도 한 몇 일동안 도커 관련 이슈때문에 골머리를 썩은기억이. 도커와 관련된 글에 이 부분에 관한 내용이 들어 있으니 궁금하면 들어가보시길..
풍부한 경험과 지식이 필요하다
간단한 모델에서부터 하나씩 중요한 사항들을 붙여가면서 확인해봤었는데, 이론적으로 sampling이 중요하다, data augmentation이 중요하다, 또 이런 저런 것들이 중요하다라고 들었던 것들을 직접 확인해보니까 이런 시행착오를 줄이기 위해서는 중요하다고 했던 모델에서부터 출발해 하나 둘 씩 실험해보는 것이 훨씬 효율적이라는 걸 깨달았다. 근데, 거의 한 번도 구현해보지 않은 것들이라 하나씩 찾아가면서 코딩해야했어서 시간이 오래 걸린 것은 어찌보면 당연한 결과다. 그래도 이런 경험으로 이제 다른 task에 적용하는 모델을 만들면 sampling, data aug, learning schedule, network, hyperparameter, normalization 들을 정확히 적용한 상태에서 시작해야지.
중요한건 딥러닝적인 지식만 중요한 게 아니라, 컴퓨터 공학에 필요한 전반적인 지식도 다 잘 알아야한다는 것이다. 나름 큰 용량의 데이터를 돌리다보니까, 데이터 관리, 용량 문제, 메모리 관리, 학습 속도 관련된 이슈들을 파악하기 위해서는 어떻게 코드를 효율적으로 구성하고 관리해야하는 지 잘 알아야하기 때문이다. 막 그렇게 큰 용량의 데이터들은 아니어서 내 지식 안에서 해결될 수 있는 문제가 많았지만, 나중에 커스터마이징하거나 더 방대한 데이터들을 다루려면 이와 관련된 지식들을 다 알고 있어야하지 않을까. 배워야할 게 많군!
컴퓨터가 학습하는 시간 != 게임할 수 있는 시간
내 데스크탑 PC에서 돌릴 때는 GPU를 많이 잡아먹기때문에 게임을 같이 돌리면 버벅거려서 못하지만, 도커 이미지를 제출하고 결과가 어떻게 나왔는지 보고 코드를 수정할지 말지 결정해야해서 상당히 많은 유휴시간이 발생했다. 그래서 나는 그 시간에 열심히 오버워치를 즐겼다. 또 게임하다가 대기시간에 코딩하고 올린 적도 있는데(어차피 수정해야할 코드는 몇 줄 안되니까), 이 시간에 데스크탑으로 다른 모델들을 더 코딩하고 공부했으면 어땠을까… 약간 돌리고 있는 이미지가 잘 나올 거라는 기대감때문에(게다가 도커 이미지 올리고 돌릴 때 우리가 확인할 수 있는게 아무것도 없다!! 다 끝나야 stdout과 stderr를 확인해볼 수 있으니까 말이다..) 다른 일들이 제대로 잡히지 않아서이기도 하지만, 지금 생각해보면 좀 어리석은 짓 중 하나였다. 아마 실제 코딩한 데 쓴 시간은 1~2주가 전부이지 않을까 싶다. 몇 줄 고치고 8~30시간 기다리고 그렇게 반복했으니까.. 그래도 덕분에 오버워치 실력이 일취월장했다. :blush:
앞으로
딥러닝 스터디를 시작한 지 6개월 만에 나가본 첫 대회. 의료인공지능에 관해서는 아예 모르는 상태였지만 하나 둘 씩 차근차근 알게 되었다는 게 너무 좋은 경험이었다. 관련 연구 경험도 없고, 경영학 전공이라 (사실 무엇을 전공했다고 논하기도 뭣한 대학생에 불과하지만) 부족한 부분이 많다는 것도 절실히 느꼈다. 그거야 계속 공부하면서 채워나갈거니까 비전공자, 전공자를 운운하면서 핑계되는 건 그렇고, 열심히 공부해야지.
언제 한 번은 배울 게 너무 많아서 언제 다 할 수 있으려나 한 숨을 푹푹 쉰 적도 있는데, 생각해보면 배울 게 많은 즐거운 세상에 살고 있는 게 아닌가! 사람들과 어울리며 많이 배우기도 하고 나도 언젠가는 누군가에게 도움이 될 수 있는 사람이 돼야지. 경험해보지 못한 다양한 것들에 도전해보면서 살아가고자하는 꿈 아래 이번 대회의 도전은 역시 아주 값진 경험이었다. 이런 기회를 준 우리 스터디원들과 서울 아산병원에 깊은 감사의 뜻을 전하고 싶다! :star:
댓글