7. Linear regression

7.1. Introduction

선형 회귀는 통계학과 기계학습에서 널리 쓰인다. 기저 함수 확장을 쓰면 비선형 관계도 모델링할 수 있다.

7.2. Model specification

선형 회귀는 p(y|\mathbf{x}, \mathbf{\theta}) = \mathcal{N}(y | \mathbf{w}^{T}\mathbf{x}, \sigma^{2}) 꼴의 모델이다. 이 때 \mathbf{x}를 비선형 함수 \mathbf{\phi}(\mathbf{x})로 치환하면 p(y|\mathbf{x}, \mathbf{\theta}) = \mathcal{N}(y | \mathbf{w}^{T}\mathbf{\phi}(\mathbf{x}), \sigma^{2}) 가 되며, 이를 기저 함수 확장이라 한다. 이 모델은 모델 매개변수 \mathbf{w}에 대해서는 여전히 선형이기 때문에 선형 회귀라 불린다. 기저 함수를 다항식으로 할 경우 다항 회귀가 된다.

2D 데이터에 적용된 1차/2차 선형 회귀.

선형 회귀에서 입력 변수가 유한한 범위의 이산적 값을 가질 경우 이를 변량 분석(ANOVA)라 한다.

7.3. Maximum likelihood estimation (least squares)

통계적 모델에서 매개변수를 근사하는 가장 쉬운 방법은 최대가능도근사를 계산하는 것이다.

\hat{\mathbf{\theta}} = \mathrm{argmax}_{\mathbf{\theta}} \log p(\mathcal{D} | \mathbf{\theta})

이 때 학습 데이터는 동일 분포에서 독립적으로 추출되어야 (i.i.d.) 한다는 것을 가정하면 음의 로그 가능도(NLL)은 다음과 같아진다.

\mathrm{NLL}(\mathbf{\theta}) = -\sum_{i=1}^{N} \log p(y_{i} | \mathbf{x}_{i}, \mathbf{\theta}) = -\frac{1}{2 \sigma^{2}} \sum_{i=1}^{N} (y_{i} - \mathbf{w}^{T} \mathbf{x}_{i})^{2} - \frac{N}{2} \log(2 \pi \sigma^{2})

이 때 \sum_{i=1}^{N} (y_{i} - \mathbf{w}^{T} \mathbf{x}_{i})^{2} 잔여 제곱합(RSS), 제곱 오차합(SSE)이라 하며 이를 데이터 수로 나눈 것을 평균제곱오차(MSE)라 한다. 이는 잔여오차 벡터의 l_{2} 으로도 볼 수 있다. 선형 회귀에서 잔여 제곱합을 최소화시키는 방법은 최소 제곱법으로 불린다.

최소 제곱법의 예시. 붉은 점으로 표현된 표본들과 푸른 X로 표시된 근사값간 차이의 합을 최소화시킨다.
잔여 제곱합오차의 컨투어. 이 함수는 볼록함수가 되어 유일한 최소값을 갖는다. 선형 회귀로 비선형 모델링을 할 때 x에 대해서는 선형이 아닐지라도 w에 대해 선형이기 때문에 로그가능도는 볼록성을 만족하게 된다.

7.3.1 Derivation of the MLE

음의 로그가능도는 다음과 같이 나타낼 수 있다.

\mathrm{NLL}(\mathbf{w}) = \frac{1}{2}\mathbf{w}^{T} (\mathbf{X}^{T} \mathbf{X})\mathbf{w} - \mathbf{w}^{T}(\mathbf{X}^{T} \mathbf{y})

이의 그라디언트는 다음과 같다.

\mathbf{g}(\mathbf{w}) = (\mathbf{X}^{T} \mathbf{X}\mathbf{w} - \mathbf{X}^{T} \mathbf{y}) = \sum_{i=1}^{N} \mathbf{x}_{i}(\mathbf{w}^{T} \mathbf{x}_{i} - y_{i})

이를 0으로 만드는 조건은 다음과 같다. 이를 법선 방정식이라 한다.

\mathbf{X}^{T} \mathbf{X} \mathbf{w} = \mathbf{X}^{T} \mathbf{y}

이의 해는 다음과 같으며, 이를 일반최소제곱(OLS) 해라 한다.

\hat{\mathbf{w}}_{\mathrm{OLS}} = (\mathbf{X}^{T}\mathbf{X})^{-1} \mathbf{X}^{T} \mathbf{y}

