나뭇잎 교과서

손실함수

인공지능이 얼마나 틀렸는지를 하나의 수로 나타낸 함수를 손실함수라 합니다. 학습은 손실함수의 값을 가장 작게 하는 모델을 찾는 일입니다. 이 절에서는 평균제곱오차를 함수로 그려 최솟값을 찾고, 손실함수를 무엇으로 정하느냐에 따라 학습 결과가 달라지는 것을 확인합니다.

본문

손실함수

본문

반 학생 다섯 명의 하루 운동 시간이 3, 4, 5, 6시간이고 한 명은 실수로 60시간이라고 입력되었다. 이 자료로 '대표값'을 하나 예측한다면 얼마로 해야 할까? 평균을 쓰면 15.6시간이 되어 아무도 대표하지 못한다. 예측이 얼마나 틀렸는지를 재는 기준, 곧 손실함수를 어떻게 정하느냐에 따라 답이 달라진다.

그림 1. 자료 3, 4, 5, 6과 다섯 번째 값(아래 빨간 점들)에 대해 하나의 값 \(c\)로 예측할 때의 손실. 제곱 손실(주황)은 평균에서, 절댓값 손실(파랑)은 중앙값에서 최소이다. 다섯 번째 값을 크게 하면 제곱 손실의 최소점만 크게 끌려간다.
먼저 알아야 할 것이차함수의 그래프와 꼭짓점(공통수학1), 절댓값, 평균과 중앙값, 추세선(추세선).

4.3.1손실함수

인공지능의 예측이 실제 값과 얼마나 다른지를 하나의 수로 나타내는 함수를 손실함수라 한다. 학습은 손실함수의 값을 가장 작게 하는 매개변수를 찾는 일이다. 어떤 손실함수를 고르느냐가 곧 무엇을 잘 맞히려는지를 정한다. 가장 흔히 쓰는 두 가지는 오차를 제곱해 더하는 제곱 손실과, 오차의 절댓값을 더하는 절댓값 손실이다.

정리 4.3.1 대표값과 손실함수

자료 \(x_1, \ldots, x_n\)을 값 하나 \(c\)로 예측할 때, 제곱 손실 \(\sum (x_i - c)^2\)은 \(c\)가 평균일 때 최소이고, 절댓값 손실 \(\sum |x_i - c|\)는 \(c\)가 중앙값일 때 최소이다.

제곱 손실은 \(c\)의 이차함수 \(nc^2 - 2c\sum x_i + \sum x_i^2\)이므로 꼭짓점 \(c = \dfrac{\sum x_i}{n}\), 곧 평균에서 최소이다. 절댓값 손실은 꺾은선 모양인데, \(c\)를 중앙값보다 조금 오른쪽으로 옮기면 왼쪽의 자료가 더 많아 손실이 늘어난다. 그래서 왼쪽과 오른쪽의 자료 수가 같아지는 중앙값에서 최소가 된다.1

4.3.2이상치에 대한 민감도

그림 1에서 다섯 번째 값을 7에서 20으로 늘려 보자. 제곱 손실의 최소점(평균)은 5에서 7.6으로 크게 움직이지만, 절댓값 손실의 최소점(중앙값)은 5 그대로이다. 제곱 손실은 큰 오차를 제곱으로 부풀리므로, 멀리 떨어진 자료 하나가 예측을 자기 쪽으로 강하게 끌어당긴다. 그래서 잘못 입력된 자료가 섞여 있을 수 있을 때는 절댓값 손실이 더 안정적이다. 반면 큰 오차를 특히 피해야 하는 문제에서는 제곱 손실이 알맞다.

예측값이 하나가 아니라 추세선 \(y = ax + b\)처럼 기울기와 절편 두 수로 정해지면, 제곱 손실은 \(a\)와 \(b\) 두 수의 함수가 된다. \(a\)를 가로, \(b\)를 세로로 놓고 손실을 높이로 세우면 바닥이 하나뿐인 그릇 모양의 곡면이 생기고, 가장 좋은 추세선은 그 그릇의 바닥에 있다. 매개변수가 많아지면 이런 곡면을 그릴 수는 없지만 바닥을 찾는다는 생각은 같으며, 다음 절의 경사하강법이 그 바닥을 찾아 내려가는 방법이다.

손실최소점장점단점 제곱평균매끈해 미분 쉬움이상치에 민감 절댓값중앙값이상치에 강함꺾인 점이 있음
그림 2. 어떤 손실함수를 고르느냐에 따라 예측의 성질이 달라진다.

4.3.3예제 풀이

예제 4.3.2

자료 3, 4, 5, 6, 60에 대하여 제곱 손실과 절댓값 손실을 최소로 하는 예측값을 각각 구하고, 그때의 손실을 계산하여라.

평균은 \(\dfrac{3 + 4 + 5 + 6 + 60}{5} = 15.6\)이다. 제곱 손실은 \(12.6^2 + 11.6^2 + 10.6^2 + 9.6^2 + 44.4^2 \approx 158.8 + 134.6 + 112.4 + 92.2 + 1971.4 = 2469.2\)이다.

중앙값은 5이다. 절댓값 손실은 \(2 + 1 + 0 + 1 + 55 = 59\)이다. 평균 15.6은 다섯 명 가운데 누구와도 가깝지 않지만, 중앙값 5는 잘못 입력된 60을 빼면 나머지 넷의 한가운데이다. 다만 60이 실수가 아니라 정말 중요한 자료라면 그것을 무시하는 중앙값이 오히려 위험할 수 있다. 손실함수는 문제의 성격을 보고 골라야 한다.

