[ML] 6편 - Linear tasks : Logistic Regression

재로미·2021년 2월 6일
0

Machine Learning

목록 보기
6/7
post-thumbnail

먼저 본포스트는 보물찾기님의 블로그와 데이터 사이언스 스쿨을 많이 참고하여 제 언어로 정리하였음을 밝힙니다. 아래 reference를 확인하여 함께 공부하면 도움이 되겠습니다.

Classification and Regression

이번 포스트에서는 분류와 회귀를 아우른다는 점에서 공통점이 있는 Logistic Regression과 Gradient decent algorithm에 관해 공부해보고자 한다. 시작하기에 앞서, 아직 분류와 회귀에 대해 잘 모르는 분들이라면 위에 북마크 처럼 되어 있는 Machine Learning 카테고리 시리즈에서 분류와 회귀 편을 찾아 읽거나 각각 여기여기를 클릭하여 보고 오시는 것을 추천드린다.

회귀에 대해 공부할 때 일반적인 선형 회귀(Ordinary Linear Regression)은 설명변수 XX와 연속형 결과값을 가지는 종속변수 y\bold y 간의 선형 관계가 성립함을 가정하고 이를 가장 잘 표현할 수 있는 회귀 계수 β\beta를 데이터로 부터 최소제곱법 등의 방법을 이용하여 추정하는 모델이라고 하였다. 그 근간이 되는 선형방정식은 다음과 같다.

y^=i=1Nwixi+by=Xβ^+ϵ\hat{y} = \sum_{i=1}^{N}w_ix_i + b \Rightarrow{\bold y = X\hat{\beta} + \epsilon}

이를 그래프로 나타내면 회귀의 경우 다음과 같이 나타난다.
linreg_plot

IMG source from medium blog
이는 앞서 말했듯 종속 변수 y가 연속형 데이터 값을 가질 때 그리는 그래프인데, 만약 종속 변수가 아래와 같이 0과 1, yes/no, True/False라면 어떻게 되고 이는 어떻게 설명할 수 있을까?
linreg vs logregIMG source from jinseob2kim.github
왼쪽 그림이 선형방정식을 이용해서 linear regression 으로 접근했을 때인데 잘 보면 직선 하나로 데이터의 분포를 명확하게 설명할 수가 없다. 또한 영어 설명에 나와있듯 예측변수 Y^\hat Y가 정답레이블인 0과1을 초과해버리기 때문에 올바르게 회귀된 것이 아님을 알 수 있다. 이러한 문제를 개선하고자 한 것이 Logistic Regression이며, 그 형태는 오른쪽 그림과 같다.


Logistic Regression

일단 회귀라는 말이 들어가서 회귀인 것 같은데... 라고 생각이 들 수 있지만, 명칭과 달리 회귀 뿐만 아니라 분류에서도 사용되고, 오히려 입력데이터를 통해 특정 분류로 결과가 나오기 때문에 분류에 더 가까운 방식이다. 먼저 가장 쉽게 접근하기 위해 위키피디아에 정의된 logistic regression의 개념을 살펴보자.

로지스틱 회귀는 1958년 미국의 통계학자인 David Cox가 제시한 확률 모델이고, 독립 변수의 일차결합(Linear combination)을 이용하여 사건의 발생 가능성을 예측하는 통계 기법이라고 정의 된다. 일반 회귀 분석과 동일하게 독립변수 X와 종속 변수 Y의 관계를 구체적인 함수로 나타내어 예측 모델에 사용하는데, 종속 변수가 연속형이 아닌 범주형(명목형) 데이터로 그 범위가 0과 1사이의 확률값으로 나온다는 점에서 회귀와 분류의 두가지 면모를 동시에 지닌다. 의료, 통신, 데이터마이닝과 같은 다양한 분야에서 분류 및 예측을 위한 모델로 사용된다.