7.3.2. Geometric interpretation

이 방정식은 \mathbf{X}의 열공간에 대한 \mathbf{y}정사영이라는 기하학적 의미가 있다. 사영 벡터 \hat{\mathbf{y}} =  \mathbf{X} (\mathbf{X}^{T}\mathbf{X})^{-1} \mathbf{X}^{T} \mathbf{y} 를 만드는 사영 행렬 \mathbf{P} = \mathbf{X} (\mathbf{X}^{T}\mathbf{X})^{-1} \mathbf{X}^{T} 모자 행렬이라고 불린다. \mathbf{y}에 햇을 씌워 주기 때문이다.

7.3.3. Convexity

선형 회귀의 음의 로그가능도는 볼록 함수이기 때문에 유일한 최소값을 갖는다. 볼록 함수를 정확히 정의하자면, 먼저 볼록 집합을 정의해야 한다.

집합 \mathcal{S}는 모든 \mathbf{\theta}, \mathbf{\theta}^{\prime} \in \mathcal{S}\lambda \in [0,1]에 대해 \lambda \mathbf{\theta} + (1 - \lambda) \mathbf{\theta}^{\prime} \in \mathcal{S}면 볼록 집합이라고 한다. 즉, 집합 내 두 점을 아무거나 잡아서 그 두 점을 잇는 선분을 그었을 때 그 선분이 집합 내에 항상 포함되면 볼록 집합이다.

함수 \mathbf{f}에피그래프(함수 위의 점들의 집합)가 볼록하면 볼록 함수이다. 즉, 그 함수가 볼록집합 \mathcal{S}위에 정의되어 있고 모든 \mathbf{\theta}, \mathbf{\theta}^{\prime} \in \mathcal{S}\lambda \in [0,1] 에 대해 f( \lambda \mathbf{\theta} + (1 - \lambda) \mathbf{\theta}^{\prime} ) \leq  \lambda f(\mathbf{\theta}) + (1 - \lambda) f(\mathbf{\theta}^{\prime}) 가 되면 볼록 함수가 된다. 부등식에서 등호가 성립하지 않으면 강볼록이라 한다. 함수에 음수를 취한 것이 볼록함수일 경우 그 함수를 오목함수라 한다.

볼록 함수와 볼록/오목 어느 쪽도 아닌 함수의 예.

매끄러운 다변수 함수가 볼록함수인 것은 헤시안이 양의 정칙인 것과 동치이다. 이 경우 언제나 지역해가 최적해임이 보장되므로 음의 로그가능도가 볼록함수인지의 여부는 기계학습에서 매우 중요하다.

7.4. Robust linear regression

선형 회귀의 노이즈 \epsilon_{i} = y_{i} - \mathbf{w}^{T}\mathbf{x}_{i}는 보통 평균 0에 분산은 상수인 가우시안 \mathcal{N}(0, \sigma^{2})로 모델링하는데, 데이터에 이상치가 있다면 이는 좋지 못한 모델링이 된다. 이는 이상치는 제곱오차에 크게 반응하기 때문이다.

이상치 (아래쪽의 검은 점 3개)가 존재할 경우 최소제곱법이 대부분의 다른 데이터들과는 동떨어진 해를 내게 된다.

이상치에 대해 분포를 강건하게 만드는 법은 가우시안 분포 대신 꼬리가 두꺼운 분포를 사용하는 것이다. 라플라스 분포 p(y | \mathbf{y}, \mathbf{w}, b) = \mathrm{Lap}(y | \mathbf{w}^{T}\mathbf{x}, b) \propto e^{-\frac{1}{b} \lvert y - \mathbf{w}^{T} \mathbf{x} \rvert}를 사용하는 것이 대안이 될 수 있다. 이 때 음의 로그가능도는 \sum_{i} \lvert r_{i}(\mathbf{w})\rvert 가 되는데, 이는 선형이 아니기 때문에 최적화하기는 힘들다. r_{i} = r_{i}^{+} - r_{i}^{-}변수 분리하는 트릭을 쓰면 이 문제는 조건 r_{i}^{+}, r_{i}^{-} \geq 0, \mathbf{w}^{T} \mathbf{x}_{i} + r_{i}^{+} - r_{i}^{-} = y_{i}에 대해 식 \min_{\mathbf{w}, \mathbf{r}^{+}, \mathbf{r}^{-}} \sum_{i} (r_{i}^{+} + r_{i}^{-})를 최적화하는 선형 프로그래밍 문제로 바뀐다. 이는 유일한 해가 존재한다.

