History
home
BDA 연혁
home

- 선형회귀분석 (3)

편향/분산 트레이드오프

모델의 새로운 데이터를 예측할 때, 모델의 오차는 다음 세 가지의 오차의 합으로 표현할 수 있다. 자세한 유도과정은 단순한 계산의 반복이기에 따로 다루지 않겠다.
(모델의 오차) = (편향)^2 + (분산) + (줄일 수 없는 오차)
편향 모델이 예측할 기댓값과 실제값의 차이로 잘못된 가정으로 인해 생겨나는 오류이다. 일반적으로 편향이 큰 모델은 훈련데이터에 대해 과소적합이 되기 쉽다.
분산 훈련데이터에 대한 모델의 예측값들에 대한 분산이다. 분산이 높다는 것은 예측값들이 훈련데이터에 민감하게 반응한다는 것이다. 따라서 높은 분산을 가진 모델들은 과대적합되기 쉽다.
줄일 수 없는 오차 데이터 자체의 자체의 잡음으로 인해서 생겨나는 오차이다. 이는 모델을 수정해서는 바꿀 수 없는 오차이므로 일반적으로 모델 튜닝과정에서는 고려하지 않는 오차이다.
따라서 모델의 오차를 평가할 때 편향과 분산을 고려한다. 일반적으로 모델의 복잡도가 커지면 분산은 증가하고 편향은 줄어드는 경향이 있다.

릿지 회귀(Ridge regression)