즉 정리하자면, logistic regression은 종속변수(결과변수)가 범주형인 데이터 예측에 적합하게 제안된 모델이며 또한 linear regression이 확률을 예측할 수 없는데에 비해 이 logistic regression을 사용하면 0~1 (앞으로는 [0,1][0,1]로도 표현하겠다)사이의 값을 출력하면서 특정 변수에 대한 확률을 예측할 수 있게 된다. 다만, y의 결과 범위가 [0,1][0,1]인 것 외에도 일반적인 선형회귀와는 달리 독립변수와 종속 변수간의 조건부 확률 P(yx)P(y|x)의 분포가 정규분포 대신 이항 분포를 따른 다는 특징도 있다.

1. odds(승산)의 개념

먼저 로지스틱 회귀를 제대로 이해하기 위해서는 다소 생소한 개념인 'odds', 우리말로는 승산이라는 개념에 대해 알아야 한다.

승산이란 임의의 사건 A가 발생하지 않을 확률 대비 일어날 확률의 비율을 일컫는다. 좀 더 쉽게 말하자면, 실패와 성공이라는 상호배반적(mutual exclusive) 사건이 있을 때 승산은 성공할확률실패할확률=성공횟수실패횟수{성공할 확률 \over 실패할 확률} = {성공횟수 \over 실패횟수}로 정의 되며,이를 좀 더 수학적으로 나타내면 다음과 같다.

odds=p(y=1x)1p(y=1x)=P(A)P(Ac)=성공실패odds = {p(y = 1|x) \over 1-p(y=1|x)} = {P(A) \over P(A^c)} = {성공 \over 실패}

성공횟수가 많을 수록, 즉 위 수식에서 p(y=1x)p(y = 1|x)P(A)P(A)의 값이 1에 가까울 수록 승산은 높아지며, 0에 가까울 수록 승산은 0에 수렴할 것이다. 그리하여 승산이 갖는 특징은 그래프로 다음과 같이 나타난다.

확률(Probability)과 헷갈려 할 수 있는데, 확률은 전체 시도 중에 성공한 개수의 비율을 나타낸 것으로 성공과 실패만을 가지고 정의한 승산과는 차이가 있다. 대표적으로 equal odds 라고 하면 이는 성공과 실패의 비율이 1:1을 가져 결과적으로 1이 되지만, equal probabilities는 성공성공+실패성공 \over 성공+실패가 되어 0.5가된다. 또 odds 값의 범위는 00 ~ ++ \infin가 되는데 확률은 [0,1][0,1]이라는 차이도 있다.

2. Binary Logistic Regression

2.1 Logit and Sigmoid function

먼저 주로 사용되는 이진 로지스틱 회귀에 대해 살펴보자.
결과변수 Y가 범주형이면 기존 회귀 모형으로는 풀 수 없으므로 회귀식의 장점인 일차결합형태(linear combination)를 살리면서 YY가 범주가 아닌 1의 범주가 될 확률로 두고 아래와 같이 식을 세워 접근해보고 싶다.

P(Y=1X=x)=β0+β1x1+β2x2+...+βpxp=βTx\begin{aligned} P(Y=1|X=\overrightarrow { x } )=& { \beta }_{ 0 }+{ \beta }_{ 1 }{ x }_{ 1 }+{ \beta }_{ 2 }{ x }_{ 2 }+...+{ \beta }_{ p }{ x }_{ p }\\=& { \overrightarrow { \beta } }^{ T }\overrightarrow { x } \end{aligned}

이 때 좌변은 확률이므로 범위는 [0,1][0,1]인데 비해 우변은 ,+-\infin , +\infin 이므로 범위가 서로 맞지 않아 이렇게 풀수 없다.

P(Y=1X=x)1P(Y=1X=x)=p(1p)=βTx\frac { P(Y=1|X=\overrightarrow { x } ) }{ 1-P(Y=1|X=\overrightarrow { x } ) } = {p \over (1-p)}={ \overrightarrow { \beta } }^{ T }\overrightarrow { x }

이번에는 좌변을 승산으로 바꾸어 비슷한 무한대의 범위를 갖게 할 수 있으나 여전히 완벽히 맞지 않기 때문에, 좌변에 log를 씌우면 재밌는 현상이 나타난다.