라플라스 분포에 대해 로그 가능도 대신 후버 손실 함수를 최소화시키는 것도 방법이다. 이는 다음과 같이 정의된다: L_{H}(r, \delta) = \frac{r^{2}}{2} if \lvert r \rvert \leq \delta, \delta \lvert r \rvert - \frac{\delta^{2}}{2} if \lvert r \rvert > \delta.

이는 오차가 \delta보다 작으면 l_{2} 손실이 되고, \delta보다 크면 l_{1} 손실이 되는데, 이 손실 함수의 장점은 미분가능할뿐더러 첫번째 도함수가 연속이라는 것이다. 때문에 최적화시키는 것도 매우 빠르다.

후버, L1, L2 손실 함수의 비교.

7.5. Ridge regression

가우시안 사전분포를 도입해 선형 회귀의 과적합을 줄여 보자. 가능도는 가우시안으로 가정한다.

21차 회귀에서 L2 정규화 계수가 작을 때 / 클 때.

7.5.1. Basic idea

사전분포의 세기 1/\tau^{2}에 대해 사전분포 p(\mathbf{w}) = \prod_{j} \mathcal{N}(w_{j} | 0, \tau^{2})를 도입할 때 최대사후분포근사는 \mathrm{argmax}_{\mathbf{w}}[\sum_{i=1}^{N} \log \mathcal{N} (y_{i}|w_{0} + \mathbf{w}^{T} \mathbf{x}_{i}, \sigma^{2} ) + \sum_{j=1}^{D} \log \mathcal{N}(w_{j} | 0, \tau^{2})] 가 되며, 이를 최대화하는 것은 J(\mathbf{w}) = \frac{1}{N} (y_{i} - (w_{0} + \mathbf{w}^{T} \mathbf{x}_{i}))^{2} + \frac{\sigma^{2}}{\tau^{2}} \lVert \mathbf{w} \rVert_{2}^{2} 을 최소화하는 것과 같다.

\lambda =  \frac{\sigma^{2}}{\tau^{2}} 로 두면 위의 식을 최소화시키는 해는 \hat{\mathbf{w}}_{\mathrm{ridge}} = (\lambda \mathbf{1}_{D} + \mathbf{X}^{T} \mathbf{X})^{-1} \mathbf{X}^{T} \mathbf{y} 가 된다. 이를 능선 회귀, 징벌된 최소 제곱법이라 한다. 일반적으로 모델 매개변수에 가우시안 사전분포를 도입하는 방법을 l_{2} 정규화 또는 비중 감쇠라 한다. 이 때 w_{0}은 함수의 높이를 결정할 뿐 함수의 복잡도에는 관여하지 않으므로 정규화의 대상이 되지 않음에 주의하라.

정규화계수별 학습 오차, 테스트 오차, 음의 로그 가능도, 오차의 교차검증 근사값.

이 책의 나머지 부분에서는 가우시안 사전분포 말고도 다양한 사전분포를 설정하는 법도 본다. 이런 여러 방법들을 정규화라고 한다.

7.5.2. Numerically stable computation

능선 회귀의 최적해는 행렬 \lambda \mathbf{1}_{D} + \mathbf{X}^{T} \mathbf{X} 이 역행렬을 가질 확률이 높아지기 때문에 통계적인 모델 피팅은 더 쉬워진다. 그러나 행렬의 역을 구하는 것은 알고리즘의 수치적 안정성 면에서 그리 바람직하지 못하다. 다른 대안은 없을까?

사전분포 p(\mathbf{w}) = \mathcal{N}(0, \mathbf{\Lambda}^{-1})에 대해 \Lambda =  \sqrt{\Lambda}  \sqrt{\Lambda}^{T}\Lambda촐스키 분해라고 두고 \tilde{\mathbf{X}} = \begin{pmatrix} \mathbf{X}/\sigma \\ \mathbf{\sqrt{\Lambda}} \end{pmatrix}에 대해 QR 분해 \tilde{\mathbf{X}} = \mathbf{Q}\mathbf{R}를 하면 최적해 \hat{\mathbf{w}}_{\mathrm{ridge}} = ( \tilde{\mathbf{X}}^{T}  \tilde{\mathbf{X}} )^{-1}  \tilde{\mathbf{X}}^{T}  \tilde{\mathbf{y}} = \mathbf{R}^{-1} \mathbf{Q} \tilde{\mathbf{y}} 가 된다. \mathbf{R}은 QR 분해의 정의에 위해 상삼각행렬이므로 역행렬을 구하는 것이 매우 빠르다. Matlab에서는 백슬래시 연산자로 제공되기도 한다.

