기계학습에서 선형회귀모델의 최대사후확률 추정
📂머신러닝기계학습에서 선형회귀모델의 최대사후확률 추정
정리
데이터 xi∈Rn와 이의 레이블 yi∈R 사이의 관계가 다음과 같은 선형모델이라 가정하자.
yi=wTxi+ϵi,i=1,…,K(1)
사후확률이 최대가 되는 파라미터 wMAP는 다음과 같다. y=[y1⋯yK]T와 X=[x1⋯xK]T∈Rn×K에 대해서,
사전 분포가 정규분포일 때:
wMAP=(σ21XTX+Σ−1)−1(σ21XTy+Σ−1μ)
이때 μ와 Σ는 각각 w의 사전분포의 평균 벡터와 공분산 행렬이다.
사전 분포가 라플라스분포일 때:
최적해의 명시적인 꼴이 존재하지 않는다.
설명
아래의 (3)을 보면, w의 사전분포로 표준정규분포 N(0,I)를 가정하면, 리지 회귀와 같은 문제임을 알 수 있다.
wargmin[2σ21∥y−Xw∥22+21∥w∥22]
반면에 사전분포로 라플라스분포 Laplace(0,b)를 가정하면, 라쏘 회귀와 같은 문제이다.
wargmin[2σ21∥y−Xw∥22+b1∥w∥1]
사전분포=정규분포
(1)에서 w∈Rn은 모수파라미터이며, ϵi∼N(0,σ2)을 가우시안 노이즈라 가정하자. ϵi가 N(0,σ2)을 따른다고 가정했으므로, yi=wTxi+ϵi는 N(wTxi,σ2)을 따른다.
yi∼N(wTxi,σ2)
최대사후확률 추정은 다음을 만족하는 wMAP를 찾는 것이다.
wMAP=wargmaxp(y∣w,X)p(w)(2)
p(y∣w,X)는 우도이고, p(w)는 사전확률이다. 우도함수는 다음과 같다.
p(y∣w,X)=(2πσ2)K/21exp[−2σ21∥y−Xw∥22]
그리고 w의 사전분포가 아래와 같은 다변량 정규분포를 따른다 가정하자.
w∼N(μ,Σ),p(w)=(2π)ndetΣ1exp[−21(w−μ)TΣ−1(w−μ)]
사후확률이 지수함수로 표현되므로, 로그 우도를 고려하는게 계산에 있어서 편리하다.
wMAP=wargmaxlog(p(y∣w,X)p(w))=wargmax[−2σ21∥y−Xw∥22−21(w−μ)TΣ−1(w−μ)]=wargmin[2σ21∥y−Xw∥22+21(w−μ)TΣ−1(w−μ)](3)
따라서 위 식을 미분해서 0이 되도록하는 w가 wMAP이다. 그래디언트를 계산해보자.
∇w[2σ21∥y−Xw∥22+21(w−μ)TΣ−1(w−μ)]=∇w[2σ21(y−Xw)T(y−Xw)+21(w−μ)TΣ−1(w−μ)]=∇w[2σ21(y−Xw)T(y−Xw)]+∇w[21(w−μ)TΣ−1(w−μ)]
미분 규칙은 아래를 참고하자.
벡터와 행렬의 도함수
내적
∂x∂f(x)=∂x∂(wTx)=∂x∂(xTw)=w
놈
∇f(x)=∂x∂∥x∥2=∂x∂(xTx)=2x
이차형식
∂x∂f(x)=∂x∂(xRx)=(R+RT)x
R이 대칭 행렬이면,
∂x∂f(x)=2Rx
첫번째 항부터 미분을 계산해보면 다음과 같다.
∇w[2σ21(y−Xw)T(y−Xw)]=∇w[2σ21(yTy−2yTXw+wTXTXw)]=2σ21[−2XTy+2XTXw]=σ21[−XTy+XTXw]=−σ21XT(y−Xw)
두번째 항을 계산하면 아래와 같다. 공분산 행렬은 대칭행렬이고, 대칭행렬의 역행렬도 대칭행렬이므로,
∇w[21(w−μ)TΣ−1(w−μ)]=Σ−1(w−μ)
따라서 다음을 얻는다.
−σ21XT(y−XwMAP)+Σ−1(wMAP−μ)=0
wMAP를 구하기 위해 위 식을 풀면 다음과 같다.
⟹⟹−σ21XTy+σ21XTXwMAP+Σ−1wMAP−Σ−1μ=0(σ21XTX+Σ−1)wMAP=σ21XTy+Σ−1μwMAP=(σ21XTX+Σ−1)−1(σ21XTy+Σ−1μ)
사전분포=라플라스분포
여러 가정이나 계산은, 사전분포가 라플라스분포라는 것만 빼면, 위와 동일하다. 최대사후확률 추정은 다음을 만족하는 wMAP를 찾는 것이다.
wMAP=wargmaxp(y∣w,X)p(w)
p(y∣w,X)는 우도이고, p(w)는 사전확률이다. 우도함수는 다음과 같다.
p(y∣w,X)=(2πσ2)K/21exp[−2σ21∥y−Xw∥22]
그리고 w의 사전분포에 대해, 각각의 wi가 독립적으로 라플라스 분포 Laplace(μ,b)를 따른다고 가정하자.
p(w)=i=1∏n2b1exp(−b∣wi−μ∣)
⟹logp(w)=−nlog2b−i=1∑n[b∣wi−μ∣]
사후확률이 지수함수로 표현되므로, 로그 우도를 고려하는게 계산에 있어서 편리하다.
wMAP=wargmaxlog(p(y∣w,X)p(w))=wargmax[−2σ21∥y−Xw∥22−i=1∑nb∣wi−μ∣]=wargmin[2σ21∥y−Xw∥22+b1∥w−μ1∥1]
여기서 1∈Rn은 모든 성분이 1인 벡터이다. 여기서 μ=0이라 두면, 라쏘 회귀와 같은 형태가 된다.
wargmin[2σ21∥y−Xw∥22+b1∥w∥1]
안타깝게도 이 경우 최적해의 클로즈드 폼closed form은 없다는 것이 알려져있다.
같이보기