log(P(Y=1X=x)1P(Y=1X=x))=logp(1p)=βTx\log { (\frac { P(Y=1|X=\overrightarrow { x } ) }{ 1-P(Y=1|X=\overrightarrow { x } ) } ) } = \log{{p \over (1-p)}}={ \overrightarrow { \beta } }^{ T }\overrightarrow { x }

logit graph

말려 올라갔다가 내려 오는 모양과 범위가 딱 우리가 맞추고 싶어하던 ,+-\infin , +\infin 양상을 띄는 것을 알 수 있다. 이렇게 로그를 씌운 승산을 logit (function) 이라고 부르며, 이를 확률 pp에 대해 풀면 다음과 같이 정리할 수 있다.
logit to sigmoid
위 변환을 그래프로 나타내면 아래와 같이 되고, 역함수를 취했을 때 도출되는 함수 형태를 Logisitic function 또는 Sigmoid function이라고 한다. 참고로 로그 변환은 통계에서 다음 장점들로 인해 자주 사용한다.
1. 함수의 증감 형태, convex/concave(볼록/오목) 형태 유지
2. 극점의 위치 유지
3. 곱셈과 나눗셈으로 표현된 식을 덧셈과 뺄셈 형태로 풀어줌

logit transform graph

IMG source from dgkim5360.tistory
시그모이드 함수는 x값으로 어떤 값이든 받지만, 출력결과는 항상 0에서 1사이의 값을 반환하며 수학적으로 확률밀도함수(Probability density function) 요건을 충족한다고 한다. 수식으로 다음과 같이 나타낸다.

Pr(Yi=yiXi)=piyi(1pi)1yi=(11+eβTXi)yi(111+eβTXi)1yilogistic(z)=σ(z)=11+ez=11+exp(z)\operatorname {Pr} (Y_{i}=y_{i}\mid \mathbf {X} _{i})={p_{i}}^{y_{i}}(1-p_{i})^{1-y_{i}}=\left({\frac {1}{1+e^{-{\boldsymbol {\beta^T }}\cdot \mathbf {X} _{i}}}}\right)^{y_{i}}\left(1-{\frac {1}{1+e^{-{\boldsymbol {\beta^T }}\cdot \mathbf {X} _{i}}}}\right)^{1-y_{i}} \\ logistic(z) = \sigma(z)=\frac { 1 }{ 1+{ e }^{ -z } } = {1 \over 1+exp(-z)}

결과적으로 logit과 sigmoid는 역함수 관계를 지니며,
logit(y)=z,  Sigmoid(z)=ylogit(y) = z,\ \ Sigmoid(z) = y처럼 변환 된다는 것을 알 수 있다. 이 로지스틱 함수를 쓰기 때문에 로지스틱 회귀라고 명명 된 것은 아닐까 함께 짐작해본다.

2.2 Decision Boundary(결정경계)와 판별함수

시그모이드 함수를 쓸 이진 로지스틱 회귀의 경우 입력 zz값의 범위에 따라 다음과 같은 관계를 갖는다.

  • z=0z = 0 일 때 μ=0.5\mu=0.5
  • z>0z > 0 일 때 μ>0.5y^=1\mu >0.5 \rightarrow \hat{y} = 1
  • z<0z < 0 일 때 μ<0.5y^=0\mu <0.5 \rightarrow \hat{y} = 0

따라서 zz는 분류 모형의 판별함수(결정함수) 역할을 하고, logistic regression은 판별함수로 linear function을 채택하므로

z=βTxz = \beta^Tx

가 성립한다. 따라서 βTx\beta^Tx가 로지스틱 회귀모델의 결정경계면(decision hyperplane)이 되어 범주를 0과 1로 분류하게 된다. 이제 위의 로지스틱함수와 엮어서 이해해보자. 이진 분류에서 회귀계수 β\betaβ=β0β1\beta = \beta_0 -\beta_1처럼 임의의 두 벡터 β0\beta_0, β1\beta_1의 차로 표현이 된다고 할 때, 범주가 1이 될 확률은

