[머신러닝] 다시 공부하는 머신러닝 3일차 Logistic Regression

Andrew Kim·2023년 1월 30일
0

ML

목록 보기
3/4

Logistic Regression

선형 회귀로 해결되지 않는 문제들이 존재한다?

라벨이 수치값으로 정해져 있지 않은 모델들

이들은 각 라벨을 수치화하는 순서에 따라 선형회귀의 결과가 달라지게 된다.

ex)

위 문제를 선형회귀로 풀 경우, 1번이 한국인인 경우와 1번이 미국인인 경우의 결과값이 달라지게 된다.

그렇기 때문에 위와 같은 문제는 분류의 문제로 넘어오게 된다.

이진 분류

Sigmoid function

  • y=11+exy = \frac{1}{1+e^{-x}}
  • x=0x = 0 일 때, y=0.5y = 0.5 가 나옴
  • 0y10 \leq y \leq 1

Logistic Regression에 대해 더 공부하기 전...

odds

  • 성공의 확률(y=1y = 1)이 실패의 확률(y=0y = 0)에 비해 몇 배 더 높은가
  • odds=p(y=1x)1p(y=1x)odds = \frac{p(y=1|x)}{1 - p(y=1|x)}

logit

  • odds에 log를 취한 함수
  • logit(p)=log(odds)=logp(y=1x)1p(y=1x)logit(p) = log(odds) = log \frac{p(y=1|x)}{1 - p(y=1|x)}

logistic function

  • logit의 역함수로 해석 가능
  • logit(p)=log(odds)=logp(y=1x)1p(y=1x)=w0+w1x1++wDxD=wTXlogit(p) = log(odds) = log \frac{p(y=1|x)}{1 - p(y=1|x)} = w_0 + w_1x_1 + \cdots + w_Dx_D = w^TX (matrixmatrix로 다음과 같이 식의 형태 변환 가능)
  • p(y=1x)=ewTX1+ewTX=11+ewTXp(y=1|x) = \frac{e^{w^TX}}{1+e^{w^TX}} = \frac{1}{1+e^{-w^TX}}
  • logistic function = Linear Regression + sigmoid function

결국 Logistic function = sigmoid(wTX)sigmoid(w^TX) 이므로 wTXw^TX의 크기만 생각하면 됨

  • wTX>0:w^TX > 0: 11로 분류
  • wTX<0:w^TX < 0: 00으로 분류

결과적으로 ww의 최적값을 찾기 위해서는 손실 함수가 필요하다.

어떻게 찾을 것인가?

Bayes' Theorem

베이즈 정리
P(wX)=P(Xw)P(w)P(X)P(Xw)P(w)P(w|X) = \frac{P(X|w)P(w)}{P(X)} \propto P(X|w)P(w)

용어들

  • 사후확률(posterior): P(wX)P(w|X) \rightarrow 데이터가 주어졌을 때 가설에 대한 확률분포
  • 우도확률(likelihood): P(Xw)P(X|w) \rightarrow 가설을 안다고 할 때, 데이터 분포
  • 사전확률(prior): P(w)P(w) \rightarrow 데이터를 보기 전, 가설의 일반적인 확률

이를 이용하여

  1. MLE (Maximum Likelihood Estimation)
  2. MAP (Maximum A Posterior)

두 가지 방법론을 살펴볼 예정이다.

MLE (Maximum Likelihood Estimation)

P(Xw)P(X|w)

  • 가설을 안다고 가정한 경우, 주어진 데이터의 분포
  • PDF의 곱으로 표현한다. (PDF: 각 xx 값에 대해서 yy값이 나오는 함수)

Ex) 정규 분포에 따른 데이터에 대한 P(Xw)P(X|w)

  • PDF: 1σ2πe12(xμσ)2\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x-\mu}{\sigma})^2}
  • Likelihood: Πi1σ2πe12(xiμσ)2\Pi_i \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x_i-\mu}{\sigma})^2}
  • 이때 w: μ\mu (평균), σ\sigma (분산)

MLE

  • 현재 데이터 분포가 나올 확률이 가장 높은 parameter
  • w=argmaxwP(Xw)w^* = arg max_wP(X|w)
  • 데이터에 따라 ww 값이 민감하게 변화함 (단점!)

MAP (Maximum A Posterior)

데이터의 의존적인 MLEMLE의 단점을 해결할 수 있음

  • 주어진 데이터에 있어서 최대 확률을 가지고 있는 파라미터를 찾는 방식
  • 단 한번에 찾을 수 없다는 단점!!
  • w^=argmaxwP(wX)\hat{w} = argmax_w P(w|X)
  • P(wX)=P(Xw)×P(X)P(w|X) = P(X|w) \times P(X)
  • P(X)P(X)의 정확도가 관건임

MLE for Logistic Regression

  • pdf는 "베르누이 분포"를 이용하여 표현
  • P(Y=yi)=pyi(1p)1yiP(Y = y_i) = p^{y_i}(1-p)^{1-y_i}
  • L(P(Xw)P(X|w)) = Πipyi(1p)1yi\Pi_i p^{y_i}(1-p)^{1-y_i}

pp에 logistic function을 넣을 것
p=11+ewTX=σ(wTX)p = \frac{1}{1+e^{-w^TX}} = \sigma(w^TX)
L=Πiσ(wTX)yi(1σ(wTX))1yi\therefore L= \Pi_i \sigma(w^TX)^{y_i}(1-\sigma(w^TX))^{1-y_i}

이 때, 손실함수는 최소화 시키는 것이 목적이므로, log-log를 취할 것
lnL=Σiyiln(σ(wTXi))+Σi(1yi)ln(1σ(wTXi))-lnL = \Sigma_i y_iln(\sigma(w^TX_i)) + \Sigma_i(1-y_i)ln(1-\sigma(w^TX_i))
=(ΣiyiwTXiln(1+ewTXi))=-(\Sigma_iy_iw^TX_i - ln(1+e^{w^TX_i}))

lnLw=ΣiXi(yiP(yi=1Xi))\frac{\partial lnL}{\partial w} = \Sigma_iX_i(y_i-P(y_i=1|X_i))

ww는 다음 편미분 값을 사용하여 update를 진행하면 된다.
wt+1=wtlr×lnLww_{t+1} = w_t -lr \times \frac{\partial lnL}{\partial w}

0개의 댓글