[프로그래머스] 데브코스 데이터엔지니어링 TIL Day 74

주재민·2024년 2월 1일
0
post-thumbnail

📖 학습주제

머신러닝, Scikit-learn, 실전 머신러닝 문제 실습 (4)


선형회귀 모델

선형 기저 함수 모델

가장 단순한 형태의 선형모델

y(x,w)=w0+w1x1++wDxD,x=(x1,x2,,xD)y(\textbf{x,w})=w_0+w_1x_1+\cdots+w_Dx_D, \\\textbf{x}=(x_1,x_2,\cdots,x_D)

x\textbf{x}에 대해 비선형 함수로 만들면

y(x,w)=w0+j=0M1wjϕj(x)y(x,w)=j=0M1wjϕj(x)=wTϕ(x)ϕ0(x)=1y(\textbf{x,w})=w_0+\displaystyle\sum_{j=0}^{M-1} w_j\phi_j(\textbf{x})\\y(\textbf{x,w})=\displaystyle\sum_{j=0}^{M-1} w_j\phi_j(\textbf{x})=\textbf{w}^T\phi(\textbf{x})\\\phi_0(\textbf{x})=1

이 때, x\textbf{x}에 대해 비선형인 함수 ϕj(x)\phi_j(\textbf{x})를 기저함수(basis function)라고 한다.

  • 다항식(polynomial) 기저함수 : ϕj(x)=xj\phi_j(x)=x^j

  • 가우시안 기저함수 : ϕj(x)=exp{(xμj)22s2}\phi_j(x)=exp\lbrace {-{(x-\mu_j)^2\over2s^2}} \rbrace

  • 시그모이드(sigmoid) 기저함수 : ϕj(x)=σ(xμjs)\phi_j(x)=\sigma({x-\mu_j\over s}) (이 때, σ(α)=11+exp(α)\sigma(\alpha)={1\over 1+exp(-\alpha)})

최대우도와 최소제곱법

에러함수가 가우시안 노이즈를 가정할 때 최대우도로부터 유도될 수 있다.

proof

t=y(x,w)+ϵt=y(\textbf{x,w})+\epsilon
  • y(x,w)y(\textbf{x,w}) : 결정론적(deterministic) 함수
  • ϵ\epsilon : 가우시안 분포 N(ϵ0,β1)\mathcal{N}(\epsilon|0,\beta^{-1})를 따르는 노이즈 확률변수

따라서 tt의 분포는

p(tx,w,β)=N(ty(x,w),β1)p(t|\textbf{x,w},\beta)=\mathcal{N}(t|y(\textbf{x,w}),\beta^{-1})\\{}

결정이론에 의해 제곱합이 손실함수로 쓰이는 경우, 새로운 x\textbf{x}가 주어졌을 때 tt의 최적의 예측값은 tt의 조건부 기댓값이다. tt가 위의 분포를 따를 때, 조건부 기댓값은 다음과 같다.

E[tx]=p(tx)dt=y(x,w)E[t|\textbf{x}]=\displaystyle\int_{}^{}p(t|\textbf{x})\mathcal{d}t=y(\textbf{x,w})\\{}

파라미터인 w\textbf{w}를 찾기 위해 최대우도추정법을 이용한다.

  • 입력값 : X=x1,x2,,xNX=\textbf{x}_1,\textbf{x}_2, \cdots, \textbf{x}_N
  • 출력값 : t=t1,t2,,tN\textbf{t}=t_1,t_2,\cdots, t_N

우도함수가

p(tX,w,β)=n=1NN(tnwTϕ(xn),β1)p(\textbf{t}|X,\textbf{w},\beta)=\displaystyle\prod_{n=1}^N \mathcal{N}(t_n|\textbf{w}^T\phi(\textbf{x}_n),\beta^{-1})\\{}

로그 우도함수가

ln  p(tw,β)=n=1Nln  N(tnwTϕ(xn),β1)=N2ln  βN2ln  (2π)βED(w)ED(w)=12n=1N{tnwTϕ(xn)}2ln\;p(t|\textbf{w},\beta)=\displaystyle\sum_{n=1}^N ln\; \mathcal{N}(t_n|\textbf{w}^T\phi(\textbf{x}_n),\beta^{-1})={N \over 2}ln \; \beta-{N \over 2}ln \; (2\pi)-\beta E_D(\textbf{w})\\E_D(\textbf{w})= {1 \over 2}\displaystyle\sum_{n=1}^N \lbrace {t_n-\textbf{w}^T\phi(\textbf{x}_n)} \rbrace^2

