1. 머신러닝의 기본 개념
머신러닝(Machine Learning)은 컴퓨터가 데이터에서 패턴을 학습하고 이를 기반으로 새로운 데이터에 대한 예측이나 결정을 내리는 기술이다. 머신러닝은 다음과 같은 세 가지 요소로 구성된다:
- 작업(T): 모델이 수행해야 하는 작업.
- Ex) Classification, Anomaly Detection, Object Detection, Object Segmentation
- 성능(P): 작업의 결과를 평가하는 기준.
- Ex) 암을 정확히 분류한 비율(정확도).
- 경험(E): 모델이 학습하는 데 사용하는 데이터.
- Ex) 과거의 X-ray 이미지와 해당 라벨(정답).
결국, 머신러닝은 경험(E)을 통해 작업(T)에서 성능(P)을 점진적으로 개선하는 것을 목표로 한다.
2. 머신러닝과 데이터
- 샘플(Sample)과 라벨(Label)
- 샘플: 학습 알고리즘이 처리하는 데이터 단위.
- Ex) X-ray 이미지, 텍스트 문장.
- 라벨: 모델이 학습해야 할 정답.
- Ex) 이미지의 암 여부(0/1), 텍스트의 감정(긍정/부정).
- 샘플: 학습 알고리즘이 처리하는 데이터 단위.
- 특징(Feature)
- 데이터의 속성으로 모델 학습에 사용.
- Ex) 나이, 혈압, 이미지의 픽셀 값.
- 데이터의 속성으로 모델 학습에 사용.
- 데이터 세트의 분류
- 학습 데이터: 모델 학습용 (70~80%).
- 검증 데이터: 초매개변수 조정 및 평가용 (10~20%).
- 시험 데이터: 최종 성능 평가용 (10~20%).
- 데이터 준비 과정
- 데이터 수집: 다양한 소스에서 확보 (Ex: Kaggle).
- 데이터 정제: 결측치/이상치 처리, 중복 제거.
- 특징 엔지니어링: 데이터 변환 및 특징 생성.
- 데이터 분할: 학습, 검증, 시험 데이터로 나눔 (8:1:1).
- 관련 용어
- 초매개변수(Hyperparameter): 학습으로 찾을 수 없어, 사전에 설정하는 값 (Ex: 학습률).
- 정규화: 데이터를 [0, 1]로 변환.
- 표준화: 평균 0, 표준편차 1로 변환.
3. 머신러닝의 주요 응용 분야
- 컴퓨터 비전 (CV, Computer Vision)
- 조직 영상에서 암세포를 검출하거나 흉부 X-ray를 통해 암을 진단하는 데 사용된다.
- Ex) 혈관 영상에서 잡음을 제거하거나 병변 영역을 강조.
- 조직 영상에서 암세포를 검출하거나 흉부 X-ray를 통해 암을 진단하는 데 사용된다.
- 자연어 처리 (Natural Language Processing)
- 의료 판독 기록에서 필요한 정보를 자동으로 추출하거나 의료 챗봇 개발에 활용된다.
- Ex) 판독 기록문 생성이나 자연어 질의응답.
- 의료 판독 기록에서 필요한 정보를 자동으로 추출하거나 의료 챗봇 개발에 활용된다.
- 신호 처리 (Signal Processing)
- 뇌전도를 통해 외부 장치를 조종하거나 인간의 뇌 활동을 기반으로 이미지를 재구성하는 데 사용된다.
- Ex) 신경 과학 분야에서 BCI(Brain-Computer Interface) 기술.
- 뇌전도를 통해 외부 장치를 조종하거나 인간의 뇌 활동을 기반으로 이미지를 재구성하는 데 사용된다.
- 기타
- AlphaFold와 같은 기술로 단백질 구조를 예측하거나 신약 개발에도 적용된다.
- Ex) 머신러닝을 활용한 약물 설계 및 시뮬레이션.
- AlphaFold와 같은 기술로 단백질 구조를 예측하거나 신약 개발에도 적용된다.
4. 머신러닝의 핵심 개념
1. 손실 함수와 일반화
- 손실(Loss): 모델이 예측한 값과 실제 값 사이의 차이를 수치로 표현한 것.
- 일반화(Generalization): 학습하지 않은 데이터에서도 손실을 최소화하는 능력.
- 학습 데이터에서 손실이 낮아도 새로운 데이터에서 성능이 떨어지면 일반화 성능이 낮은 것임.
2. 과적합과 과소적합
- 과적합(Overfitting): 학습 데이터에는 성능이 뛰어나지만, 시험 데이터에서는 성능이 낮은 상태.
→ 해결법: 모델 단순화, 정칙화(Regularization), 더 많은 데이터 사용. - 과소적합(Underfitting): 학습 데이터에서도 성능이 낮아 작업 자체를 제대로 수행하지 못하는 상태.
→ 해결법: 모델 복잡도 증가, 더 많은 학습 시간 확보.
3. 오캄의 면도날 (Occam’s Razor)
- 동일한 성능을 가진다면 더 간단한 모델이 더 낫다는 원칙.
- 하지만 지나치게 단순한 모델은 과소적합이 발생할 수 있으므로, 복잡성과 성능의 균형을 맞추는 것이 중요.
4. 공짜 점심 없음 (No Free Lunch)
- 하나의 알고리즘이 모든 문제를 해결할 수는 없다.
- 문제의 특성에 맞는 알고리즘을 선택하는 것이 중요하며, 이는 각 작업마다 맞춤 설계가 필요함을 의미한다.
5. 머신러닝 학습 방법
1. 지도 학습 (Supervised Learning)
- 데이터와 정답(Label)이 모두 주어진 상태에서 학습.
- Ex) 흉부 X-ray에서 암 유무를 예측하는 분류(Classification) 문제.
2. 비지도 학습 (Unsupervised Learning)
- 정답 없이 데이터의 구조를 찾는 학습 방법.
- Ex) Whole Slide Image를 기반으로 병변 영역을 클러스터링.
3. 강화 학습 (Reinforcement Learning)
- 보상을 최대화하기 위해 행동을 학습.
- Ex) 의료 로봇이 환경에 적응하며 작업 수행.
4. 약한 지도 학습 (Weakly Supervised Learning)
- 제한된 라벨 데이터를 이용해 학습.
- Ex) 조직 영상의 일부분만 라벨링된 데이터를 사용해 세포 분할 모델 학습.
5. 준지도 학습 (Semi-supervised Learning)
- 일부 데이터에만 라벨이 있는 경우 이를 활용해 학습.
- Ex) 제한된 의료 영상 데이터에서 병변 영역 학습.
6. 자기 지도 학습 (Self-supervised Learning)
- 정답 없는 데이터로 표현을 학습하고, 이후 소량의 라벨 데이터를 통해 지도 학습.
- Ex) 대규모 흉부 X-ray로 암 예측 모델 학습.
6. k-NN, Decision Tree
1. k-Nearest Neighbor (kNN)
- 개념
- 학습 데이터를 기반으로 새로운 데이터와 가장 가까운 k개의 이웃을 찾고, 다수결로 분류하는 알고리즘.
- 비모수(non-parametric) 알고리즘으로, 학습 과정에서 별도의 파라미터를 학습하지 않음.
- 특징
- 회귀 및 분류에 사용 가능.
- Hyperparameter k는 상황에 따라 적절히 설정해야 함.
- 거리에 가중치를 부여해 더 정교한 예측 가능.
→ 가까운 데이터에 더 큰 가중치를 부여.
- 장점
- 단순하고 구현이 쉬움.
- 복잡하지 않은 데이터셋에 적합.
- 단점
- 데이터가 많아질수록 계산량 증가.
- 고차원 데이터에서 성능 저하(차원의 저주).
2. Decision Tree
- 개념
- 데이터를 특정 조건에 따라 분할해 나가는 트리 형태의 알고리즘.
- 각 노드는 조건, 리프(leaf) 노드는 예측 결과를 나타냄.
- 특징
- 데이터 분기를 통해 모델의 해석 가능성이 높음.
- Hyperparameter: 최대 깊이(depth), 최소 샘플 분할(min_samples_split).
- Overfitting 방지를 위해 가지치기(pruning) 필요.
- 장점
- 데이터를 직관적으로 분류.
- 연속형 데이터와 범주형 데이터 모두 처리 가능.
- 단점
- 과적합에 취약.
- 작은 변화에도 트리 구조가 크게 달라질 수 있음(불안정성).
kNN과 Decision Tree 비교
알고리즘 | 장점 | 단점 | 사용 사례 |
kNN | 단순 구현, 계산량 적음 | 데이터 많을수록 계산량 증가, 차원의 저주 | 간단한 분류 문제 |
Decision Tree | 직관적, 해석 용이, 다양한 데이터 처리 가능 | 과적합 취약, 불안정성 | 복잡한 분류 및 회귀 문제 |
7. 실습
더보기
간단한 실습 과정이므로 코드는 생략함.
k-Nearest Neighbor (kNN)
- 라이브러리 불러오기
- numpy: 수치 연산을 위해 사용.
- matplotlib.pyplot: 결과 시각화.
- sklearn.neighbors: kNN 알고리즘 제공.
- sklearn.datasets: Iris 데이터셋 로드.
- 데이터 준비
- Iris 데이터셋에서 첫 두 개의 특징(Sepal Length, Sepal Width)만 사용.
- Class 0을 제외한 이항 분류를 위해 데이터 필터링.
- 결정 경계(Decision Boundary) 생성
- make_meshgrid: 데이터 공간의 모든 가능한 특징 조합 생성.
- plot_contours: kNN 모델의 분류 경계를 시각화.
- k 값 변화 실험
- k = 3, 5, 7, 15에 대해 각각 kNN 모델을 학습하고, 결정 경계를 시각화.
- k = 3, 5, 7, 15에 대해 각각 kNN 모델을 학습하고, 결정 경계를 시각화.
Decision Tree
- 라이브러리 불러오기
- numpy: 수치 연산을 위해 사용.
- matplotlib.pyplot: 트리 구조 시각화.
- sklearn.tree: Decision Tree 알고리즘 및 트리 시각화 도구 제공.
- sklearn.datasets: Iris 데이터셋 로드.
- 데이터 준비
- Iris 데이터셋의 모든 특징(Sepal Length, Sepal Width, Petal Length, Petal Width)을 사용.
- 전체 클래스를 포함하여 다중 분류를 수행.
- 모델 학습
- DecisionTreeClassifier: 최대 깊이(max_depth=4)로 설정하여 과적합 방지.
- 트리 구조를 학습하고 데이터셋에 적용.
- 트리 시각화
- tree.plot_tree: 분기 조건, 클래스 분포 등을 포함한 트리 구조를 시각화.
- tree.plot_tree: 분기 조건, 클래스 분포 등을 포함한 트리 구조를 시각화.
결론
머신러닝은 데이터에서 패턴을 학습하고 이를 바탕으로 예측과 결정을 내리는 기술로, 다양한 문제에 적용 가능하다는 점에서 그 중요성을 확인할 수 있었다. 이번 학습에서는 kNN과 Decision Tree 알고리즘을 통해 기본적인 머신러닝 프로세스를 이해하고, 두 알고리즘의 특성을 비교해보았다.
kNN은 간단하고 직관적인 알고리즘으로, 데이터 간 거리 기반의 예측 방식을 통해 빠르게 적용할 수 있었다. 하지만 데이터가 많아질수록 계산량이 증가하고, 고차원 데이터에서는 성능 저하가 발생하는 한계도 명확히 느껴졌다. 반면, Decision Tree는 분기 구조를 통해 데이터의 조건을 시각적으로 이해할 수 있었고, 해석이 용이했다. 그러나 과적합 문제가 발생하기 쉬워 가지치기와 같은 조정을 통해 성능을 개선해야 했다.
두 알고리즘의 실습을 통해 데이터 전처리, 하이퍼파라미터 설정의 중요성을 체감했으며, 문제의 특성과 데이터의 성격에 따라 적합한 알고리즘을 선택해야 한다는 점을 다시금 깨달았다. 앞으로는 다른 알고리즘과의 성능 비교 및 다양한 데이터셋에서의 실험을 통해 더 나은 적용 방안을 탐구할 수 있을 것이다.
'Theory > DL & Medical AI' 카테고리의 다른 글
[딥러닝을 활용한 의료 영상 처리 & 모델 개발] Part2-2. Medical image acquisition & preprocessing (1) | 2025.01.02 |
---|---|
[딥러닝을 활용한 의료 영상 처리 & 모델 개발] Part2-1. Medical image file format (0) | 2025.01.02 |
[딥러닝을 활용한 의료 영상 처리 & 모델 개발] Part1-4. GAN, RNN, Transformer (4) | 2024.12.27 |
[딥러닝을 활용한 의료 영상 처리 & 모델 개발] Part1-3. Convolutional Neural Network (0) | 2024.12.27 |
[딥러닝을 활용한 의료 영상 처리 & 모델 개발] Part1-2. Deep Learning (0) | 2024.12.27 |