σ1(z)=11+exp(z)=11+exp(βTx)=exp(β1Tx)exp(β1Tx)+exp(βTxβ1Tx)=exp(β1Tx)exp(β1Tx)+exp{(β0Tβ1T+β1T)x}=exp(β1Tx)exp(β1Tx)+exp(β0Tx)\begin{aligned} \sigma_1(z) &= {1 \over 1+exp(-z)} = {1 \over 1+exp(-\beta^Tx)} \\& =\frac{ exp(-{ \beta }_{ 1 }^{ T }x)}{ exp(-{ \beta }_{ 1 }^{ T }x)+exp({ -\beta }^{ T }x-{ \beta }_{ 1 }^{ T }x) } \\ &=\frac { exp(-{ \beta }_{ 1 }^{ T }x) }{ exp(-{ \beta }_{ 1 }^{ T }x)+exp\{ -{ (\beta }_{ 0 }^{ T }-{ \beta }_{ 1 }^{ T }+{ \beta }_{ 1 }^{ T })x\} } \\ &=\frac { exp(-{ \beta }_{ 1 }^{ T }x) }{ exp(-{ \beta }_{ 1 }^{ T }x)+exp(-{ \beta }_{ 0 }^{ T }x) } \end{aligned}

확률의 합은 1이 되어야 하므로, 범주가 0이 될 확률은 1σ1(z)1-\sigma_1(z)와 같다. 따라서 정리하면

1σ1(z)=exp(β0Tx)exp(β1Tx)+exp(β0Tx)1-\sigma_1(z) = \frac { exp(-{ \beta }_{ 0 }^{ T }x) }{ exp(-{ \beta }_{ 1 }^{ T }x)+exp(-{ \beta }_{ 0 }^{ T }x) }

이진분류에서는 로지스틱회귀의 결과값이 회귀처럼 MSE같은 값이 아닌 위와 같은 분류확률이 된다.

2.3 최대가능도추정법(MLE)을 이용한 모수 β\beta 추정

2.1에서 기술한 베르누이 분포의 확률밀도 함수에 시그모이드함수를 대입한 조건부 확률

Pr(yixi)=piyi(1pi)1yi=(11+eβTxi)yi(111+eβTxi)1yi\operatorname {Pr}(y_{i}\mid {x} _{i})={p_{i}}^{y_{i}}(1-p_{i})^{1-y_{i}}=\left({\frac {1}{1+e^{-{\boldsymbol {\beta^T }}\cdot {x} _{i}}}}\right)^{y_{i}}\left(1-{\frac {1}{1+e^{-{\boldsymbol {\beta^T}}\cdot {x} _{i}}}}\right)^{1-y_{i}}

로 데이터 표본 쌍 {(xi,yi),,(xN,yN)}\{(x_i,y_i), \cdots, (x_N, y_N)\}이 주어질 때 로그가능도를 이용하여 모수(parameter) β\beta를 다음과 같이 구할 수 있다.
μ(x;β)=σ(z)=11+exp(βTx)\mu(x;\beta) = \sigma(z) = {1 \over 1+exp(-\beta^Tx)}라고 놓고 베르누이 확률분포의 정의를 적용하면,

LogLik=l(β)=logi=1Nμ(xi;β)yi(1μ(xi;β))1yi=i=1N(yilogμ(xi;β)+(1yi)log(1μ(xi;β)))=i=1N(yilog(11+exp(βTxi))+(1yi)log(exp(βTxi)1+exp(βTxi)))\begin{aligned} {LogLik} = l(\beta) =& \log \prod_{i=1}^N \mu(x_i;\beta)^{y_i} (1-\mu(x_i;\beta))^{1-y_i} \\ =& \sum_{i=1}^N \left( y_i \log\mu(x_i;\beta) + (1-y_i)\log(1-\mu(x_i;\beta)) \right) \\ =& \sum_{i=1}^N \left( y_i \log\left(\dfrac{1}{1 + \exp{(-\beta^Tx_i)}}\right) + (1-y_i)\log\left(\dfrac{\exp{(-\beta^Tx_i)}}{1 + \exp{(-\beta^Tx_i)}}\right) \right) \\ \end{aligned}