아래 탐구 카드에서 틀린 정도를 함수로 나타내 보고, 잘못된 자료 하나가 두 손실함수를 얼마나 흔드는지 비교해 보자.

  1. 분류 문제에서는 정답일 확률의 로그를 쓰는 교차 엔트로피 손실을 많이 쓴다. 정답에 낮은 확률을 줄수록 손실이 매우 커지도록 만든 함수이다.
마무리

손실함수는 예측이 틀린 정도를 수로 나타내며, 학습은 손실을 최소로 하는 매개변수를 찾는 일이다. 값 하나로 예측할 때 제곱 손실은 평균에서, 절댓값 손실은 중앙값에서 최소이고, 제곱 손실이 이상치에 훨씬 민감하다. 그래서 처음 질문처럼 잘못된 자료가 섞여 있으면 절댓값 손실로 고른 중앙값이 대표값으로 더 안정적이다.

탐구 1

모델이 틀린 정도를 함수로 나타내면 어떤 모양일까?

손실함수 · 조작

택시 거리(km)와 요금(천 원)의 가상 자료 6개에 원점을 지나는 모델 \(y = wx\)를 맞춘다.

  1. 질문인공지능이 학습한다는 것은 무엇을 더 좋게 만드는 걸까? ‘얼마나 틀렸는가’를 하나의 수로 나타낼 수 있을까?
  2. 복원이차함수 \(L(w) = pw^2 + qw + r\) \((p > 0)\)는 \(w = -\dfrac{q}{2p}\)에서 최솟값을 가진다.
  3. 설명모델의 예측값 \(wx_i\)와 실제 값 \(y_i\)의 차를 제곱해 평균 낸 \(L(w) = \dfrac1n\{(y_1 - wx_1)^2 + \cdots + (y_n - wx_n)^2\}\)를 평균제곱오차라 하고, 이렇게 모델이 틀린 정도를 나타내는 함수를 손실함수라 한다. 이 손실은 \(w\)에 대한 이차함수(아래로 볼록)라서 꼭짓점 \(w^* = \dfrac{x_1y_1 + \cdots + x_ny_n}{x_1^2 + \cdots + x_n^2}\)에서 가장 작다. 즉 학습이란 손실을 가장 작게 하는 모델의 값(가중치)을 찾는 일이다.
  4. 연결가중치가 하나면 꼭짓점 공식으로 바로 구하지만, 실제 인공지능은 가중치가 수백만 개라 공식으로 풀 수 없다. 그래서 기울기를 따라 조금씩 내려가는 경사하강법을 쓴다.
  5. 적용막대를 움직여 왼쪽 직선과 오른쪽 손실 곡선 위의 점을 함께 보자. 손실이 가장 작은 \(w\)가 얼마이고, 그 값이 뜻하는 1 km당 요금이 얼마인지 확인해 보자.
  6. 판단손실이 0이 아니라고 모델이 잘못된 것은 아니다. 자료에는 측정 오차와 다른 요인이 섞여 있어서, 가장 좋은 모델도 손실이 남는다.

확인조건이 달라지면

자료가 \((1, 2), (2, 5)\)일 때 \(y = wx\)의 평균제곱오차를 가장 작게 하는 \(w\)는?

탐구 2

잘못 입력된 자료 하나가 들어오면 어떤 손실함수가 더 크게 흔들릴까?

제곱오차와 절댓값오차 · 예측→확인

자료 8개에 \(y = ax + b\)를 맞춘다(가상). 자료 하나가 잘못 입력되어 크게 튀었다고 할 때, 두 손실함수로 학습한 직선 중 어느 쪽이 더 크게 움직일까?

  1. 질문센서 오류로 엉뚱한 값 하나가 자료에 섞였다. 손실함수를 무엇으로 정하느냐에 따라 학습 결과가 얼마나 달라질까?
  2. 복원\(|e| > 1\)이면 \(e^2\)이 \(|e|\)보다 크고, \(e\)가 커질수록 둘의 차이가 빠르게 벌어진다.
  3. 설명평균제곱오차 \(\frac1n\sum e_i^2\)은 큰 오차를 제곱해서 아주 크게 센다. 그래서 튀는 자료 하나를 줄이려고 직선 전체가 그쪽으로 끌려간다. 반면 평균절댓값오차 \(\frac1n\sum|e_i|\)는 오차를 그대로 세므로 튀는 자료의 영향이 작은데, 대신 MAE는 꼭짓점이 뾰족해 미분하기 어려운 곳이 있다.
  4. 연결이것은 평균과 중앙값의 관계와 같다. 제곱오차를 최소로 하는 상수는 평균, 절댓값오차를 최소로 하는 상수는 중앙값이고, 중앙값이 극단값에 덜 흔들린다.
  5. 적용예측한 뒤 튀는 자료를 넣었다 빼며 두 직선의 움직임을 비교해 보자. 그리고 집값 예측처럼 가끔 아주 큰 값이 있는 자료에는 어떤 손실함수가 알맞을지 생각해 보자.
  6. 판단어느 손실함수가 늘 좋은 것은 아니다. 튀는 값이 오류라면 MAE가 낫지만, 드물지만 중요한 진짜 값이라면 그 값을 크게 반영하는 MSE가 맞을 수 있다.

확인조건이 달라지면

자료 1, 2, 3, 4, 100에 상수 하나 \(c\)를 맞출 때, 제곱오차와 절댓값오차를 가장 작게 하는 \(c\)는 각각?

AI 출제 문항연습문제 풀어보기16문항
Esc

↑↓ 고르기Enter 열기