Link Search Menu Expand Document

매개 변수 추정

Chapter 2 : Parameter Estimation

Edited by / 김윤종 (kyj098707) kyj098707



선형회귀 setting이 된 상태에서 다음과 같은 데이터셋이 있다고 가정을 해보자

D:=[(x1,y1),...,(xn,yn)]
input xnRD,traget ynR,n=1,..,N

이때 input 값인 xi,xj 는 해당 target 값인 yi,yj에 대해 조건부 독립이기 때문에 Likelihood factorize하여 다음과 같이 표현할 수 있다.

n=1Np(yn|xn,θ)=n=1NN(yn|xnTθ,σ2)

여기서 우리는 최적의 파라미터 θRD 를 구하고 이것을 input값인 x 와 같이 넣어 target 값인 y 의 분포를 구하려고 한다. 해당 수식은 다음과 같다.

p(y|x,θ)=N(y|xTθ,σ2)

이번 장에서는 위의 수식으로 구해지는 Likelihood를 최대화시켜 파라미터를 추정하려고 한다.

최대우도법 (Maximum Likelihood Estimation)

Likelihood를 최대화한 파라미터 θML 을 찾는 과정인 Maximum Likelihood estimation를 우리는 가장 넓게 쓰고 있다. 이것은 trainin data의 predictive 분포를 최대화시킨다는 것으로 다음과 같이 구해진다.

θML=argmaxθ p(Y|X,θ)

이때 주의해야할 점은 Likelihood p(y|x,θ)θ 의 확률 분포가 아니기 때문에 이것을 합해도 1이 되지 않는다. 또한 각 \theta에 대해 합을 구하는 것도 불가능하며 위의 식은 y에 대한 normalized probabilty 분포이다.
우리는 해당 likelihood를 최대한 시키는 θML 을 구하기 위해 gradient ascent, descent을 사용하게 된다. 또한 우리는 바로 likelihood를 최대화하지 않고 log 변형을 적용시키게 된다.

로그 변환 (Log Transformation)

likelihood는 N개의 가우시안 분포이다. 이때 log-transformation을 적용시키면 미분이 간편해지고, 언더플로우가 발생하지 않게 된다. 로그 변환을 적용시킨 θML 을 찾는 수식은 다음과 같다.

log(Y|X,θ)=logn=1Np(yn|xn,θ)=n=1Nlogp(yn|xn,θ)

선형회귀 모델에서 likelihood는 로그변환을 하면 아래와 같이 표현할 수 있습니다. (선형회귀모델에서 likelihood는 가우시안 분포를 따름)

logp(yn|xn,θ)=12σ2(ynxnTθ)2+const

이때 negative log-likelihood를 취하면 아래와 같은 식을 얻을 수 있다. 이때 const값은 θ 와 독립이기 때문에 무시하고 계산할 수 있다.

L(θ):=12σ2n=1N(ynxnTθ)2=12σ2(yXθ)T(yXθ)=12σ2yXθ2

우리는 이것을 미분하여 다음과 같이 Gradient를 계산할 수 있다.

dLdθ=ddθ(2σ21(yXθ)T(yXθ))=12σ2ddθ(yTy2yTXθ+θTXTXθ)=1σ2(yTX+θTXTX)(R)1×D

우리는 또한 dmathcalLdθ=0T 로 다음과 같은 수식을 유도할 수 있다.

dmathcalLdθ=0TθMLTXTX=yTXθMLT=yTX(XTX)1θML=(XTX)1XTy

linear regression 모델은 현실적인 데이터에서 충분한 설명을 이끌어내지 못한다. 그래서 우리는 좀 더 non-linear한 모델을 다루게 될 것이다. non-linear한 모양을 하는 회귀모델도 Parameter가 linear하다면 우리는 이를 linear regression이라고 할 수 있으며 우리는 이런 경우 non-linear transformation을 다음과 같이 나타낼 수 있다.

p(y|x,θ)=N(y|ϕT(x)θ,σ2)y=ϕT(x)θ+ϵ=k=0K1θkϕk(x)+ϵ

다항 회귀(Polynomial Regression)

