1. 개요[편집]
| 손실 함수 Loss Function | |
|---|---|
| 정의 | 정답 $y$ 와 예측 $\hat y$ 의 어긋남에 매기는 벌점 $\ell(y,\hat y)$ |
| 위험 | $R(f)=\mathbb E[\ell(Y,f(X))]$ — 손실의 기댓값 |
| 학습의 정체 | 경험위험 최소화(ERM) + 정규화 |
| 제곱 손실이 주는 것 | 조건부 평균 |
| 절댓값 손실이 주는 것 | 조건부 중앙값 |
| 핀볼 손실이 주는 것 | 조건부 분위수 |
| 고르는 기준 | 「무엇을 추정할 것인가」 + 「최적화가 되는가」 |
모형이 무엇을 배우는지 알고 싶으면 구조를 보지 말고 손실을 봐라. 신경망이 배우는 것은 데이터가 아니라 손실이 시키는 통계량이다.
손실 함수(loss function)는 정답 와 예측 의 어긋남에 실수 벌점을 매기는 함수 이며, 학습이란 이 벌점의 기댓값을 줄이는 일이다. 손실은 목적함수의 재료일 뿐 아니라 모형이 무엇을 추정할지를 결정하는 규격서다. 같은 데이터, 같은 구조, 같은 옵티마이저라도 손실이 제곱이면 조건부 평균이 나오고 절댓값이면 조건부 중앙값이 나온다. 「모형이 예측을 너무 보수적으로 한다」는 불평의 절반은 모형이 아니라 손실 탓이다.
이 문서는 손실을 세 개의 축으로 정리한다. (1) 손실이 유도하는 통계량이 무엇인가(추출성), (2) 그 손실을 최소화하면 원래 목표에 도달하는가(일관성·적절성), (3) 그 손실이 실제로 최적화되는가(볼록성·매끄러움). 개별 손실의 세부는 힌지 손실, 서포트 벡터 회귀, 로지스틱 회귀 문서에 있고, 여기서는 그것들을 나란히 놓았을 때 보이는 구조를 다룬다.
2. 손실 · 위험 · 경험위험[편집]
세 단어가 자주 뭉개져 쓰이는데, 구분해야 논의가 정확해진다.
- 손실 — 표본 하나에 매기는 벌점.
- 위험(risk) — 진짜 분포 위에서의 기댓값. 우리가 진짜로 줄이고 싶은 것이지만 를 모르므로 계산할 수 없다.
- 경험위험(empirical risk) — 손에 쥔 표본 위에서의 평균. 계산할 수 있는 유일한 것.
학습은 결국 을 줄여서 이 줄기를 바라는 일이고(경험위험 최소화, ERM), 그 바람이 정당한지를 따지는 것이 일반화 이론이다. 실제 코드에서 최소화하는 목적함수는 하나 더 얹혀 있다.
여기서 손실과 정규화항을 뭉뚱그려 「손실」이라 부르는 관습이 혼란의 근원이다. 둘은 역할이 완전히 다르다 — 손실은 데이터에 맞추라고 말하고 정규화는 맞추지 말라고 말한다. 티호노프 정규화, 가중치 감쇠, 조기 종료는 전부 후자 쪽 이야기이며 과적합 문서의 영역이다.
위험의 최솟값 를 베이즈 위험이라 하고, 차이 를 초과 위험(excess risk)이라 부른다. 아래에서 손실을 비교할 때 계속 쓰이는 눈금이 이것이다.
3. 회귀 손실 — 각 손실이 추정하는 통계량[편집]
이 절 하나가 이 문서에서 가장 실무적이다. 손실을 고르는 것은 예측값이 조건부 분포의 어느 지점을 가리킬지 고르는 것과 같다. 예측을 상수 로 두고 를 최소화해 보면 곧바로 보인다.
| 손실 | 식 | 인구 최소해 | 성격 |
|---|---|---|---|
| 제곱 (L2) | 조건부 평균 | 매끄럽고 이상치에 취약 | |
| 절댓값 (L1) | 조건부 중앙값 | 로버스트, 0에서 미분 불가 | |
| 후버 | 아래 참조 | 평균과 중앙값 사이 | 매끄러움과 로버스트의 절충 |
| 핀볼 | 조건부 -분위수 | 비대칭 벌점 | |
| -무감도 | 중앙값 계열 + 무감도 구간 | 해의 희소성 | |
| log-cosh | 평균 근처 | 후버의 판본 |
제곱 손실의 인구 최소해가 평균이라는 것은 한 줄로 끝난다. 이 「평균을 뽑아낸다」는 성질은 제곱 손실만의 특권이 아니라 브레그만 발산 전체의 성질이며, 거꾸로 조건부 평균을 유도하는 손실은 브레그만 발산뿐이라는 것도 증명돼 있다. 제곱오차·쿨백-라이블러 발산·이탈도(deviance)가 한 가족인 이유이고, 일반화 선형 모형이 지수족마다 다른 손실을 쓰면서도 전부 평균을 추정하는 이유다. 자세한 구조는 브레그만 발산 문서에 있다.
핀볼 손실(pinball loss, 분위수 손실)은 비대칭 벌점의 교과서적 사례다.
라면 과소예측()은 0.9의 기울기로, 과대예측은 0.1의 기울기로 벌한다. 「덜 부르는 것이 아홉 배 아프다」고 말하면 최적 예측은 위로 밀려 90 % 분위수에 가서 선다. 이면 절댓값 손실의 절반이 되어 중앙값으로 돌아온다. 전력 수요 상한, 배송 소요시간 상한, 재고 안전재고처럼 점추정이 아니라 구간의 끝이 필요한 문제에서 이것 하나로 예측구간을 만든다 — 와 로 두 번 학습하면 그대로 90 % 구간이다. 이 손실을 선형 모형에 얹은 것이 분위수 회귀이고, 그래디언트 부스팅이나 신경망에 얹어도 골격은 똑같다.1
후버 손실은 두 세계를 이어 붙인다.
작은 잔차에서는 제곱, 큰 잔차에서는 선형이다. 에서 값과 1계 도함수가 이어져 이므로 경사법을 그대로 쓸 수 있고, 꼬리가 선형이라 이상치 하나가 해를 통째로 끌고 가지 못한다. 다만 흔히 「후버는 평균과 중앙값 사이를 준다」고 요약되는데 정확히 무엇을 추정하는지는 와 잔차 분포에 함께 의존한다. 대칭 분포에서는 평균 = 중앙값이라 문제가 안 생기지만, 비대칭 잔차에 후버를 쓰고 결과를 「평균 예측」이라 보고하는 것은 틀렸다. 로버스트 통계 쪽에서 M-추정량으로 부르는 대상이 바로 이것이다.
여기서 파생되는 규율 하나. 평가 지표와 손실을 어긋나게 두면 안 된다. MSE 로 학습하고 MAE 로 보고하면 모형은 평균을 내놓았는데 채점은 중앙값 기준으로 하는 셈이라, 잔차가 치우친 문제에서 구조적으로 손해를 본다. 「모형 성능이 안 나온다」는 상황의 상당수가 이 불일치다.
한 걸음 더 나가면 모든 통계량이 손실로 뽑히지는 않는다는 사실에 부딪힌다. 어떤 통계량 에 대해 「 의 최소해 = 」가 되는 손실이 존재할 때 그 통계량을 추출 가능(elicitable)하다고 한다. 평균·중앙값·분위수는 추출 가능하고, 분산은 단독으로 추출 불가능하며, 금융 위험에서 쓰는 기대손실(expected shortfall)도 단독으로는 불가능하지만 분위수와 짝으로는 가능하다는 것이 알려져 있다. 「분산을 직접 학습시키는 손실을 짜겠다」는 시도가 잘 안 풀리는 데는 이유가 있는 셈이다.2
4. 분류 손실 — 0-1의 비볼록성과 대리손실[편집]
분류에서 진짜 목표는 오분류율, 즉 0-1 손실 의 기댓값이다. 그런데 이 함수는 계단이라 거의 모든 곳에서 경사가 0이고, 볼록하지 않으며, 선형 분류기에 대해서조차 최소화가 NP-난해다. 그래서 마진 ()의 함수인 볼록 대리손실(surrogate loss)로 갈아 끼운다.
| 대리손실 | 인구 최소해 | 특징 | |
|---|---|---|---|
| 로지스틱 | 확률 복원 가능, | ||
| 힌지 | 희소, 확률 못 줌 | ||
| 지수 | AdaBoost, 이상치 취약 | ||
| 제곱 | 회귀 손실의 분류 전용(브라이어와 동치) |
()
이 표를 세로로 읽는 것이 요령이다. 로지스틱·지수·제곱은 를 복원하지만 힌지는 부호만 복원한다. 확률이 필요한 파이프라인에서 SVM 출력을 확률처럼 쓰면 안 되는 이유가 손실 설계 단계에서 이미 정해져 있는 셈이고, 그 자세한 계산과 결과는 힌지 손실 문서에 있다.
대리손실이 정당하려면 일관성이 필요하다. 대리 위험을 줄일 때 오분류율도 함께 줄어야 한다는 것으로, 볼록 마진 손실에 대한 판정은 간단하다 — 가 0에서 미분가능하고 이면 분류 캘리브레이션된다(바틀렛·조던·매컬리프, 2006). 위 표의 넷은 전부 통과한다. 나아가 두 초과 위험 사이에 부등식
이 성립하며, 가 손실마다 다르다. 힌지는 가 항등함수라 상수 없이 곧장 넘어가고, 로지스틱·지수는 제곱근이 붙어 느슨해진다. 어느 손실이 「더 좋으냐」는 질문의 답이 하나가 아닌 이유가 여기 있다 — 오분류율만 보면 힌지가 유리하고, 확률이 필요하면 로지스틱이 유일한 선택지다.
5. 적절 채점규칙과 캘리브레이션[편집]
예측이 라벨이 아니라 확률 분포일 때 쓰는 손실을 채점규칙(scoring rule)이라 부른다. 여기엔 회귀·분류 손실에 없던 요구가 하나 붙는다.
적절성(propriety): 진짜 확률이 일 때, 기대 점수가 에서 최소가 되어야 한다. 등호가 에서만 성립하면 엄격 적절(strictly proper)이다.
이 조건이 없으면 예측자가 자기가 믿지 않는 확률을 발표하는 것이 이득이 된다. 채점규칙 하나 고르는 일이 예보자·모형의 인센티브 구조를 결정한다는 뜻이다. 표준 두 개는 다음과 같다.
뒤쪽이 분류 문제에서 흔히 교차 엔트로피라 불리는 그것이며, 라벨이 원-핫이면 정답 클래스의 로그확률 하나만 남는다는 점에서 이름 두 개가 같은 식을 가리킨다. 둘 다 엄격 적절이며, 성격은 반대다. 브라이어는 유계이고 오차에 2차로 반응하는 반면, 로그 손실은 정답 클래스에 0에 가까운 확률을 준 순간 무한대로 발산한다. 자신 있게 틀리는 것을 극단적으로 싫어하는 채점이라 확률이 밀리는 꼬리 영역의 학습에 유리하지만, 라벨 잡음이 있으면 잘못된 라벨 하나가 손실을 지배해 버린다. 실무에서 로그 손실로 학습하고 브라이어로 보고하는 조합이 흔한 것은 이 성격 차이 때문이다.
적절 채점규칙에는 아름다운 구조가 있다. 모든 적절 채점규칙은 어떤 볼록함수 (일반화 엔트로피)로부터 유도되고, 두 확률 사이의 기대 점수 차이는 정확히 의 브레그만 발산이 된다(새비지 표현). 로그 손실은 가 음의 섀넌 엔트로피여서 발산이 쿨백-라이블러 발산이 되고, 브라이어는 가 지니 지수여서 유클리드 제곱거리가 된다. 앞 절의 「평균을 유도하는 손실 = 브레그만 발산」과 정확히 같은 정리의 다른 얼굴이다.
그리고 여기서 캘리브레이션으로 다리가 놓인다. 엄격 적절한 손실을 무한 데이터에서 최소화하면 최적해는 진짜 조건부 확률이고, 진짜 조건부 확률은 정의상 캘리브레이션돼 있다. 실제로 적절 채점규칙의 기댓값은
으로 쪼개진다. 즉 적절한 손실 하나가 정직함과 유용함을 동시에 채점한다. 그런데 유한 데이터·유한 용량에서는 최소화가 끝나도 캘리브레이션 항이 0으로 가지 않고, 현대 신경망에서는 오히려 커진다. 이 간극을 사후에 메우는 것이 확률 캘리브레이션이고, 분해의 구체적 형태와 보정 기법은 그쪽 문서에 있다.
6. 볼록성·매끄러움·강볼록 — 최적화가 보는 손실[편집]
통계가 「무엇을 추정하나」를 묻는다면, 최적화는 「몇 번 만에 도달하나」를 묻는다. 답은 손실의 세 가지 성질로 거의 결정된다.
- 립시츠() — 경사가 유계. 큰 잔차에서도 갱신이 폭주하지 않는다.
- 매끄러움( 이 -립시츠) — 곡률에 상한이 있다. 학습률을 로 잡을 근거가 생긴다.
- 강볼록( 가 볼록) — 곡률에 하한이 있다. 최소해가 유일하고 수렴이 지수적으로 빨라진다.
| 손실의 성질 | 1차 방법의 수렴률 | 대표 손실 |
|---|---|---|
| 볼록 + 립시츠 (비평활) | 준경사법 | 힌지, 절댓값, 핀볼 |
| 볼록 + -매끄러움 | , 가속 시 | 로지스틱, 후버, 제곱 |
| -강볼록 + -매끄러움 | 선형 수렴 | 제곱 손실 + L2 |
| 확률적, 볼록 | SGD 일반 | |
| 확률적, 강볼록 | Pegasos 계열 |
읽는 법은 이렇다. 비평활 손실을 고르는 순간 가속을 포기한다. 힌지에서 네스테로프 가속이나 뉴턴형 방법을 못 쓰는 것이 제곱 힌지·부드러운 힌지 같은 매끄러운 변형이 계속 만들어지는 이유이고, 반대로 매끄러운 손실은 이상치 꼬리를 2차로 키워 로버스트성을 잃는다. 매끄러움과 로버스트성은 손실 설계에서 정면으로 충돌하는 두 요구이며, 후버는 그 충돌의 가장 오래된 타협안이다.
립시츠성은 통계 쪽에서도 값을 한다. 통계적 학습 이론의 표준 도구인 탈라그랑 축약 부등식 덕에 라데마허 복잡도가 손실의 립시츠 상수에 선형으로만 커지므로, 립시츠 손실을 쓰면 일반화 한계가 깔끔하게 따라온다. 차분 프라이버시 학습에서 경사 클리핑을 하는 것도, 강화학습의 PPO 가 비를 잘라내는 것도 결국 「손실을 억지로 립시츠로 만드는」 조작이다.
강볼록성은 대개 손실이 아니라 정규화가 공급한다. 로지스틱 회귀의 손실은 엄격 볼록이지만 강볼록은 아니다 — 마진이 커지면 곡률 가 0으로 수렴하기 때문이다. 그래서 선형분리 가능한 데이터에서는 최소해가 아예 존재하지 않고 계수가 발산한다. 흥미로운 것은 그 발산의 방향이 아무렇게나가 아니라 최대 마진 해로 수렴한다는 사실(경사하강의 암묵적 편향)인데, 그렇다고 수치적으로 안전해지는 것은 아니다. 를 더해 를 만들면 해가 유일해지고 조건수가 로 묶인다. 정규화 계수는 통계적 하이퍼파라미터인 동시에 최적화 하이퍼파라미터다.3
7. 불균형과 잡음 라벨을 위한 변형[편집]
기본 손실은 「클래스가 고르고 라벨이 정확하다」를 암묵적으로 가정한다. 현실이 그렇지 않을 때 손실을 손보는 처방이 여럿 있다.
- 클래스 가중치. 소수 클래스의 손실에 를 곱한다. 가장 단순하고 대개 첫 번째로 시도할 것. 다만 가중치를 바꾸면 최소해가 바뀌므로 출력 확률의 의미도 함께 바뀐다 — 사전확률을 인위적으로 옮긴 상태이니 확률로 읽으려면 되돌려야 한다.
- 포컬 손실(focal loss). 로, 이미 잘 맞힌 표본()의 기여를 배로 눌러 쉬운 다수 표본이 경사를 지배하는 것을 막는다. 배경 후보가 전경보다 수만 배 많은 밀집 객체 검출에서 도입됐고(Lin 외, 2017), 가 사실상 기본값이다. 주의할 점은 포컬 손실이 엄격 적절 채점규칙이 아니라는 것 — 최소해가 진짜 가 아니므로 출력을 그대로 확률로 읽으면 안 된다. 실증적으로는 과확신이 줄어 ECE 가 좋아진다는 보고가 많은데, 이는 정직해졌다기보다 적절성을 포기한 대가로 보수적으로 치우친 것에 가깝다.
- 라벨 스무딩. 원-핫 타깃을 로 무르게 만든다. 로짓이 무한대로 밀리는 것을 막아 과확신을 억제하고 표현을 조밀하게 만드는 효과가 알려져 있지만, 이것 역시 최소해를 스무딩된 분포로 옮긴다. 즉 이 손실은 원래 에 대해 적절하지 않으며, 확률로 쓰려면 역변환하거나 사후 보정을 얹어야 한다. 지식 증류의 교사 모형에 라벨 스무딩을 쓰면 오히려 성능이 나빠진다는 보고도 같은 뿌리다.
- 로짓 조정. 학습 시 또는 추론 시 로짓에 (클래스 사전확률)를 더해 균형 오차에 대해 일관성을 회복시킨다. 가중치 곱하기보다 이론적 근거가 깔끔한 편이다.
- 잡음 라벨용 손실. 대칭 잡음 아래에서는 MAE(평균절대오차) 형태의 분류 손실이 이론적으로 잡음에 강한 반면 학습이 극도로 느리다는 것이 알려져 있고(Ghosh 외, 2017), 이 둘 사이를 매개변수 하나로 잇는 일반화 교차 엔트로피(Zhang & Sabuncu, 2018)가 표준 절충안이다. 방향은 결국 하나 — 손실을 유계로 만들면 로버스트해지고 볼록성·학습 속도를 잃는다. 램프 손실에서 이미 본 그 교환이다.
마지막으로 비용이 비대칭인 문제. 오탐과 미탐의 값이 다르면 손실을 고치기 전에 임계값부터 고치는 것이 정석이다. 확률을 제대로 내놓는 모형이 있으면 최적 임계값은 비용비에서 닫힌 형태로 나오고, 손실을 건드리면 확률의 의미가 망가진다. 「불균형 데이터라서 손실을 바꿨다」는 보고서를 볼 때 확인할 것은 그 전에 임계값 조정을 시도했는가이다.
8. 관련 문서[편집]
- 힌지 손실 · 서포트 벡터 회귀 · 서포트 벡터 머신 · 로지스틱 회귀
- 확률 캘리브레이션 · 브레그만 발산 · 쿨백-라이블러 발산 · 편향-분산 분해
- 최대우도추정 · 일반화 선형 모형 · 지수족 · 최소자승법
- 볼록 최적화 · 비평활 최적화 · 경사하강법 · 확률적 경사하강법
- 과적합 · 교차검증 · 티호노프 정규화 · 가중치 감쇠
- 소프트맥스 함수 · AdaBoost · 그래디언트 부스팅 · 로버스트 통계
- 분위수 회귀 · 교차 엔트로피 · 통계적 학습 이론
9. Footnotes[편집]
-
그런데 를 여러 개 따로 학습하면 학습된 분위수 곡선들이 서로 교차하는 사고가 난다. 95 % 분위수가 90 % 분위수보다 낮게 나오는 물리적으로 불가능한 출력인데, 각 를 독립 문제로 풀었으니 당연하다. 단조 제약을 걸거나 사후에 정렬하는 것이 표준 처방이고, 후자는 「그냥 sort 하면 된다」는 이유로 압도적으로 자주 쓰인다. ↩
-
추출 가능성은 순수 이론처럼 보이지만 금융 규제 논쟁에서 실제로 불이 붙었던 주제다. 바젤 규제가 VaR(분위수)에서 기대손실로 넘어갈 때 「기대손실은 단독으로 추출 불가능하니 백테스팅을 어떻게 하냐」가 쟁점이었고, VaR 와 짝으로는 추출 가능하다는 결과(Fissler·Ziegel, 2016)가 나오면서 정리됐다. 손실 함수의 존재 여부가 규제 문서를 바꾼 흔치 않은 사례. ↩
-
그래서 「 를 줄였더니 학습이 안 끝난다」는 현상은 버그가 아니다. 를 10배 줄이면 조건수가 10배 커지고 필요한 반복 횟수가 그만큼 늘어난다. 정규화를 끄면서 학습률과 에폭 수를 그대로 두는 실험 설계는 두 요인을 섞어 놓은 것이라, 그 결과로 「정규화가 성능에 좋더라」고 결론 내리면 절반은 최적화 이야기를 통계 이야기로 오독한 것이다. ↩