표본수가 특징 수보다 훨씬 작을 경우에는 SVD 분해를 사용하기도 한다.

7.5.3. Connection with PCA

\mathbf{X} = \mathbf{U}\mathbf{S}\mathbf{V}^{T}를 특이값 분해(SVD)라 하면, \sigma_{j}\mathbf{X}의 특이값들이라 할 때 능선 회귀의 최적해에 의한 예측값은 \hat{\mathbf{y}} = \mathbf{X} \hat{\mathbf{w}}_{\mathrm{ridge}} = \sum_{j=1}^{D} \frac{ \sigma_{j}^{2}}{\sigma_{j}^{2} + \lambda} \mathbf{u}_{j}  \mathbf{u}_{j}^{T}  \mathbf{y}  이고 일반 선형 회귀의 최적해에 의한 예측값은 \hat{\mathbf{y}} = \mathbf{X} \hat{\mathbf{w}}_{\mathrm{LS}} = \sum_{j=1}^{D}  \mathbf{u}_{j}  \mathbf{u}_{j}^{T}  \mathbf{y}  가 된다. 이 때 두 예측값을 변별짓는 인자인 \mathrm{DOF}(\mathbf{\lambda}) = \sum_{j=1}^{D}  \frac{ \sigma_{j}^{2}}{\sigma_{j}^{2} + \lambda} 자유도라 한다. \lambda = 0이면 자유도는 D이고, \lambda \to \infty면 자유도 \to 0이 된다.

특이값 분해에서 특이값의 제곱은 \mathbf{X}^{T}\mathbf{X}의 고유값과 같으므로, 특이값이 작을 수록 사후분산이 커지게 되므로 (잘 판별되지 않음) 능선 회귀가 더 많이 (사후평균 쪽으로) 수축하게 된다.

이와 비슷한 테크닉으로 주성분 분해(PCA)가 있는데, 이는 특이값 중 가장 큰 특이값들만 남기는 방향으로 차원수를 줄이는 데 쓰인다.

7.5.4. Regularization effects of big data

정규화는 과적합을 줄이는 가장 유용한 방법 중 하나이지만, 다른 방법으로는 데이터를 많이 모으는 것이 있다. 데이터 양 vs 테스트 오차에 대한 학습 곡선의 한계에는 두 가지 종류가 있다: 데이터를 추출하는 과정 자체에 존재하는 한계 (노이즈 층)와 데이터를 추출하는 과정과 모델간의 괴리에서 나오는 한계 (구조적 오차).

예를 들어 다항 회귀에서 모델의 차수가 높으면 구조적 오차는 0에 가까워진다. 모델이 데이터의 생성 과정에서의 특성을 빠짐없이 모델링할 수 있게 되기 때문이다. 모델의 차수가 충분히 높은 모델들에 대해서는, 데이터 수가 많아질 수록 노이즈 층은 0에 가까워지게 된다. 다만, 유념할 것은 모델의 차수가 낮을 수록 데이터 수 증가에 대한 노이즈 층의 수렴 속도가 빨라진다는 것이다. 근사해야 할 매개변수의 수가 적기 때문이다. 데이터 수는 현실에서는 유한하기 때문에 우리가 근사한 매개변수들과 실제로 최선의 해가 되는 매개변수는 차이가 생길 수밖에 없다. 이를 근사 오차라고 한다. 이는 간단한 모델일수록 빨리 0으로 수렴한다.

사실 데이터가 아주 많으면 간단한 모델도 좋은 효과를 보인다. 그러나 현실적으로는 데이터가 부족한 문제가 생길 수 있기 때문에 적당한 복잡도를 가진 모델을 학습해야 할 이유는 여전히 존재한다. 데이터를 충분히 확보했다고 하더라도, 주어진 문제에서 분석하고자 하는 특성이 달라진다면 이것은 또 다시 문제가 된다. 이런 경우에는 복수의 연관된 모델을 동시에 학습시킨다 (다중 태스크 학습). 이는 데이터가 많은 태스크에서 학습한 모델의 특성을 데이터가 적은 태스크를 학습할 때 활용할 수 있게 해 준다.