우리는 regression에서 y=ϕT(x)θ+ϵ 을 구하는 과정에서 ϕ(x) 를 다음과 같이 나타낼 수 있다.

ϕ(x)=[ϕ0(x)ϕ1(x)0]=[1xx2x3xK1]RK

또한 ϕj(xi) 의 transpose는 다음과 같이 나타낼 수 있다.

Φ:=[ϕT(xN)ϕT(xN)]=[ϕ0(x1)ϕK1(x1)ϕ0(x2)ϕK1(x2)ϕ0(xN)ϕK1(xN)]RN×K


다항회귀의 최대 우도 적합 (Maximum Likelihood Polynomial Fit)

그림1 다항 회귀의 최대 우도


위의 그림(a)는 N = 20의 (xn,yn)로 이루어진 데이터셋이다. 이 때 xnU[5,5] 이고 yn=sin(xn/5)+cos(xn)+ϵ,ϵN(0,0.22) 이다.
우리는 이런 데이터셋을 4차 변환으로 maximum likelihood estimation하여 그림 (b)과 같이 θML 을 구해 Regression 함수를 구할 수 있다.

Estimation the Noise Variance

우리는 지금까지 θ2가 주어진 상태에서 계산을 진행하였고 이장에서는 Maximum likelihood estimation의 원칙을 이용하여 θML2 을 직접 계산하려고 한다. 해당 과정은 다음과 같다.

logp(Y|X,θ,σ2)=n=1NlogN(yn|ϕT(xn)θ,σ2)=n=1N(12log(2π)12logσ212σ2(ynϕT(xn)θ)2)=N2logσ212σ2n=1N(ynθT(xn)θ)2+const

이후에 σ2 에 대해 미분을 하면 다음과 같이 최종적은 결과를 얻을 수 있다.

logp(Y|X,θ,σ2)σ2=N2σ2+12σ4s=0N2σ2=s2σ4σML2=sN=1Nn=1N(ynϕT(xn)θ)2


선형 회귀 과적합(Overfitting in Linear Regression)

우리는 방금까지 maximum likelihood estimation를 사용하여 linear 모델을 학습을 시키는 것에 대해 이야기하였다. 우리는 오차와 손실을 계산하여 모델을 평가할 수 있는데 maximum likelihood estimation에서는 negative log-likelihood를 최소화는 방법을 쓸 수 있다. 또한 노이즈 파라미터 σ2 가 free model parameter가 아니면 1σ2 로 스케일링 하지 않아도 되고 이런 경우 우리는 제곱오차(squared-error-loss)가 아닌 root-mean-square-error(RMSE)를 주로 사용하게 된다.

(1NyΦθ2)=(1Nn=1N(ynϕT(xn)θ)2),

제곱 오차의 경우 크기가 다른 데이터셋의 오차를 비교할 수 있고, RMSE의 경우 관측된 함수 값 yn과 동일한 스케일 및 단위를 가질 수 있다.

트레이닝 데이터 개수 N, 다항식의 차 수 M이라고 가정을 하자 우리는 이때 0MN1 을 M의 개수로 하는 것이 적절하다. 반대로 MN 의 경우 데이터 포인트보다 더 많은 파라미터를 가지게 되고 이 때 가능한 MLE는 무수히 많게 된다.

그림2 다양한 다항회귀에서의 최대우도적합

위의 그림은 10개의 데이터 포인터에 대해 다항식의 차수를 보여준다. 차수가 높아질 수록 점차 데이터에 적합해지는 것을 알 수 있고, M=9일 때 모든 데이터와 일치한다. 하지만 이런 경우에는 새로운 데이터에 대해서 예측을 못하는 경우가 있으며 이를 overfitting되었다고 한다.
우리는 그렇기에 새로운 데이터를 잘 설명하기 위해 일반화하는 것이 필요하다. 200개의 테스트 셋을 별도로 구성하여 다항식 차수 M에 대한 일반화 성능에 대해 알아보고자 한다. 테스트의 input으로는 [-5,5] 안의 값의 200 포인트의 선형 그리드를 선택을하며 결과는 다음과 같다.

그림3 훈련 및 테스트 에러

