손실 함수 (Loss Function)

지도학습(Supervised Learning) 시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수

최적화를 위해 최소화하는 것이 목적인 함수

  • 목적 함수 (Objective Function)
  • 비용 함수 (Cost Function)
  • 에너지 함수 (Energy Function)

✔ 학습 중에 학습이 얼마나 잘 되고 있는지 평가하기 위한 지표

손실함수는 샘플 하나에 대한 손실을 정의하고, 비용함수는 훈련 세트에 있는 모든 샘플에 대한 손실함수의 합을 의미하기도 하는듯

수학적 의미

  • : 손실함수
  • : 목적 함수를 최소화하는 입력값을 찾음 ( 목적함수: , 입력값: )
  • : 학습데이터 입력값, 로 얻어낸 예측값()은 정답()과 비교
  • : 학습데이터의 정답
  • : 학습 시 사용되는 모든 파라미터 벡터 ()
  • : 업데이트된 최적의 파라미터 벡터

손실함수의 종류

평균 절대 오차 (Mean Absolute Error, MAE, L1 Loss)

  • : 학습데이터 정답
  • : 학습데이터 예측값
  • 예측 값과 실제 값 사이의 차이의 절대값을 평균낸 값
  • 오차와 비례하여 일정하게 증가하는 특징 = Outlier에 강건함
  • 이동거리가 일정하므로 최적값에 수렴하기 비교적 어려움
  • 회귀(Regression) 문제에 자주 활용

평균 제곱 오차 (Mean Squared Error, MSE, , L2 Loss)

  • 예측 값과 실제 값 사이의 차이을 제곱하여 평균낸 값
  • 오차가 커질수록 손실 함수 값이 빠르게 증가하는 특징 = 오차가 커질수록 미분값 역시 커짐 = Outlier에 민감함
  • 최적값에 가까워질수록 이동거리가 짧아지므로 수렴하기 용이
  • 회귀(Regression) 문제에 자주 활용

평균 제곱근 오차 (Root Mean Squared Error, RMSE)

  • MSE에 루트를 씌운 지표
  • 값을 제곱해서 생기는 왜곡이 줄어듬
  • 오류 값이 실제 값과 유사한 단위로 변환되므로 오차가 보다 직관적임
  • 회귀(Regression) 문제에 자주 활용

교차 엔트로피 오차 (Cross-entropy Error, CEE)

  • = 데이터 x에 대한 추정된 확률 분포
  • = 데이터 x에 대한 정답 확률 분포
P(x) = [1, 0, 0]

Q값: 0, 1, 1
CE = -(log0 * 1 + log1 * 0 + log1 * 0)= Infinity

Q값: 0.8, 0.1, 0.1
CE = -(log0.8 * 1 + log0.1 * 0 + log0.1 * 0) = 0.22

Q값: 1, 0, 0
CE = -(log1 * 1 + log0 * 0 + log0 * 0) = 0
  • 분류(classification)문제에서 주로 사용 (Softmax 함수와 함께)
  • 분류 문제에서는 MSE보다 더 빨리 수렴

정리

  • 손실함수는 머신러닝에서 모델이 나타내는 확률 분포와 데이터가 따르는 실제 확률 분포 사이의 차이를 나타내는 함수
  • 0에 가까울수록 모델의 정확도가 높고, 반대로 0에서 멀어질수록 모델의 정확도가 낮다
  • 데이터가 연속된 값을 가지는 회귀(regression) 문제에서는 주로 MSE, MAE 등 사용
  • 데이터가 이산적인 값을 가지는 분류(classification) 문제에서는 주로 CE 등 사용

loss function 과 cost function

loss function

  • loss function 은 하나의 데이터에 대한 실제값과 예측값에 대한 오차

cost function

  • 모든 데이터셋에 대한 loss function 오차 평균

참고


Prev: 3. 활성화 함수(Activaion Function)

Next: 6. 최적화와 경사하강법(Optimization)


DeepLearning손실함수


의문점

Question

  1. 입력의 sample 데이터가 100개라 하고, loss function이 MSE 라면
  • 1-1. MSE 수식에서 n은 총 데이터 수(100개)인가?

  • 1-2. 혹은 sample 데이터의 정답이 [50, 30] 예측값이 [40, 10] 일 때,

    MSE는 로 계산한다면 n=2, 즉 아웃풋 레이어의 노드 수가 될 것인가?

Answer

  • 1-1의 해석이 맞는 듯 하다. 기본적으로 딥러닝 학습과정에서 sample 데이터들은 한꺼번에 병렬처리 된다(Batch 연산)

행렬곱으로 보는 순전파


원본 링크

  • 결국 Y(예측) 행렬에 대한 오류를 대상으로 오차를 구한다.
  • 보통 이럴 때, 굳이 손실함수(loss)와 비용함수(cost)를 나누자면, 손실함수로 SE(제곱 오차), AE(절대 오차) 비용함수로 MSE, MAE 를 사용함
  • 따라서 전체 데이터(Full-batch) 또는 **부분 데이터(mini-batch)**를 한 번의 학습(1 epoch)에 사용한다.

참고