/deepLearning_genderprediction

손 x-ray로 성별 예측(CNN,classification)

Primary LanguageJupyter Notebook

손 x-ray로 성별 예측하기(딥러닝-CNN,이진분류)

인공지능과 딥러닝 스터디 - 미래연구소(2019.03~2019.05)


주제 : 손 x-ray로 성별 예측하기

기획 배경 : 의학적으로 골간 간격이나 석회화 정도로 성별판단이 가능하지만 의사들도 쉽지 않다는 점에서 딥러닝을 이용하여 빠르고 정확한 예측을 하기위해 시작하게 됨.


프로젝트 내용 :

  1. 데이터 준비 : kaggle에서 RSNA Bone Age 데이터셋을 이용함.





  2. 데이터 확인 :

    • csv를 보고 데이터의 특성이 될 수 있는 boneagemalemale(True/False)을 선택함
    • data(male)가 balance를 이루므로(=female의 수와 male의 수가 비슷) accuracy를 metrics로 결정


  3. 모델 설계 :

    • train,val,test set으로 나눔

    • version1. 모델 구성

    figure3 -> epoch=20, optimizer=adam
    -> train acc=0.6886 / val acc=0.6379 / test acc=0.6552
    => 데이터의 수가 적다고 판단하여 data augmentaion을 적용 + epoch또한 늘리기로 결정


    • version2. 모델 구성
      version1에서 augmentation을 적용 + epoch=70으로 늘림
      -> train acc=0.7448 / val acc=0.7561 / test acc=0.8125 figure4


    • ln[17]부터는 완성되지 않은부분임.
      (epoch을 늘리면서 overfitting방지를 위한 early-stopping을 넣은 모델을 구성하던 과정)


결론 : human level error - 현직 의사들의 acc가 약 88% 부근이고 코드 상 최고 acc가 약 80%인 점으로 볼 때
모델에 약간의 수정을 더하면 human lever error를 따라잡을 수 있겠다는 생각을 했다.
위의 문제 해결 방법으로는 더 큰 네트워크를 만들거나 여러 하이퍼파라미터를 조정하는 방법이 있다.


  • kaggle에서 모든 코드를 작성하였고, keras를 사용함.
  • 결론의 human level error의 출처는 NCBI PubMed.gov - El Morsi DA, AI Hawary AA, 2013 Jan