75. 손실 함수 (Loss Function / Cost Function)
⚠️ 이 문서는 인공신경망이 예측한 값과 실제 정답(Label) 사이의 차이(오차)를 수학적으로 계산하여, 모델이 현재 얼마나 엉터리인지를 수치화하고 인공지능이 어느 방향으로 학습(가중치 수정)해야 할지 나침반 역할을 하는 **손실 함수(Loss Function)**를 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: 모델의 예측값($\hat{y}$)과 실제 정답($y$)을 비교하여 "네가 지금 정답에서 얼마나 멀리 떨어져 있는지"를 점수(Penalty)로 매기는 채점 기준표다. 손실 값이 0에 가까워질수록 똑똑한 모델이다.
- 가치: 이 손실 함수가 뱉어내는 '오차 값'이 있어야만, 이를 바탕으로 미분을 수행하여 오차를 줄여나가는 알고리즘인 '경사하강법(Gradient Descent)'과 '역전파(Backpropagation)'를 시작할 수 있다.
- 기술 체계: 회귀(Regression) 문제에서는 수치 차이를 계산하는 평균 제곱 오차(MSE)를 사용하고, 분류(Classification) 문제에서는 확률 분포의 차이를 계산하는 교차 엔트로피(Cross-Entropy)를 사용하는 등 목적에 따라 함수가 달라진다.
Ⅰ. 손실 함수의 역할: 왜 채점표가 필요한가?
기계는 스스로 자신이 잘하고 있는지 판단할 능력이 없다.
- 오차의 정량화 (Quantification):
- 고양이 사진을 보고 AI가 "개 80%, 고양이 20%"라고 대답했다면, 정답인 "고양이 100%"와 얼마나 틀렸는지를 막연한 느낌이 아닌 '수학적 숫자(예: 3.5점)'로 구체화해야 한다.
- 목적 함수 (Objective Function)로서의 의미:
- 기계학습의 유일한 궁극적 목표는 이 **손실 함수의 결괏값을 최소화(Minimize)**하는 것이다. 손실 함수가 작아지는 방향으로 가중치(Weight) 파라미터들을 미세 조정하는 과정이 곧 '학습(Learning)'이다.
- 비용 함수(Cost Function)와의 미묘한 차이:
- 손실 함수(Loss Function): 데이터 1개에 대한 오차를 계산.
- 비용 함수(Cost Function): 전체 데이터(Batch)에 대한 오차의 평균. (실무에서는 거의 혼용해서 사용함)
📢 섹션 요약 비유: 학생(AI)이 모의고사를 풀고 났을 때, 빨간펜 선생님(손실 함수)이 틀린 개수와 틀린 정도를 점수화(오차 점수)해 주어야만, 학생이 오답 노트를 만들며 다음 시험에서 성적을 올릴 수(학습할 수) 있는 것과 같습니다.
Ⅱ. 회귀(Regression) 문제의 손실 함수: MSE
주식 가격이나 집값처럼 '연속적인 숫자'를 예측할 때 사용한다.
- 평균 제곱 오차 (MSE, Mean Squared Error):
- 예측값과 실제 정답의 차이(오차)를 뺀 뒤, 제곱하여 모두 더하고 평균을 낸다.
- $MSE = \frac{1}{n} \sum (y - \hat{y})^2$
- 제곱을 하는 2가지 이유:
- 첫째, 오차가 양수(+)이든 음수(-)이든 모두 양수로 만들어 상쇄되는 것을 막는다. (예: +3과 -3의 오차 합이 0이 되는 것을 방지)
- 둘째, 정답에서 크게 벗어난 오차(Outlier)일수록 제곱이 되어 엄청나게 큰 패널티(벌점)를 부여함으로써 모델이 큰 실수를 저지르지 않도록 압박한다.
- 파생 함수: MAE(평균 절대 오차 - 절댓값 사용), RMSE(MSE에 루트를 씌움)
📢 섹션 요약 비유: 과녁에 화살을 쏠 때, 정중앙에서 1cm 빗나가면 벌점 1점을 주지만, 5cm 빗나가면 벌점 25점(제곱)을 주어 기계가 "아, 크게 빗나가면 엄청 혼나는구나!" 하고 기겁하게 만드는 방식입니다.
Ⅲ. 분류(Classification) 문제의 손실 함수: Cross-Entropy
"고양이냐 강아지냐"를 고르는 분류에서는 단순한 빼기가 통하지 않는다.
- 교차 엔트로피 (Cross-Entropy Error, CEE):
- 정답인 클래스(예: 고양이)에 대해 모델이 '어느 정도의 확률'로 확신했는지를 로그(Log) 함수를 이용해 계산한다.
- 정답을 100%(1.0)로 확신하면 손실이 0이 되지만, 정답을 10%(0.1)로 찍었거나 아예 오답에 높은 확률을 걸었다면 손실 값이 무한대로 치솟는다.
- 이진 분류 vs 다중 분류:
- 개/고양이 두 개 중 하나를 고를 때는 BCE (Binary Cross-Entropy) + Sigmoid 조합을 사용.
- 숫자 0~9 중 하나를 고를 때는 CCE (Categorical Cross-Entropy) + Softmax 조합을 사용.
- 왜 MSE를 안 쓰고 Cross-Entropy를 쓸까?:
- 분류 문제에 MSE를 쓰면 손실 함수 그래프가 울퉁불퉁해져(Non-convex) 학습이 중간에 멈춰버리는 지역 최솟값(Local Minima)에 빠지기 쉽다. 반면 로그를 씌운 CEE는 그래프가 매끄러운 밥그릇 모양(Convex)이 되어 미분을 통한 학습이 훨씬 부드럽게 이루어진다.
📢 섹션 요약 비유: 사지선다형 시험에서 학생이 "정답은 3번인 게 90% 확실해!"라고 찍었는데 진짜 3번이면 벌점이 0점이지만, "3번인 게 10% 확실해..."라고 찍어서 맞히면 "운으로 맞혔네?"라며 적당한 벌점을 주고 뼈아픈 반성을 시키는 확률 기반의 채점표입니다.