logo

기계학습에서 선형회귀모델의 최대사후확률 추정 📂머신러닝

기계학습에서 선형회귀모델의 최대사후확률 추정

정리

데이터 xiRn\mathbf{x}_{i} \in \mathbb{R}^{n}와 이의 레이블 yiRy_{i} \in \mathbb{R} 사이의 관계가 다음과 같은 선형모델이라 가정하자.

yi=wTxi+ϵi,i=1,,K(1) y_{i} = \mathbf{w}^{\mathsf{T}} \mathbf{x}_{i} + \epsilon_{i}, \qquad i = 1, \ldots, K \tag{1}

사후확률이 최대가 되는 파라미터 wMAP\mathbf{w}_{\text{MAP}}는 다음과 같다. y=[y1yK]T\mathbf{y} = \begin{bmatrix} y_{1} & \cdots & y_{K} \end{bmatrix}^{\mathsf{T}}X=[x1xK]TRn×K\mathbf{X} = \begin{bmatrix} \mathbf{x}_{1} & \cdots & \mathbf{x}_{K} \end{bmatrix}^{T} \in \mathbb{R}^{n \times K}에 대해서,

  • 사전 분포가 정규분포일 때: wMAP=(1σ2XTX+Σ1)1(1σ2XTy+Σ1μ) \mathbf{w}_{\text{MAP}} = \left(\dfrac{1}{\sigma^{2}} \mathbf{X}^{T}\mathbf{X} + \boldsymbol{\Sigma}^{-1} \right)^{-1} \left(\dfrac{1}{\sigma^{2}} \mathbf{X}^{T} \mathbf{y} + \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu} \right)

    이때 μ\boldsymbol{\mu}Σ\boldsymbol{\Sigma}는 각각 w\mathbf{w}의 사전분포의 평균 벡터와 공분산 행렬이다.

  • 사전 분포가 라플라스분포일 때:

    최적해의 명시적인 꼴이 존재하지 않는다.

설명

아래의 (3)(3)을 보면, w\mathbf{w}의 사전분포로 표준정규분포 N(0,I)N(\mathbf{0}, \mathbf{I})를 가정하면, 리지 회귀와 같은 문제임을 알 수 있다.

arg minw[12σ2yXw22+12w22] \argmin_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} + \dfrac{1}{2} \| \mathbf{w} \|_{2}^{2} \right]

반면에 사전분포로 라플라스분포 Laplace(0,b)\operatorname{Laplace}(0, b)를 가정하면, 라쏘 회귀와 같은 문제이다.

arg minw[12σ2yXw22+1bw1] \argmin_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} + \dfrac{1}{b} \| \mathbf{w} \|_{1} \right]

사전분포=정규분포

(1)(1)에서 wRn\mathbf{w} \in \mathbb{R}^{n}모수파라미터이며, ϵiN(0,σ2)\epsilon_{i} \sim N(0, \sigma^{2})을 가우시안 노이즈라 가정하자. ϵi\epsilon_{i}N(0,σ2)N(0, \sigma^{2})을 따른다고 가정했으므로, yi=wTxi+ϵiy_{i} = \mathbf{w}^{\mathsf{T}} \mathbf{x}_{i} + \epsilon_{i}N(wTxi,σ2)N(\mathbf{w}^{\mathsf{T}} \mathbf{x}_{i}, \sigma^{2})을 따른다.

yiN(wTxi,σ2) y_{i} \sim N(\mathbf{w}^{\mathsf{T}} \mathbf{x}_{i}, \sigma^{2})

최대사후확률 추정은 다음을 만족하는 wMAP\mathbf{w}_{\text{MAP}}를 찾는 것이다.

wMAP=arg maxwp(yw,X)p(w)(2) \mathbf{w}_{\text{MAP}} = \argmax_{\mathbf{w}} p(\mathbf{y} | \mathbf{w}, \mathbf{X}) p(\mathbf{w}) \tag{2}

p(yw,X)p(\mathbf{y} | \mathbf{w}, \mathbf{X})우도이고, p(w)p(\mathbf{w})사전확률이다. 우도함수는 다음과 같다.

