AI Deep Dive, Chapter 5. 이진 분류와 다중 분류 04. 인공신경망은 MLE 기계다
AI Deep Dive Note
Chapter 5 - 04. 인공신경망은 MLE 기계다
-
loss함수를 만들 때, 모델에 적합한 likelihood 확률을 설정하고, NLL을 취하면 된다.
- 이산확률분포일 때
- 이진분류 (ex. 강아지 or 고양이)의 likelihood: 베르누이 분포
- 다중분류
- 연속확률분포일 때
- (ex. 키 vs 몸무게)의 likelihood: 가우시안 분포 - 평균만 갖다쓰도록 정리하면 결국 MSE가 나온다.
- 확률을 최대화한다로부터, loss함수의 의미를 담기 위해 -를 곱한다
- 연산 편의를 위하여(?) log를 취한다. 단조증가라 최대최소문제에 영향 없음
- 유도하면 MSE 나오고 하는 거보니까 단순히 수학적 계산 편의 이상의 의미인 것 같다. 뭘까
- 이산확률분포일 때
-
확률모델로부터 likelihood를 선정할 수 있고, 이를 통해 산출된 loss함수를 이용해서, gradient descent하여 weight를 업데이트 해 나가면 ‘학습’
자세한 설명
-
maximum likelihood estimation
- \((q-1)^2\) vs \(-log q\)를 최소화하는 것의 뿌리는 모두 MLE이다.
- MSE로 나온 것도, 가우시안 분포로 가정하고 평균을 예측치로 잡으면 NLL으로 (-log를 씌워서) 유도할 수 있다.
- \(q^y(1-q)^{1-y}\)를 다시 보자.. -> 베르누이 분포 식. 이것을 likelihood로 삼자.
베르누이 분포로 가정
- 베르누이 분포는 이산확률분포이다.
-
내가 입력한 사진이 강아지 혹은 고양이 뿐이라면, 베르누이 분포로 가정하는 것이 훨씬 적절하다.
- 이 식을 likelihood로 삼자
- \(q^y*(1-q)^{1-y}\).
- 여기에 NLL을 구하면 \(-log(q^y*(1-q)^{1-y})\).
- n번째 사건들의 독립시행이므로 곱하면 여러 사건의 확률이다. 로그가 있으니 덧셈으로 표현이 가능하다.
- \(-\sum_n(log(q_n^y_n*(1-q_n)^{1-y_n}))\).
가우시안 분포로 가정
- 가우시안 분포는 연속확률분포이다.
- 내가 입력한 키, 몸무게가 가우시안 분포를 따른다고 가정하면 likelihood는
- \(\frac{1}{\sqrt{2*pi*\sigma^2}^{-\exp{\frac{(y-\hat{y})^2}{2\sigma^2}}}}\) .
- -log 씌우고 상수 무시하고 유도하면 \(\sum{(y_i-\hat{y_i})^2}\) 나온다 MSE와 동일하다.
- 이걸 loss함수로 쓰면 된다.
사실은 둘 다 NLL(Negative Log Likelihood)
-
q: 강아지일 확률을 최대화
- 베르누이 분포
- 최대화 식이므로, loss 함수(최소화)로 만들려면 -를 붙이고, 편의를 위해 log함수를 붙이자
- 독립시행 확률은 확률 곱인데, sum으로 변환이 가능하다.
강의 내용 요약
- 인공신경망의 기본 원리:
- 인공신경망은 최대우도추정(Maximum Likelihood Estimation, MLE)의 원리에 기반합니다.
- 이는 딥러닝의 핵심 이론적 뿌리입니다.
- 손실 함수의 비교:
- MSE (Mean Squared Error)와 -log q는 둘 다 MLE의 원리에 기반한 손실 함수입니다.
- 이 두 손실 함수는 결국 같은 목표를 가지고 있습니다: 데이터의 likelihood를 최대화하는 것입니다.
- 베르누이 분포와 Likelihood:
- 베르누이 분포의 확률 질량 함수는\(q^y*(1−q)^{1−y}\)입니다.
- 이 식을 likelihood로 보고, 이를 최대화하는 파라미터 w를 찾는 것이 목표입니다.
- 학습의 목표:
- Level 1: 입력 x에 대해 출력 y와 가장 비슷한 값을 가지는 q를 찾는 것입니다. 예를 들어, 강아지 사진을 입력으로 받았을 때, q가 1에 가까워야 합니다.
- Level 3: 입력 x에 대해 y의 확률을 최대화하는 q를 찾는 것입니다. 이는 y의 확률을 최대화하기 위해 가중치 w를 조절하는 것을 의미합니다.
- 화자의 주요 메시지:
- 딥러닝과 인공신경망의 다양한 손실 함수나 학습 방법들은 결국 MLE의 원리에 기반하고 있습니다.
- 이 원리를 이해하면 다양한 손실 함수나 학습 방법들을 통일된 관점에서 이해하고 해석할 수 있습니다.
추가 조사
-
0-9까지의 손글씨를 인식하는 문제: 다중 클래스 분류 - 다항분포 사용
-
다항분포
-
베르누이 분포의 확장
-
다항 분포의 확률 질량 함수(PMF):
�(�1=�1,�2=�2,…,��=��)=�!�1!�2!…��!�1�1�2�2…����P(X1=x1,X2=x2,…,Xk*=*xk)=x1!x2!…xk*!*n*!*p*1*x*1*p*2*x*2…*pkxk
여기서:
- ��X**i는 i번째 결과가 나타나는 횟수입니다.
- ��x**i는 i번째 결과가 나타나는 횟수의 특정 값입니다.
- ��p**i는 i번째 결과가 나타날 확률입니다.
- �n은 전체 시도 횟수입니다.
- �k는 가능한 결과의 수입니다.
손글씨 인식 문제에서는 �=10k=10 (0-9까지의 숫자)이며, 각 숫자가 나타날 확률은 해당 숫자의 인식 확률입니다.
다중 클래스 분류 문제를 해결하기 위해 신경망에서는 소프트맥스(softmax) 함수를 사용하여 출력을 확률로 변환합니다. 소프트맥스 함수는 각 클래스에 대한 점수(로짓)를 받아서 확률 분포로 변환합니다. 이 확률 분포는 다항 분포를 따르며, 손실 함수로는 크로스 엔트로피 손실 함수를 사용합니다.
-
문제 유형과 그에 적합한 모델들
- 이진 분류(Binary Classification)
- 문제: 스팸 메일 필터링, 질병 진단(환자가 특정 질병을 가지고 있는지 여부)
- 모델: 로지스틱 회귀(Logistic Regression), 서포트 벡터 머신(SVM), 결정 트리(Decision Tree), 랜덤 포레스트(Random Forest)
- 다중 클래스 분류(Multi-class Classification)
- 문제: 손글씨 숫자 인식, 이미지 분류
- 모델: 소프트맥스 회귀(Softmax Regression), 다중 레이블 결정 트리(Multi-label Decision Trees), 랜덤 포레스트, 신경망(Neural Networks)
- 회귀(Regression)
- 문제: 주택 가격 예측, 주식 가격 예측
- 모델: 선형 회귀(Linear Regression), 다항 회귀(Polynomial Regression), 릿지(Ridge)와 라쏘(Lasso) 회귀
- 군집화(Clustering)
- 문제: 고객 세분화, 유전자 분류
- 모델: K-평균(K-means), 계층적 군집화(Hierarchical Clustering), DBSCAN
- 차원 축소(Dimensionality Reduction)
- 문제: 시각화, 피처 선택
- 모델: 주성분 분석(PCA), t-SNE, LDA
- 시퀀스 예측(Sequence Prediction)
- 문제: 주식 가격 시계열 예측, 날씨 예측
- 모델: 순환 신경망(RNN), LSTM, GRU
- 추천(Recommendation)
- 문제: 영화 추천, 상품 추천
- 모델: 협업 필터링(Collaborative Filtering), 행렬 인수분해(Matrix Factorization), 딥러닝 기반 추천 시스템
- 이상 탐지(Anomaly Detection)
- 문제: 신용 카드 사기 탐지, 네트워크 침입 탐지
- 모델: One-Class SVM, Isolation Forest, 오토인코더(Autoencoders)
의료영상의 진단에서 사용하는 모델
-
기본 CNN 모델:
- LeNet, AlexNet, VGGNet 등의 기본적인 CNN 구조가 병변 인식의 초기 모델로 사용되었습니다.
- 의료 영상 데이터: X-ray, MRI
- 병변 유형: 기본적인 종양, 결절 인식
- 전처리: 이미지 정규화, 리사이징
- 데이터 증강: 회전, 반전, 확대/축소
- 후처리: -
-
ResNet (Residual Network):
- 깊은 네트워크에서 발생할 수 있는 그래디언트 소실 문제를 해결하기 위해 개발된 모델로, 의료 영상 분석에도 널리 사용됩니다.
- 의료 영상 데이터: CT, MRI
- 병변 유형: 복잡한 구조의 종양, 병변 인식
- 전처리: 이미지 정규화
- 데이터 증강: 회전, 반전, 확대/축소
- 후처리: -
-
U-Net:
-
의료 영상 분할에 특화된 모델로, 병변 영역을 정확하게 분할하는 데 사용됩니다. U-Net의 구조는 인코더와 디코더 부분으로 구성되며, skip-connection을 사용하여 특징을 보존합니다.
-
의료 영상 데이터: MRI, CT, 현미경 이미지, 초음파
- U-Net은 의료 영상 분할에 널리 사용되는 모델로, 초음파 영상에서의 병변 분할에도 효과적입니다. U-Net의 구조는 이미지의 세부 정보를 잘 보존하면서 병변 영역을 정확하게 분할할 수 있게 설계되었습니다.
-
병변 유형: 병변 영역 분할, 조직 분할
-
전처리: 이미지 정규화, 리사이징
-
데이터 증강: 회전, 반전, 확대/축소
-
후처리: 분할된 영역의 후처리 (예: 모폴로지 연산)
-
더 발전된 모델들
- U-Net:
- 개요: U-Net은 의료 영상 분할을 위해 처음 개발된 모델입니다. 그 이름은 그 구조가 ‘U’ 형태를 띠기 때문에 붙여졌습니다. 이 모델은 인코더와 디코더로 구성되며, 인코더는 영상의 특징을 추출하고, 디코더는 추출된 특징을 바탕으로 영상을 분할합니다.
- U-Net++:
- 개요: U-Net++는 U-Net의 구조를 확장하여 중간 출력을 다양한 스케일에서 연결하는 방식을 도입했습니다. 이로 인해 네트워크는 다양한 스케일의 특징을 효과적으로 활용할 수 있게 되었습니다.
- 특징: 중간 스케일의 특징 맵들이 서로 연결되어, 네트워크가 다양한 스케일의 정보를 동시에 활용할 수 있습니다.
- U-Net+++:
- 개요: U-Net+++는 U-Net++의 아이디어를 더욱 확장하여, 더 많은 중간 연결을 도입한 모델입니다. 이로 인해 네트워크는 더욱 다양한 스케일의 정보를 활용하면서, 복잡한 구조의 병변도 효과적으로 분할할 수 있게 되었습니다.
- 특징: U-Net++보다 더 많은 중간 연결을 가지며, 이로 인해 네트워크의 표현력이 향상됩니다.
이 외에도 U-Net 기반의 다양한 변형 모델들이 연구되고 있습니다. 예를 들면, Attention U-Net은 Attention 메커니즘을 도입하여 중요한 영역에 집중하게 하는 방식을 사용하고, Nested U-Net은 중첩된 U-Net 구조를 사용하여 성능을 향상시키는 방법을 제안하였습니다.
- U-Net:
-
-
Inception (GoogLeNet):
- 다양한 크기의 컨볼루션 필터를 동시에 사용하여 복잡한 패턴을 인식하는 데 효과적입니다.
- 의료 영상 데이터: X-ray, MRI
- 병변 유형: 다양한 크기와 형태의 병변 인식
- 전처리: 이미지 정규화
- 데이터 증강: 회전, 반전, 확대/축소
- 후처리: -
-
Attention Mechanism:
- 영상 내 중요한 영역에 주목하여 병변 인식의 정확도를 향상시키는 기법입니다.
- 의료 영상 데이터: MRI, Ultrasound
- 병변 유형: 작은 병변 또는 중요한 영역의 인식
- 전처리: 이미지 정규화
- 데이터 증강: 회전, 반전
- 후처리: -
-
3D CNN:
- 3D 영상(예: MRI, CT)에서 병변을 인식하기 위해 3차원 컨볼루션을 사용하는 모델입니다.
- 의료 영상 데이터: 3D MRI, 3D CT
- 병변 유형: 3차원 병변 인식 및 분할
- 전처리: 3D 이미지 정규화
- 데이터 증강: 3D 회전, 반전
- 후처리: 3D 분할된 영역의 후처리
-
Transfer Learning:
- 대규모 데이터셋(예: ImageNet)에서 사전 훈련된 모델을 사용하여 의료 영상 데이터에 적용하는 기법입니다. 의료 영상 데이터는 종종 제한적이므로, 사전 훈련된 모델을 활용하여 성능을 향상시킬 수 있습니다.
- 의료 영상 데이터: X-ray, MRI, CT
- 병변 유형: 일반적인 병변 인식
- 전처리: 이미지 정규화, 리사이징
- 데이터 증강: 회전, 반전, 확대/축소
- 후처리: -
-
Ensemble Methods:
- 여러 모델의 예측을 결합하여 병변 인식의 정확도를 향상시키는 기법입니다.
- 의료 영상 데이터: 모든 종류의 의료 영상
- 병변 유형: 다양한 병변 인식
- 전처리: 이미지 정규화
- 데이터 증강: 회전, 반전, 확대/축소
- 후처리: -
인기있는 조합
-
- U-Net with Data Augmentation: U-Net 모델에 다양한 데이터 증강 기법을 적용하여 모델의 일반화 성능을 향상시키는 방법.
- Transfer Learning with Pre-trained Models: 이미지넷과 같은 대규모 데이터셋에서 사전 학습된 모델을 사용하여 초음파 영상에 적용하는 방법.
- Attention Mechanism: 초음파 영상에서 중요한 영역에 집중하여 병변을 더 정확하게 인식하는 방법.
- 3D U-Net: 3D 초음파 영상에서 병변을 분할하는데 사용되는 3D 버전의 U-Net.
- Ensemble Methods: 여러 모델의 예측을 결합하여 더 높은 정확도를 달성하는 방법.
- Generative Adversarial Networks (GANs): 초음파 영상 향상 및 병변 시뮬레이션에 사용되는 생성적 적대 신경망.
- Capsule Networks: 병변의 공간적인 관계를 더 잘 포착하는 신경망 구조.
이러한 조합은 연구의 목적, 사용되는 데이터, 연구자의 전문성 등에 따라 다양하게 변형될 수 있습니다. 연구 논문, 학회 발표, 연구 기관의 보고서 등을 통해 최신의 연구 동향과 인기 있는 모델 조합을 확인하는 것이 좋습니다.
모델의 적합성 검증
- Train/Validation/Test Split:
- 데이터를 훈련, 검증, 테스트 세트로 분할합니다.
- 모델을 훈련 세트로 학습시키고, 검증 세트로 성능을 평가합니다.
- 여러 모델 중 가장 검증 세트에서 좋은 성능을 보이는 모델을 선택합니다.
- 최종적으로 테스트 세트를 사용하여 선택된 모델의 성능을 평가합니다.
- Cross-Validation (교차 검증):
- 데이터를 여러 개의 폴드(fold)로 분할합니다.
- 각 폴드를 검증 세트로 사용하면서 나머지 폴드를 훈련 세트로 사용하여 모델을 학습 및 평가합니다.
- 모든 폴드에 대한 평가 결과의 평균을 사용하여 모델의 성능을 평가합니다.
- A/B Testing:
- 실제 환경에서 두 개 이상의 모델을 동시에 배포하여 성능을 비교합니다.
- 사용자나 환경에 따라 무작위로 모델 A 또는 모델 B를 사용하게 하고, 결과를 비교하여 더 나은 성능을 보이는 모델을 선택합니다.
- Confusion Matrix:
- 분류 문제에서 모델의 성능을 평가하는 데 사용됩니다.
- 실제 레이블과 예측 레이블을 비교하여 TP, TN, FP, FN 값을 얻습니다.
- 이를 바탕으로 정밀도, 재현율, F1 점수 등의 지표를 계산하여 모델의 성능을 평가합니다.
- ROC Curve and AUC:
- 이진 분류 문제에서 모델의 성능을 평가하는 데 사용됩니다.
- 여러 임계값에 대한 진짜 양성 비율(TPR)과 거짓 양성 비율(FPR)을 플롯하여 ROC 곡선을 그립니다.
- AUC (Area Under the Curve) 값은 ROC 곡선 아래의 영역을 나타내며, 모델의 성능을 평가하는 지표로 사용됩니다.
- Early Stopping:
- 모델 학습 중에 검증 세트의 성능이 개선되지 않을 때 학습을 중단하는 기법입니다.
- 과적합을 방지하고 최적의 모델을 선택하는 데 도움을 줍니다.