7.6. Bayesian linear regression

능선 회귀는 점 근사에는 유용하지만, 전체 사후분포를 계산하고 싶을 때가 있다. 일단 \sigma^{2}가 아는 값이라고 할 때, p(\mathbf{w} | \mathcal{D}, \sigma^{2})를 계산한다고 해 보자. 가능도는 가우시안으로 가정한다.

7.6.1. Computing the posterior

선형 회귀의 가능도는 다음과 같다.

p(\mathbf{y} | \mathbf{X}, \mathbf{w}, \mu, \sigma^{2}) \propto e^{-\frac{1}{2 \sigma^{2}} (\mathbf{y} - \mu \mathbf{1}_{N} - \mathbf{X} \mathbf{w})^{T}  (\mathbf{y} - \mu \mathbf{1}_{N} - \mathbf{X} \mathbf{w}) }

계산의 편의를 위해 입력과 출력을 모두 평행이동시켜 0을 중심이라고 가정한 뒤 평균에 대한 사전분포를 p(\mu) \propto 1로 놓고 적분해 빼내면,

p(\mathbf{y} | \mathbf{X}, \mathbf{w}, \sigma^{2}) \propto e^{-\frac{1}{2 \sigma^{2}} \lVert \mathbf{y} - \mathbf{X} \mathbf{w} \rVert_{2}^{2} }

이 된다. 가우시안 켤레사전분포 p(\mathbf{w}) = \mathcal{N}(\mathbf{w} | \mathbf{w}_{0}, \mathbf{V}_{0}) 에 대해 사후분포 p(\mathbf{w} | \mathbf{X}, \mathbf{y}, \sigma^{2}) = \mathcal{N}(\mathbf{w} | \mathbf{w}_{N}, \mathbf{V}_{N}) 은 다음과 같아진다.

\mathbf{w}_{N} = \mathbf{V}_{N}\mathbf{V}_{0}^{-1} \mathbf{w}_{0} + \frac{1}{\sigma^{2}} \mathbf{V}_{N} \mathbf{X}^{T} \mathbf{y}

\mathbf{V}_{N} = \sigma^{2} (\sigma^{2} \mathbf{V}_{0}^{-1} + \mathbf{X}^{T} \mathbf{X})^{-1}

이 때 \mathbf{w}_{0} = \mathbf{0}이고 \mathbf{V}_{0} = \tau^{2} \mathbf{I}이면 사후평균은 능선 근사가 된다. 이것은 가우시안에서 평균과 최빈값이 같다는 사실에 기인한다.

7.6.2. Computing the posterior predictive

사후예측분포도 가우시안이며, 이는 다음과 같다.

p(y | \mathbf{x}, \mathcal{D}, \sigma^{2}) = \mathcal{N}(y | \mathbf{w}_{N}^{T} \mathbf{x}, \sigma^{2} + \mathbf{x}^{T} \mathbf{V}_{N}\mathbf{x})

이 때 사후예측분포의 분산은 관측 노이즈의 분산과 매개변수의 분산에 의해 결정됨을 알 수 있는데, 이는 입력 데이터가 학습 데이터에서 멀어질 수록 해당하는 사후예측분포값의 오차구간이 커지는 것으로 드러난다. 이는 능동 학습법처럼 우리가 알 수 없는 것에 대해 모델링해야 하는 과제에서 중요하다.

이와 반대로, 대입 근사법은 입력 데이터가 학습 데이터에 얼마나 떨어졌는지에 관계없이 항상 일정한 오차구간을 갖는데, p(y | \mathbf{x}, \mathcal{D}, \sigma^{2})  =  p(y | \mathbf{x}, \hat{\mathbf{w}}, \sigma^{2}) 가 되어 사후예측분포의 분산 중 매개변수의 분산에 관한 항이 사라지기 때문이다.

사후예측분포의 대입 근사 및 일반 사후예측분포.

7.6.3. Bayesian inference when \sigma^{2} is unknown

베이지안 선형 회귀에서 분산을 모르면 어떻게 될까?

7.6.3.1. Conjugate prior