가 되고, 이 로그가능도를 최대로 하려면 회귀계수 β\beta로 미분을 한 값, 즉 기울기벡터가 0 이 되어야 하는 데 이는 chain rule을 통해

l(β)β=i=1Nl(β)μ(xi;β)μ(xi;β)β\dfrac{\partial{l(\beta)}}{\partial \beta} = \sum_{i=1}^N \dfrac{\partial{l(\beta)}}{\partial \mu(x_i;\beta)} \dfrac{\partial\mu(x_i;\beta)}{\partial \beta}

와 같이 구성된다.
로그 가능도를 μ\mu로 편미분한 왼쪽 값은,

l(β)μ(xi;β)=yi1μ(xi;β)(1yi)11μ(xi;β)\dfrac{\partial{l(\beta)}}{\partial \mu(x_i;\beta)} = y_i \dfrac{1}{\mu(x_i;\beta)} - (1-y_i)\dfrac{1}{1-\mu(x_i;\beta)}

시그모이드 함수 μ\muβ\beta로 미분한 오른쪽 값,

μ(xi;β)β=β11+exp(βTxi) =exp(βTxi)(1+exp(βTxi))2xi=μ(xi;β)(1μ(xi;β))xi\begin{aligned} \dfrac{\partial \mu(x_i;\beta)}{\partial \beta} &= \dfrac{\partial}{\partial \beta} \dfrac{1}{1 + \exp{(-\beta^T x_i)}} \ = \dfrac{\exp{(-\beta^T x_i)}}{(1 + \exp{(-\beta^T x_i)})^2} x_i \\& = \mu(x_i;\beta)(1-\mu(x_i;\beta)) x_i\end{aligned}

이 되므로 최대가능도는 다음 기울기 벡터식을 최소화하는 값이 된다.

l(β)β=i=1N(yi1μ(xi;β)(1yi)11μ(xi;β))μ(xi;β)(1μ(xi;β))xi=i=1N(yi(1μ(xi;β))(1yi)μ(xi;β))xi=i=1N(yiμ(xi;β))xi\begin{aligned} \dfrac{\partial {l(\beta)}}{\partial \beta} =& \sum_{i=1}^N \left( y_i \dfrac{1}{\mu(x_i;\beta)} - (1-y_i)\dfrac{1}{1-\mu(x_i;\beta)} \right) \mu(x_i;\beta)(1-\mu(x_i;\beta)) x_i \\ =& \sum_{i=1}^N \big( y_i (1-\mu(x_i;\beta)) - (1-y_i)\mu(x_i;\beta) \big) x_i \\ =& \sum_{i=1}^N \big( y_i - \mu(x_i;\beta) \big) x_i \\ \end{aligned}

그러나 이는 시그모이드 함수 μ\mu가 들어간 비선형 함수이므로 선형 모형처럼 쉽게 구할 수는 없고, 수치적 최적화 방법(numerical optimization)의 일종인 경사하강법(grediant decent algorithm)을 통해 반복적으로 최적의 파라미터 β\beta를 찾아가야 한다.

어떤 목적함수를 J(β)J(\beta)라고 할 때, 로그가능도 함수 l(β)l(\beta)를 최대화하는 것은 이 목적함수에 마이너스를 취해 이를 최소화 하는 것으로 여길 수 있다.

J(β)=l(β)J(\beta) = -l(\beta)

기울기벡터를 gk\bold g_k라고 하면 최대 경사도(Steepest Gradient Descent) 알고리즘이 적용했을 때 목적함수를 β\beta로 미분한 gk=ddβ(l(β))\bold g_k = \dfrac{d}{d\beta}(-l(\beta))가 되고 스텝사이즈 ηk\eta_k만큼 이동하는 다음 수식을 갖게 되며 결과적으로 β\beta를 추정할 수 있게 된다.

βk+1=βkηkgk=βk+ηki=1N(yiμ(xi;βk))xi\begin{aligned} \beta_{k+1} =& \beta_{k} - \eta_k g_k \\ =& \beta_{k} + \eta_k \sum_{i=1}^N \big( y_i - \mu(x_i; \beta_k) \big) x_i\\ \end{aligned}

