[Deep Learning, d2l] Linear Neural Networks for Classification (2)
앞선 포스트에서 multi class classification 문제를 다루기 위해 여러 출력을 가진 linear neural network 와 softmax 함수를 사용하는 방법을 다뤘다. 그리고 모델의 출력을 확률적 예측으로 해석하면서 MLE 를 통해 cross entropy loss function 을 유도했다. 이 loss 는 모델이 고정된 parameter 를 가지고 실제 label 에 할당하는 negative log likelihood 를 계산하는 것과 같았다.
언제나 그렇듯 우리의 목표는 training 데이터를 잘 학습하는 것이 아니라, 새로운 데이터(테스트)에서도 실질적으로 일반화된 패턴을 학습하는 것이다. training 세트에서 높은 정확도를 달성하는 것은 아무 의미가 없다. 학습 과정에서 데이터를 그냥 암기하여 완벽한 정확도를 달성하는 것은 새로운 예제를 분류하는 데 아무런 도움을 주지 않는다. 일반화된 패턴과 같은 추가적인 가이드 없이 새로운 예제를 만난다면 무작위 추측에 의존할 수밖에 없기 때문이다. 여기서는 아래의 질문들을 다뤄보자.
- 모델이 실제 모집단에 대해 잘 추정하려면 얼마나 많은 테스트 예제가 필요할까?
- 같은 테스트 세트에서 모델을 반복해서 평가하면 어떻게 될까?
- 무작위 암기 방식보다 학습 세트에 linear 모델을 맞추는 것이 왜 더 나은 결과를 기대할 수 있을까?
이전 포스트에서는 linear regression 의 맥락에서 over-fitting 과 generalization 의 기초를 다뤘다. 이번에는 이를 조금 더 깊게 파고들어 통계적 학습 이론의 기초 개념을 알아보자. 아래에서 자세히 다룰 것이지만, 우리는 일반화를 선험적(a priori)으로 보장할 수 있다. generalization gap $\epsilon$ 의 상한을 정하고 싶을 때, 필요한 샘플의 수 $n$ 을 결정하고 training 세트에 최소한 $n$ 개의 샘플이 포함되어 있다면, empirical error 는 어떤 data distribution 에 대해서도 실제 error 인 $\epsilon$ 내에 있을 것이라고 보장할 수 있다.
그러나 이러한 보장은 이론적 기반을 제공하지만 딥러닝 실무에서 제한적이다. 즉 위와 같은 이론적 보장은 딥러닝 모델의 일반화를 선험적으로 보장하려면 엄청난 양의 샘플(아마도 수조 개 이상)이 필요하다고 제시하지만, 여러 작없에서 딥러닝 모델은 훨씬 적은 샘플(수천 개)로도 매우 잘 일반화하는 경향이 있다.
따라서 실무에서는 선험적인 일반화 보장을 포기하는 대신 과거에 유사한 문제에서 잘 일반화했던 방법들을 사용하며, 사후(post) 경험적 평가를 통해 일반화를 검증한다. 이러한 것들을 아래에서 자세히 살펴보자.
Test Set
- 우리는 테스트 세트로 generalization error 를 평가한다. 이러한 error estimates(추정치)의 성질에 대해 논의해보자.
- 고정된 모델(분류기, classifier) $f$ 가 있고, 이 $f$ 를 훈련시킬 때 사용되지 않은 새로운 데이터셋 $\mathcal{D} = (\mathbf{x}^{(i)}, y^{(i)})^n_{i=1}$ 가 있다고 가정해보자.
-
모델 $f$ 의 데이터셋 $\mathcal{D}$ 에 대한 empirical error(training error) 는 예측값 $f(\mathbf{x}^{(i)})$ 이 실제 label $y^{(i)}$ 와 일치하지 않는 경우의 비율로 단순하게 정의될 수 있다.
\[\epsilon_\mathcal{D}(f) = \frac{1}{n}\sum_{i=1}^n \mathbf{1}(f(\mathbf{x}^{(i)}) \neq y^{(i)})\] -
반면에 모집단 오류(population error)는 모집단의 분포 $P(X,Y)$ 를 따르는 확률밀도함수 $p(\mathbf{x}, y)$ 에서 모델의 예측값이 실제 label 과 불일치하는 경우의 기대값이다.
\[\epsilon(f) = E_{(\mathbf{x}, y) \sim P} \mathbf{1}(f(\mathbf{x}) \neq y) = \int\int \mathbf{1}(f(\mathbf{x}) \neq y) p(\mathbf{x}, y) \;d\mathbf{x} dy\] - 우리가 실제로 관심을 가지는 것은 $\epsilon(f)$ 지만 우리는 이를 직접적으로 관찰할 수 없다.
- 따라서 우리는 오직 우리가 가진 데이터에 기반해 이 population error 를 추정할 수 있다.
- 즉 테스트 세트 $\mathcal{D}$ 가 통계적으로 실제 모집단을 대표하기 때문에, 우리는 $\epsilon_\mathcal{D}(f)$ 를 population error $\epsilon(f)$ 의 통계적 추정치(statistical estimator)로 볼 수 있다.
- 또한 우리가 관심을 갖는 $\epsilon(f)$ 는 확률변수 $\mathbf{1}(f(X) \neq Y)$ 의 기대값이고, 해당 추정치 $\epsilon_\mathcal{D}(f)$ 는 샘플의 평균이기 때문에, population error 를 추정하는 것은 단순히 평균 추정의 문제다.
- 확률론에서 핵심적인 개념 중 하나인 중심극한정리는 평균 $\mu$ 와 표준편차 $\sigma$ 를 가진 임의의 분포로부터 $n$ 개의 샘플 $a_1, …, a_n$ 을 추출했을 때, 샘플 수 $n$ 이 무한에 가까워지면, 표본(샘플)평균 $\hat{\mu}$ 가 실제 모집단의 평균을 중심으로하고 표준편차 $\sigma/\sqrt{n}$ 을 가지는 정규분포에 가까워진다고 보장한다.
- 우리는 이 중심극한정리를 통해 중요한 사실을 알 수 있다.
- 데이터의 수가 많아질수록 테스트 오류 $\epsilon_\mathcal{D}(f)$ 는 모집단 오류 $\epsilon(f)$ 에 $\mathcal{O}(1/\sqrt{n})$ 의 비율로 가까워진다.
- 따라서 테스트 오류를 2 배 더 정확하게 추정하려면 테스트 세트를 4 배 더 많이 모아야 한다.
- 또한 테스트 오류를 100 배 더 줄이려면 1만 배 많은 테스트 세트를 모아야 한다.
- 일반적으로 이러한 $\mathcal{O}(1/\sqrt{n})$ 비율은 통계에서 기대할 수 있는 최상의 비율 중 하나다.
- 이제 테스트 오류 $\epsilon_\mathcal{D}(f)$ 가 모집단 오류 $\epsilon(f)$ 에 가까워지는 점근적인 비율에 대해 알게 되었다. 이제 중요한 세부 사항을 살펴보자.
- 우리가 관심을 가지는 확률변수 $\mathbf{1}(f(X) \neq Y)$ 는 0 또는 1 의 값만을 가질 수 있다.
- 따라서 이는 Bernoulli 확률변수라고 할 수 있고, 값이 1 이 될 확률을 나타내는 parameter 에 의해 결정된다.
- 확률변수 $\mathbf{1}(f(X) \neq Y)$ 에서 1 이 의미하는 것은 모델이 오류($f(X) \neq Y$)를 범했다는 의미이므로, 이 확률변수의 parameter 는 실제 오류율 $\epsilon(f)$ 이다.
- 그리고 베르누이 분포의 분산 $\sigma^2$ 는 parameter $\epsilon(f)$ 를 이용하여 $\epsilon(f)(1-\epsilon(f))$ 로 나타낼 수 있다.
- 수학적 증명은 해당 글에 나와있다.
- $\epsilon(f)$ 는 처음에는 알려져 있지 않지만 1 보다 클 수는 없다. 또한 분산의 식을 조금만 살펴보면 parameter 가 0.5 에 가까울 때 분산이 가장 크고, 0 또는 1 에 가까울 때 훨씬 낮아질 수 있음을 알 수 있다.
- 이것이 의미하는 것은 실제 population error $\epsilon(f)$ 에 대한 추정치 $\epsilon_\mathcal{D}(f)$ 의 점근적인 표준편차는 $\sqrt{0.25/n}$ 을 넘을 수 없다는 것이다.
- 다시 말해 테스트 오류 $\epsilon_\mathcal{D}(f)$ 가 모집단 오류 $\epsilon(f)$ 를 대략적으로 추정할 때, 표준편차 하나가 $\pm 0.01$ 에 해당하는 구간에 들어오게 하려면 대략 2500 개의 샘플을 모아야 한다는 것이다.
- 만약 두 개의 표준편차가 $\pm 0.01$ 범위에 포함되어 $\epsilon_\mathcal{D}(f) \in \epsilon(f) \pm 0.01$ 라는 95% 의 신뢰구간을 가지려면 1만 개의 샘플이 필요하다.
- 이것은 실제로 자주 사용되는 머신러닝/딥러닝 벤치마크 테스트 세트의 크기와 같다.
- 매년 수천 건의 딥러닝 응용 논문들이 0.01 이하의 오류율 개선을 큰 성과로 발표하는 것이 의아할 수 있다.
- 그러나 오류율이 0 에 가까워질수록 0.01 의 향상은 매우 중요한 성과일 수 있다.
- 위 분석의 한 가지 성가신 특징은 이것이 점근적인 경우에 대해서만 알려준다는 것이다. 즉, $\epsilon_\mathcal{D}$ 와 $\epsilon$ 의 관계는 샘플 크기가 무한대로 갈 때 어떻게 변하는지에 대한 것이다.
-
하지만 우리의 확률변수가 유한한 범위 내에 있기 때문에, Hoeffding 부등식을 적용하여 샘플의 유효한 경계를 얻을 수 있다.
\[P(\epsilon_\mathcal{D}(f) - \epsilon(f) \geq t) < \exp\left( - 2n t^2 \right)\] - 우리의 추정치 $\epsilon_\mathcal{D}(f)$ 와 실제 오류율 $\epsilon(f)$ 사이의 거리 $t$ 가 0.01 을 넘지 않는다는 것을 95% 로 확신하기 위해 필요한 최소 샘플 크기를 구하면, 대략 1만 5천 개의 데이터가 필요하다. 이는 앞서 점근적 분석에서 제안된 1만 개보다 많다.
- 통계학을 더 깊이 공부해보면 이러한 경향이 일반적으로 유지된다는 것을 알 수 있다. 그러나 이러한 숫자는 크게 차이나지 않으며, 정확한 보장이 아닐지라도 대략적인 수치를 제공하는 데 있어 유용하다.
Test Set Reuse
- 대부분의 실용적인 모델은 테스트 세트 성능을 기준으로 개발 및 검증된다.
- 우리는 고정된 모델 $f$ 에 대해 테스트 오류 $\epsilon_\mathcal{D}(f)$ 를 평가하는 방법을 알고 있으며, 모집단 오류 $\epsilon(f)$ 에 대해 무엇을 말할 수 있고, 말할 수 없는지도 정확히 알고 있다.
- 이제 첫번째 모델 $f_1$ 을 학습할 준비를 한다고 해보자. 모델의 오류율 성능에 대해 어느 정도의 신뢰도를 가져야 하는지 알고 있기 때문에, 위에서 설명한 분석을 적용해 테스트 세트에 적합한 데이터 수를 설정한다. 또한, 하이퍼파라미터 튜닝이나 여러 모델 아키텍처 중에서 선택하는 작업(모델 선택)을 validation 세트에서 수행하여 테스트 세트를 사용하지 않는다.
- 마지막으로 모델 $f_1$ 을 테스트 세트에서 평가하고, 모집단 오류의 편향되지 않은 추정치와 그에 상응하는 신뢰 구간을 얻는다.
- 여기까지는 순조롭게 진행되고 있는 것 같다. 그러나 갑자기 새로운 모델링 접근법에 대한 아이디어가 떠오르고, 다음 날 새로운 모델을 구현하고 validation 세트에서 하이퍼파라미터를 조정한 후, 새로운 모델 $f_2$ 가 성공적으로 작동하고, $f_1$ 보다 훨씬 낮은 오류율을 보이는 것을 발견한다.
- 그러나, 최종 평가를 준비하는 순간 흥분은 사라진다. 테스트 세트가 없기 때문이다. 비록 원래의 테스트 세트 $\mathcal{D}$ 가 여전히 서버에 있지만, 두가지 심각한 문제에 직면한다.
- 첫째, 테스트 세트를 수집할 때는 단일 모델 $f$ 를 평가한다는 가정 하에 필요한 precision 수준을 결정했다. 그러나 동일한 테스트 세트에서 여러 모델 $f_1, …, f_k$ 를 평가하려 한다면, false discovery 문제를 고려해야 한다.
- 이전에는 단일 모델 $f$ 에 대해 $\epsilon_\mathcal{D}(f) \in \epsilon(f) \pm 0.01$ 을 95% 만큼 확신할 수 있었고, 잘못된 결과가 나올 확률은 5% 에 불과했다.
- 하지만 $k$ 개의 모델이 있을 경우, 그 중 하나라도 테스트 세트 성능이 잘못된 결과를 낼 가능성을 배제하기 어렵다. 즉 20 개의 모델을 고려할 때는 그중 적어도 하나는 잘못된 점수를 받았을 가능성을 전혀 배제할 수 없을지도 모른다. 이 문제는 다중 가설 검정과 관련이 있으며, 통계학에서 많은 연구가 진행되었음에도 여전히 과학 연구에서 지속적인 문제로 남아 있다.
- 이 정도로도 충분히 걱정스러운데, 추가로 이후 평가에서 얻은 결과를 신뢰하기 어려운 특별한 이유가 있다.
- 테스트 세트에서의 성능 분석은 모델이 테스트 세트와 접촉 없이 선택되었다는 가정에 기반하고 있다. 즉, 테스트 세트를 모집단에서 무작위로 추출된 것으로 볼 수 있었다.
- 하지만 여기서는 여러 모델이 테스트되고 있을 뿐만 아니라, 이후의 모델 $f_2$ 는 $f_1$ 의 테스트 세트 성능을 관찰한 후 선택되었다.
- 테스트 세트에서 얻은 정보가 모델러에게 유출되면, 엄밀한 의미에서 그것은 더 이상 진정한 테스트 셋이 될 수 없다.
- 이 문제는 적응적 과적합(adaptive over-fitting)이라 불리며, 최근 학습 이론가와 통계학자들 사이에서 뜨거운 관심을 받고 있는 주제다.
- 다행히도, holdout(validation) 세트의 모든 정보가 유출될 가능성이 있고 이론적으로 최악의 시나리오는 암울하지만, 이러한 분석은 지나치게 보수적일 수 있다.
- 실제로 진정한 테스트 세트를 생성하고, 그것을 가능한 한 드물게 참조하며, 신뢰 구간을 보고할 때 다중 가설 검정을 고려하고, 데이터셋 크기가 작고 위험이 클수록 더욱 신중하게 대처해야 한다.
- 벤치마크 챌린지를 여러 차례 실행할 때, 각 라운드 후에 이전 테스트 세트를 validation 세트로 격하시키는 것이 좋은 관행이다.
Statistical Learning Theory
- 테스트 세트는 정말로 우리가 가진 전부다. 그러나 이 사실은 묘하게도 만족스럽지 않다.
- 첫째, 우리는 진정한 테스트 세트를 가지고 있는 것이 아니다.
- 누군가는 이미 우리가 수집한 테스트 세트에 대해 자신의 모델을 평가했을 가능성이 높다. 설령 테스트 세트를 누구보다 먼저 사용할 수 있다 하더라도, 곧 우리는 그 수치를 신뢰할 수 없다는 불안감 속에서 후속 모델링 시도를 평가하고 싶어하는 자신을 발견하게 된다.
- 또한 진정한 테스트 세트 조차도 모델이 실제로 모집단에 대해 일반화되었는지 여부를 사후적(post hoc)으로만 알려줄 수 있을 뿐, 우리가 사전적으로 그것이 일반화될 것이라고 기대할 이유가 있는지는 알 수 없다.
- 이러한 불안을 해결하기 위해 통계적 학습 이론을 알아보자.
- 통계적 학습 이론은 경험적 데이터(empirical data)를 기반으로 학습된 모델이 보지 못한 데이터에 대해 일반화할 수 있는 이유와 시기를 설명하는 근본 원리를 밝히는 것을 목표로 하는 머신러닝의 수학적 하위 분야이다.
- 통계적 학습 이론의 주요 목표 중 하나는 모델 클래스의 속성과 데이터셋의 샘플 수를 연관시켜 generalization gap 을 제한하는 것이다.
- 연구자들은 학습된 모델 $f_\mathcal{S}$ 의 학습 데이터셋 $\mathcal{S}$ 을 학습하고 평가된 empirical error $\epsilon_\mathcal{S}(f_\mathcal{S})$ 와 동일한 모델의 모집단에 대한 실제 error $\epsilon(f_\mathcal{S})$ 간의 차이를 제한(bound)하는 것을 목표로 한다.
- 이것은 지금까지 다룬 평가 문제와 비슷해 보일 수 있지만 큰 차이가 있다. 이전에는 모델 $f$ 가 고정되어 있었고, 우리는 단지 평가 목적으로 데이터셋이 필요했다.
- 그리고 실제로 어떤 고정된 모델은 일반화된다. 즉, 이전에 보지 못한 데이터셋에서의 오류는 모집단 오류의 편향되지 않은 추정값(unbiased estimate)이다.
- 하지만 모델이 동일한 데이터셋에서 학습되고 평가되었을 때 우리는 무엇을 말할 수 있을까? 학습 오류가 테스트 오류와 가깝다는 확신을 가질 수 있을까?
- 우리의 학습된 모델 $f_\mathcal{S}$ 가 미리 정해진 함수 집합 $\mathcal{F}$ 에서 선택되어야 한다고 가정하자.
- 위 테스트 세트의 재사용에서 논의했듯이, 단일 모델의 오류를 추정하는 것은 쉬울지라도 여러 모델의 집합을 고려하기 시작하면 상황이 복잡해진다.
- 어떤 하나의 고정된 모델의 empirical error 가 높은 확률로 그 true error 와 가깝다고 하더라도, 여러 모델의 집합을 고려하게 되면 그중 단 하나라도 잘못 추정된 오류를 받을 가능성에 대해 걱정해야 한다.
- 이러한 걱정은 우리가 잘못 추정된 오류를 뱉는 모델을 선택하여 모집단 오류를 심각하게 과소평가할 수 있다는 우려로 이어진다.
- 게다가 linear model 는 parameter 가 연속적인 값으로 주어지기 때문에, 우리는 일반적으로 무한한 함수 집합($\vert \mathcal{F}\vert = \infty$)에서 선택하고 있는 셈이다.
- 이 문제에 대한 해결책 중 하나는 uniform convergence(균일수렴) 를 증명하기 위한 분석 도구를 개발하는 것이다.
- 즉, 함수 집합 $\mathcal{F}$ 에 속한 모든 모델 $f$ 의 empirical error rate 가 높은 확률로 true error rate 에 동시에 수렴할 것임을 증명하는 것이다.
- 다시 말해, 우리는 어떤 작은 $\delta$ 에 대해, 적어도 $1-\delta$ 이상의 확률로 모델 클래스 $\mathcal{F}$ 에 속한 모든 모델 중 어떤 모델도 오류율 $\epsilon(f)$ 이 어떤 작은 값 $\alpha$ 보다 더 크게 잘못 추정되지 않을 것이라는 이론적 원칙을 찾는 것이다.
- 물론, 모든 모델 클래스 $\mathcal{F}$ 에 대해 이러한 원칙을 찾을 수는 없다. 예를 들어, 항상 empirical error $0$ 을 달성하지만 모집단에서는 무작위 추측보다 나을 게 없는 단순 암기 모델 클래스가 있을 수 있다.
- 어떤 의미에서 단순 암기 모델 클래스는 너무 유연하다. 이러한 균일수렴 결과는 결코 성립할 수 없다. 반면에, 고정된 모델은 쓸모가 없다. 이는 완벽하게 일반화되지만, 학습 데이터나 테스트 데이터 어느 쪽에도 맞지 않는다.
- 따라서 모델 학습의 핵심 질문은 역사적으로 학습 데이터를 더 잘 맞추지만 over-fitting 의 위험이 있는 더 유연한(higher variance) 모델 클래스와, 잘 일반화되지만 under-fitting 의 위험이 있는 더 경직된(higher bias) 모델 클래스 사이의 trade-off 로 구성되어 왔다.
- 핵심은 모델이 이 trade-off 의 스펙트럼 어디에 위치하고 있는지를 정량화하고 그에 따른 보장을 제공하는 적절한 수학적 분석을 개발하는 것이다.
- Vapnik 과 Chervonenkis 는 상대 빈도의 수렴에 관한 이론을 더 일반적인 함수 집합으로 확장했다.
-
이 연구의 주요 기여 중 하나는 Vapnik–Chervonenkis(VC) dimension 으로, 이는 모델 클래스의 복잡도(flexibility) 개념을 측정한다. 또한 그들의 핵심 결과 중 하나는 VC dimension 과 샘플 수에 관한 함수로서 empirical error 와 population error 간의 차이를 제한하는 것이다.
\[P\left(R[p, f] - R_\textrm{emp}[\mathbf{X}, \mathbf{Y}, f] < \alpha\right) \geq 1-\delta \; \textrm{ for } \; \alpha \geq c \sqrt{(\textrm{VC} - \log \delta)/n}\] - 여기서 $\delta > 0$ 는 이 경계가 위반될 확률이고, $\alpha$ 는 generalization gap 에 대한 상한값이며, $n$ 은 데이터셋 크기다. 그리고 $c > 0$ 는 발생할 수 있는 loss 의 scale 에만 의존하는 상수(constant)다.
- 이 경계를 사용하는 한 가지 방법은 원하는 $\delta$ 와 $\alpha$ 값을 대입하여 얼마나 많은 샘플을 수집해야 하는지 결정하는 것이다.
- VC dimension 은 우리가 임의의 (binary) labeling 을 부여할 수 있고 해당 label 을 잘 맞추는 모델 $f$ 를 찾을 수 있는 가장 많은 데이터 포인트 수를 정량화한다.
- 예를 들어, $d$ 차원 입력에 대한 linear model 은 VC 차원이 $d+1$ 이다. 그러면 2 차원에서 선(line)이 3 개의 점에 대해 어떤 가능한 labeling 도 할당할 수 있지만, 4 개의 점에는 그렇지 않다는 것을 알 수 있다.
- 그러나 이 이론은 더 복잡한 모델에 대해서는 지나치게 비관적인 경향이 있고, 위와 같은 경계의 보장을 얻으려면 실제로 원하는 error rate 를 달성하는 데 필요한 것보다 훨씬 더 많은 예제가 필요하다.
- 또한 모델 클래스와 $\delta$ 를 고정하면, 우리의 error rate 는 다시 $\mathcal{O}(1/\sqrt{n})$ 의 일반적인 rate 로 감소한다. 이는 $n$ 의 측면에서 더 나은 결과를 얻기가 어려움을 뜻한다.
- 그럼에도 불구하고 모델 클래스를 다양하게 변경함에 따라, VC dimension 은 generalization gap 에 대한 비관적인(가장 최악의 경우) 그림을 제시할 수 있다.
Summary
- 모델을 평가하는 가장 간단한 방법은 이전에 본 적 없는 데이터로 구성된 테스트 세트를 사용하는 것이다.
- 테스트 세트 평가는 실제 오류에 대한 편향되지 않은 추정치를 제공하며, 테스트 세트 크기가 증가함에 따라 $\mathcal{O}(1/\sqrt{n})$ 속도로 수렴한다.
- 우리는 정확한 점근 분포에 기반해 근사적인 신뢰구간을 구하거나, (보다 보수적인)유한 표본 보장에 기반해 유효한 유한 표본 신뢰구간을 구한다.
- 실제로 테스트 세트 평가는 현대 머신러닝 연구의 초석이다. 그러나 테스트 세트는 많은 경우에 여러 연구자가 반복해서 사용하여 진정한 테스트 세트가 아니며, 동일한 테스트 세트를 여러 모델의 평가에 사용하면 false discovery 를 통제하기가 어려울 수 있다.
- 이는 이론적으로 큰 문제를 일으킬 수 있다. 실제로 문제의 심각성은 holdout 데이터셋의 크기와 해당 데이터셋이 단순히 하이퍼파라미터 선택에 사용되는지 아니면 더 직접적으로 정보가 누출되는지에 따라 다르다.
- 그럼에도 불구하고 진정한 테스트 세트를(또는 여러 개의 테스트 세트를) 관리하고, 사용 빈도에 대해 가능한 한 보수적으로 접근하는 것이 좋은 관행이다.
- 더 만족스러운 해결책을 제공하기 위해, 통계적 학습 이론가들은 모델 클래스에 대해 균일수렴을 보장하는 방법을 개발했다.
- 만약 모든 모델의 empirical error 가 동시에 true error 로 수렴한다면, 우리는 training error 를 최소화하면서 가장 잘 수행되는 모델을 선택할 수 있으며 그 모델도 holdout 데이터에서 유사하게 잘 수행될 것임을 알 수 있다.
- 중요한 것은 이러한 결과가 모델 클래스의 어떤 특성에 의존해야 한다는 점이다. Vladimir Vapnik 와 Alexey Chervonenkis 는 VC dimension 을 도입하여, VC 클래스에 속하는 모든 모델에 대해 균일수렴 결과를 제시했다.
- VC 클래스 내 모든 모델의 training error 는 동시에 true error 에 가까워지며, $\mathcal{O}(1/\sqrt{n})$ 속도로 더 가까워질 것이 보장된다.
- VC dimension 의 발견 이후, 여러 대체 복잡도 측정 방식들이 제안되었으며, 각각 유사한 일반화 보장을 가능하게 한다.
- 그러나 이러한 복잡도 측정 방법은 통계 이론에서 매우 유용한 도구가 되었지만 딥러닝 neural network 가 일반화되는 이유를 설명하는 데는 무력하다.
- 딥러닝 neural network 는 수백만 개 이상의 parameter 를 가지고 있으며, 큰 데이터셋의 점들에 임의의 label 을 쉽게 할당할 수 있다.
- 그럼에도 불구하고, 딥러닝 neural network 는 실제 문제에서 잘 일반화되며, 놀랍게도 네트워크가 더 크고 깊을수록 VC dimension 이 높아짐에도 불구하고 더 잘 일반화되는 경우가 많다.
- 지금까지는 linear regression, classification 의 관점에서 generalization 을 다뤘지만, 이후 generalization 을 다룰 때는 딥러닝의 맥락에서 자세히 알아보자.
댓글 남기기