p(yw,X)=1(2πσ2)K/2exp[12σ2yXw22] p(\mathbf{y} | \mathbf{w}, \mathbf{X}) = \dfrac{1}{(2\pi \sigma^{2})^{K/2}} \exp \left[ -\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} \right]

그리고 w\mathbf{w}의 사전분포가 아래와 같은 다변량 정규분포를 따른다 가정하자.

wN(μ,Σ),p(w)=1(2π)ndetΣexp[12(wμ)TΣ1(wμ)] \mathbf{w} \sim N(\boldsymbol{\mu}, \boldsymbol{\Sigma}), \qquad p(\mathbf{w}) = \dfrac{1}{\sqrt{(2\pi)^{n} \det \boldsymbol{\Sigma}}} \exp \left[ -\dfrac{1}{2} (\mathbf{w} - \boldsymbol{\mu})^{\mathsf{T}} \boldsymbol{\Sigma}^{-1} (\mathbf{w} - \boldsymbol{\mu}) \right]

사후확률이 지수함수로 표현되므로, 로그 우도를 고려하는게 계산에 있어서 편리하다.

wMAP=arg maxwlog(p(yw,X)p(w))=arg maxw[12σ2yXw2212(wμ)TΣ1(wμ)]=arg minw[12σ2yXw22+12(wμ)TΣ1(wμ)] \begin{align*} \mathbf{w}_{\text{MAP}} &= \argmax_{\mathbf{w}} \log (p(\mathbf{y} | \mathbf{w}, \mathbf{X}) p(\mathbf{w})) \\ &= \argmax_{\mathbf{w}} \left[-\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} -\dfrac{1}{2} (\mathbf{w} - \boldsymbol{\mu})^{\mathsf{T}} \boldsymbol{\Sigma}^{-1} (\mathbf{w} - \boldsymbol{\mu}) \right] \\ &= \argmin_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} + \dfrac{1}{2} (\mathbf{w} - \boldsymbol{\mu})^{\mathsf{T}} \boldsymbol{\Sigma}^{-1} (\mathbf{w} - \boldsymbol{\mu}) \right] \tag{3}\\ \end{align*}

따라서 위 식을 미분해서 0\mathbf{0}이 되도록하는 w\mathbf{w}wMAP\mathbf{w}_{\text{MAP}}이다. 그래디언트를 계산해보자.

w[12σ2yXw22+12(wμ)TΣ1(wμ)]=w[12σ2(yXw)T(yXw)+12(wμ)TΣ1(wμ)]=w[12σ2(yXw)T(yXw)]+w[12(wμ)TΣ1(wμ)] \begin{align*} & \nabla_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} +\dfrac{1}{2} (\mathbf{w} - \boldsymbol{\mu})^{\mathsf{T}} \boldsymbol{\Sigma}^{-1} (\mathbf{w} - \boldsymbol{\mu}) \right] \\ &= \nabla_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} (\mathbf{y} - \mathbf{X}\mathbf{w})^{T}(\mathbf{y} - \mathbf{X}\mathbf{w}) +\dfrac{1}{2} (\mathbf{w} - \boldsymbol{\mu})^{\mathsf{T}} \boldsymbol{\Sigma}^{-1} (\mathbf{w} - \boldsymbol{\mu}) \right] \\ &= \nabla_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} (\mathbf{y} - \mathbf{X}\mathbf{w})^{T}(\mathbf{y} - \mathbf{X}\mathbf{w})\right] + \nabla_{\mathbf{w}} \left[\dfrac{1}{2} (\mathbf{w} - \boldsymbol{\mu})^{\mathsf{T}} \boldsymbol{\Sigma}^{-1} (\mathbf{w} - \boldsymbol{\mu}) \right] \\ \end{align*}

미분 규칙은 아래를 참고하자.

