이번에는 빈도주의 의사결정 이론을 지도학습에 적용하는 방법을 살펴보도록 하겠습니다. 여기서 중요한 핵심은 리스크를 실제 데이터 기반에서 근사하는 방법입니다. 빈도주의 통계에서 리스크는 다음과 같이 정의됩니다.
$$R(\delta, \theta^{*}) = \mathbb{E}_{p(\mathcal{D} \mid \theta^{*})} \left[ l(\theta^{*}, \delta(\mathcal{D})) \right]$$
지도 학습에서 입력 $x$ 마다 다른 출력 $y$가 존재하며 $y$가 존재하며 추정량 $\delta$는 예측 함수 $f(x)$입니다. 이때 모집단의 리스크는 다음과 같이 정의됩니다.
$$R(f, p^{*}) = R(f) = \mathbb{E}_{p^{*}(x)p^{*}(y \mid x)} \left[ l(y, f(x)) \right]$$
하지만, 일반적으로 빈도주의 통계에서는 실제 분포 $p^{*}(x, y)$를 알 수 없다고 가정하기 때문에 저희가 이미 가지고 있는 데이터셋 $\mathcal{D}$를 이용해 경험적 분포(Empirical Distribution)으로 근사합니다.
$$p_{\mathcal{D}}(x, y \mid \mathcal{D}) = \frac{1}{\mathcal{D}} \sum_{(x_{n}, y_{n}) \in \mathcal{D}} \delta(x - x_{n})\delta(y - y_{n})$$
이를 기존의 모집단 리스크에 대입하여 경험적 리스크를 계산하면 다음과 같습니다.
$$R(f, \mathcal{D}) = \mathbb{E}_{p_{\mathcal{D}}(x, y)} \left[ l(y, f(x)) \right] = \frac{1}{N} \sum_{n = 1}^{N} l(y_{n}, f(x_{n}))$$
따라서, 최적의 예측기는 다음과 같이 얻을 수 있습니다.
$$\hat{f}_{\text{ERM}} = \text{argmin}_{f \in \mathcal{H}} R(f, \mathcal{D}) = \text{argmin}_{f \in \mathcal{H}} \frac{1}{N} \sum_{n = 1}^{N} l(y_{n}, f(x_{n}))$$
여기서 ERM의 성능은 근사 오차(approximation error)와 추정 오차(estimator error)로 나눌 수 있습니다. 전체 함수 공간에서의 최적함수는 $f^{**} = \text{argmin}_{f} R(f)$가 되고 가설공간 $\mathcal{H}$에서의 최적함수는 $f^{*}_{\mathcal{H}} = \text{argmin}_{f \in \mathcal{H}} R(f)$가 되며 주어진 데이터셋 $\mathcal{D}$에서 얻은 ERM으로 얻은 함수는 $f^{*}_{\mathcal{D}} = \text{argmin}_{f \in \mathcal{H}} R(f, \mathcal{D})$가 됩니다. 이때, 전체 함수 공간에서의 최적 예측기와 주어진 데이터셋에서의 최적 예측기 사이의 기대 리스크의 차이는 다음과 같이 계산할 수 있습니다.
$$\mathbb{E}_{\mathcal{D} \sim p^{*}} \left[ R(f^{*}_{\mathcal{D}}) - R(f^{**}) \right] = \underbrace{R(f^{*}_{\mathcal{H}}) - R(f^{**})}_{\epsilon_{\text{app}}(\mathcal{H})} + \underbrace{\mathbb{E}_{\mathcal{D} \sim p^{*}} \left[ R(f^{*}_{\mathcal{D}} - R(f^{*}_{\mathcal{H}})) \right]}_{\epsilon_{\text{est}}(\mathcal{H}, N)} $$
여기서 첫번째 항 $\epsilon_{\text{app}} (\mathcal{H})$는 근사 오차로 가설공간 $\mathcal{H}$ 자체의 한계를 의미합니다. 그리고 두번째 항 $\epsilon_{\text{est}} (\mathcal{H}, N)$은 추정 오차로 데이터 크기가 유한해서 생기는 불확실성을 의미합니다. 이를 기반으로 모델의 과적합 정도는 일반화 간극(generalization gap)을 이용해서 측정할 수 있습니다.
$$\text{GenGap}(f) = R(f) - R(f, \mathcal{D}_{\text{train}}) \approx R(f, \mathcal{D}_{\text{test}}) - R(f, \mathcal{D}_{\text{train}})$$
이러한 과적합 문제를 막기 위해 복잡도 패널티를 추가한 정규화된 위험(Regularized Risk)를 사용할 수 있습니다.
$$R_{\lambda} (f, \mathcal{D}) = R(f, \mathcal{D}) + \lambda C(f)$$
여기서 $C(f)$는 함수의 복잡도를 측정하는 함수이고 $\lambda \ge 0$은 정규화의 강도를 결정하는 하이퍼파라미터입니다. 파라미터화된 함수일 때는 보통 $R_{\lambda}(\theta, \mathcal{D}) = R(\theta, \mathcal{D}) + \lambda C(\theta) $가 됩니다. 만약, 손실 함수가 로그 손실이고 정규화항이 음의 로그 사전분포라면 다음과 같이 쓸 수 있습니다.
$$R_{\lambda} (\theta, \mathcal{D}) = -\frac{1}{N} \sum_{n = 1}^{N} \log p(y_{n} \mid x_{n}, \theta) - \lambda \log p(\theta)$$
이는 곧 MAP 추정과 동일하게 되죠. 여기서 정규화 강도 $\lambda$를 선택하려면 다음과 같은 식을 만족해야합니다.
$$\hat{\lambda} = \text{argmin}_{\lambda} \text{max}_{\theta} R_{\lambda}(\theta, \mathcal{D})$$
하지만, 단순히 경험적 리스크를 기준으로 한다면 항상 $\hat{\lambda} = 0$이 되어 정규화 효과가 없어지게 되어 다시 과적합 문제가 발생합니다. 이를 해결하려면 모집단 리스크를 추정해야하며 이를 기반으로 모델 복잡도를 조절하는 것을 구조적 위험 최소화(Structural Risk Minimization; SRM)이라고 합니다.