티스토리 뷰

# 유방암 진단: 의료 이미지 분류 프로젝트 유방암 진단 프로젝트는 딥러닝을 활용해 병리 슬라이드나 초음파 이미지를 분석하여 양성·악성 여부를 자동 분류하는 실전 사례입니다. 전통적인 의사 판독의 주관성과 시간 소모를 보완하며, 조기 발견 정확도를 높입니다. BreakHis나 Kaggle 데이터셋으로 CNN 모델을 훈련해 90% 이상 성능을 달성할 수 있습니다. ## 데이터셋과 전처리 유방암 이미지 분류의 핵심 데이터셋은 BreakHis로, 7,909장의 현미경 병리 이미지를 40×~400× 배율로 제공합니다. 양성(악성 아님)과 악성으로 이진 분류하며, biopsy 조직을 염색 후 촬영합니다. Kaggle 초음파 데이터셋은 9,000장 이상으로 양성·악성·정상을 3분류합니다. 전처리는 색상 정규화로 노이즈 제거하고, 회전·플립·스케일링으로 데이터 증강합니다. 원본 5배 확대해 과적합 방지하며, 224×224 픽셀로 리사이즈합니다. 학습·검증·테스트를 7:1:2로 분할해 일반화 능력을 검증합니다. ## 모델 아키텍처 선택 기반 모델로 DenseNet을 사용합니다. Dense Block에서 각 레이어가 이전 모든 feature map을 연결해 vanishing gradient를 완화하고 파라미터 효율을 높입니다. Transition Layer로 차원 축소하며, SE(Squeeze-and-Excitation) 어텐션을 추가해 채널 중요도를 학습합니다. 대안으로 ResNet50(잔차 연결), VGG16(단순 컨볼루션), MobileNet(경량화)을 트랜스퍼 러닝합니다. ImageNet 사전 학습 후 의료 데이터 fine-tuning으로 도메인 갭을 메웁니다. 커스텀 CNN은 ReLU 활성화와 Softmax 출력으로 이진 분류합니다. ## 딥 트랜스퍼 러닝 전략 Deep Transfer Learning이 핵심입니다. 1단계 ImageNet으로 얕은 레이어(기본 특징) pre-train, 2단계 LC2500 폐암 데이터로 깊은 레이어(의료 특징) 조정, 3단계 BreakHis로 전체 fine-tuning합니다. 이는 제한된 데이터에서 84% 정확도를 달성합니다. PyTorch에서 torchvision.models.densenet121(pretrained=True)로 시작해 마지막 레이어 교체합니다. optimizer는 Adam(learning rate 0.0001), loss는 Binary Cross Entropy, epoch 200, batch 32로 설정합니다. ## 구현 코드 예시 ```python import torch import torch.nn as nn from torchvision import models, transforms from torch.utils.data import DataLoader # 모델 로드 및 수정 model = models.densenet121(pretrained=True) model.classifier = nn.Linear(model.classifier.in_features, 2) # 이진 분류 # 데이터 로더 (증강 포함) transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.RandomHorizontalFlip(), transforms.ToTensor() ]) # 학습 루프 criterion = nn.CrossEntropyLoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) for epoch in range(50): for inputs, labels in dataloader: outputs = model(inputs) loss = criterion(outputs, labels) optimizer.zero_grad() loss.backward() optimizer.step() ``` GPU(RTX 4090 추천)로 82% 학습 정확도, 75% 검증 정확도를 목표합니다. ## 평가와 결과 분석 정확도(Accuracy), Precision, Recall, F1-Score, AUC-ROC로 평가합니다. ResNet50이 98.41% 최고 성능, DenseNet+SE가 2~6% 향상됩니다. 환자 수준 정확도는 올바른 이미지 비율 평균으로 계산합니다. 과적합 방지 위해 early stopping 적용합니다. 실험에서 트랜스퍼 러닝이 수렴 속도를 가속화하며, 배율별(400× 최고) 성능 차이 확인합니다. 임상 적용 시 의사 보조 도구로 사용해 오진율 10% 감소 효과입니다. ## 프로젝트 팁과 한계 하이퍼파라미터 튜닝(Grid Search)과 Grad-CAM으로 모델 해석성을 높입니다. 한계는 이진 분류 한정, 데이터 부족으로 하위 유형 미지원입니다. 향후 멀티클래스와 연합학습으로 발전시킬 수 있습니다. 이 프로젝트는 의료 AI 입문에 이상적이며, Kaggle 노트북으로 재현 가능합니다. 실제 병원 도입 시 FDA 승인 데이터셋 검증 필수입니다. 

 

 

 

유방암 진단: 의료 이미지 분류 프로젝트
유방암 진단: 의료 이미지 분류 프로젝트