일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Optimization
- C++
- computer vision
- CNN
- deep learning
- Multi-Head Attention
- 밑바닥부터 시작하는 딥러닝2
- RNN
- Regularization
- CPP
- mask r-cnn
- Machine Learning
- cs231n
- Transformer
- 딥러닝
- Python
- assignment2
- 밑바닥부터 시작하는 딥러닝
- DFS
- BFS
- marchine learning
- SQLD
- Adam
- Baekjoon
- Generative Models
- do it! 알고리즘 코딩테스트: c++편
- Algorithm
- assignment1
- Alexnet
- dropout
- Today
- Total
newhaneul
[Seoul National Univ: ML/DL] Lecture 6. Classification 2(Discriminant Analysis) 본문
[Seoul National Univ: ML/DL] Lecture 6. Classification 2(Discriminant Analysis)
뉴하늘 2025. 3. 6. 18:34본 포스팅은 서울대학교 이준석 교수님의 M3239.005300 Machine Learning & Deep Learning 1을 수강하고 공부한 내용을 정리하기 위한 포스팅입니다.
이준석 교수님에게 강의 자료 사용에 대한 허락을 받았음을 알립니다.
https://youtu.be/MCDCDgF11Kg?si=Tl5lPlaOfXML29kC
1. Risk & Bayes Classifier
Risk는 Marcin Learning에서 분류기가 예측한 값이 실제 값과 얼마나 다른지를 나타내는 손실의 척도이다. Bayes Classifier f는 예측 오차를 최소화하는 방식으로 학습한다. 즉, Bayes Classifier에서는 주어진 데이터에 대해 minimum risk을 가지는 최적의 Classification을 선택하는 방식으로 작동한다.
label y가 -1, +1 값만을 가지는 binary classification 상황이라고 했을 때 Bayes Classifier는 y =1, y = -1일때로 나눌 수 있다. 그리고 sign(log( )) 형태로 만들 수 있는데, 이는 log는 x = 1을 기준으로 y가 음수, 양수로 구분되는 지점이고, sign은 양수이면 1을 output으로 출력하고 음수이면 -1을 output으로 출력하는 function 역할을 하기 때문이다.
이 상황에서 Bayes Classifier는 Bayes Rule을 사용하여 특정 데이터가 어느 클래스에 속하는지를 확률적으로 예측한다. Bayes Rule에 따르면 아래와 같이 표현 가능하다.
- p(y|x): x가 주어졌을 때 y가 발생할 조건부 확률(사후 확률: posterior probability)
- p(x|y): y가 주어졌을 때 x가 발생할 조건부 확률(가능도: likelihood)
- p(y): x에 대한 정보를 알기 전에 사건 y가 발생할 확률(사전 확률: prior probability)
Bayes Rule은 prior probability를 바탕으로 likelihood가 주어졌을 때 posterior probability를 계산하는 데 사용된다.
p(y|x)를 추정하는데는 Generative classifier와 Discriminative classifier 2가지 전략이 있다.
- Discriminative classifier는 Bayes rule을 사용하지 않고 p(y|x)를 추정하는 것이다.
- Generative classifier는 Bayes rule을 사용하여 p(x|y)와 p(y)를 활용해 p(y|x)를 추정하는 것이다.
risk를 최소화하기 위해 f(x)를 아래와 같이 정의했었다. 여기서 정규 분포라고 가정을 하고 식을 다시 풀이한다. 지금은 binary classification set이라고 가정하고 문제를 풀고 있으므로 아래와 같이 두 개의 정규 분포(y = 1, y = -1)로 구분할 수 있다.
2. Discriminant Analysis
binary classification set이므로 p(y = -1)은 1 - p(y = 1)과 같고, p(y = 1)을 α라고 했을 때 p(y = -1)은 1 - α이다.
x에 대한 많은 data를 가지고 있다고 가정하면, 정규 분포와 같은 형태를 띠게 될 것이고 그럼 두 정규 분포의 평균과 분산의 근사값을 구할 수 있을 것이다. 그렇게 구한 평균과 분산을 정규 분포 식에 넣게 되면 x가 입력됐을 때 둘 중 어느 정규분포에 더 가까운지를 추정할 수 있을 것이다. 즉, classification이 가능해질 것 이다.
x가 scalar라고 가정한 후 2개의 정규 분포 식을 분모, 분자에 대입하고 기계적으로 계산을 진행하면 아래와 같이 정리할 수 있다.
그럼 정리한 이 f(x)에 대하여 두 정규 분포의 평균과 분산에 Maximum Likelihood Estimator을 적용해야 한다.
MLE를 진행하면 평균과 분산은 각각 class의 평균과 분산이 되고, 그것이 MLE가 된다. 이렇게 구한 평균과 분산을 아까의 f(x)식에 대입한다.
여기서 모델을 더 단순화 시키기 위해 두 정규 분포의 분산을 모두 같다고 가정한 후 식을 정리하면 아래와 같다. 정리한 결과 x에 대한 Linear function 형태를 띠게 된다.
분산이 같다고 가정하지 않은 Quadratic Discriminant Analysis(QDA)의 Decision boundary는 risk를 최소화시키는 Decision boundary with Bayes classifier와 유사한 형태를 띤다.
그래서 분산이 같다고 가정한 Linear Discriminant Analysis는 실제 classification을 진행할 때 1차 함수 형태로 진행한다.
지금까지는 binary classification set으로 Gaussian Distribution을 가정했다. 만약 Multi-dimension set이라면 Gaussian Distribution은 아래와 같이 나타낼 수 있다.
서로 다른 정규 분포의 분산이 같다고 가정한 Linear Discriminant Analysis에서 binary classification set일 때 +1과 -1 class로 분류를 진행했다. 만약 3개 이상의 class라면 아래의 k번째 식이 최대일때를 구하고, 그 k의 class로 분류를 진행하면 된다.
class들이 잘 분포되어 있는 문제일 경우 Logistic regression model은 boundary에 대한 data가 부족하면 unstable하게 되기 때문에, Linear Discriminant Analysis를 주로 사용한다.
3. Evaluating Classification Models
Classification Model의 성능을 평가하는 방법에는 여러 가지가 있다. False Positive Rate은 실제 Negative인 샘플 중에서 모델이 Positive로 잘못 예측한 비율을 의미하고, False Negative Rate는 실제 Positive인 샘플 중에서 모델이 Negative로 잘못 예측한 비율을 의미한다.
- False Positive (FP): 실제 Negative인데, 모델이 Positive로 잘못 예측 (Type I Error)
- False Negative (FN): 실제 Positive인데, 모델이 Negative로 잘못 예측 (Type II Error)
Threshold(임계값)는 머신러닝에서 모델이 특정 클래스로 분류할지 여부를 결정하는 기준값이다. Threshold가 낮을수록 더 Conservative한 model을 의미하게 된다.
ROC curve(Receiver Operating Characteristic)는 분류 모델의 성능을 평가하는 그래프로, True Positive Rate(TPR, 재현율)와 False Positive Rate(FPR, 거짓 긍정 비율)의 관계를 나타낸 곡선이다. AUC(Area Under the Curve)가 1에 가까울수록 모델의 성능이 더 좋아지게 된다.
- AUC = 1.0: 완벽한 모델
- AUC = 0.5: 무작위 예측 (랜덤 분류기)
- AUC < 0.5: 모델 성능이 나쁘며, 반대로 분류하는 것이 더 나음
4. Naive Bayes
Naive Bayes 분류기는 Bayes Rule를 기반으로 하며, input으로 들어오는 x 벡터의 차원들이 서로 independent라고 가정한다. 즉, 한 특성이 다른 특성에 영향을 주지 않는다고 가정한다.
이 가정 덕분에 계산이 매우 단순해지고 속도가 빨라진다. 하지만 실제 데이터에서는 이 가정이 완전히 성립하지 않는 경우가 많다.
Naive Bayes는 정확한 확률을 계산하지는 못하지만 비교적 정확한 class 간의 사후 확률의 순위를 구할 수 있어 최종 분류 선응이 좋다. 즉, 실제 확률을 정확히 예측하지 못하더라도, 가장 가능성이 높은 class를 잘 찾아낸다.
Naive Bayes는 몇 가지 실용적인 문제가 있다.
1. Zero-Frequency Problem
Zero-Frequency Problem이란, Naive Bayes에서 특정 단어(또는 특성 값)가 학습 데이터에서 한 번도 등장하지 않으면, 해당 확률이 0이 되어 전체 사후 확률 P(Y∣X)가 0이 되는 문제를 의미한다. 따라서 이를 해결하기 위해 아주 작은 확률을 모든 경우의 수에 더하곤 한다.
2. Numerical Issue
Numerical Issue는 0~1 사이인 확률 값을 연속으로 곱해버려서 값이 0으로 수렴하는 문제를 말한다. 컴퓨터는 변수 하나가 표현할 수 있는 소수 값의 범위가 있기 때문에 너무 작을 경우 0이라고 출력하는 문제가 생길 수 있다. 따라서 확률 계산을 log의 합으로 변환하는 것이 더 안정적이다.