지도학습: 모델이 입력값에 따른 결과값을 예측 혹은 측정하도록 하는 것
비지도학습: 입력값이 있어도 정답이라고 표현할 수 있는 결과는 없음. 그러나 데이터 세트에서 데이터간 상관관계나 구조를 익힐 수 있음. 데이터를 설명할 수 있는 구조를 찾는다, 데이터를 설명할 수 있는 좌표계를 재구성한다. 데이터를 설명하는 숨은 구조를 추정
| 학습 종류 | 손실의 기준 |
|---|---|
| 지도 학습 | 정답(label) |
| 비지도 학습 | 데이터 분포/구조 |
지도학습은 관측값을 가장 잘 예측하는 근사 함수를 찾는 과정이다
여기서 f(x) 와 가장 근사한 함수 (모델) 을 찾고싶은 것.
이 f(x)를 임의의 다항식이라고 가정하면 아래와 같이 쓸 수 있다.
그러면 실제 관측값과 우리가 유추하려는 위의 다항식 (모델) 의 차이는 아래와 같을 것이다
우리는 모든 관측값에 대해서 위의 절댓값이 최소가 되는 함수를 찾으면 된다.
하지만 여기서 문제가 발생한다. 우리가 궁금한건 (계수)값이고, 에 대해서 위의 다항식은 1차식이다. 이를 그래프화하면 기울기가 다른 직선들의 나열로 최솟값이 정확히 어디에 위치하는지 계산할 수 없다.
이를 해결하기위해 절댓값 대신 제곱을 하여 2차식으로 만들어주면 그래프는 U 형태로 나타나기때문에 미분을 통해 기울기가 0인 지점인 최솟값을 쉽게 구할 수 있다.
가 최소가 되게하는 를 구하면 이 함수가 곧 일 것이다.
하지만 단순히 기울기를 통해 최솟값을 쉽게 찾기위해 절댓값 대신 최소 제곱을 사용하는 것은 아님.
하지만 가장 처음 언급된 수식을 다시 살펴봐야한다.
애초에 관측값 는 오차를 포함하고 있다. 방금 우리가 구한 함수는 이 오차까지 모두 섭렵한 함수이다. 즉, 함수가 훈련을 위한 데이터 에 대해 과적합(overfitting)한 상태인 것이다.
실제 과적합 상태의 함수를 살펴보면 차수가 높은 항의 계수 의 크기가 매우 크다. 이는 모든 훈련 데이터 수치를 맞추려다보니 많은 굴곡이 필요하게 되고 필연적으로 고차항의 계수가 커지는 것이다.
[그림1. pattern recognition and machine learning-bishop 에서 발췌]
이런 굴곡을 단순화시키기 위해, 즉, 실제 에 근사한 함수를 찾기위해 가 커지는것을 억제하기 위한 패널티를 추가한다.
갑자기 가 튀어나왔다. 가 뜻하는 것은 굴곡의 단순화를 위한 패널티가 얼마나 중요한지를 정해주는 정도이다.
이 는 우리가 직접 여러 수치를 지정해서 를 구하는 실험을 반복해서 각각의 마다 그에 따른 를 구하고 이렇게 구한 들의 예측 성능을 비교하여 오차가 가장 작은 쌍으로 최종 함수를 선택하는 것이다.
예측한 데이터와 실제 데이터간의 오차 (손해)를 수치화한 함수
손실함수의 기울기로 머신러닝 시 의 수치를 어느 방향으로 조정해줘야하는지 판단할 수 있음.
예측하려는 데이터에서의 오류 분포에 따라 손실함수가 달라짐
: 0 (맞춤)
: 1 (틀림)
틀릴 확률이 가장 작은 값을 선택하게 되고 이는 곧 최빈값이 됨
절댓값 오차의 기대값을 최소화하는 예측값이 중앙값이 됨
오차 제곱의 기대값을 최소화하는 예측값이 평균이 됨 (가능한 정답들의 평균을 예측하게 됨)
0-1 loss 손실함수처럼 분류에 사용되는 손실함수. 0-1 loss에서는 가장 확률이 큰 클래스를 선택하고, 그 선택이 정답이면 손실은 0이 된다. 정답이 고양이일때 모델이 아래와 같은 확률 출력을 내놓는다면 0-1 loss 손실함수 사용 시
고양이일 확률 손실은 0
이 경우 역시 고양이일 확률 손실은 0.
그러나 cross-entropy loss 손실함수에서는
정답 클래스(고양이)의 확률을 사용해 손실을 계산한다.
손실은 작을수록 정답일 확률이 높다는 것인데 이를 위해 cross-entropy 에서는 확률에 -log 를 취한 값을 손실로 사용하여 확률이 1에 가까워질수록 손실은 0에, 확률이 작아질수록 손실이 커지게 한다.
즉 이때 고양이의 확률 손실은 에 해당한다
만약 모델의 결과가 아래와 같다면
이 되어 0-1 loss 와 다른 손실값이 도출되는 것
| 개념 | 의미 |
|---|---|
| likelihood | 데이터가 나올 확률 |
| negative log-likelihood | 손실함수(loss) |
| MLE (Maximum Likelihood Estimation) | 손실함수를 최소화해서 (w)를 찾는 과정 |
| 결과 | 최적 파라미터 ( \hat w ) |
위에 서술한 것 뿐만 아니라 더욱 많은 종류의 손실함수가 있다. 그런데 왜 유독 MSE 가 자료에 많이 나오고 중요하게 다뤄지며 많이 사용될까?
자연에서 얻어지는 데이터에서 오차를 살펴보면 이 오차들은 자연(?)스럽게도 정규분포를 따른다 (중심극한정리). 이를 이용해 수학자 가우스는 오차의 분포가 정규분포를 따른다고 가정하고 손실함수로 변환하면 (negative log-likelihood) L2 loss 함수로 귀결되기때문에 오차 분포가 정규분포인 상황에서는 L2 loss를 최소화 하는 방향이 가장 적합하다는 것을 증명한다.
L1 norm: 맨해튼 거리 (격자 거리)
L2 norm: 유클리드 거리 (직선 거리)
모델의 오차 를 말로 풀어내면
오차 = 실제 자연 발생 오차 + 잘못된 예측(학습된 모델)으로 인한 오차
자연적으로 발생하는 오차는 우리가 줄일 수 없다. 고로 잘못된 예측으로 인한 오차를 최소화하여야 하는데 잘못된 예측으로 인한 오차는 또 이렇게 분해될 수 있다.
잘못된 예측으로 인한 오차 = 모델 모양이 잘못됨(편향↑, 분산↓) + 모델 모양이 학습 데이터에 과적합(편향↓, 분산↑)
수식으로 풀어내면 더욱 더 명확하지만 내 이해도가 그만큼 깊지 않아 해당 포스트에서는 넘어가겠다.
An Introduction to Statistical Learning FIGURE 2.9
그림2.9 에서 점으로 표현된 데이터로 학습을 했을 때 초록색 선은 분산이 높은 상태이고 노란색 선은 편향이 높은 상태이다. MSE 를 낮추는 것이 목표인 우리는 편향과 분산의 트레이드 오프 관계에서 적절한 절충점을 찾아야 한다. 이를 잘 보여주는 그래프를 An Introduction to Statistical Learning 에서 그대로 발췌하였다.

한번의 test set을 통한 모델의 성능은 실제 성능과의 오차가 클 수 있기때문에 평가를 여러번 진행하여 모델의 일반화 성능을 추정하는 방법. 해당 포스트에서는 k-fold Cross-Validation 에 대해서만 다룬다.
위의 validation set approach 가 평가를 한번만 진행하기에 발생하는 단점을 해결. 데이터 N 개에서 1개만 test set으로, 나머지 N-1 을 train set 으로 나눈 후 이 과정을 N 번 반복.
위의 Validation Set Approach 와 LOOCV 의 절충안
test set 크기
train set 크기
로 나누어서 K 번 반복 평가로 cross validation error (CV error) 를 구한다.
CV error 가 가장 작은 모델을 선택한다.
이때 k 는 일반적으로 10-fold 를 가장 많이 사용하고 그 외에는 계산량 / 분산 / 편향의 균형으로 조절한다.