벡터와 행렬의 도함수

  • 내적 f(x)x=(wTx)x=(xTw)x=w \frac{ \partial f(\mathbf{x})}{ \partial \mathbf{x} } = \frac{ \partial (\mathbf{w}^{T}\mathbf{x})}{ \partial \mathbf{x} } = \frac{ \partial (\mathbf{x}^{T}\mathbf{w})}{ \partial \mathbf{x} } = \mathbf{w}

  • f(x)=x2x=(xTx)x=2x \nabla f(\mathbf{x}) = \dfrac{\partial \left\| \mathbf{x} \right\|^{2}}{\partial \mathbf{x}} = \dfrac{\partial (\mathbf{x}^{T}\mathbf{x})}{\partial \mathbf{x}} = 2\mathbf{x}

  • 이차형식 f(x)x=(xRx)x=(R+RT)x \dfrac{\partial f(\mathbf{x})}{\partial \mathbf{x}} = \dfrac{\partial (\mathbf{x}\mathbf{R}\mathbf{x})}{\partial \mathbf{x}} = (\mathbf{R} + \mathbf{R}^{T})\mathbf{x} R\mathbf{R}대칭 행렬이면, f(x)x=2Rx \dfrac{\partial f(\mathbf{x})}{\partial \mathbf{x}} = 2\mathbf{R}\mathbf{x}

첫번째 항부터 미분을 계산해보면 다음과 같다.

w[12σ2(yXw)T(yXw)]=w[12σ2(yTy2yTXw+wTXTXw)]=12σ2[2XTy+2XTXw]=1σ2[XTy+XTXw]=1σ2XT(yXw) \begin{align*} &\nabla_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} (\mathbf{y} - \mathbf{X}\mathbf{w})^{T}(\mathbf{y} - \mathbf{X}\mathbf{w})\right] \\ &=\nabla_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} \left( \mathbf{y}^{T}\mathbf{y} - 2\mathbf{y}^{T}\mathbf{X}\mathbf{w} + \mathbf{w}^{T}\mathbf{X}^{T}\mathbf{X}\mathbf{w} \right) \right] \\ &= \dfrac{1}{2\sigma^{2}}\left[- 2\mathbf{X}^{T}\mathbf{y} + 2\mathbf{X}^{T}\mathbf{X}\mathbf{w} \right] \\ &= \dfrac{1}{\sigma^{2}}\left[-\mathbf{X}^{T}\mathbf{y} + \mathbf{X}^{T}\mathbf{X}\mathbf{w} \right] \\ &= -\dfrac{1}{\sigma^{2}} \mathbf{X}^{T} \left(\mathbf{y} - \mathbf{X}\mathbf{w} \right) \\ \end{align*}

두번째 항을 계산하면 아래와 같다. 공분산 행렬은 대칭행렬이고, 대칭행렬의 역행렬도 대칭행렬이므로,

w[12(wμ)TΣ1(wμ)]=Σ1(wμ) \nabla_{\mathbf{w}} \left[\dfrac{1}{2} (\mathbf{w} - \boldsymbol{\mu})^{\mathsf{T}} \boldsymbol{\Sigma}^{-1} (\mathbf{w} - \boldsymbol{\mu}) \right] \\ = \boldsymbol{\Sigma}^{-1}(\mathbf{w} - \boldsymbol{\mu})

따라서 다음을 얻는다.

1σ2XT(yXwMAP)+Σ1(wMAPμ)=0 -\dfrac{1}{\sigma^{2}} \mathbf{X}^{T} \left(\mathbf{y} - \mathbf{X}\mathbf{w}_{\text{MAP}} \right) + \boldsymbol{\Sigma}^{-1}(\mathbf{w}_{\text{MAP}} - \boldsymbol{\mu}) = \mathbf{0}

wMAP\mathbf{w}_{\text{MAP}}를 구하기 위해 위 식을 풀면 다음과 같다.