따라서, 로그 우도함수를 최대화시키는 w\textbf{w}값은 ED(w)E_D(\textbf{w})로 주어진 제곱합 에러함수를 최소화시키는 값과 동일하다.




w\textbf{w}에 대한 gradient  vectorgradient\;vector

ln  p(tw,β)=n=1N{tnwTϕ(xn)}ϕ(xn)T\nabla ln\;p(t|\textbf{w},\beta)=\displaystyle\sum_{n=1}^N \lbrace {t_n-\textbf{w}^T\phi(\textbf{x}_n}) \rbrace\phi(\textbf{x}_n)^T

따라서 w\textbf{w}의 최적값은

wML=(ΦTΦ)1ΦTt\textbf{w}_{ML}=(\Phi^T\Phi)^{-1}\Phi^T\textbf{t}

이고 위 식을 normal equations라고 부른다.

Φ=[Φ0(x1)Φ2(x1)ΦM1(x1)Φ0(x2)Φ2(x2)ΦM1(x2)Φ0(xN)Φ2(xN)ΦM1(xN)]\Phi=\begin{bmatrix}\Phi_0(\textbf{x}_1)&\Phi_2(\textbf{x}_1)&\cdots&\Phi_{M-1}(\textbf{x}_1)\\\Phi_0(\textbf{x}_2)&\Phi_2(\textbf{x}_2)&\cdots&\Phi_{M-1}(\textbf{x}_2)\\\vdots&\vdots&\ddots&\vdots\\\Phi_0(\textbf{x}_N)&\Phi_2(\textbf{x}_N)&\cdots&\Phi_{M-1}(\textbf{x}_N) \end{bmatrix}

proof

Φwt22=(Φwt)T(Φwt)||\Phi\textbf{w}-\textbf{t}||_2^2=(\Phi\textbf{w}-\textbf{t})^T(\Phi\textbf{w}-\textbf{t}) 를 최소화 하는 w\textbf{w}를 찾는다.

(Φwt)T(Φwt)=(wTΦTtT)(Φwt)      =wTΦTΦwtTΦwwTΦTt+tTt      =wTΦTΦw2tTΦwtTtwΦwt22=2ΦTΦw2ΦTtΦTΦw=ΦTtwML=(ΦTΦ)1ΦTt(\Phi\textbf{w}-\textbf{t})^T(\Phi\textbf{w}-\textbf{t})=(\textbf{w}^T\Phi^T-\textbf{t}^T)(\Phi\textbf{w}-\textbf{t})\\\quad\quad\quad\quad\quad\quad\quad\quad\;\;\;=\textbf{w}^T\Phi^T\Phi\textbf{w}-\textbf{t}^T\Phi\textbf{w}-\textbf{w}^T\Phi^T\textbf{t}+\textbf{t}^T\textbf{t}\\\quad\quad\quad\quad\quad\quad\quad\quad\;\;\;=\textbf{w}^T\Phi^T\Phi\textbf{w}-2\textbf{t}^T\Phi\textbf{w}-\textbf{t}^T\textbf{t}\\{}\\\nabla_\textbf{w}||\Phi\textbf{w}-\textbf{t}||_2^2=2\Phi^T\Phi\textbf{w}-2\Phi^T\textbf{t}\\\Phi^T\Phi\textbf{w}=\Phi^T\textbf{t}\\\textbf{w}_{ML}=(\Phi^T\Phi)^{-1}\Phi^T\textbf{t}



편향 파라미터(bias parameter) w0w_0

ED(w)=12n=1N{tnw0j=1M1wjϕj(xn)}2w0=tˉj=1M1wjϕjˉ=tˉϕˉTwtˉ=1Nn=1Ntn,ϕˉ=1Nn=1Nϕj(xn)E_D(\textbf{w})= {1 \over 2}\displaystyle\sum_{n=1}^N \lbrace {t_n-w_0-\displaystyle\sum_{j=1}^{M-1} w_j\phi_j(\textbf{x}_n)} \rbrace^2\\w_0=\bar{t}-\displaystyle\sum_{j=1}^{M-1} w_j\bar{\phi_j}=\bar{t}-\bar{\phi}^T\textbf{w}\\\bar{t}={1 \over N}\displaystyle\sum_{n=1}^N t_n,\quad\quad\bar{\phi}={1 \over N}\displaystyle\sum_{n=1}^N \phi_j(\textbf{x}_n)



