cs182 3강 정리

이영빈·2021년 10월 24일
1

cs182

목록 보기
3/3

이번 블로그에서는 cs182 3강을 정리할 예정이다. 3강은 편차와 분산에 대한 트레이드오프(Variance and Bias tradeoff), 정규화, 머신러닝에서의 데이터셋 역할 나누기(Training set & test sets)에 대해 배울 예정이다.
해당 강의의 유튜브목록은 링크이며 해당 강의 사이트는 여기에서 찾을 수 있다.

3강

3.1 Error Analysis

지난 시간에 우리는 Empirical risk와 True risk에 대해 다루었고 Empirical risk는 손실함수에 대한 평균 즉 학습을 통해 줄일 수 있는 리스크라 볼 수 있다. 반면 True risk는 Training이후에 새로운 데이터셋에 대한 리스크를 의미하며 학습단계에서 일어나는 문제가 아닌 학습 이후 test할때 생기는 리스크를 의미한다. 만일 Empirical risk가 낮고 True risk가 높다고 한다면 학습단계에서의 리스크는 낮고 test할때 리스크가 높아진 것이기 때문에 Overfitting이 되었다고 볼 수 있다. Empirical risk와 True risk 모두 높다면 학습단계에서의 리스크도 높은것이기 때문에 우리는 Underfitting이 된다고 이야기할 수 있다. 이중 Supervised learning은 Empirical risk를 최소화하는 것이 목표이다.

이제 우리는 error를 분석하고 error에 대해 다루는 기술을 배울 것이다. 그 전에 우리는 classification이 아닌 regression에 초점을 맞출 것이다. regression와 classification의 차이점은 output이 classification은 확률인 반면 regression은 연속확률분포로 나오게 된다. 즉 우리가 구하는 logpθ(yx)=N(fθ(x),Σθ(x))\log p_\theta(y|x)=\mathcal{N}(f_\theta(x),\Sigma_\theta(x))라 볼 수 있다. 이떄 N\mathcal{N}은 정규분포(Normal distribution)이다. 정규분포의 식은 다음과 같고 이를 log를 씌워준다면 다음과 같다.

N(fθ(x),Σθ(x))=1Σθ(x)2πexp((fθ(x)y)22Σθ(x)2)=12logΣθ(x)(fθ(x)y)22Σθ(x)2\mathcal{N}(f_\theta(x),\Sigma_\theta(x)) = {\frac{1}{\Sigma_\theta(x)\sqrt{2\pi}} \exp(-\frac{(f_\theta(x)-y)^2}{2\Sigma_\theta(x)^2})}=-\frac{1}{2}\log|\Sigma_\theta(x)| -\frac{(f_\theta(x)-y)^2}{2\Sigma_\theta(x)^2}

만일 이 식에서 Σθ(x)=I\Sigma_\theta(x)=I이라면 logpθ(yx)=12fθ(x)y2+const\log p_\theta(y|x)=-\frac{1}{2}||f_\theta(x)-y||^2 + const라 볼 수 있다. 즉 MSE와 동일한 식이라는걸 유추할 수 있다.

데이터셋에서 기대 error는 EDp(D)[fD(x)f(x)2]=Dp(D)fD(x)f(x)2E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert f_\mathcal{D}(x)-f(x)\Vert^2]=\sum_\mathcal{D}p(\mathcal{D})\Vert f_\mathcal{D}(x)-f(x)\Vert^2로 정의된다. 이 식에서 우리는 Bias와 Variance에 상관관계에 대해 알 수 있다. 이룰 위해서는 우리는 fˉ(x)=EDp(D)[fD(x)]\bar{f}(x)=E_{\mathcal{D}\sim p(\mathcal{D})}[f_\mathcal{D}(x)] 라고 가정한다.

EDp(D)[fD(x)f(x)2]=EDp(D)[fD(x)fˉ(x)+fˉ(x)f(x)2]=EDp(D)[(fD(x)fˉ(x))+(fˉ(x)f(x))2]=EDp(D)[fD(x)fˉ(x)2]+EDp(D)[fˉ(x)f(x)2]+EDp(D)[2(fD(x)fˉ(x))T(fˉ(x)f(x))]=EDp(D)[fD(x)fˉ(x)2]+EDp(D)[fˉ(x)f(x)2]E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert f_\mathcal{D}(x)-f(x)\Vert^2] \\=E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert f_\mathcal{D}(x)-\bar{f}(x)+\bar{f}(x)-f(x)\Vert^2]\\=E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert (f_\mathcal{D}(x)-\bar{f}(x))+(\bar{f}(x)-f(x))\Vert^2]\\=E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert f_\mathcal{D}(x)-\bar{f}(x)\Vert^2]+E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert\bar{f}(x)-f(x)\Vert^2]\\+E_{\mathcal{D}\sim p(\mathcal{D})}[2(f_\mathcal{D}(x)-\bar{f}(x))^T(\bar{f}(x)-f(x))]\\=E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert f_\mathcal{D}(x)-\bar{f}(x)\Vert^2]+E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert\bar{f}(x)-f(x)\Vert^2]