가능도는 p(\mathbf{y} | \mathbf{X}, \mathbf{w}, \sigma^{2}) = \mathcal{N}( \mathbf{y} | \mathbf{X}\mathbf{w}, \sigma^{2} \mathbf{I}_{N} ) 일 것이다.

이에 대한 켤레사전분포는 p(\mathbf{w}, \sigma^{2}) = \mathrm{NIG}( \mathbf{w}, \sigma^{2}  | \mathbf{w}_{0}, \mathbf{V}_{0}, a_{0}, b_{0}) = \frac{b_{0}^{a_{0}} (\sigma^{2})^{-(a_{0} + \frac{D}{2} + 1)}}{(2 \pi)^{\frac{D}{2}} |\mathbf{V}_{0}|^{\frac{1}{2}} \Gamma(a_{0})} e^{-\frac{1}{2 \sigma^{2}} ((\mathbf{w}-\mathbf{w}_{0})^{T} \mathbf{V}_{0}^{-1} (\mathbf{w}-\mathbf{w}_{0}) + 2b_{0})}가 되고

사후분포 p(\mathbf{w}, \sigma^{2} | \mathcal{D}) = \mathrm{NIG}( \mathbf{w}, \sigma^{2}  | \mathbf{w}_{N}, \mathbf{V}_{N}, a_{N}, b_{N}) 는 다음과 같다.

\mathbf{w}_{N} = \mathbf{V}_{N} (\mathbf{V}_{0}^{-1} \mathbf{w}_{0} + \mathbf{X}^{T} \mathbf{y})

\mathbf{V}_{N} = (\mathbf{V}_{0}^{-1} + \mathbf{X}^{T} \mathbf{X})^{-1}

a_{N} = a_{0} + \frac{N}{2}

b_{N} = b_{0} + \frac{1}{2}(\mathbf{w}_{0}^{T} \mathbf{V}_{0}^{-1} \mathbf{w}_{0} + \mathbf{y}^{T} \mathbf{y} - \mathbf{w}_{N}^{T} \mathbf{V}_{N}^{-1} \mathbf{w}_{N})

여기서 \mathbf{w}_{N}, \mathbf{V}_{N}은 분산을 알 때와 별 차이가 없다. a_{N}도 그저 카운트를 업데이트할 뿐이다. b_{N}은 의미가 좀 있는데, 사전분포의 값과 실측 제곱합, 사전분포로 인한 오차값을 합한 것이다.

사후주변분포는 p(\sigma^{2} | \mathcal{D}) = \mathrm{IG}(a_{N}, b_{N}) , p(\mathbf{w} | \mathcal{D}) = \mathcal{T}(\mathbf{w}_{N}, \frac{b_{N}}{a_{N}} \mathbf{V}_{N}, 2 a_{N}) 이다.

사후예측분포는 p(\mathbf{y} | \mathbf{X}, \mathcal{D}) = \mathcal{T}(\mathbf{X} \mathbf{w}_{N}, \frac{b_{N}}{a_{N}} (\mathbf{I}_{m} + \mathbf{X} \mathbf{V}_{N} \mathbf{X}^{T}), 2 a_{N})  가 된다. 이 때 사후예측분포의 분산은 측정 오차와 \mathbf{w}의 불확실성의 합으로 볼 수 있다.

보통 a_{0} = b_{0} = 0, \mathbf{w}_{0} = \mathbf{0}, 적당한 g > 0에 대해 \mathbf{V}_{0} = g(\mathbf{X}^{T}\mathbf{X})^{-1})로 잡고는 한다. 이를 g-사전분포라 하는데, 이 때 사전분포의 공분산을 \mathbf{I}가 아니라 ( \mathbf{X}^{T}\mathbf{X})^{-1}) 로 잡은 것은 입력의 범위 크기에 사후분포가 의존하지 않게 하기 위함이다.

비정보형 사전분포를 쓴다면 N번의 관찰 이후 사후정밀도는 \mathbf{V}_{N}^{-1} = \mathbf{X}^{T} \mathbf{X} 가 되는데, 이에 착안해 1번의 관찰의 효과를 나타내는 단위 정보 사전분포\mathbf{V}_{0}^{-1} = \frac{1}{N}\mathbf{X}^{T} \mathbf{X} 로 모델링한다. 이는 g = N일 때의 g-사전분포와 같다.

7.6.3.2. Uninformative prior

