교차 검증(Cross-validation)은 때로 회전 추정(rotation estimation) 또는 표본 외 검증(out-of-sample testing)이라고도 불리며, 통계 분석의 결과가 독립적인 데이터 집합에 얼마나 잘 일반화될지를 평가하기 위한 모델 검증 기법의 한 계열이다. 이는 데이터의 서로 다른 부분을 사용하여 여러 반복에서 모델을 훈련하고 테스트하는 재표본(resampling) 방법이다. 교차 검증은 예측 설정에서 모델이 실제로 얼마나 정확하게 예측 성능을 발휘할지 추정하기 위해 일반적으로 사용되며, 적합된 모델의 품질과 매개변수의 안정성도 평가할 수 있다.
일반적인 예측 문제에서 모델은 알려진 데이터 집합(훈련 집합)으로 훈련된 다음, 보지 못한 데이터 집합(검증 또는 테스트 집합)으로 테스트된다. 목표는 추정에 사용되지 않은 새로운 데이터를 예측하는 모델의 능력을 측정하여 과적합 또는 선택 편향과 같은 문제를 식별하고, 모델이 독립적인 데이터 집합에 어떻게 일반화될지에 대한 통찰력을 제공하는 것이다. 교차 검증의 한 라운드는 표본을 상호 보완적인 하위 집합으로 분할하는 것을 포함한다. 모델은 한 하위 집합(훈련 집합)에 적합되고 다른 하위 집합(검증 집합)으로 검증된다. 변동성을 줄이기 위해 대부분의 방법은 서로 다른 분할로 여러 라운드를 수행하며, 검증 결과는 라운드에 걸쳐 평균화되어 예측 성능의 더 정확한 추정치를 산출한다.
동기
하나 이상의 알려지지 않은 매개변수와 모델을 적합시킬 수 있는 데이터 집합을 가진 모델을 고려하자. 적합 과정은 매개변수를 최적화하여 모델이 훈련 데이터를 가능한 한 잘 맞추도록 한다. 동일한 모집단에서 독립적인 검증 데이터 표본을 취하면, 모델은 일반적으로 훈련 데이터에 맞는 것만큼 검증 데이터에 잘 맞지 않을 것이다. 이 차이는 훈련 집합이 작거나 매개변수 수가 많을 때 특히 크다. 교차 검증은 모델 성능을 이해하는 데 중요한 이 효과의 크기를 추정하는 방법을 제공한다.
예: 선형 회귀
선형 회귀에서 실수 응답 값 \(y_1, \ldots, y_n\)과 \(n\)개의 p차원 공변량 벡터 \(\mathbf{x}_1, \ldots, \mathbf{x}_n\)이 있다고 가정하고, 각 \(\mathbf{x}_i\)는 구성 요소 \(x_{i1}, \ldots, x_{ip}\)를 가진다. 최소 제곱법을 사용하여 초평면 \(\hat{y} = a + \boldsymbol{\beta}^T \mathbf{x}\)을 데이터에 적합시킬 때, 훈련 집합에서의 평균 제곱 오차(MSE)는 다음과 같이 정의된다:
\[
\text{MSE} = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2 = \frac{1}{n} \sum_{i=1}^n (y_i - a - \boldsymbol{\beta}^T \mathbf{x}_i)^2.
\]
모델이 올바르게 지정된 경우, 훈련 MSE는 모델이 훈련 데이터에 맞게 최적화되었기 때문에 실제 예측 오차를 과소평가하는 경향이 있다. 교차 검증은 보류된 데이터에서 모델을 평가하여 이러한 낙관성을 교정하는 데 도움을 준다.
일반적인 방법
데이터를 분할하는 방식에 따라 여러 교차 검증 기법이 존재한다.
k-겹 교차 검증
k-겹 교차 검증에서 원래 표본은 \(k\)개의 동일한 크기의 하위 표본으로 무작위 분할된다. 이 중 \(k-1\)개의 하위 표본이 훈련 데이터로 사용되고, 나머지 단일 하위 표본은 검증 데이터로 사용된다. 이 과정은 각 하위 표본이 정확히 한 번 검증 데이터로 사용될 때까지 \(k\)번 반복된다. 그런 다음 \(k\)개의 결과를 평균화하여 단일 추정치를 생성한다. \(k\)의 일반적인 선택은 5 또는 10이며, 편향과 분산의 균형을 맞춘다. 특수한 경우로는 \(k\)가 데이터 포인트 수와 같은 리브-원-아웃 교차 검증(LOOCV)이 있으며, 각 관측치가 한 번씩 검증 집합으로 사용된다.
리브-원-아웃 교차 검증(LOOCV)
LOOCV는 k-겹 교차 검증의 극단적인 형태로, 각 훈련 집합은 하나의 관측치를 제외한 모든 관측치로 구성되고, 검증 집합은 해당 단일 관측치가 된다. 이 방법은 대규모 데이터 집합의 경우 계산 비용이 많이 들지만, 예측 오차의 거의 편향되지 않은 추정치를 제공한다. 다만 분산이 높을 수 있다.
반복 무작위 하위 표본 추출
몬테카를로 교차 검증이라고도 불리는 이 방법은 데이터를 훈련 및 검증 집합으로 여러 번 무작위 분할하며, 반복적으로 수행한다. 예측 오차는 분할에 걸쳐 평균화된다. 이 방법은 각 관측치가 검증에 정확히 한 번 사용된다는 것을 보장하지 않지만, 데이터 크기가 클 때 유용할 수 있다.
계층화 교차 검증
불균형 클래스가 있는 분류 문제에서 계층화 교차 검증은 각 겹이 원래 데이터 집합과 동일한 클래스 비율을 유지하도록 보장한다. 이는 특정 클래스가 없는 겹으로 인해 잘못된 성능 추정이 발생하는 것을 방지한다.
응용
교차 검증은 Machine learning 및 Artificial intelligence에서 모델 선택과 하이퍼파라미터 튜닝에 널리 사용된다. 예를 들어, 신경망 또는 대규모 언어 모델을 훈련할 때 실무자들은 교차 검증을 사용하여 계층 수, 학습률 또는 정규화 매개변수를 선택한다. 또한 Deep learning에서 아키텍처를 비교하고 Transformer (architecture) 기반 모델에서 배포 전 일반화를 평가하는 데 사용된다.
예측 외에도 교차 검증은 모델 매개변수의 안정성을 평가하는 데 도움이 된다. 모델의 매개변수가 서로 다른 훈련 겹에 걸쳐 크게 변동한다면 이는 불안정성과 잠재적 과적합을 나타낸다. 이는 Generative AI와 같은 분야에서 모델이 다양한 실제 입력에 일반화되어야 하므로 특히 중요하다.
응용
교차 검증은 Machine learning 및 Artificial intelligence에서 모델 선택과 하이퍼파라미터 튜닝을 위해 널리 사용된다. 예를 들어, 신경망 또는 대규모 언어 모델을 훈련할 때 실무자들은 교차 검증을 사용하여 레이어 수, 학습률 또는 정규화 매개변수를 선택한다. 또한 Deep learning에서 아키텍처를 비교하고 Transformer (architecture) 기반 모델에서 실제 입력에 대한 일반화를 평가하는 데 사용된다.
예측 외에도 교차 검증은 모델 매개변수의 안정성을 평가하는 데 도움이 된다. 모델의 매개변수가 서로 다른 훈련 겹에 걸쳐 크게 변동한다면 이는 불안정성과 잠재적 과적합을 나타낸다. 이는 모델이 다양한 실제 입력에 일반화되어야 하는 Generative AI와 같은 분야에서 특히 중요하다.
한계 및 고려 사항
교차 검증에는 몇 가지 한계가 있다. 특히 대규모 데이터 집합과 반복 훈련의 경우 계산 비용이 많이 들 수 있다. 시계열 데이터의 경우 무작위 분할이 시간적 순서를 위반하므로 교차 검증의 표준 형태는 부적절하다. 이러한 경우 전진 체이닝(forward chaining)과 같은 기술이 사용된다. 또한 교차 검증은 주어진 훈련 집합 크기에 대한 예측 오차를 추정하지만, 데이터 집합이 작을 때 무작위 분할로 인한 변동성을 완전히 포착하지 못할 수 있다.
한계 및 고려 사항
교차 검증은 데이터가 독립적이고 동일하게 분포되어 있다고 가정한다. 실제로 클러스터링이나 상관 관계가 있는 경우 검증 결과가 지나치게 낙관적일 수 있다. 이러한 경우 그룹별 교차 검증(group-wise cross-validation)과 같은 변형이 필요할 수 있다. 또한, 교차 검증은 모델 훈련 과정에서 무작위성(예: 신경망의 가중치 초기화)으로 인해 변동성을 겪을 수 있으며, 이는 추정치의 안정성에 영향을 미칠 수 있다.
과적합과의 관계
과적합은 모델이 기본 패턴보다 훈련 데이터의 노이즈를 학습할 때 발생하며, 교차 검증은 이를 탐지하는 주요 도구이다. 검증 오차가 훈련 오차보다 현저히 높으면 모델이 과적합되었을 가능성이 있다. 교차 검증은 여러 분할에 걸쳐 평균화함으로써 단일 훈련-테스트 분할보다 일반화 오차의 더 신뢰할 수 있는 추정치를 제공하며, 실무자가 지나치게 복잡한 모델을 선택하는 것을 방지하는 데 도움이 된다.
한계 및 고려 사항
교차 검증에는 여러 한계가 있다. 대규모 데이터 집합과 복잡한 모델의 경우 계산 비용이 많이 들 수 있다. 시계열 데이터의 경우 시간적 순서를 위반할 수 있으므로 표준 교차 검증이 부적절하다. 대신 시간 순서를 존중하는 특수한 분할 방법이 필요하다. 또한 교차 검증 추정치는 분할의 무작위성으로 인해 변동성이 있을 수 있으며, 특히 작은 데이터 집합의 경우 더욱 그렇다.
또 다른 고려 사항은 교차 검증이 주어진 훈련 집합 크기에 대한 예상 예측 오차를 추정한다는 것이다. 실제로 모델이 전체 데이터 집합으로 훈련될 때 성능이 다를 수 있다. 데이터가 독립적이고 동일하게 분포되어 있다는 가정은 실제 시나리오에서 종종 위반될 수 있다. 데이터에 클러스터링이나 상관 구조가 있는 경우 교차 검증 결과가 지나치게 낙관적일 수 있으며, 이는 데이터가 무작위가 아닌 방식으로 분할될 때 발생할 수 있다. 이러한 문제를 해결하기 위해 그룹별 교차 검증과 같은 변형이 존재한다.
역사적 맥락
교차 검증의 개념은 통계학에 뿌리를 두고 있으며, 초기 작업은 20세기 중반으로 거슬러 올라간다. Seymour Geisser는 1970년대에 예측 표본 재사용 방법에 기여했다. 1974년 M. Stone은 모델 선택을 위한 교차 검증의 이론적 기초를 확립했다. 1990년대에는 Machine learning의 부상과 함께 Ron Kohavi와 같은 연구자들이 다양한 응용 분야에서 교차 검증의 실용적인 사용을 대중화했다. 오늘날 교차 검증은 데이터 과학자들의 도구 상자에서 표준 도구이며, 대부분의 통계 및 기계 학습 라이브러리에 포함되어 있다.
같이 보기
참고 문헌
- Geisser, S. (1975). The predictive sample reuse method with applications. Journal of the American Statistical Association.
- Stone, M. (1974). Cross-validatory choice and assessment of statistical predictions. Journal of the Royal Statistical Society.
- Kohavi, R. (1995). Cross-validation and bootstrap for accuracy estimation and model selection. International Joint Conference on Artificial Intelligence.