3. Multinormial Logistic Regression and loss function

지금까지는 이진 분류, 즉 이항 로지스틱 회귀에 국한하여 풀어나갔다면, 이번에는 클래스가 여러개인 다항로지스틱 회귀로 확장해보자. 예를 범주가 2개가 아닌 3개라면 β=β0β1β2\beta = \beta_0 -\beta_1 - \beta_2로 둘 수 있고, 각 클래스에 대한 조건부확률은 아래와 같이 정리가 가능하다.

P(Y=1X=x)=eβ1Tx1+eβ1Tx+eβ2TxP(Y=2X=x)=eβ2Tx1+eβ1Tx+eβ2TxP(Y=3X=x)=11+eβ1Tx+eβ2Tx\begin{aligned} P(Y=1|X=\overrightarrow { x } )=\frac { {e}^{ { \overrightarrow { { \beta }_{ 1 } } }^{ T }\overrightarrow { x } } }{ 1+{ e }^{ { \overrightarrow { { \beta }_{ 1 } } }^{ T }\overrightarrow { x } }+{ e }^{ { \overrightarrow { { \beta }_{ 2 } } }^{ T }\overrightarrow { x } } } \\ P(Y=2|X=\overrightarrow { x } )=\frac { { e }^{ { { \overrightarrow { { { \beta } }_{ 2 } } } }^{ T }\overrightarrow { x } } }{ 1+{ e }^{ { \overrightarrow { { \beta }_{ 1 } } }^{ T }\overrightarrow { x } }+{ e }^{ { \overrightarrow { { \beta }_{ 2 } } }^{ T }\overrightarrow { x } } } \\ P(Y=3|X=\overrightarrow { x } )=\frac { 1 }{ 1+{ e }^{ { \overrightarrow { { \beta }_{ 1 } } }^{ T }\overrightarrow { x } }+{ e }^{ { \overrightarrow { { \beta }_{ 2 } } }^{ T }\overrightarrow { x }}} \end{aligned}
P(Y=kX=x)=eβkTx1+i=1K1eβiTx(k=K1)P(Y=KX=x)=11+i=1K1eβiTx\cdots \\ \begin{aligned} P(Y=k|X=\overrightarrow { x } )=&\frac { { e }^{ { \overrightarrow { { { \beta } }_{ k } } }^{ T }\overrightarrow { x } } }{ 1+\sum _{ i=1 }^{ K-1 }{ { e }^{ { \overrightarrow { { { \beta } }_{ i } } }^{ T }\overrightarrow { x } } } } \quad (k=K-1)\\ P(Y=K|X=\overrightarrow { x } )=&\frac { 1 }{ 1+\sum _{ i=1 }^{ K-1 }{ { e }^{ { \overrightarrow { { { \beta } }_{ i } } }^{ T }\overrightarrow { x } } } } \end{aligned}

k개 클래스가 있더라도 확률은 위와 같이 정리 되며, k번째 범주에 해당하는 회귀계수 βk\overrightarrow \beta_k벡터를 구하고 싶다면 이 확률들에 로그를 씌운 로짓(logit, log odds)을 이용한다. 0을 제외한 범위에서 확률 pp는 odds(오즈;승산) p1pp \over {1-p}보다 작다. 또 multinormial logistic regression model에서 오즈의 분모는 모두 똑같이 KK번째 범주에 속할 확률이므로, 다음 KK개 식 모두에 같은 어떤 값을 빼준다.

logP(Y=1X=x)=β1TxlogZlogP(Y=2X=x)=β2TxlogZ...logP(Y=KX=x)=βKTxlogZ\log { P(Y=1|X=\overrightarrow { x } ) } ={ \overrightarrow { { { \beta } }_{ 1 } } }^{ T }\overrightarrow { x } -\log { Z } \\ \log { P(Y=2|X=\overrightarrow { x } ) } ={ \overrightarrow { { { \beta } }_{ 2 } } }^{ T }\overrightarrow { x } -\log { Z } \\ ...\\ \log { P(Y=K|X=\overrightarrow { x } ) } ={ \overrightarrow { { { \beta } }_{ K } } }^{ T }\overrightarrow { x } -\log { Z }

