경험적 위험 최소화
Chapter 2 : Empirical Risk Minimization
-
목차
경험적 위험 최소화
8.2.1 Hypothesis Class of Function
- $x_n \in \mathbb{R}^D$ : N개의 example
- $y_n \in \mathbb{R}$: label Supervised Learning
$y_n$에 거의 근접한 예측을 하는 predictor Function을 얻어야 함
\(f(\centerdot, \theta^*) \approx y_n\)
일반적으로,
\[\hat{y_n} = f(x_n, \theta^*)\]Example
머신러닝에서는 Affine function을 주로 liear Function으로 사용
\[f(x_n, \theta) = \theta_0 + \sum_{d=1}^{D} \theta_d x_n^{(d)}\]- $x_n^{(d)}$ 이 input
- 실수값이 output
8.2.2 Loss Function for Training
Predictor가 에측한 값이 실제 데이터와 맞는지 확인하기 위한 loss function $l(y_n, \hat{y_n})$ 정의
목적: 모든 N개의 Training Example를 고려하여 loss를 최소화시키는 predictor의 paramter $\theta^*$를 찾는 것
Empirical risk
표현
Example
Sqared Loss $l(y_n, \hat{y_n}) = (y_n, \hat{y_n})^2$ 로 정의하여 Empirical risk를 최소화시키면 다음과 같음
\[\underset{\theta \in \mathbb{R}^D}{min} \frac{1}{N} (y_n - f(x_n, \theta))^2\]Predictor $f(x_n, \theta)$를 $\theta^Tx_n$ 로 바꿔서,
\[\underset{\theta \in \mathbb{R}^D}{min} {1 \over N} (y_n - \theta^Tx_n)^2 = \underset{\theta \in \mathbb{R}^D}{min} \lVert{y-X\theta}\rVert^2\]Test Data에서도 잘 작동하는지 확인 -> Expected Risk
\[R_{true}(f) = \mathbb{E}_{x, y}[l(y,f(x))]\]8.2.3 Regularization to Reduce Overfitting
Empirical Risk(Trainingset Loss)를 minimization 하여 모델을 학습시키다 보면 Expected Risk(Testset Loss)는 오히려 증가하는 경우가 발생 -> Overfitting
Regularization 이라는 Penalty Term을 줘서 모델의 bias을 교정할 수 있음
Example
penalty Term 추가
\[\underset{\theta}{min} \frac{1}{N} \lVert{y-X\theta}\rVert^2 + \lambda \lVert{\theta}\rVert^2\]- $\lVert{\theta}\rVert^2$ : Regularizer
- $\lambda$ : Regularization Parameter
- $\lambda$는 크기에 따라 $\theta$의 전체크기와 loss의 최소화 사이를 trade-off 관계로 조절
8.2.4 Cross-Validation to Assess the Generalization Performance
Generalization Error을 측정할때 Test data에 대한 Predictor의 예측성능을 기준으로 한다.
Test Data를 Validation set이라고 부름.
Validaion Set을 분리하는 만큼 Training data의 수가 부족해지고 그러면 오히려 에측 성능이 떨어질 수 있음 -> cross-validation
개념 도입
K-fold cross-validation
: K개의 chunk로 나누고 각각의 Chunk를 번갈아가며 Validation set으로 두고 K번만큼 학습과 검증을 한 후에 결과를 평균내어 Performance를 비교하는 방법
Cross Validation을 통한 Expected generalization error
\[\mathbb{E}_v[R(f, \mathcal{V})] \approx \frac{1}{K} \sum_{k=1}^K R(f^{(k)}, \mathcal{V}^{k})\]-
계산량이 K배만큼 많아짐 -> parameter 여러개를 한번에 조율해야 하는 상황이면 계산량이 지수적으로 증가하기 때문에 nested cross validation 시행함
-
하지만 cross-validation은 일명
Embarrassingly parallel problem
이라고 불릴 정도로 비슷한 연산을 반복해서 푸는 문제기 때문에 Computing resource가 잘 조성되어 있다면 그냥 문제를 푸는 것과 시간차이가 거의 나지 않을수도있음