User:Soongki/sandbox project1

머신러닝(기계학습)에서는 데이터로부터 학습하고 예측을 할 수 있는 알고리즘의 연구와 구축이 일반적인 작업입니다. 이러한 알고리즘은 입력 데이터로부터 수학적 모델을 만들어, 데이터 기반의 예측이나 결정을 내립니다. 이 모델을 만드는 데 사용되는 입력 데이터는 보통 여러 데이터 세트로 나누어집니다. 특히, 모델 생성의 다른 단계에서 주로 사용되는 세 가지 데이터 세트가 있습니다: 훈련(학습), 검증, 그리고 테스트 셋입니다.

모델은 처음에 학습 데이터 세트에 적합하게 조정됩니다. 학습 데이터 세트는 모델의 매개변수(예: 인공 신경망의 뉴런 간 연결 가중치)를 조정하는 데 사용되는 예제 집합입니다. 모델(예: 나이브 베이즈 분류기)은 지도 학습 방법을 사용하여 학습 데이터 세트에서 학습됩니다. 이를 위해 경사 하강법 또는 확률적 경사 하강법과 같은 최적화 방법을 사용할 수 있습니다. 실제로 학습 데이터 세트는 일반적으로 입력 벡터(또는 스칼라)와 해당 출력 벡터(또는 스칼라)의 쌍으로 구성되며, 정답 키는 일반적으로 대상(또는 레이블)으로 표시됩니다. 현재 모델은 학습 데이터 세트와 함께 실행되고 결과를 생성하며, 학습 데이터 세트의 각 입력 벡터에 대해 결과가 대상과 비교됩니다. 비교 결과와 사용 중인 특정 학습 알고리즘에 따라 모델의 매개변수가 조정됩니다. 모델 적합에는 변수 선택과 매개변수 추정이 모두 포함될 수 있습니다.

이어서, 적합된 모델은 두 번째 데이터 세트인 검증 데이터 세트에 대한 관측치의 반응을 예측하는 데 사용됩니다. 검증 데이터 세트는 모델의 하이퍼파라미터(예: 신경망의 은닉 유닛 수, 즉 층과 층 너비)를 조정하면서 학습 데이터 세트에 맞춰진 모델의 공정한 평가를 제공합니다. 검증 데이터 세트는 조기 중지를 통한 정규화에 사용될 수도 있습니다(검증 데이터 세트의 오류가 증가하는 경우 학습을 중지하므로 이는 학습 데이터 세트에 대한 과적합의 신호입니다). 이 간단한 절차는 검증 데이터 세트의 오류가 학습 중에 변동할 수 있어 여러 지역 최소값을 생성하는 등 실제로 복잡하게 작동합니다. 이러한 복잡성으로 인해 과적합이 실제로 시작했는지 판단하기 위한 많은 ad-hoc(애드혹) 규칙이 만들어진 것입니다.

마지막으로, 테스트 데이터 세트는 학습용 데이터 세트에 맞춘 최종 모델의 편향되지 않은 평가를 제공하는 데이터 세트입니다. 테스트 데이터 세트에 있는 데이터가 학습 과정에서 사용된 적이 없는 경우(예: 교차 검증에서도 사용되지 않는 경우), 테스트 데이터 세트는 홀드아웃 데이터 세트라고도 불립니다. "검증 세트"라는 용어는 어떤 문헌에서는 "테스트 세트" 대신 사용되기도 합니다(예: 원래 데이터 세트가 두 개의 하위 세트로 나누어진 경우, 테스트 세트는 검증 세트로 지칭될 수 있습니다).

학습용, 테스트용, 검증용 데이터셋을 분할하는 것은 해결하고자 하는 문제와 데이터의 가용성에 따라 결정됩니다.

학습용 데이터셋(Training data set)
학습용 데이터셋은 모델의 학습 과정 중에 사용되는 예제 데이터 집합으로, 예를 들어 분류기의 매개변수(예: 가중치)를 적합시키는 데 사용됩니다.

분류 모델의 경우, 지도 학습 알고리즘은 학습용 데이터셋을 살펴보아 변수들의 최적 조합을 결정하거나 학습하여 좋은 예측 모델을 생성합니다. 목표는 새롭거나 알려지지 않은 데이터에 대해 잘 일반화되는 훈련된 모델을 생성하는 것입니다. 적합된 모델은 새 예제를 사용하여(검증 및 테스트 데이터 세트에서) 평가되어 새 데이터를 분류하는 모델의 정확도를 추정합니다. 과적합과 같은 문제의 위험을 줄이기 위해 검증용과 테스트용 데이터셋은 모델을 학습하는 데 사용되어서는 안 됩니다.

학습용 데이터를 통해 경험적 관계를 찾아내려는 대부분의 접근 방식은 데이터에 과적합되기 쉽습니다. 이는 학습 데이터에서 나타나는 표면적인 관계를 식별하고 활용할 수 있지만 일반적으로 적용되지 않는 관계일 수 있다는 것을 의미합니다.

검증용 데이터셋(Validation data set)
검증용 데이터셋은 분류기의 하이퍼파라미터를 조정하는 데 사용되는 예제 데이터의 집합입니다. 이것은 때로는 개발 세트 또는 "개발 세트"라고도 불립니다. 인공 신경망의 하이퍼파라미터 예로는 각 층의 숨겨진 단위 수가 있습니다. 학습 데이터 세트와 동일한 확률 분포를 따라야 하며, 이와 마찬가지로 테스트용 데이터셋도 학습용 데이터셋과동일한 확률 분포를 따라야 합니다.

