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+e−x S(x) = {1\over{1+e^{-x}}}

Logistic Regression


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

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

Logistic Function


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

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

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

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

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

MLE


Maximum Likelihood Estimation


  • 로지스틱 회귀의 w\bold w값은 최대 우도법으로 구할 수 있다.
    p(y∣X,w)=∏n=1Np(yn=1∣xn)yn(1−p(yn=1∣xn))1−yn=∏n=1Nσ(w⊤xn)yn(1−σ(w⊤xn))1−yn 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(yn∣xn)=∑n=1N(ynlog y^+(1−yn)log(1−y^n))y^n=σ(w⊤xn) \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)−1∇L w^{\text(new)} = w^{\text(old)} - (\nabla^2 \mathcal L)^{-1}\nabla \mathcal L
  • 1차 그레디언트를 구해보자.
    ∂L∂w=∑n=1N[yny^n′y^nxn+(1−yn)−y^n′1−y^n]=∑n=1N[yny^n(1−y^n)y^n−(1−yn)y^n(1−yn)1−y^n]xn=∑n=1N[yn(1−y^n)−(1−yn)y^n]xn=∑n=1N(yn−y^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)

∂L∂w=∑n=1N[yn−σ(w⊤xn)]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(yn−y^n)xn⊤]=∑n=1N−y^n(1−y^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)−1∇L \Delta\bold w = -(\nabla^2 \mathcal L)^{-1}\nabla \mathcal L

=[∑n=1Ny^n(1−y^n)xnxn⊤]−1[∑n=1N[yn−y^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(1−y^n)⋯0⋮⋱00⋯y^n(1−y^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=[y1−y^1y^1(1−y^1)⋮yN−y^Ny^N(1−y^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=k∣xn)=softmax(θk) p(y_n = k | \bold x_n) = softmax(\theta_k)

=ewk⊤xn∑j=1Kewj⊤xn = {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.