Ridge regression은 회귀 계수의 크기만큼의 패널티를 부과하는 방법이다. RSS를 사용하여 나타내면 다음과 같다.
β^ridge=argminβi=1N(yiβ0j=1pxijβj)2+λj=1pβj2\hat{\beta}^{ridge} = argmin_{\beta} \sum_{i=1}^N(y_i - \beta_0 - \sum_{j=1}^p x_{ij}\beta_j)^2 + \lambda \sum_{j=1}^p\beta_j^2
λ0\lambda \geq 0는 complexity parameter로 패널티의 정도를 조절한다. RSS를 통한 릿지는 이후에 신경망을 다룰 때 weight decay로 다시 활용된다. 위 릿지 문제는 라그랑주 승수법을 활용하면 아래의 문제를 푸는 것과 동치이다.
β^ridge=argminβi=1N(yiβ0j=1pxijβj)2 subject to j=1pβj2t\hat{\beta}^{ridge} = argmin_{\beta} \sum_{i=1}^N(y_i - \beta_0 - \sum_{j=1}^p x_{ij}\beta_j)^2 \ \text{subject to } \sum_{j=1}^p \beta_j^2 \leq t
즉, 회귀 계수를 상수 tt보다 작거나 같다는 제약조건을 걸어 RSS를 푸는 문제이므로 독립변수들간의 스케일링이 먼저 이뤄져야 한다. 따라서 다음부터 나올 독립변수들은 아래와 같은 표준화가 이뤄졌다고 가정하고 논의를 이어나간다.
1Ni=1Nxij=0, 1Ni=1Nxij2=1 for all j=1,...,p\frac{1}{N}\sum_{i=1}^N x_{ij} = 0, \ \frac{1}{N}\sum_{i=1}^N x_{ij}^2 = 1 \ \text{for all} \ j=1,...,p
릿지 회귀를 행렬표현으로 바꿔 해를 구하면 다음과 같다.
RSS=(yXβ)T(yXβ)+λβTβ,RSSβ=2XT(yXβ)+2λβ=0,\begin{align*} RSS = (\mathbf{y} - \mathbf{X}\beta)^T(\mathbf{y} - \mathbf{X}\beta) + \lambda \beta^T\beta, \\ \frac{\partial RSS}{\partial \beta} = -2\mathbf{X}^T(\mathbf{y} - \mathbf{X}\beta) + 2\lambda\beta = 0, \\ \end{align*}
따라서
β^ridge=(XTX+λI)1XTy\hat{\beta}^{ridge} = (\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^T\mathbf{y}
이다. 위 식이 릿지 회귀를 제안하였을 때 처음 나온 식이다. 예를 들어 p>Np>N일 경우, XTX\mathbf{X}^T\mathbf{X}는 full-rank가 아니기에, 역행렬을 가지지 않는다. 때문에 각 대각원소에 λ\lambda를 더해 역행렬을 구할 수 있도록 처음 제안되었었다.(Hoerl and Kennard, 1970).
XRN×p\mathbf{X} \in \mathbb{R}^{N \times p}를 특잇값 분해를 통해 다음과 같이 나타낼 수 있다.
X=UDVT\mathbf{X} = \mathbf{U} \mathbf{D} \mathbf{V}^T
URN×p, VRp×p\mathbf{U} \in \mathbb{R}^{N \times p}, \ \mathbf{V} \in \mathbb{R}^{p \times p}는 직교행렬로 각각 X\mathbf{X}의 열공간과 행공간를 span하고, DRp×p\mathbf{D} \in \mathbb{R}^{p \times p}는 대각원소가 X\mathbf{X}의 특잇값 d1d2...dp0d_1 \geq d_2 \geq ... \geq d_p \geq 0 (XTX\mathbf{X}^T\mathbf{X}의 고윳값의 제곱근, 참고로 X\mathbf{X}의 공분산 행렬은 XTX/N\mathbf{X}^T\mathbf{X}/N이다.)인 대각행렬이다.
특잇값 분해를 통해 최소제곱해를 나타내면 다음과 같다.
Xβ^ls=X(XTX)1XTy=UUTy=j=1pujujTy where the uj are the columns of U\begin{align*} \mathbf{X}\hat{\beta}^{ls} &= \mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y} \\ &= \mathbf{U}\mathbf{U}^T\mathbf{y} \\ &= \sum_{j=1}^p \mathbf{u}_j\mathbf{u}_j^T\mathbf{y} \ \text{where the} \ \mathbf{u}_j \ \text{are the columns of} \ \mathbf{U} \end{align*}
U\mathbf{U}의 컬럼벡터들은 X\mathbf{X}의 열공간의 정규직교 기저이므로, y\mathbf{y}X\mathbf{X}의 열공간에 정사영시킨 y^\hat{\mathbf{y}}을 직교기저 u1,...,up\mathbf{u}_1, ..., \mathbf{u}_p와 스칼라 uj,y\left\langle \mathbf{u}_j, \mathbf{y} \right\rangle의 선형결합을 통해 표현한 것이다. 마찬가지로 릿지회귀의 해를 나타내면 다음과 같다.
Xβ^ridge=X(XTX+λI)1XTy=UD(D2+λI)1DUTy=j=1pujdj2dj2+λujTy\begin{align*} \mathbf{X}\hat{\beta}^{ridge} &= \mathbf{X}(\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^T\mathbf{y} \\ &= \mathbf{U}\mathbf{D}(\mathbf{D}^2 + \lambda \mathbf{I})^{-1}\mathbf{D}\mathbf{U}^T\mathbf{y} \\ &= \sum_{j=1}^p \mathbf{u}_j \frac{d_j^2}{d_j^2 + \lambda} \mathbf{u}_j^T\mathbf{y} \end{align*}
즉, dj2dj2+λ\frac{d_j^2}{d_j^2 + \lambda}에 의해 y^\hat{\mathbf{y}}에 대한 uj\mathbf{u}_j의 영향력이 줄어든다. djd_j가 크면 1에 가까워지고, 매우 작으면 0에 가까워져 해당 변수에 대한 영향력이 줄어든다. 여기서 djd_j가 작은 값을 갖는 것은 무엇을 의미하는지 더 알아보자.
XTX=VD2V\mathbf{X}^T\mathbf{X} = \mathbf{V}\mathbf{D}^2\mathbf{V}로, 이는 XTX\mathbf{X}^T\mathbf{X}의 교윳값 분해로도 볼 수 있다. 고유벡터 vjv_j(V\mathbf{V}jj번째 컬럼벡터)는 X\mathbf{X}주성분 방향(principal component direction)이라고 한다. first principal component v1v_1에 대해 z1=Xv1\mathbf{z}_1 = \mathbf{X}v_1X\mathbf{X}의 열공간의 선형결합 중 가장 큰 분산을 가지며, 다음과 같이 표현할 수 있다.
Var(z1)=Var(Xv1)=v1TVar(X)v1=v1T1NXTXv1=1Nv1Td12v1=d12Nv12=d12N\begin{align*} Var(\mathbf{z}_1) &= Var(\mathbf{X}v_1) = v_1^TVar(\mathbf{X})v_1 \\ &= v_1^T\frac{1}{N}\mathbf{X}^T\mathbf{X}v_1 = \frac{1}{N}v_1^Td_1^2v_1 \\ &= \frac{d_1^2}{N}\|v_1\|^2 = \frac{d_1^2}{N} \end{align*}
또한 XV=UD\mathbf{X}\mathbf{V} = \mathbf{U}\mathbf{D}이므로, z1=Xv1=u1d1\mathbf{z_1} = \mathbf{X}v_1 = \mathbf{u}_1d_1이다. 즉 작은 djd_jX\mathbf{X}의 작은 분산을 가지는 방향이고, 릿지는 이러한 방향들의 영향을 줄여준다.
릿지 회귀는 위의 그림에서 y\mathbf{y}를 Principal component에 정사영시키면서, 정사영된 input data들의 분산이 작은 주성분인 Smallest Principal Component의 영향을 더 줄여준다. 각 주성분들은 모두 여러 변수의 선형결합으로 이뤄져 있으므로 한 축이 0이 된다해도 제거되는 변수는 없음을 알 수 있다. 그렇기에 릿지회귀에서는 effective degrees of freedom을 정의하여 연속된 버전으로 어느정도의 파라미터를 사용했는지를 파악한다. effective degrees of freedom는 다음과 같이 정의한다.
df(λ)=tr(Hλ)=tr[X(XTX+λI)1XT]=j=1pdj2dj2+λ\begin{align*} \text{df}(\lambda) &= tr(H_{\lambda}) \\ &= tr[\mathbf{X}(\mathbf{X^T}\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^T] \\ &= \sum_{j=1}^p \frac{d_j^2}{d_j^2 + \lambda} \end{align*}
λ\lambda가 0일 때 df(λ\lambda)는 pp로 모든 변수를 사용함을 알 수 있고, λ\lambda가 매우 큰 값을 가지면 0으로 수렴하여 어떠한 변수도 사용하지 않음을 알 수 있다. 일반적으로 최적의 λ\lambda를 찾기 위해서는 cross-validation를 이용해 가장 작은 test error를 갖는 λ\lambda를 찾는다.