pizzaplanet

[참가후기] Konyang Health Datathon 2019 본문

Participation

[참가후기] Konyang Health Datathon 2019

scio 2019. 12. 16. 07:00

Konyang Health Datathon 2019 참가 후기

행사 개요

  • 일시: 2019년 11월 29일(금) ~ 11월 30일(토)
  • 장소: 건양대학교 의과대학 명곡홀
  • 미션: 안저이미지 학습 알고리즘 성능 평가 - 실제 환자들의 안저 이미지를 활용해 안구질환(황반변성, 당뇨망막병증, 망막정맥폐쇄) 이미지를 분류해 내는 AI 개발하는 것으로 안구질환 데이터는 황반변성, 당뇨성망막병증, 망막정맥폐쇄 이미지로 구성되며 본 대회에서는 안구질환 종류를 예측하는 모델 개발
  • 주최: 건양대학교병원
  • 주관: 건양대학교병원 헬스케어데이터사이언스센터, 국립암센터
  • 후원: 과학기술정보통신부,한국정보화진흥원, Naver Clova NSML, ㈜인피니그루, 유비즈정보기술(주)

데이터

데이터는 광각안저이미지를 사용했으며 광각안저이미지 사용시 참고사항은 아래와 같다.

  • 안저이미지 구성요소
    • 망막동맥 - 얇은 혈관
    • 정맥 - 굵은 혈관
    • 황반 - 이미지 가운데 쯤 노란색 원
    • 디스크 - 황반 내 하얀 점. 일반적으로 황반의 30%로 구성되며 더 큰지 적은지도 중요하다.
  • 노하우
    • 병변의 위치에 따라 진단 우선순위를 매기면 된다.
    • 광각안저이미지는 눈썹이 노이즈를 많이 주므로 일반적으로 이미지 중심 기준으로 크롭한다. 이진분류 실행시 정확도 90%정도 나온다고 한다.
    • 민감도를 높이는 것이 중요하다
    • 혈관은 막히면 하얀색으로 보인다.
  • 안구질환
    • 황반변성(AMD)
      • 황반부에 변성이 일어나 시력장애를 일으키는 질환이다. 주로 노인에게 나타나며 당뇨, 고혈압, 스트레스, 혈중 콜레스테롤 상승, 심혈관계 질환, 가족력, 노인성 실명이 주된 원인이다. 건물이 휘어져 보이거나 시야 중심에 검거나 흰부분이 나타난다.
      • 건성황반변성: 황반 중심에 드루젠(노란 찌꺼기)이 몰려있다
      • 습성황반변성: 황반 중심부에 출혈(혈전)이 있는 경우나 셩성삼출물(드루젠보다 샤프한 형태이며 혈관의 지방이 삐져나온 것)이 쌓여있다.
    • 당뇨망막병증
      • 당뇨병의 합증으로 망막의 미세혈관이 손상되었을 때 나타나는 질환이다. 실명 원인 중 제일 높은 비율을 가직 ㅗ있어 당뇨합병증 중 제일 무서운 질환이다. 대부분 레이저 시술 절차를 밟게 되며 레이저 시술 받은 흔적(안저 전체에 하얀 점박이)이 있다면 당뇨망막병증일 확률이 높다. 오랜 기간 치료를 받으면 검은 점으로 변한다.
    • 망막정맥폐쇄
      • 망막분지정맥폐쇄: 망막에 부분 출혈이 있는 경우
      • 망막중심폐쇄: 시신경이 황반쪽에서 부터 막힌 경우다. 시신경은 황반에서 퍼져나가므로 황반에서 정맥이 막히면 전체가 막히게 된다.

진행방식

NSML을 이용하여 진행되었으며 data_loader, model 등의 스켈레톤 코드가 제공되었다. 참가자로서 할 수 있는 것은 전처리, 모델링 뿐이었으며 데이터를 직접 볼 수는 없었다. pre-trained model은 사용할 수 없었다. 즉 학습 된 웨이트는 쓸 수 없으나 nsml 상에서 처음부터 학습하는 것은 가능하다. 1시간 마다 submit을 할 수 있으며 Leader board에 기록되게 된다. Leader board에서 다른 팀의 score과 동시에 각 팀의 rank를 알 수 있다.

수상팀의 비결

  • 대회 시작부터 efficientnet 만으로 학습을 시작하여 약 1000 에포크 이상 돌려 높은 스코어를 뽑음(유방이미지팀)
  • 한 사람당 4개의 유방이미지를 얻게 되는데 이 중 3개의 이미지를 하나로 (유방이미지팀)
  • 앙상블을 하면 보통 다른 특성을 가진 모델들을 앙상블 하나 resnet을 16, 43 등으로 여러개 학습하여 앙상블 함(안저이미지팀)
  • label smoothing을 사용함(안저이미지팀)

우리팀이 스코어 올린 법

우선 우리 팀의 코드를 공유한다.

  • 모델 학습 시 Flatten 하였으나 GlobalAveragePooling2D로 바꾸고 나서 학습이 잘 됨.
  • 크롭 0.7보다 0.5가 더 학습이 빠르고, 정확도도 괜찮았다.
  • Augmentation를 적용하여 데이터를 생성하였다. 이로 인해 오버피팅을 어느정도 방지할 수 있었다.

우리팀(민수) 최종 결과

Comments