Search
🤖

Logistic Regression

생성일
2025/05/02 07:02
태그
머신러닝
데이터마이닝
작성자

1. 분류란?

입력값이 어떤 Class에 속하는지 판단하는 것으로 회귀와 다르게 정답값 y는 범주형 변수이다.

2. 선형분류기

선형함수를 기반으로 분류규칙을 설정하여 입력 데이터의 Class를 구분
선형 함수 설정
f(x)=wTx=[w0w1w2]T[1x1x2]f(x) = w^Tx =\begin{bmatrix}w_0 \\ w_1 \\ w_2 \end{bmatrix}^T \begin{bmatrix}1 \\ x_1 \\ x_2 \end{bmatrix}
분류 규칙
f(x)0C1,f(x)<0C2f(x) ≥ 0 → C_1 , f(x) < 0 → C_2
선형 함수의 출력값 자체는 연속형이지만, 설정된 규칙에 의해 2개의 Class 중 하나로 할당되므로 범주형 정답값에 입력값을 대응할 수 있다.
문제점
선형 함수와 가까운 데이터도 100% 특정 Class로 분류되므로, 불확실성이 높은 경계 근처의 샘플에 대해 부적절한 결정이 내려질 수 있음

3. 선형분류기의 학습

목적함수를 선언하고 Parameter 추정
선형 함수의 출력값을 단순히 정답값 y에 가까워지도록 만드는 것이 목적이 아니므로, 회귀에서 사용한 목적함수를 그대로 사용할 수 없다.
목적함수로 주로 Cross-entropy를 사용한다.

4. 정보이론의 Entropy

불확실성을 나타내는 지표
H(Y)=iyilogyi  (0yi1,yi=1)H(Y) = - \sum_i y_i \log y_i \ \ (0 ≤ y_i ≤1 , \sum y_i = 1)
⇒ 각 yiy_i는 어떤 결과가 발생할 확률이며 무작위적인 발생 시 entropy가 가장 크다.
증명
Entropy를 목적함수로 사용하는 경우
실제 정답을 얼마나 잘 맞히는지에 관계없이 일관된 예측이면 Loss가 줄어든다.

5. Cross-Entropy

실제 정답 분포와 예측 분포 사이의 차이를 측정하는 지표
H(Y)=iyilogy^iH(Y) = - \sum_i y_i \log \hat y_i
이진 분류에서의 해석
정답 Class에 속할 확률을 얼마나 높게 예측하는가?
yi=0,1y_i = 0, 1 이므로 yi=1y_i = 1인 경우 CECE가 작아지려면 y^i\hat y_i가 1에 가까워야 한다.
이진 분류에서 CECE를 활용하기 위해 필요한 것 = 모델의 결과가 확률값으로 출력되어야 함
확률값으로 출력되지 않는다면?
log0\log 0인 부분이 발생할 수 있어 전체 Loss가 무한대로 발산할 수 있음

6. 선형식의 결과를 확률값으로 Mapping

wTx=log(p1p)w^T x = \log(\frac{p}{1-p})
선형식을 y=1일 확률의 logitlogit에 mapping
odds
성공할 확률과 실패할 확률의 비
logit=log oddslogit = log \ odds
y=1y=1인 확률 계산
ewTx=p1pe^{w^Tx} = \frac{p}{1-p}
ewTxewTxp=pe^{w^Tx} - e^{w^Tx} p = p
ewTxewTx+1=p\frac{e^{w^Tx} }{e^{w^Tx} +1} = p ; 선형식을 Logistic 함수에 대입한 형태와 동일
Logistic 함수
xx축을 wTxw^Tx라고 하면 선형식의 결과를 0~1 사이의 확률값으로 mapping 한다는 것을 알 수 있다.
⇒ 선형식의 값을 Logistic 함수에 대입하여 확률값을 얻는다. 이는 특정 Class에 속할 확률을 나타내므로 부정확한 예측에 대해서도 100% 특정 class에 할당하던 이진 분류의 문제를 완화한다.

7. Logistic Regression 학습/추정