과적합을 피하기 위해, 어떤 분류 매개변수가 조정되어야 할 때, 훈련 및 테스트 데이터셋 외에도 검증 데이터셋이 필요합니다. 예를 들어, 문제에 가장 적합한 분류기를 찾고자 할 때, 훈련 데이터셋은 다양한 후보 분류기를 학습하는 데 사용되고, 검증 데이터 세트는 그들의 성능을 비교하고 어느 것을 선택할지 결정하는 데 사용됩니다. 마지막으로, 테스트 데이터 세트는 정확도, 민감도, 특이성, F-측정 등의 성능 특성을 얻는 데 사용됩니다. 검증용 데이터셋은 하이브리드로 기능합니다: 이것은 테스트용으로 사용되는 학습 데이터이지만 저수준 학습의 일부도 아니며 최종 테스트의 일부도 아닙니다.

모델 선택을 위해 검증용 데이터셋을 사용하는 기본 과정(학습용 데이터셋, 검증용 데이터셋, 테스트 데이터셋의 일부로서)은 다음과 같습니다:

1. 여러 모델을 각각 훈련 데이터셋으로 학습시킵니다.

2. 각 모델의 성능을 검증 데이터셋으로 평가합니다.

3. 가장 좋은 결과를 보인 모델을 선택합니다.

4. 선택된 모델의 최종 성능을 테스트 데이터셋으로 평가합니다.

이런 방식으로, 검증 데이터셋은 여러 모델 중에서 가장 적합한 것을 결정하는 데 도움이 됩니다. 그리고 이후에는 테스트 데이터셋이 최종적으로 선택된 모델의 예측 능력을 비교하거나 평가하는 데 사용됩니다. 이런 접근법은 과적합 문제를 방지하며, 새로운 및 미래의 데이터에 대한 모델의 일반화 능력을 보장합니다.

이 과정의 한 가지 응용은 조기 종료(early stopping)에서 볼 수 있습니다. 이때 후보 모델들은 동일한 네트워크의 연속적인 반복이며, 검증 세트에서의 오류가 증가할 때 학습을 중단하고, 이전 모델(오류가 최소인 모델)을 선택합니다.

테스트용 데이터셋(Test data set)
테스트용 데이터셋은 학습(훈련)용 데이터셋과 독립적이지만, 학습(훈련)용 데이터셋과 동일한 확률 분포를 따르는 데이터셋입니다. 훈련용 데이터셋에 적합한 모델이 테스트용 데이터셋에도 잘 맞으면 과적합이 최소화된 것입니다. 일반적으로, 테스트용 데이터셋보다 훈련용 데이터 셋에 더 잘 맞는 경우 과적합을 나타냅니다.

따라서 테스트용 데이터셋은 완전히 지정된 분류기의 성능(즉, 일반화)을 평가하는 데만 사용되는 예제들의 집합입니다. 이를 위해 최종 모델은 테스트용 데이터셋의 예제들의 분류를 예측하는 데 사용됩니다. 그 예측 결과는 예제들의 실제 분류와 비교되어 모델의 정확도를 평가합니다.

검증 및 테스트 데이터셋이 모두 사용되는 시나리오에서, 테스트 데이터셋은 일반적으로 검증 과정 중에 선택된 최종 모델을 평가하는 데 사용됩니다. 원래 데이터 세트가 두 개의 하위 집합(훈련 및 테스트 데이터셋)으로 분할된 경우, 테스트 데이터 세트는 모델을 한 번만 평가할 수 있습니다(예: 홀드아웃 방법). 몇몇 출처에서는 이러한 방법을 권장하지 않습니다. 그러나 교차 검증과 같은 방법을 사용하면, 결과가 반복적인 모델 학습 및 테스팅 후에 평균화되므로 두 개의 분할이 충분하고 효과적일 수 있습니다. 이를 통해 편향과 변동성을 줄일 수 있습니다.

용어의 혼동
테스트는 어떤 것에 대해 알아보기 위해 시도하는 것이며("실험을 통해 증명하다; 진실성, 진정성, 품질을 증명하다"라는 Collaborative International Dictionary of English의 정의에 따르면), 검증은 어떤 것이 유효한지 증명하는 것입니다("확인하다; 유효하게 만들다"라는 Collaborative International Dictionary of English의 정의에 따르면). 이러한 관점에서 가장 일반적으로 사용되는 용어인 테스트 세트와 검증 세트가 여기서 설명된 것입니다. 그러나 업계와 학계 모두에서, 내부 프로세스가 다양한 모델을 테스트하여 개선(개발 세트로서의 테스트 세트)하고 최종 모델이 실제 사용 전에 보이지 않는 데이터(validation set)로 검증되어야 한다고 생각하여 두 용어를 서로 바꿔 사용하기도 합니다. "기계 학습 문헌에서 '검증'과 '테스트' 세트의 의미를 종종 반대로 사용합니다. 이것은 인공 지능 연구에서 만연한 용어 혼동의 가장 두드러진 예입니다." 그럼에도 불구하고 기억해야 할 중요한 개념은 마지막 세트, 즉 테스트 혹은 검증으로 부르든 간에 최종 실험에서만 사용되어야 한다는 점입니다.

교차 검증(Cross-validation)
더 안정적인 결과를 얻고 모든 유용한 데이터를 훈련에 사용하기 위해, 데이터 세트는 반복적으로 여러 훈련 및 검증 데이터셋으로 분할될 수 있습니다. 이것을 교차 검증이라고 합니다. 모델의 성능을 확인하기 위해, 일반적으로 교차 검증에서 제외된 추가적인 테스트 데이터 세트가 사용됩니다.