Link Search Menu Expand Document

경험적 위험 최소화

Chapter 2 : Empirical Risk Minimization

Edited by / 한우정 (dnwjddl) dnwjddl



경험적 위험 최소화

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 표현

\[R_{emp}(f, X, y) = \frac{1}{N} \sum_{n=1}^{N} l(y_n, \hat{y_n})\]

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

\[\underset{\theta}{min} \frac{1}{N} \lVert{y-X\theta}\rVert^2\]

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를 비교하는 방법

image

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가 잘 조성되어 있다면 그냥 문제를 푸는 것과 시간차이가 거의 나지 않을수도있음


'When Models Meet Data' 카테고리의 다른 글
  1. 데이터, 모델, 그리고 학습
  2. 경험적 위험 최소화
  3. 파라미터 추정
  4. 확률적 모델링 및 추론