julia coding story

Deep Learning Classification 본문

소프트웨어/의료영상데이터

Deep Learning Classification

julia-biolat 2022. 12. 14. 21:53
728x90

■ 컴퓨터 비전 및 의료 이미지 분석에 대한 딥러닝

 - 객체 감지/인식/생성에서 뛰어난 성능을 발휘함

   ex) Convolutional neural network (CNN), Recurrent neural network(RNN), Generative adversarial network(GAN), Reinforcement learning(RL), Transfer learning(TL)

 

- Computer Vision(software, Hardware, Big data)  =>  Medical Images (Diagnosis, Quantification)

- 딥러닝을 의료 영상 분석에 적용

- 의료 이미지 분석을 위한 딥러닝 모델 사용자 정의

- 딥러닝 : end-to-end, 수작업이 아니다.

 

▷Natural Images vs Medical Images

- Camera : RGB colors, 2-D, Easy to obtain, Large number of data

- X-ray, CT, MRI, ultrasound, etc. : Typically, gray scale, 2-D, 3-D, 4-D 등, 개인정보이기 때문에 얻기 힘듦, 데이터가 작다.

 

▷Image Classification : Image classification은 image recognition(이미지 인식) 이거나 pattern recognition(패턴 인식)이다.

 

▷Medical Image Classification : 정면 및 측면 X선 영상 분류

- RPN : region proposal network

- 뼈의 나이를 예측 가능

- 이미지를 성숙 단계로 분류

- 회귀 분석을 사용하여 골격 연령 추정

 

▷ Data Preprocessing

- 심층 신경망을 훈련하는데 적합하도록 의료 이미지를 변환

- Intensity scaling : 영상의 픽셀 명암 값은 0 ~ 1로 정규호한다. 

- Image resizing : 320 x 240 이미지는 224 x 224 이미지로 크기가 조정됨 (통일이 필요함)

- Image registration : 다중 모드 영상은 모델 교육 전에 공동 등록된다.  (segment에서 중요함)

 

Data Augmentation 

- 의료 영상 데이터의 수는 일반적으로 작다.

- 데이터가 많을 수록 딥러닝 성능이 높아진다.

- 데이터 증가로 데이터 수 증가

- 기본 데이터를 확대함

- 기하학적 변환을 줌

ex) Scaling, translation, rotation, reflection, shearing, flipping, Cropping, Random patches, Occlusion, Intensity operations, Change of brightness or contrast, gamma correction, histogram equalization, Noise injection, Injection of Gussian noise into pixel values, salt and pepper noise, filtering, Sharpening, blurring, smoothing using a convolutional kernel

- Deformable augmentaion : Randomized displacement field, Spline interpolation, Deformable image registration, Deep learning augmentation, Generative adversarial network (GAN)-based augmentaion; 사람 얼굴 만들듯이 조합해서 만듦

 

 

▷ Data Labeling

- 지도 학습의 경우, 훈련 데이터에 라벨을 제공해야 한다. 

- 분류를 위한 레이블이 지정된 데이터 

- 이미지의 클래스에 레이블을 지정한다. 

ex) One-hot encoding

: 클래스 이름을 이진 값으로 변환

 

▷ Neural Network

- 신경망 모델은 생물학적 뉴런에서 영감을 받았다. 

- 수학적 모델은 다음을 포함한다 : 가중합계, 비선형 활성화, 다중 레이어

- 완전 연결 레이어

- 위의 네트워크에는 25개의 연결(가중치)이 있다. 

 

Convolutional Network

- 컨볼루션 네트워크, 컨볼루션 신경망 (CNN)

- 컨볼루션 필터 : 필터를 사용하여 이미지 컨볼루션

- 비선형 활성화 : ReLu

- 최대 폴링

- Deep layer

- 더 높은 추상화의 특징은 더 높은 계층에 의해 포착된다. 

- 희소 연결

- 매개 변수 공유(또는 가중치 공유)

 

▷Nonlinear Activation 

 

 

CNN - Pooling 

- 최대 폴링으로 이동 불변성 도입

- 한칸 shift 하였지만, pooling 값 유지됨

- 최대 폴링 단위는 회전 불변성을 학습합니다.

- 학습된 필터 3개 세트

- 각 필터는 5의 방향을 약간 다르게 일치시키려고 함.

 

Max pooling with downsampling

- 크기를 2배로 줄인다.

- 다음 계층에 대한 계산 부담 감소

 

 

딥러닝 분류

 

Convolution

 

컨볼루션 네트워크

  - 컨볼루션 필터, ReLu, 최대 폴링, 심층 레이어

 

▷ 모델 교육 및 검증

  - 교차 검증, 과적합 

 

▷ Model Training, Validation, Testing

- 전체 데이터 소급 수집 : 데이터를 교육, 검증 및 테이터 세트로 분할

- 실제로 데이터는 매일 수집되고 있음 : 교육, 검증 및 테스트 데이터를 업데이트해야 할 수 있음, 딥 러닝 모델을 매일 업데이트해야 할 수 있음

- 모델 교육에 교육 데이터 사용 : 교육된 모델의 유효설 검사에 유효성 검사 데이터 사용, '보이지 않는' 테스트 테이터를 사용하여 교육된 모델을 테스트 함