추정(Inference)
Logisitc 함수의 결과 값을 임계값 (일반적으로 0.5)와 비교하여 Class 분류
학습
MLE 사용

8. MLE

회귀
Least Square Method를 활용하여 예측값과 실제값 사이의 차이를 줄이는 방향으로 학습
분류
주어진 데이터가 실제로 속한 Class에 속할 확률을 높이는 방향으로 Parameter 추정 (MLE)
베이즈 정리 : p(θx)=p(xθ)p(θ)p(x)p(\theta|x) = \frac{p(x|\theta)p(\theta)}{p(x)}
p(θx)p(\theta|x) : 사후 확률
p(xθ)p(x|\theta) : 우도 (Likelihood)
Likelihood를 최대화 하는 이유
사후확률을 최대화하는 경우 parameter의 사전 분포를 알아야 함 (p(θ)p(\theta)) → 불가능
따라서 주어진 parameter에 대해 그 데이터일 확률을 높이는 방향으로 학습
즉, 주어진 데이터에 대해 가장 그럴듯한 parameter를 찾는 과정

9. MLE + Logistic Regression

목적함수 정의
L(w)=i=1nP(y(i)=y^(i)x(i);w)=i=1nhw(x(i))y(i)(1hw(x(i)))1y(i)L(w) = \prod_{i=1}^{n} P\left(y^{(i)} = \hat{y}^{(i)} \mid x^{(i)}; w\right) = \prod_{i=1}^{n} h_w\left(x^{(i)}\right)^{y^{(i)}} \left(1 - h_w\left(x^{(i)}\right)\right)^{1 - y^{(i)}}
최대화의 대상
주어진 데이터가 정답 Class에 속할 확률을 높여야 함
hw(x(i))=P(y(i)=1x(i);w)h_w\left(x^{(i)}\right) = P\left(y^{(i)} = 1 \mid x^{(i)}; w\right)
MLE의 정의로 표현된 수식을 Logistic 함수의 출력값을 활용하여 표현하기 위해 정의하는 값
계산의 편의를 위해 negative log likelihood로 표현 → Log의 성질 (진수의 곱 = Log의 합)
logL(w)=logi=1nhw(x(i))y(i)(1hw(x(i)))1y(i) -\log L(w) = -\log \prod_{i=1}^{n} h_w\left(x^{(i)}\right)^{y^{(i)}} \left(1 - h_w\left(x^{(i)}\right)\right)^{1 - y^{(i)}}
=i=1n[y(i)loghw(x(i))+(1y(i))log(1hw(x(i)))]= -\sum_{i=1}^{n} \left[ y^{(i)} \log h_w\left(x^{(i)}\right) + \left(1 - y^{(i)}\right) \log\left(1 - h_w\left(x^{(i)}\right)\right) \right]
⇒ Logistic 함수를 통해 얻은 확률값으로 MLE를 하는 것이 결국 목적함수를 Cross-Entropy로 하여 최적화하는 것과 동일한 결과를 나타냄.

10. LSM 사용 불가한 이유

LSM은 Error를 과장하는 경향이 있음
학습된 선형 경계가 특정 Class에 편향되는 형태로 나타남
⇒ LSM을 이진 분류에 적용하면, 함수 출력이 클래스 확률이 아닌 연속적인 값으로 해석되기 때문에, 정답 레이블 yy와의 오차를 줄이도록 학습된 결과 wTxw^Tx가 0번 클래스에 가까운 값으로 수렴하며, 그에 따라 선형 결정 경계가 왜곡될 수 있음.

10. 정리

선형 분류기의 결과를 확률값으로 모델링하기 위해 y=1y=1에 대한 Logit을 선형식에 mapping, 그 형태가 Logisitic 함수에 선형 함수를 대입한 결과와 동일함.
확률값 모델링이 필요한 이유
Smooth한 분류
CE를 목적함수로 활용할 수 있다.
이때 정답 Class일 확률을 높이는 방향으로 Parameter를 학습
pp에 대한 MLE
MLE의 정의를 바탕으로 표현된 수식을 negative log likelihood로 표현
⇒ 이 형태가 Cross-Entropy를 목적함수로 하여 학습하는 형태와 동일