
실제 모델을 평가하기 위해서는 데이터를 훈련용, 검증용, 테스트용으로 분리하는 것이 일반적입니다.
훈련용과 테스트용이 쓰이는 이유는 알겠으나 검증용은 왜 쓰일까요?
검증용 데이터는 모델의 성능을 평가하기 위한 용도가 아니라 모델의 성능을 조정하기 위한 용도입니다.
더 정확히는 과적합이 되고 있는지 판단하거나 하이퍼파라미터의 조정을 위한 용도입니다.
비유하자면 훈련 데이터는 문제지, 검증 데이터는 모의고사, 테스트 데이터는 수능 시험이라고 볼 수 있습니다.
하이퍼파라미터(초매개변수)는 값에 따라서 모델의 성능에 영향을 주는 매개변수인 반면, 가중치와 편향과 같은 학습을 통해 바뀌어져가는 변수를 매개변수라고 부른다. 하이퍼파라미터와 매개변수의 가장 큰 차이는 하이퍼파라미터는 보통 사용자가 직접 정할 수 있는 변수라는 점입니다. 매개변수는 사용자가 결정해줄 수 있는 값이 아니라 모델이 학습하는 과정에서 얻어지는 값입니다.
머신러닝의 많은 문제는 분류 또는 회귀 문제에 속합니다.
이진 분류는 입력에 대해서 둘 중 하나의 답을 정하는 문제입니다. 합격/불합격, 정상메일/스팸메일 등을 판단하는 문제가 이진 분류에 속합니다.
다중 클래스 분류는 주어진 입력에 대해서 세 개 이상의 정해진 선택지 중에서 답을 정하는 문제입니다.
예를 들어, 동물 사진 한장이 입력으로 들어왔는데 이 동물이 강아지, 고양이, 새 인지를 판단하는 문제입니다.
회귀 문제는 분류 문제처럼 0 또는 1과 같이 분리된 답이 결과가 아니라 연속된 값을 결과로 가집니다.
예를 들어 시험 성적을 예측하는데 5시간 공부하여 80점, 5시간 1분 공부하여 80.5점, 7시간 공부하여 90점 등이 나오는 것과 같은 문제가 있습니다. 그 외에도 시계열 데이터를 이용한 주가 예측, 생산량 예측, 지수 예측 등이 이에 속합니다.
머신러닝은 크게 지도 학습, 비지도 학습, 강화 학습으로 나뉩니다.
지도 학습은 Label 이라는 정답과 함께 학습하는 것을 뜻합니다. label 이라는 말 외에도 y, 실제값 등으로 부르기도 합니다.
조금 더 쉽게 말하자면 x,y 를 같이 모델에 넣어서 학습하는 것입니다.
비지도 학습은 기본적으로 Label 이 없는 학습 방법입니다. 대표적으로 군집(Clustering)이나 차원 축소와 같은 학습 방법을 비지도 학습이라고 합니다.
강화 학습은 어떤 환경 내에서 정의된 에이전트가 현재의 상태를 인식하여 선택 가능한 행동들 중 보상을 최대로 받을 수 있는 행동 혹은 행동 순서를 선택하는 방법이다. 보상이 많은 선택지를 고르는 것입니다.
많은 머신 러닝 문제가 1개 이상의 독립 변수 x를 가지고 y를 예측하는 문제입니다. 많은 머신 러닝 모델들, 특히 인공 신경망 모델은 독립 변수, 종속 변수, 가중치, 편향 등을 행렬 연산을 통해 연산하는 경우가 많습니다. 그래서 인공 신경망을 배우게 되면 훈련 데이터를 행렬로 표현하는 경우가 많습니다.

이때 머신 러닝에서는 하나의 데이터, 하나의 행을 샘플(Sample)이라고 부릅니다. 종속 변수 y를 예측하기 위한 각각의 독립 변수 x를 특성(Feature)라고 부릅니다.
머신 러닝에서는 맞춘 문제수를 전체 문제수로 나눈 값을 정확도(Accuracy)라고 합니다. 하지만 정확도는 맞춘 결과와 틀린 결과에 대한 세부적인 내용을 알려주지는 않습니다. 이를 위해서 사용하는 것이 혼동 행렬(Confusion Matrix)입니다.
예를 들어 양성(Positive)과 음성(Negative)을 구분하는 이진 분류가 있다고 했을 때 혼동 행렬은 다음과 같습니다. 각 열은 예측값을 나타내고, 각 행은 실제값을 나타냅니다.
| - | 참 | 거짓 |
|---|---|---|
| 참 | TP | FN |
| :- | :- | :- |
| 거짓 | FP | TN |
이를 각각 TP, TN, FP, FN이라고 합니다. TP는 Positive라고 예측했고 실제고 Positive가 정답이라서 정답을 맞춘 경우입니다.
그럼 FP는 Positive라고 예측했지만 정답은 Positive라 정답이 틀린 경우입니다.
그리고 이 개념을 사용하면 또 새로운 개념인 정밀도(Precision)과 재현률(Recall)이 됩니다.
정밀도는 Positive라고 예측한 전체 케이스에 대한 TP의 비율입니다.

Positive라고 예측한 것들 중에서 정말 정답이 Positive인 비율입니다.
재현률은 실제값이 Positive인 데이터의 전체 개수에 대한 TP의 비율입니다.

실제값이 Positive인 것들 중에서 Positive라고 예측한 비율입니다.
과적합(Overfitting)이란 훈련 데이터를 과하게 학습한 경우를 말합니다. 이 경우에는 훈련 데이터에서만 높은 성능을 보여주고 테스트 데이터와 같은 훈련하지 않은 데이터에 관해서는 정확도가 높지 않은 현상이 발생합니다. 
위 그림은 전형적인 과적합의 형태를 보이는 그래프입니다. 훈련 데이터에 대해선 loss가 더이상 줄어들지 않고 테스트 데이터에 대해선 loss가 계속 증가하는 모습을 보입니다.
과소 적합(Underfitting)은 훈련 데이터 학습이 덜 된 경우입니다. 훈련 자체가 부족한 상태이므로 훈련 데이터에 대해서도 정확도가 좋지 않습니다.