1σ2XTy+1σ2XTXwMAP+Σ1wMAPΣ1μ=0    (1σ2XTX+Σ1)wMAP=1σ2XTy+Σ1μ    wMAP=(1σ2XTX+Σ1)1(1σ2XTy+Σ1μ) \begin{align*} && - \dfrac{1}{\sigma^{2}} \mathbf{X}^{T} \mathbf{y} + \dfrac{1}{\sigma^{2}} \mathbf{X}^{T}\mathbf{X}\mathbf{w}_{\text{MAP}} + \boldsymbol{\Sigma}^{-1} \mathbf{w}_{\text{MAP}} - \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu} = \mathbf{0} \\ \implies && \left(\dfrac{1}{\sigma^{2}} \mathbf{X}^{T}\mathbf{X} + \boldsymbol{\Sigma}^{-1} \right) \mathbf{w}_{\text{MAP}} = \dfrac{1}{\sigma^{2}} \mathbf{X}^{T} \mathbf{y} + \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu} \\ \implies && \mathbf{w}_{\text{MAP}} = \left(\dfrac{1}{\sigma^{2}} \mathbf{X}^{T}\mathbf{X} + \boldsymbol{\Sigma}^{-1} \right)^{-1} \left(\dfrac{1}{\sigma^{2}} \mathbf{X}^{T} \mathbf{y} + \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu} \right) \end{align*}

사전분포=라플라스분포

여러 가정이나 계산은, 사전분포가 라플라스분포라는 것만 빼면, 위와 동일하다. 최대사후확률 추정은 다음을 만족하는 wMAP\mathbf{w}_{\text{MAP}}를 찾는 것이다.

wMAP=arg maxwp(yw,X)p(w) \mathbf{w}_{\text{MAP}} = \argmax_{\mathbf{w}} p(\mathbf{y} | \mathbf{w}, \mathbf{X}) p(\mathbf{w})

p(yw,X)p(\mathbf{y} | \mathbf{w}, \mathbf{X})우도이고, p(w)p(\mathbf{w})사전확률이다. 우도함수는 다음과 같다.

p(yw,X)=1(2πσ2)K/2exp[12σ2yXw22] p(\mathbf{y} | \mathbf{w}, \mathbf{X}) = \dfrac{1}{(2\pi \sigma^{2})^{K/2}} \exp \left[ -\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} \right]

그리고 w\mathbf{w}의 사전분포에 대해, 각각의 wiw_{i}가 독립적으로 라플라스 분포 Laplace(μ,b)\operatorname{Laplace}(\mu, b)를 따른다고 가정하자.

p(w)=i=1n12bexp(wiμb) p(\mathbf{w}) = \prod_{i=1}^{n} \dfrac{1}{2b} \exp \left( -\dfrac{|w_{i} - \mu|}{b} \right)     logp(w)=nlog2bi=1n[wiμb] \implies \log p(\mathbf{w}) = -n\log 2b - \sum_{i=1}^{n} \left[ \dfrac{|w_{i} - \mu|}{b} \right]

사후확률이 지수함수로 표현되므로, 로그 우도를 고려하는게 계산에 있어서 편리하다.

wMAP=arg maxwlog(p(yw,X)p(w))=arg maxw[12σ2yXw22i=1nwiμb]=arg minw[12σ2yXw22+1bwμ11] \begin{align*} \mathbf{w}_{\text{MAP}} &= \argmax_{\mathbf{w}} \log (p(\mathbf{y} | \mathbf{w}, \mathbf{X}) p(\mathbf{w})) \\ &= \argmax_{\mathbf{w}} \left[-\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} - \sum_{i=1}^{n} \dfrac{|w_{i} - \mu|}{b} \right] \\ &= \argmin_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} + \dfrac{1}{b} \| \mathbf{w} - \mu\mathbf{1} \|_{1} \right] \\ \end{align*}

여기서 1Rn\mathbf{1} \in \mathbb{R}^{n}은 모든 성분이 1인 벡터이다. 여기서 μ=0\mu = 0이라 두면, 라쏘 회귀와 같은 형태가 된다.

arg minw[12σ2yXw22+1bw1] \argmin_{\mathbf{w}} \left[\dfrac{1}{2\sigma^{2}} \| \mathbf{y} - \mathbf{X}\mathbf{w} \|_{2}^{2} + \dfrac{1}{b} \| \mathbf{w} \|_{1} \right]

안타깝게도 이 경우 최적해의 클로즈드 폼closed form없다는 것이 알려져있다.

같이보기