Logistic Regression Classification Linear regression은 값을 예측하는 모델이다.추정 값이 − ∞ < y ^ < ∞ -\infin < \hat y <\infin − ∞ < y ^ < ∞ 의 범위를 가진다. Logistic Regression은 이진 분류 모델이다.추정 값이 0 혹은 1이다. 결과 값을 제한하기 위해 시그모이드 함수인 로지스틱 함수가 사용된다. 시그모이드 함수는 S자형 곡선을 갖는 수학 함수를 말한다. 로지스틱 회귀에서는 로지스틱 함수가 사용된다.
S ( x ) = 1 1 + e − x S(x) = {1\over{1+e^{-x}}} S ( x ) = 1 + e − x 1
Logistic Regression 로지스틱 회귀는 conditional Bernoulli distribution을 가정한다. E [ y n ∣ x n ] = P ( y n = 1 ∣ x n ) = σ ( W ⊤ x n ) E[y_n|\bold x_n] = P(y_n = 1 | \bold x_n) = \sigma(\bold W^\top \bold x_n) E [ y n ∣ x n ] = P ( y n = 1∣ x n ) = σ ( W ⊤ x n ) σ ( t ) = 1 1 + e − t \sigma(t) = {1\over{1+e^{-t}}} σ ( t ) = 1 + e − t 1
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)} odds ratio = 1 − p ( y = 1∣ x ) p ( y = 1∣ x )
MLE Maximum Likelihood Estimation 로지스틱 회귀의 w \bold w w 값은 최대 우도법으로 구할 수 있다. p ( y ∣ X , w ) = ∏ n = 1 N p ( y n = 1 ∣ x n ) y n ( 1 − p ( y n = 1 ∣ x n ) ) 1 − y n = ∏ n = 1 N σ ( w ⊤ x n ) y n ( 1 − σ ( w ⊤ x n ) ) 1 − y n 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} p ( y ∣ X , w ) = n = 1 ∏ N p ( y n = 1∣ x n ) y n ( 1 − p ( y n = 1∣ x n ) ) 1 − y n = n = 1 ∏ N σ ( w ⊤ x n ) y n ( 1 − σ ( w ⊤ x n ) ) 1 − y n
로그를 취해 log-likelihood를 만든다. L = ∑ n = 1 N l o g p ( y n ∣ x n ) = ∑ n = 1 N ( y n l o g y ^ + ( 1 − y n ) l o g ( 1 − y ^ n ) ) y ^ n = σ ( w ⊤ x n ) \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) L = n = 1 ∑ N l o g p ( y n ∣ x n ) = n = 1 ∑ N ( y n l o g y ^ + ( 1 − y n ) l o g ( 1 − y ^ n )) y ^ n = σ ( w ⊤ x n )
위 식은 − cross entropy error -\text{cross entropy error} − cross entropy error 와 같다.
즉 위 식을 최대화하는 것은 크로스 엔트로피 값을 줄이는 것과 같다 . 이후 그레디언트 벡터가 0벡터가 되는 값을 찾는다.
이때의 값이 log-likelihood 값이 최대화한다. 하지만 그레디언트 벡터 수식이 w w w 에 대해 nonlinear function이다.
즉 closed form이 아니다. 해를 구하는 해석적인 방법이 없다. numerical optimization을 통해 반복적으로 값을 구해야 함 Optimization Newton’s method Newton’s method는 두 번 미분가능한 함수에 대하여 second-order Taylor expansion으로 함수를 근사한 뒤, 근사 함수의 최솟값을 찾으며 해에 접근하는 방법이다. from 모두를 위한 컨벡스 최적화
다음과 같은 식을 통해 w w w 를 업데이트한다. w ( n e w ) = w ( o l d ) − ( ∇ 2 L ) − 1 ∇ L w^{\text(new)} = w^{\text(old)} - (\nabla^2 \mathcal L)^{-1}\nabla \mathcal L w ( n e w ) = w ( o l d ) − ( ∇ 2 L ) − 1 ∇ L 1차 그레디언트를 구해보자. ∂ L ∂ w = ∑ n = 1 N [ y n y ^ n ′ y ^ n x n + ( 1 − y n ) − y ^ n ′ 1 − y ^ n ] = ∑ n = 1 N [ y n y ^ n ( 1 − y ^ n ) y ^ n − ( 1 − y n ) y ^ n ( 1 − y n ) 1 − y ^ n ] x n = ∑ n = 1 N [ y n ( 1 − y ^ n ) − ( 1 − y n ) y ^ n ] x n = ∑ n = 1 N ( y n − y ^ n ) x n {\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 ∂ w ∂ L = n = 1 ∑ N [ y n y ^ n y ^ n ′ x n + ( 1 − y n ) 1 − y ^ n − y ^ n ′ ] = n = 1 ∑ N [ y n y ^ n y ^ n ( 1 − y ^ n ) − ( 1 − y n ) 1 − y ^ n y ^ n ( 1 − y n ) ] x n = n = 1 ∑ N [ y n ( 1 − y ^ n ) − ( 1 − y n ) y ^ n ] x n = n = 1 ∑ N ( y n − y ^ n ) x n 로지스틱 함수를 미분하면 σ ( 1 − σ ) \sigma(1-\sigma) σ ( 1 − σ )
∂ L ∂ w = ∑ n = 1 N [ y n − σ ( w ⊤ x n ) ] x n {\partial \mathcal L\over \partial \bold w } = \sum_{n=1}^N[y_n-\sigma(\bold w^\top\bold x_n)]\bold x_n ∂ w ∂ L = n = 1 ∑ N [ y n − σ ( w ⊤ x n )] x n
위와 같이 열벡터를 얻을 수 있다.
한번 더 그레디언트를 취하면
∇ 2 L = ∂ ∂ w [ ∇ L ] ⊤ \nabla^2 \mathcal L ={ \partial \over \partial \bold w}[\nabla \mathcal L] ^\top ∇ 2 L = ∂ w ∂ [ ∇ L ] ⊤
= ∂ ∂ w [ ∑ n = 1 N ( y n − y ^ n ) x n ⊤ ] = ∑ n = 1 N − y ^ n ( 1 − y ^ n ) x n x n ⊤ ={ \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 = ∂ w ∂ [ n = 1 ∑ N ( y n − y ^ n ) x n ⊤ ] = n = 1 ∑ N − y ^ n ( 1 − y ^ n ) x n x n ⊤
IRLS 위 결과를 통해 newton’s update를 다음과 같이 나타낼 수 있다. Δ w = − ( ∇ 2 L ) − 1 ∇ L \Delta\bold w = -(\nabla^2 \mathcal L)^{-1}\nabla \mathcal L Δ w = − ( ∇ 2 L ) − 1 ∇ L = [ ∑ n = 1 N y ^ n ( 1 − y ^ n ) x n x n ⊤ ] − 1 [ ∑ n = 1 N [ y n − y ^ n ] x n ] = \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 ] = [ n = 1 ∑ N y ^ n ( 1 − y ^ n ) x n x n ⊤ ] − 1 [ n = 1 ∑ N [ y n − y ^ n ] x n ]
S = [ y ^ 1 ( 1 − y ^ n ) ⋯ 0 ⋮ ⋱ 0 0 ⋯ 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} S = ⎣ ⎡ y ^ 1 ( 1 − y ^ n ) ⋮ 0 ⋯ ⋱ ⋯ 0 0 y ^ n ( 1 − y ^ n ) ⎦ ⎤
b = [ y 1 − y ^ 1 y ^ 1 ( 1 − y ^ 1 ) ⋮ y N − y ^ N y ^ 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} b = ⎣ ⎡ y ^ 1 ( 1 − y ^ 1 ) y 1 − y ^ 1 ⋮ y ^ N ( 1 − y ^ N ) y N − y ^ N ⎦ ⎤
Softmax Regression 이진 분류가 아닌 다중 분류를 해보자. p ( y n = k ∣ x n ) = s o f t m a x ( θ k ) p(y_n = k | \bold x_n) = softmax(\theta_k) p ( y n = k ∣ x n ) = so f t ma x ( θ k ) = e w k ⊤ x n ∑ j = 1 K e w j ⊤ x n = {e^{\bold w_k^\top \bold x_n} \over \sum_{j=1}^K e^{\bold w_j^\top \bold x_n}} = ∑ j = 1 K e w j ⊤ x n e w k ⊤ x n
여러 개의 로지스틱 회귀를 만든 뒤에 softmax를 통해 높은 확률을 취한다. Categorical distribution 관련해 알아보길