Home Logistic Regression
Post
Cancel

Logistic Regression

Logistic Regression


Classification


  • Linear regression은 값을 예측하는 모델이다.
    • 추정 값이 <y^<-\infin < \hat y <\infin 의 범위를 가진다.
  • Logistic Regression은 이진 분류 모델이다.
    • 추정 값이 0 혹은 1이다.
    • 결과 값을 제한하기 위해 시그모이드 함수인 로지스틱 함수가 사용된다.

시그모이드 함수는 S자형 곡선을 갖는 수학 함수를 말한다.
로지스틱 회귀에서는 로지스틱 함수가 사용된다.

S(x)=11+ex S(x) = {1\over{1+e^{-x}}}

Logistic Regression


  • 로지스틱 회귀는 conditional Bernoulli distribution을 가정한다.
    E[ynxn]=P(yn=1xn)=σ(Wxn) E[y_n|\bold x_n] = P(y_n = 1 | \bold x_n) = \sigma(\bold W^\top \bold x_n)

σ(t)=11+et \sigma(t) = {1\over{1+e^{-t}}}

Logistic Function


  • Odds
    • 성공 확률이 실패 확률보다 몇 배 더 높은가
    • 승산 비

odds ratio=p(y=1x)1p(y=1x)\text{odds ratio} = {p(y=1|x)\over1-p(y=1|x)}

  • 로짓 변환 & 로짓 함수 ( Logit Function )

    • odds에 로그를 취함
    • 입력 값의 범위 [0,1][0,1] -> 출력 값의 범위 [,][-\infin,\infin]
      logit(p)=logp1p \text{logit}(p) = log{p\over1-p}
  • Logistic function

    • 로짓 함수의 역함수
      logitstic(p)=11+ep \text{logitstic}(p) = {1\over{1+e^{-p}}}

MLE


Maximum Likelihood Estimation


  • 로지스틱 회귀의 w\bold w값은 최대 우도법으로 구할 수 있다.
    p(yX,w)=n=1Np(yn=1xn)yn(1p(yn=1xn))1yn=n=1Nσ(wxn)yn(1σ(wxn))1yn p(\bold y|\bold X,\bold w) = \prod_{n=1}^Np(y_n=1|\bold x_n)^{y_n}(1-p(y_n=1|\bold x_n))^{1-y_n} \\= \prod_{n=1}^N\sigma(\bold w^\top\bold x_n)^{y_n}(1-\sigma(\bold w^\top\bold x_n))^{1-y_n}

  • 로그를 취해 log-likelihood를 만든다.
    L=n=1Nlog p(ynxn)=n=1N(ynlog y^+(1yn)log(1y^n))y^n=σ(wxn) \mathcal L = \sum_{n=1}^Nlog \ p(y_n|\bold x_n) \\ = \sum_{n=1}^N(y_nlog\ \hat y + (1-y_n)log(1-\hat y _n)) \\ \hat y_n = \sigma(\bold w^\top \bold x_n)

  • 위 식은 cross entropy error-\text{cross entropy error} 와 같다.

    • 즉 위 식을 최대화하는 것은 크로스 엔트로피 값을 줄이는 것과 같다 .
  • 이후 그레디언트 벡터가 0벡터가 되는 값을 찾는다.

    • 이때의 값이 log-likelihood 값이 최대화한다.
  • 하지만 그레디언트 벡터 수식이 ww에 대해 nonlinear function이다.

    • 즉 closed form이 아니다.
    • 해를 구하는 해석적인 방법이 없다.
    • numerical optimization을 통해 반복적으로 값을 구해야 함

Optimization


Newton’s method


  • Newton’s method는 두 번 미분가능한 함수에 대하여 second-order Taylor expansion으로 함수를 근사한 뒤, 근사 함수의 최솟값을 찾으며 해에 접근하는 방법이다.