비정보형 사전분포는 g-사전분포에서 g = \infty로 놓으면 얻어지는 p(\mathbf{w}, \sigma^{2}) \propto \sigma^{-(D+2)}이다.

또는 반켤레 사전분포 p(\mathbf{w}, \sigma^{2}) = p(\mathbf{w}) p(\sigma^{2}) 로 시작해 각각의 항을 비정보 사전분포로 놓아 p(\mathbf{w}, \sigma^{2}) \propto \sigma^{-2} 를 얻을 수도 있다. 이에 해당되는 사후분포는 다음과 같다.

p(\mathbf{w}, \sigma^{2} | \mathcal{D}) = \mathrm{NIG}( \mathbf{w}, \sigma^{2} | \mathbf{w}_{N}, \mathbf{V}_{N}, a_{N}, b_{N}) ,

\mathbf{w}_{N} = \hat{\mathbf{w}}_{\mathrm{MLE}} = (\mathbf{X}^{T} \mathbf{X})^{-1}  \mathbf{X}^{T}  \mathbf{y}

\mathbf{V}_{N} = (\mathbf{X}_{T} \mathbf{X})^{-1}

a_{N} = \frac{N-D}{2}

b_{N} = \frac{1}{2}(\mathbf{y} -  \hat{\mathbf{w}}_{\mathrm{MLE}} )^{T} (\mathbf{y} -  \hat{\mathbf{w}}_{\mathrm{MLE}} )

이 때 가중치값의 주변분포는 p(\mathbf{w} | \mathcal{D}) = \mathcal{T} (\mathbf{w} | \hat{\mathbf{w}}, \frac{1}{N-D}  (\mathbf{y} -  \hat{\mathbf{w}}_{\mathrm{MLE}} )^{T} (\mathbf{y} -  \hat{\mathbf{w}}_{\mathrm{MLE}} (\mathbf{X}^{T} \mathbf{X})^{-1}) , N - D) 가 된다.

7.6.3.3. An example where Bayesian and frequentist inference coincide

가중치 w_{j}의 주변분포는 \mathbf{C} = (\mathbf{X}^{T} \mathbf{X})^{-1}, s^{2} = \lVert \mathbf{y}-\mathbf{X}\hat{\mathbf{w}} \rVert_{2}^{2} 라 하면 p(w_{j} | \mathcal{D}) = T (w_{j} | \hat{w}_{j}, \frac{C_{jj} s^{2}}{N-D}  , N - D) 가 된다. 이는 최대가능도근사의 표본분포와 같아지므로, 빈도학파 신뢰구간과 베이지안 신용구간이 정확히 같아진다.

이런 세팅을 항상 쓸 수는 없다. 표본의 수가 데이터의 특성 수보다 작은 경우에는 최대가능도근사는 아예 존재하지도 않기 때문이다.

7.6.4. EB for linear regression (evidence procedure)

사전분포를 모를 때 사전분포의 초매개변수를 결정하기 위한 실측 베이스 과정을 알아보자. 사전분포의 정밀도와 관측 노이즈의 쌍 \mathbf{\eta} = (\mathbf{\alpha}, \lambda) 중 주변가능도를 최대화시키는 것을 고르는 것이다. 이를 증거 과정이라 하며 교차검증법의 대안이 될 수 있다.

서로 다른 초매개변수에 대한 교차검증법과 증거 과정의 예시.

교차검증법에 비한 증거 과정의 이점은 명백하다: 모든 특성에 대해 서로 다른 초매개변수 \alpha_{j}를 최적화할 수 있다. (교차검증법은 모델을 일일이 피팅해야 하므로 둘 이상의 초매개변수 최적화가 사실상 불가능하다). 증거 과정은 증거도에 대한 좋은 근사도 제공해 주기 때문에 서로 다른 모델끼리 성능을 비교하기에도 용이하다.

요점 정리

  • 선형 회귀란?
  • 선형 회귀의 기본 식 : p(y | \mathbf{x}, \mathbf{\theta}) =  \mathcal{N}(y | \mathbf{w}^{T} \mathbf{x}, \sigma^{2})
  • 최대가능도 근사 및 최소제곱법.
  • 강건한 선형 회귀 : 라플라스 가능도 등을 써서 이상치에 대처.
  • 능선 회귀 : 가우시안 사전분포 등을 써서 정규화를 하여 과적합에 대처.
  • 베이지안 선형 회귀 : 전체 사후분포를 계산하고 싶을 때.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중