로그의 성질을 활용해서 c번 째 범주에 속할 확률로 이항정리해서 정리하면 다음과 같은 확률을 도출할 수 있게 된다.

logP(Y=c)+logZ=βcTxlog{P(Y=c)×Z}=βcTxP(Y=c)×Z=eβcTxP(Y=c)=1ZeβcTx\log { P(Y=c) } +\log { Z } ={ \overrightarrow { { { \beta } }_{ c } } }^{ T }\overrightarrow { x } \\ \log { \left\{ P(Y=c)\times Z \right\} } ={ \overrightarrow { { { \beta } }_{ c } } }^{ T }\overrightarrow { x } \\ P(Y=c)\times Z={ e }^{ { \overrightarrow { { { \beta } }_{ c} } }^{ T }\overrightarrow { x } }\\ P(Y=c)=\frac { 1 }{ Z } { e }^{ { \overrightarrow { { { \beta } }_{ c } } }^{ T }\overrightarrow { x } }

이제 확률의 합은 1이 된다는 특성을 이용해 ZZ를 유도하고 이를 대입하면,

1=k=1KP(Y=k)=k=1K1ZeβkTx=1Zk=1KeβkTxZ=k=1KeβkTxP(Y=c)=1ZeβcTx=eβcTxk=1KeβkTx\begin{aligned} 1=&\sum _{ k=1 }^{ K }{ P(Y=k) } \\ =&\sum _{ k=1 }^{ K }{ \frac { 1 }{ Z } { e }^{ { \overrightarrow { { { \beta } }_{ k } } }^{ T }\overrightarrow { x } } } \\ =&\frac { 1 }{ Z } \sum _{ k=1 }^{ K }{ { e }^{ { \overrightarrow { { { \beta } }_{ k } } }^{ T }\overrightarrow { x } } } \\ \\ \therefore &Z=\sum _{ k=1 }^{ K }{ { e }^{ { \overrightarrow { { { \beta } }_{ k } } }^{ T }\overrightarrow { x } } } &\\& P(Y=c)=\frac { 1 }{ Z } { e }^{ { \overrightarrow { { { \beta } }_{ c } } }^{ T }\overrightarrow { x } }=\frac { { e }^{ { \overrightarrow { { { \beta } }_{ c } } }^{ T }\overrightarrow { x } } }{ \sum _{ k=1 }^{ K }{ { e }^{ { \overrightarrow { { { \beta } }_{ k } } }^{ T }\overrightarrow { x } } } }\end{aligned}

이렇게 나온 확률은 softmax 함수의 형태를 띄며, 궁극적으로 특정 범주에 속할 확률은 softmax 함수를 거친다는 것을 알 수 있게 된다.

더 나아가 로지스틱 회귀의 손실함수는 분류와 연관이 있는 Cross entropy로 처리되며, softmax activation과 더해져서 최종 error ECEE_{CE}는 아래와 같다.
로지스틱손실함수

본 포스트를 마치며...

얼른 쓰고 업로드를 하려고 했던게 작성 기간이 꽤 길어져 버렸다. 자료조사는 일찍이 끝냈는데, 며칠동안 개인 프로젝트에 매진하는 바람에 다소 계획이 좀 틀어진 것 같다.

또 경사하강법도 같이 다루려고 했는데 분량이 길어지기도 하고 무엇보다 너무 오래 임시저장에 머물렀던 탓인지 글자 하나 하나 써내려가는데 버벅거림이 장난아니어서 우선 멈추고 다른 포스트로 이어야겠다.

뭔가 부족한 느낌은 아직 내가 제대로 소화하지 못해서리라. 좀 더 공부해서 다시 수정하고 온전히 내것으로 만들어야 겠다.

References

profile
정확하고 체계적인 지식을 가진 개발자 뿐만 아니라, 가진 지식을 사람들과 함께 나눌 수 있는 계발자가 되고 싶습니다

0개의 댓글