ML [4] Logistic Regression(1)

eric9687·2022년 7월 14일
0

본 포스팅은 카이스트 산업및시스템공학과 문일철 교수님의 Introduction to Artificial Intelligence/Machine Learning(https://aai.kaist.ac.kr/xe2/courses) 강의에 학습 정리입니다

Linear Function vs. Non-Linear Function

  • linear function의 문제
    • 확률 공리와 충돌
    • 예시(데이터)에 느리게 반응
  • logistic function이 더 나은 이유
    • 확률 공리 유지
    • Decision boundary에 빠른 반응

Sigmoid Function

  • Sigmoid function의 특징
    • Bounded
    • Differential (부드럽게 되어있어서)
    • Real Function
    • Defined for all real inputs
    • With positive derivative (증가하는 모양)
  • Sigmoid function의 종류
    • tanh(x)tanh(x)
    • 2πarctan(π2x)\frac{2}{\pi}arctan(\frac{\pi}{2}x)
    • ......

Logistic Function

  • f(x)=11+exf(x) = \frac{1}{1+e^{-x}}

  • sigmoid function의 특징을 가지고 있다

  • derivative를 계산하기 쉽다 => optimization하기 좋다

  • logit function: logistic function의 역함수 f(x)=log(x1x)f(x)=log(\frac{x}{1-x})

Logistic Function Fitting

f(x)=log(x1x)f(x)=log(\frac{x}{1-x})

\downarrow logit function의 X domain은 likelihood P값에 대해서 모델링
\downarrow 한 것이라고, y domain은 input값(x)으로 모델링한다고 할 수 있다.

x=log(p1p)x=log(\frac{p}{1-p})

\downarrow fitting에 있어서 압축을 위해서 a를
\downarrow bias정보를 위해서 b를 추가

ax+b=log(p1p)ax+b=log(\frac{p}{1-p})

\downarrow Linear regression의 trick을 이용해서
\downarrow f^=Xθ,θ=(XTX)1XTY\hat{f}=X\theta,\theta=(X^TX)^{-1}X^TY

Xθ=log(p1p)=log(P(YX)1P(YX))X\theta = log(\frac{p}{1-p}) = log(\frac{P(Y|X)}{1-P(Y|X)})

Logistic Regression

  • binomial 또는 multinomial 결과를 예측하는 확률적인 classifier
  • 베루누이 실험이 주어졌을때,
    • P(yx)=μ(x)y(1μ(x))1yP(y|x)=\mu(x)^y(1-\mu(x))^{1-y}
    • μ(x)=11+eθTx=P(y=1x)\mu(x)=\frac{1}{1+e^{-\theta^Tx}}=P(y=1|x), logistic function ...(1)
  • Xθ=log(P(YX)1P(YX))P(YX)=eXθ1+eXθX\theta = log(\frac{P(Y|X)}{1-P(Y|X)})\rarr P(Y|X)=\frac{e^{X\theta}}{1+e^{X\theta}} ...(2)

Parameter θ\theta 구하는 방법

  • MLE에서의 θ\theta
    θ^=argmaxθP(Dθ)\hat{\theta}=argmax_{\theta}P(D|\theta)

  • Maximum Conditional Likelihood Estimation, MCLE

    • θ^=argmaxθP(Dθ)=argmaxθ1iNP(YiXi;θ)=argmaxθlog(1iNP(YiXi;θ))=argmaxθ1iNlog(P(YiXi;θ))\hat{\theta}=argmax_{\theta}P(D|\theta)=argmax_{\theta}{\prod_{1\leq{i}\leq{N}}P(Y_i|X_i;\theta)}=argmax_{\theta}log(\prod_{1\leq{i}\leq{N}}P(Y_i|X_i;\theta))=argmax_{\theta}\sum_{1\leq{i}\leq{N}}log(P(Y_i|X_i;\theta))

    • P(YiXi;θ)=μ(Xi)Yi(1μ(Xi))1YiP(Y_i|X_i;\theta)=\mu(X_i)^{Y_i}(1-\mu(X_i))^{1-Y_i}

    • log(P(YiXi;θ))=Yilog(μ(Xi))+(1Yi)log(1μ(Xi))log(P(Y_i|X_i;\theta))=Y_ilog(\mu(X_i))+(1-Y_i)log(1-\mu(X_i))
      =Yi{log(μ(Xi))log(1μ(Xi))}+log(1μ(Xi))=Y_i\{log(\mu(X_i))-log(1-\mu(X_i))\}+log(1-\mu(X_i))
      =Yilog(μ(Xi)1μ(Xi))+log(1μ(Xi))=Y_ilog(\frac{\mu(X_i)}{1-\mu(X-i)})+log(1-\mu(X_i))
      =YiXiθ+log(1μ(Xi))=Y_iX_i\theta+log(1-\mu(X_i)) ,공식(2)사용
      =YiXiθlog(1+eXiθ)=Y_iX_i\theta-log(1+e^{X_i\theta}),공식(1)사용

    • θ^=argmaxθ1iNlog(P(YiXi;θ))\hat{\theta}=argmax_{\theta}\sum_{1\leq{i}\leq{N}}log(P(Y_i|X_i;\theta))
      =argmaxθ1iN{YiXiθlog(1+eXiθ)}=argmax_{\theta}\sum_{1\leq{i}\leq{N}}\{Y_iX_i\theta-log(1+e^{X_i\theta})\}

    • θ{YiXiθlog(1+eXiθ)}\frac{\partial}{\partial{\theta}}\{Y_iX_i\theta-log(1+e^{X_i\theta})\}
      ={1iNYiXi,j}+{1iN11+eXiθ×eXiθ×Xi,j}=\{\sum_{1\leq{i}\leq{N}}Y_iX_{i,j}\}+\{\sum_{1\leq{i}\leq{N}}-\frac{1}{1+e^{X_i\theta}}\times e^{X_i\theta}\times X_{i,j} \}
      =1iNXi(YieXiθ1+eXiθ)=\sum_{1\leq{i}\leq{N}} X_i(Y_i-\frac{e^{X_i\theta}}{1+e^{X_i\theta}})
      =1iNXi,j(YiP(Yi=1Xi;θ))=0=\sum_{1\leq{i}\leq{N}}X_{i,j}(Y_i-P(Y-i=1|X_i;\theta))=0

    • 더 이상 진행할 수 가 없다...!
      \rarr 근사(approximation)를 해야하는 것으로 귀결...(Gradient Descent Algorithm)

Gradient Descent/Ascent

  • 함수 f(x)f(x)가 있고 초기 값을 x1x_1이라고 할때,
  • f(x)f(x)의 negative/positive방향을 잡아서
  • 계속적으로 x1x_1를 움직여서 f(x)f(x)가 계속해서 높아지도록/낮아지도록 하는 방법
  • 위의 logistic regression에서는 초기값θ1\theta_1을 잡아주고 iteratively하게 움직여서 θ\theta를 optimize
profile
그러나 먼저 된 자로서 나중되고 나중 된 자로서 먼저될 자가 많으니라(마:19:30)

0개의 댓글