2. 폐렴(pneumonia)
폐포속에 염증이 생기는 질환으로서
세균이나 바이러스에 의해 발생, 다양한
합병증 통해 사망까지 이르게 하는 질병
최근 코로나를 진단하는데 CNN모델이
활용될 수 있는 방안이 연구되고 있으며
폐렴 뿐만 아니라 암, 종양 판별 등
다양한 의료분야에서 CNN 모델이 활발
하게 연구되고 있음
개요 데이터 VGGNet ResNet EfficientNet 모델링 결과
3. 폐렴 데이터 셋
데이터
개요 VGGNet ResNet EfficientNet 모델링 결과
Kaggle에 있는 폐렴 데이터셋
폐렴에 걸린 폐와 정상 폐의 사진이 5876장
있으며 train, validation, test dataset이
나누어져 있음.
모델링 목표
TrainDataset으로 모델을 학습시켜 폐렴에 걸린
폐와 정상 폐의 X-ray 사진이 섞여있는 Test
Dataset 사진중 정상 폐와 폐렴인 폐를 정확히
골라내는 모델 제작
* 왼쪽 이미지에서 푸르게 불타는 부분이 염증,
보다시피 육안으로 식별해 진단하기 매우 어려움!
4. 작은 크기의 3x3 컨볼루션 필터(filter)를 이용해 레이어의 깊이를 늘려 우수한 성능을 보여줌
직관적이고 단순한 구조
VGGNet
개요 데이터 ResNet EfficientNet 모델링 결과
단순한 구조, 높은 성능 VGGNet
5. VGGNet에 있는 13개의 컨볼루션 레이어 중 첫 번째레이어 (위), 마지막 레이어(아래) 를 통과한 16개의 채널 이미지
VGGNet
개요 데이터 ResNet EfficientNet 모델링 결과
VGGNet – Convolution layer
6. VGG의 한계
성능을 높이기 위해 레이어를 많이
쌓는 것이 안 좋은 성능을 보일때가
많음
BackFoward과정에서
Gradient Degradation 발생
ResNet
개요 데이터 VGGNet EfficientNet 모델링 결과
전에 배운 것을 잊지말자 ResNet
7. ResNet
개요 데이터 VGGNet EfficientNet 모델링 결과
전에 배운 것을 잊지말자 ResNet
전에 학습한 특성을 새로 학습한
것에 더함으로써 전에 배운것을
잊지 않게 하는 것이 포인트.
이 과정 하나가 Residual Block
Residual Block을 여러 개
쌓아서 만든 모델이 ResNet
8.
9. Efficient
Net
개요 데이터 VGGNet ResNet 모델링 결과
하이퍼 파라미터들의 황금비율 EfficientNet
기존의 모델 성능 향상방법
width scaling
- filter의 개수를 늘려 성능향상
depth scaling
- layer의 개수를 늘려 성능향상
resolution scaling
- input image 해상도를 높여 성능향상
EfficientNet (Compound Scaling)
세가지 요소를 적절한 비율로 동시에 늘려 성능을
향상시킨 모델
10. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
기본 모델 EfficientNet
EfficientNet
depth, width, resolution의 황금비율로
만들어진 모델
Depth(# of layer)
Width(# of filter)
Resolution(pixel intensity)
따로 따로 조절되는 것이 아닌
Base모델에서 동일하게 phi 의 제곱 씩
늘어나는 것이 가장 효율적!
Efficientb0 ,b1, b2 …
(input의 크기에 따라 결정)
11. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
기본 모델 EfficientNet
그 결과, 더 적은 수의 파라미터를
사용하면서도 매우 향상된 성능을
보여줌
프로젝트 기본 모델로
‘Efficient Net b0’ 를 채택
12. 기본 모델
Weight parameter가 사전에
학습되어 있는 Efficient-b0 load
맨 마지막에 output node가 하나인
fully connected layer 추가
Normal->0
Pneumonia->1 으로
라벨링을 했기 때문에 마지막 oupt
node의 개수가 하나임
13. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
성능 향상 작업 1. DataAugmentation
성능 향상 작업 2. Class weight 부여
성능 향상 작업 3. optimizer 와 학습률 조정
14. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
성능 향상 작업 1. DataAugmentation
Data Augmentation (데이터증강)
모델이 학습하는 동안 인풋데이터에
랜덤한 방법으로 다양한 변형을
가하는 것으로써,
결국 모델이 학습하는 데이터 양이
늘어나는 것과 동일한 효과를 갖게 됌
이를 통해 과대적합을 방지하고 모델
성능 향상 모색
15. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
성능 향상 작업 1. DataAugmentation
- RandomHorizontalFlip(수평반전)
- RandomAffine
추가적으로, Normalization을 수행함
Data Augmentation 에 따라 최종
모델의 성능은 0.11 가량 차이를 보임
16. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
성능 향상 작업 2. Class weight 부여
정상 폐 사진과 폐렴 사진의 비율이
다름
해당 class의 가중치를 loss에 부여하여
성능저하를 방지
정상 폐렴
약 세 배 차이!
17. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
성능 향상 작업 2. Class weight 부여
18. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
성능 향상 작업 3. optimizer 와 학습률조정
Optimizer
ADAM 을 이용해서 OPTIMIZING
진행함
학습률 조정
Loss가 낮아질수록 학습률이
조금씩 낮아지는 learning late
scheduler를 세팅함
19. 모델링
개요 데이터 VGGNet ResNet EfficientNet 결과
모델 훈련 결과
EfficientNET을 활용한 데이터 분류 학습의
Test Score
Accuracy가 93점, F1 score가 약 95점
앞서 말한 레지던트 수련의들의 정확도 66%
를 아득히 넘어서는 결과
20. 결과
개요 데이터 VGGNet ResNet EfficientNet 모델링
요약
Data Augmentation ,
Class weighting ,
학습률 조정
-> 학습의 성능 향상
<모델간 비교>
Accuracy는 VGG가 가장 높지만
컴퓨팅 리소스 / 학습시간 면에서
EfficientNET이 VGG보다 efficient!