여기에서 EDp(D)[2(fD(x)fˉ(x))T(fˉ(x)f(x))]E_{\mathcal{D}\sim p(\mathcal{D})}[2(f_\mathcal{D}(x)-\bar{f}(x))^T(\bar{f}(x)-f(x))]가 0이 되는 이유는 fˉ(x)=EDp(D)[fD(x)]\bar{f}(x)=E_{\mathcal{D}\sim p(\mathcal{D})}[f_\mathcal{D}(x)]이므로 앞에 있는 항 EDp(D)[2(fD(x)fˉ(x))]E_{\mathcal{D}\sim p(\mathcal{D})}[2(f_\mathcal{D}(x)-\bar{f}(x))]이 0이 된다.

결과적으로 결과식은 EDp(D)[fD(x)fˉ(x)2]+EDp(D)[fˉ(x)f(x)2]E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert f_\mathcal{D}(x)-\bar{f}(x)\Vert^2]+E_{\mathcal{D}\sim p(\mathcal{D})}[\Vert\bar{f}(x)-f(x)\Vert^2] 에서 앞에 있는 항은 결과값-기대값의 제곱의 평균이므로 분산(VarianceVariance)에 속하며 뒤에 있는 항은 기대값-실제값의 제곱이므로 편차의 제곱(Bias2Bias^2)에 속한다. 이 식에서 만일 비교적 분산이 높다면 우리는 너무 적은 데이터 혹은 너무 복잡한 함수를 사용했기에 오버피팅이라 부를 수 있고 만일 비교적 편차가 크다면 우리는 부족한 학습이라 판단할 수 있으므로 언더피팅이라 부를 수 있다.

3.2 Regularization

Regualarization은 분산을 줄이기 위해 loss function에 추가하는 어떤 것이다라고 볼 수 있다. 여기에 Bayesian 견해를 추가하면 Regularization은 파라미터에서 사전지식으로도 볼 수 있다. 이를 기반으로 Regression은 D\mathcal{D}를 볼때 가장 최적의 θ\theta가 무엇인지라는 질문으로 치환가능한다. 질문을 수식으로 표현하면 p(θD)=p(θ,D)p(Dp(θ,D)=p(Dθ)p(θ)p(\theta\vert\mathcal{D})=\frac{p(\theta, \mathcal{D})}{p(\mathcal{D}}\propto p(\theta,\mathcal{D})=p(\mathcal{D}\vert\theta)p(\theta)이다. 이를 log를 취한 다음 정리하게 되면 새로운 loss function이 정의된다.

L=(i=1Nlogp(yixi,θ))logp(θ)\mathcal{L}=-(\sum_{i=1}^N\log p(y_i\vert x_i,\theta))-\log p(\theta)


정규화식을 선형 회귀에 대입해서 설명가능하다. 여기에서 p(θ)=N(0,σ2)p(\theta)=\mathcal{N}(0,\sigma^2)라 가정하자. 이 가정에 의해 log변환 이후 식을 전개하면 logp(θ)=λθ2+const\log p(\theta)=-\lambda\Vert\theta\Vert^2 + const 이며 여기에서 λ=12σ2\lambda=\frac{1}{2\sigma^2}은 하이퍼파라미터이다. 여기에서 logp(θ)\log p(\theta) 는 L2 Norm이라 부른다.

L2 Norm뿐만 아니라 Regularization에는 λi=1Dθi\lambda\sum_{i=1}^\mathcal{D}\vert\theta_i\vert인 L1 Norm이 있고 GAN에서 많이 사용하는 Gradient Penalty, Neural Network에서 가장 전형적으로 사용하는 Dropout도 있다.

Regularization은 Bayesian 관점 뿐만 아니라 수치적인 관점에서 보면 미달결정된 문제를 더 쉽게 결정될 수 있게 한다고 볼 수 있고 최적화 관점에서 보면 loss landscape를 더 쉽게 찾을 수 있게 하는 것을 의미한다. (역설적으로 regularizer는 최적화를 방해하기 때문에 underfitting을 줄이는 효과를 얻을 수 있다. GAN에서 가장 많이 나타난다.)

3.3 Training sets and test sets

머신러닝에서 실제 워크플로우는 다음과 같이 나눌 수 있다. 일단 L(θ,Dtrain)\mathcal{L}(\theta, \mathcal{D}_{train})으로 θ\theta 를 학습시킨다. 만일 L(θ,Dtrain)\mathcal{L}(\theta, \mathcal{D}_{train})가 충분히 낮지 않으면 그건 언더피팅으로 볼 수 있다. 그 다음 L(θ,Dval)\mathcal{L}(\theta, \mathcal{D}_{val}) 을 보아야 한다. 만약 L(θ,Dval)>>L(θ,Dtrain)\mathcal{L}(\theta, \mathcal{D}_{val}) >> \mathcal{L}(\theta, \mathcal{D}_{train}) 이라면 그것은 오버피팅으로 볼 수 있다.

그러나 이 플로우에는 실제 데이터에 대한 적용이 빠져있으므로 test set을 만들어 활용해야 한다. 이때 test set은 최종 성능을 위해서 딱 1번만 사용되어야 한다.

정리

이번 내용은 bias와 variance를 나누고 이해하는데 시간이 조금 걸렸고 regularization 파트에서 L2 Norm 도출과정을 알고 나니 L2 Norm과 정규분포 사이의 관계를 더 자세히 알게 되었다.

profile
모두의연구소에서 재직하고 있는 리서치콘텐츠팀 이영빈입니다.

0개의 댓글