β\beta의 최적값은

1βML=1Nn=1N{tnwMLTϕ(xn)}2{1\over \beta_{ML}}={1 \over N}\displaystyle\sum_{n=1}^N \lbrace {t_n} -{\textbf{w}_{ML}}^T\phi(\textbf{x}_n)\rbrace^2

온라인 학습 (Sequential Learning)

배치 학습

  • 데이터 전체를 사용해서 모델 학습
  • 데이터가 크면 계산량이 많음

온라인 학습

  • 데이터 샘플 하나를 보고 모델을 업데이트
  • 데이터가 큰 경우 또는 연속적으로 공급되는 데이터인 경우에 적합

규제화

목적 : 과적합 방지

ED(w)+λEW(w)E_D(\textbf{w})+\lambda E_W(\textbf{w})

가장 단순한 형태

EW(w)=12wTwED(w)=12n=1N{tnwTϕ(xn)}2E_W(\textbf{w}) = {1 \over 2}\textbf{w}^T\textbf{w}\\{}\\E_D(\textbf{w})={1 \over 2}\displaystyle\sum_{n=1}^N \lbrace {t_n-w^T\phi(\textbf{x}_n)} \rbrace^2

최종적인 에러함수

12n=1N{tnwTϕ(xn)}2+12wTw{1 \over 2}\displaystyle\sum_{n=1}^N \lbrace {t_n-w^T\phi(\textbf{x}_n)} \rbrace^2+{1 \over 2}\textbf{w}^T\textbf{w}

w\textbf{w}의 최적값

w=(λI+ΦTΦ)1ΦTt\textbf{w}=(\lambda\textbf{I}+\Phi^T\Phi)^{-1}\Phi^T\textbf{t}

일반화된 규제화

E(w)=12n=1N{tnwTϕ(xn)}2+12n=1MwjqE(\textbf{w})={1 \over 2}\displaystyle\sum_{n=1}^N \lbrace {t_n-w^T\phi(\textbf{x}_n)} \rbrace^2+{1 \over 2}\displaystyle\sum_{n=1}^M|\textbf{w}_j|^q

편향-분산 분해 (Bias-Variance Decomposition)

모델이 과적합되는 현상에 대한 이론적 분석

제곱합 손실함수가 주어졌을 때의 최적 예측값

h(x)=E[tx]=tp(tx)dth(\textbf{x})=E[t|\textbf{x}]=\displaystyle\int_{}^{} tp(t|\textbf{x})\mathcal{d}t

손실함수의 기댓값

E[L]={y(x)t}2p(x,t)dxdt={y(x)h(x)}2p(x)dx={h(x)t}2p(x,t)dxdtE[L] = \displaystyle\int_{}^{}\int_{}^{} \lbrace {y(\textbf{x})-t} \rbrace^2 p(\textbf{x},t)\mathcal{d}\textbf{x}\mathcal{d}\textbf{t}=\displaystyle\int_{}^{} \lbrace {y(\textbf{x})-h(\textbf{x})} \rbrace^2 p(\textbf{x})\mathcal{d}\textbf{x}=\displaystyle\int_{}^{}\int_{}^{} \lbrace {h(\textbf{x})-t} \rbrace^2 p(\textbf{x},t)\mathcal{d}\textbf{x}\mathcal{d}\textbf{t}

제한된 데이터셋만 주어져 있기 때문에 h(x)h(\textbf{x})를 정확히 알 수는 없다. 대신 파라미터화 된 함수 y(\textbf{x},\textbf{w})를 사용해 최대한 손실함수의 기댓값을 최소화한다.

이는 {y(x)h(x)}2p(x)dx\displaystyle\int_{}^{} \lbrace {y(\textbf{x})-h(\textbf{x})} \rbrace^2 p(\textbf{x})\mathcal{d}\textbf{x}을 최소화하는 yy를 찾는 것과 같다.

베이지안 선형회귀

많은 머신러닝 방법들은 최대우도를 사용해 모델 파라미터를 학습하는데 이러한 모델은 과적합의 가능성이 높다. 이 문제에 대한 해법으로 제시되는 것이 베이지안 방법이다.

베이지안 방식의 핵심은 예측핪이 파라미터의 특정 configurationconfiguration에만 의존하는 것이 아니라 모든 가능한 configurationconfiguration을 종합해 예측하기 때문에 새로운 데이터가 들어왔을 때 더 안정적인 예측이 가능하다는 것이다.

0개의 댓글