- 전향적 : Prospective - 앞으로 다가올 환자에게 적용 (더 중요!!)

- 후향적 : retrospective - 이미 환자에게 적용

 

How to split training/validation

• Simple splitting

  • Training data : validation data = 8 : 2

  • Training data : validation data = 7 : 3

  • Randomly assign data to either training or validation

 

- Leave-one-out cross validation (LOOCV) 

  : 총 N개의 데이터 샘플이 주어졌을 때, N-1개의 샘플을 교육에 사용하고 하나의 샘플을 유효성 검사에 사용한다. 

  : N개의 교육/검증 데이터 조합을 사용하여 위를 반복한다. 

  : LOOCV는 N개의 모델의 훈련/검증을 수반하기 때문에 K가 소수인 K-fold ㅊㅍqhek tlrksdl ej dhfo rjfflsek. 

  : N이 작을 때는 LOOCV가 사용되기도 한다. 

 

K-fold cross validation (데이터를 뽕뽑아 먹는거임) 

- 데이터를 K개의 개별 그룹으로 나눈다. 

- K개의 다양한 교육/검증 데이터 조합을 사용하여 K개 모델을 교육한다. 

- 데이터를 K개의 개별 그룹으로 나눈다. 

- K개의 다양한 교육/검증 데이터 조합을 사용하여 K개 모델을 교육한다. 

 Model Training

▷ Loss function(=cost function, 손실함수)

  : 모든 표본에 대한 레이블과 예측 사이의 불일치 합

  : 범주형 교차 엔트로피 (2개 이상의 클래스 문제의 경우)

i는 i번째 sample, yi는 i번째 sample의 label(0-cat, 1-dog)

y h Loss
0 0.001 0 * (-∞) + 1 * 0 = 0
1 0.9999 1 * 0 + 0 * (-∞) = 0
0 0.9999 0 * (-∞) + 1 * (-∞) = -
1 0.001 1 * (-∞) + 0 * 0 = -

  : 학습은 손실 함수를 최소화하기 위한 것

  : Stochastic gradient descent(SGD)은 일반적으로 최적화에 사용

 

▷Stochastic gradient descent (SGD)

  - 확률론적

  - 교육 데이터를 작은 샘플 그룹으로 나눔

     : 그룹 할당을 임의로 지정할 수 있음

     : 작은 표본 그룹 - 배치

     : 작은 표본 수 - 배치 크기

  - 첫 번째 배치를 사용하여 모델 매개변수 업데이트 및 모든 배치가 사용될 때까지 이 프로세스 반복 : 1개 epoch이 완료

  - 이 과정을 많은 epoch 반복하기

- Gradient descent (경사 하강) : 손실 함수의 편미분, 역 전파, 체인 규칙

- 1 epoch : 전체데이터를 나눠서 야금야금 optimization을 진행하는데 전체 데이터를 돌면 1epoch인거임

▷ Model Validation 

- 검증 데이터 세트를 사용하여 모델 검증

- 한 시대의 교육 데이터 세트를 사용하여 모델 교육

- 매 시대마다 훈련된 모델을 사용하여 유효성 검사 점수 계산

 

 Model Training and Validation Plots : 학습 곡선

- Model Capacity가 크면 Validation Data 예측 감소

1. Underfitting : 모형 요량이 데이터에 적합하기에 충분하지 않은 경우 발생

2. Overfitting : 모델 매개 변수가 교육 데이터에 맞게 지나치게 최적화 되어있어서 보이지 않는 유효성 검사 데이터에 대한 일반화가 잘 안됨

- Validation이 높아지는 이유 : training Data가 너무 돌려서 명확해지는데 새로운 데이터가 불안정해서 

 

▷ Testing and Evaluation 

- 테스트 데이터에 대한 교육된 모델을 사용한 결과 예측

- 평가 지표 : 곡선 아래 영역(AUC), 정확도, 민감도, 특이도, F1 점수, 정밀도, 리콜

▷ROC curve : 수신기 작동 특성 곡선 

- 모든 임계값에서 분류 모델의 성능을 보여주는 그래프 

- AUC : Area under the ROC curve

최대값 = 1, 최솟값 = 0
AUC가 높을수록 예측 성능이 우수함, 범위는 0 - 1

▷Transfer Learning(전이 학습)

- 자연 이미지의 거대한 데이터에 대해 훈련된 사전 훈련된 CNN모델을 사용

- 의료 영상에서 사전 훈련된 CNN 모델을 사용하고 특징을 추출함

- 의료 이미지/라벨을 사용하고 사전 훈련된 CNN 모델에서 추출한 기능을 사용하여 완전히 연결된 레이어를 훈련

- 전이학습으로 교육은 많지 않은 의료 영상 데이터로 효과적

 

 

'소프트웨어 > 의료영상데이터' 카테고리의 다른 글

Visualization  (0) 2022.12.14
[Quantification]  (0) 2022.12.13
Segmentation 1  (0) 2022.10.18
Segmentation 2  (0) 2022.10.18
Registration 1  (0) 2022.10.18