Coder Social home page Coder Social logo

fracture's People

Contributors

chatterboy avatar

Stargazers

 avatar

Watchers

 avatar  avatar

fracture's Issues

모델을 사용하여 테스트하는 방법

  1. 학습데이터 크기 < 배치크기
    사실, 학습데이터는 data augmentation을 통해 그 수를 증가시킬 수 있다. 하지만, 대게 data augmentation은 실시간으로 처리하기 때문에 적어도 배치크기 만큼 학습데이터가 있어야한다. 그렇지 않다면, 모델을 학습시키기 전에 data augmentation을 통해 데이터를 생성해야 한다. Data augmentation은 적게는 수십배 많게는 수백, 수천배까지 데이터 수를 증가시키기 때문에 이 방법은 옳지않다. 따라서, 학습데이터가 배치크기보다 작은 경우는 배치크기를 줄이는 방법 밖에 없다.

  2. 검증데이터, 테스트데이터 크기 < 배치크기
    항상 학습에만 초점이 맞추어져 있기 때문에 해당 문제에 대한 중요성을 간과하기 쉽다. 우선, 두 데이터셋 모두 data augmentation을 통해 데이터 수를 증가시키지 않고 해당 데이터를 모델입력으로 바로 주기 때문에 우리가 정의한 텐서의 크기에 맞도록 만들어내기만 하면 된다. 예를 들어, 배치크기가 64이고 테스트데이터 크기가 8인 경우는 테스트데이터를 8번 복사하여 크기가 64가 되도록 만들면 된다. 사실, 모델을 테스트하는 방법은 논문마다 다르기 때문에 이 부분은 조사를 해야한다.

_Originally posted by @chatterboy in #19 (comment)

TODO

TODO

  • 모델 아키텍쳐
  • 클래스 불균형

모델 아키텍쳐

먼저, 환자에 대한 CT 영상은 각도에 따라 여러 장이 존재함. 예를 들어, 환자에 대한 24장의 CT 영상은 15도를 간격으로 회전시킨 영상을 나타냄. 위의 특징을 고려해서 아래 그림과 같은 첫 번째와 두 번째 모델을 고려함.
image
CT 영상의 수가 사용할 모델의 수보다 많은 경우에는 각 모델의 기준각에 가장 가까운 영상들을 해당 모델의 학습 데이터 또는 테스트 데이터로 사용. 예를 들어, 기준각이 0도인 모델은 -45, -30, -15, 0, 15, 30에 대한 영상을 사용. 이 부분은 하나의 영상을 앙상블로 추론하는 경우와 비교 가능함.
image
첫 번째에서 각 모델의 특징을 각 모델에 대한 예측으로만 쓰는 반면에 두 번째는 그러한 특징들을 결합하여 하나의 통합된 모델로써 예측을 하는 것을 고려함.
세 번째는 CT 영상과 X-ray 영상을 동시에 사용해서 하나의 모델을 학습 및 추론하는 방법임.

클래스 불균형

현재 사용하려는 데이터에는 클래스 불균형이 있고 많게는 20배 정도 차이가 발생. 중요한 점은 적은 경우에는 단 한 장이고, 많아야 20장 정도 되기 때문에 학습을 어떻게 시킬지에 대한 문제도 고려해야함.

DONE

  • 데이터 조사

데이터 조사

  • 데이터에 몇 가지 오류가 있음을 확인

Preproc 클래스 수정

mean subtracted를 수행하는 함수를 구현할 때, 인자로 학습데이터에서 계산한 평균 또는 평균벡터를 받을 수 있도록 구현

기존 연구 결과 정리

목적

딥러닝을 이용한 의료 영상에 대한 골절 예측

결과

데이터

  • 골절 부위를 포함한 영상 데이터
  • 각 환자에 대한 CT와 X-ray 영상으로 구성
  • X-ray 영상은 CT 영상에 비해 10%

문제정의

  • 각 영상은 1개 이상의 클래스를 포함
  • multi-label classification + deep learning

데이터셋

  • CT 영상만 고려
  • 모든 CT 영상은 동일한 차원을 가짐
  • 학습 데이터는 70%, 테스트 데이터는 30%로 구분

모델정의

  • resnet-50 from scratch
  • 각 출력 노드에 sigmoid를 적용함으로써, multi-label classification 문제 접근

전처리

  • mean subtraction 적용

Data augmentation

  • scaling, flipping, rotating, translating과 같은 네 가지 방법을 적용
  • 학습 데이터의 수가 1,080배 증가

실험방법

아래와 같이 설정

num_classes = 12
batch_size = 64
height = 224
width = 224
num_channels = 3
learning_rate = 0.001
num_epochs = 3000
test_cycles = 500

실험결과

epoch accuracy loss
0 0 4.458
500 0.515 0.153
1000 0.765 0.084
1500 0.75 0.055
2000 0.734 0.079
2500 0.781 0.066

방향

  • 클래스 구분에 대한 문제
  • Data augmentation 방법 추가 고려
  • 더 효율적인 multi-label classification + deep learning 방법 고려
  • CT와 X-ray 영상을 모두 고려
  • 족관절 골관절염 관련 deep learning 모델 프로세스 고려? (major voting ensemble + XGBoosting)

train 함수 수정

직접 loss 함수를 정의한 부분을 loss 모듈에서 사용하는 것으로 수정

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.