기계학습은 크게 지도학습과 비지도학습으로 나뉜다. 그 중에서 지도학습은 Data에 대한 Label(정답)이 존재하여 설계한 모델의 판단이 적절한 지를 바탕으로 모델의 세부사항들을 수정해가는 방식이다.
지도학습이란, Labeling된 데이터를 기반으로 모델을 학습시키는 방식이다. 우리가 모델에게 입력 x와 정답 y로 이루어진 데이터 를 학습시키면, 모델은 함수 를 생성한다. 학습이 올바르게 진행되었다면 우리가 새롭게 제공하는 입력 x'에 대해 y'이라는 판단을 내린다.
위와 같은 지도학습의 과정 때문에 지도학습은 크게 학습(training)과 검증(testing)두 가지 과정을 거쳐야한다. 학습의 단계에서는 학습 데이터와 Labeling된 데이터(정답 데이터)를 기반으로 주어진 모델(함수)의 파라미터들을 세부 조정한다. 이렇게 조정된 모델에 검증 데이터를 입력으로 주어 모델이 잘 작동하는 지 확인하는 검증의 단계를 거친다.
결과적으로 지도학습이 하고자하는 목표는 주어지는 입력에 대해서 올바른 값을 뱉을 수 있는 함수를 찾는 것이다.
지도학습을 진행하기 전에 우리는 적합한 모델을 선정해야한다. 우선 우리가 파악하고자하는 데이터의 특징들을 확인한다. 해당 특징들이 데이터들을 충분히 설명할 수 있다면 특징들의 상관관계를 바탕으로 데이터들의 분포를 확인한다. 특징들을 잘 추출하였다면 분포가 어떤 모델과 유사한 분포를 띄게 된다. 그렇다면 우리는 해당 모델을 선택하면 된다. 세부적인 모델의 디테일은 지도학습을 통해 수정해 나가는 것이다.
적합한 모델을 선정하는 것이 지도학습에서 높은 비율을 차지한다.
적합한 모델을 선정하는 것도 중요하지만, 모델이 실전에서 사용될 때에도 적합한 답을 내놓는 것도 중요하다. 그러나 실전에서 사용되는 일에 대해서는 감히 예측할 수는 없다. 그래서 지도학습에서는 오차에 초점을 맞추어 이를 해결하고자 한다.
지도학습의 과정에서 모델의 출력과 정답에 일정 수준의 차이가 발생한다. 이를 손실함수를 통해 오차를 측정한다. 학습을 진행할 때의 오차와 검증을 진행할 때의 오차가 비슷하면서, 이들의 오차가 0에 가까우면 일반적인 상황에서의 오차도 마찬가지로 0에 가까울 것을 가정하여 진행한다.
우선 학습을 진행할 때의 오차와 검증을 진행할 때의 오차가 비슷해야한다. 만약 둘의 값이 비슷하지 않다면, 이는 학습을 진행할 때 모델이 주어진 데이터에 지나치게 끼워 맞춰졌다는 것(overfitting)을 의미한다. 이러한 경우 정규화를 통해 분산을 퍼트리거나, 데이터의 양을 늘려 해결한다.
해당 오차가 0과 비슷한 지도 중요하다. 0에 가까울수록 모델의 정확도가 높음을 의미하고, 편향의 정도가 적음을 의미한다. 만약 오차가 크다면, 데이터가 제대로 평가되고 있지 않음(underfitting)을 의미한다. 이러한 경우 최적화를 통해 해결하거나, 더욱 복잡한 모델을 이용하여 해결한다.