from 모두를 위한 컨벡스 최적화

  • 다음과 같은 식을 통해 ww를 업데이트한다.
    w(new)=w(old)(2L)1L w^{\text(new)} = w^{\text(old)} - (\nabla^2 \mathcal L)^{-1}\nabla \mathcal L
  • 1차 그레디언트를 구해보자.
    Lw=n=1N[yny^ny^nxn+(1yn)y^n1y^n]=n=1N[yny^n(1y^n)y^n(1yn)y^n(1yn)1y^n]xn=n=1N[yn(1y^n)(1yn)y^n]xn=n=1N(yny^n)xn {\partial \mathcal L\over \partial \bold w } = \sum_{n=1}^N[y_n{\hat y_n'\over \hat y_n}\bold x_n + (1-y_n){-\hat y_n'\over 1- \hat y_n}] \\ =\sum_{n=1}^N[y_n{\hat y_n(1-\hat y_n)\over \hat y_n} - (1-y_n){\hat y_n(1-y_n)\over 1- \hat y_n}]\bold x_n \\ =\sum_{n=1}^N[y_n{(1-\hat y_n)} - (1-y_n)\hat y_n]\bold x_n \\ = \sum_{n=1}^N(y_n-\hat y_n)\bold x_n

로지스틱 함수를 미분하면 σ(1σ)\sigma(1-\sigma)

Lw=n=1N[ynσ(wxn)]xn {\partial \mathcal L\over \partial \bold w } = \sum_{n=1}^N[y_n-\sigma(\bold w^\top\bold x_n)]\bold x_n

  • 위와 같이 열벡터를 얻을 수 있다.

  • 한번 더 그레디언트를 취하면

    • hessian을 구한다 .

2L=w[L] \nabla^2 \mathcal L ={ \partial \over \partial \bold w}[\nabla \mathcal L] ^\top

=w[n=1N(yny^n)xn]=n=1Ny^n(1y^n)xnxn ={ \partial \over \partial \bold w}[\sum_{n=1}^N(y_n -\hat y_n)\bold x_n^\top ] \\= \sum_{n=1}^N -\hat y_n(1-\hat y_n)\bold x_n \bold x_n^\top

IRLS


  • 위 결과를 통해 newton’s update를 다음과 같이 나타낼 수 있다.
    Δw=(2L)1L \Delta\bold w = -(\nabla^2 \mathcal L)^{-1}\nabla \mathcal L

=[n=1Ny^n(1y^n)xnxn]1[n=1N[yny^n]xn] = \left [ \sum_{n=1}^N \hat y_n(1-\hat y_n)\bold x_n \bold x_n^\top \right ]^{-1} \left [ \sum_{n=1}^N[y_n-\hat y_n]\bold x_n \right ]

  • 점진적으로 ww가 감소하게 된다.

  • 위 식은 다음과 같이 나타낼 수 있다.
    w=w+(XSX)1XSb \bold w = \bold w + (\bold X \bold S\bold X^\top)^{-1}\bold X\bold Sb

S=[y^1(1y^n)000y^n(1y^n)] \bold S =\begin{bmatrix} \hat y_1(1-\hat y_n) & \cdots & 0 \\ \vdots & \ddots & 0 \\ 0 & \cdots & \hat y_n(1-\hat y_n) \end{bmatrix}

b=[y1y^1y^1(1y^1)yNy^Ny^N(1y^N)] \bold b =\begin{bmatrix} y_1 - \hat y_1 \over \hat y_1(1-\hat y_1) \\ \vdots \\ y_N - \hat y_N \over \hat y_N(1-\hat y_N) \end{bmatrix}

Softmax Regression


  • 이진 분류가 아닌 다중 분류를 해보자.
    p(yn=kxn)=softmax(θk) p(y_n = k | \bold x_n) = softmax(\theta_k)

=ewkxnj=1Kewjxn = {e^{\bold w_k^\top \bold x_n} \over \sum_{j=1}^K e^{\bold w_j^\top \bold x_n}}

  • 여러 개의 로지스틱 회귀를 만든 뒤에 softmax를 통해 높은 확률을 취한다.

Categorical distribution 관련해 알아보길

This post is licensed under CC BY 4.0 by the author.