test결과 차수가 6차부터 성능이 급격하게 주는 것을 알 수 있었다. 4차에서 가장 작은 테스트 오차를 보였으며 우리는 이 지점에서 일반화가 가장 잘 됐다는 것도 알 수 있다.


최대 사후 확률 (Maximum A Posteriori Estimation)

파라미터 θ 에 대한 가우시안 사전확률에서 선형 회귀에서 음의 로그 사후 확률은 아래와 같다.

logp(θ|X,Y)=12σ2(yΦθ)T(yΦθ)+12b2θTθ+const

위의 식을 파라미터 θ 에 대해 미분을 하여 로그 사후 확률의 경사를 아래와 같이 구할 수 있다.

dlogp(θ|X,Y)dθ=1σ2(θTΦTΦyTΦ)+1b2θT

우리는 MAP 추정치 θMAP 을 위의 경사를 0^T로 설정하여 다음과 같이 풀 수 있다.

1σ2(θTΦTΦyTΦ)+1b2θT=0TθT(1σ2ΦTΦ+1b2I)1σ2yTΦ=0TθT(ΦTΦ+σ2b2I)=yTΦθT=yTΦ(ΦTΦ+σ2b2I)1

이제 θMAP 은 양변을 transpose하여 아래와 같이 나타낼 수 있다.

θMAP=(ΦTΦ+σ2b2I)1ΦTy


θML 과 MLE를 비교해보면 역행렬 안에 σ2b2 가 추가되어 있는 것을 알 수 있다. 이 항은 대칭적이며 positive definite하다는 것을 보장한다. 즉 역이 존재하고 θML 가 선형방적식 시스템의 유일한 해임을 보장하며 정규화를 반영한다.

다항 회귀에 대한 최대 사후 확률 (MAP Estimation for Polynomial Regression)

우리는 앞서 다항식 회귀 분석 예에서 파라미터 θ 에 대한 가우시안 사전확률 p(θ)=N(0,1) 을 설정하고 이에 θML 을 결정한다. 아래 그림은 6차와 8차 다항식에 대한 최대 우도와 MAP 추정치를 보여준다.

그림4 다항회귀 : 최대우도와 최대사후추정(MAP)

여기서 우리는 사전확률이 낮은 차수의 다항식에서는 큰 역할을 하지 않지만 높은 차수의 다항식에서는 비교적으로 많은 영향을 주는 것을 알 수 있다. MAP 추정치가 과적합의 경계와 가까워질 수 있지만, 이 문제는 일반적인 해결책이 아니기 때문에 좀 더 원칙적인 접근이 필요하다.


정규화로써 최대 사후 확률(MAP Estimation as Regularization)

매개변수 θ 에 사전 확률 분포로 설정하는 대신 정규화를 통해 매개변수 진폭에 페널티를 부과하여 과적합의 영향을 완화할 수 있다. 정규화된 최소 제곱에서, θ에 대해 최소화해야하는 손실 함수는 아래와 같다.

logp(θ)=12b2θ22

이때, 첫번째 항은 데이터의 적합성을 나타내주는 항이며, 두번째 항은 정규화 항으로 정규화 매개변수 λ0 는 정규화의 수준을 조절한다.

Regularizer λθ22 는 음의 로그 가우시안 사전 확률 분포로 해석 될 수 있으며 MAP의 추정에 사용된다. 이때 가우시안 사전확률 분포 p(θ)=N(0,b2I) 을 사용하여 아래와 같은 음의 로그 가우시안 사전 확률을 얻을 수 있다.

logp(θ)=12b2θ22+const

이 때 λ=12b2 일 때 정규화 항과 음의 로그 가우시안 사전 확률은 같게 된다.

정규화된 최소 제곱 손실 함수를 최소화하면 아래와 같은 식을 얻을 수 있다.

θRLS=(ΦTΦ+λI)1ΦTy

이는 λ=σ2b2 에 대한 MAP 추정치와 같고, 여기서 σ2 는 noise에 대한 분산이고 b2은 가우시안 사전 확률의 분산이다.


'선형 회귀' 카테고리의 다른 글
  1. 문제 공식화
  2. 매개 변수 추정
  3. 베이지안 선형 회귀
  4. 정사영에 따른 최대우도