Loss function, Cost function, Objective function 차이
Objective function >= Cost function >= Loss function
간단하게 요약 정리하자면 위의 그림과 같다. 원문을 인용하자면
All that being said, thse terms are far from strict, and depending on context, research group, background, can shift and be used in a different meaning. With the main (only?) common thing being “loss” and “cost” functions being something that want wants to minimise, and objective function being something one wants to optimise (which can be both maximisation or minimisation).
위 용어들은 엄격하게 구분되어 지지는 않고, 상황과 맥락에 따라 다른 의미로 사용되질 수도 있다고 한다.
Loss function
하나의 input data x에 대한 예측값(y^)과 실제 label값(y) 사이의 오차를 계산하는 함수이다.
square loss의 식은 다음과 같다.
Cost function
셋 중 가장 일반적으로 사용되며 흔히 알고있는 함수이다. Loss function은 하나의 데이터에 대한 함수라면 Cost function은 모든 input dataset에 대해 계산한 Loss function의 평균 값이다.
Loss function이 다음과 같을 때
Cost function은 MSE가 된다.
Objective function
학습을 통해 최적화시키려는 함수이다. train 중에 최적화하는 모든 기능에 대한 가장 일반적인 용어라고 보면 된다. Objective function에 꼭 Cost function만 있는 것은 아니다.
예:
- MLE와 같이 학습을 통해 확률을 최대화하려는 function 역시 Objective function으로 정의되지만 이는 Cost, Loss function은 아니다.
- 클래스 간에 Divergence는 Objective function이지만 특별한 경우가 아니라면 Cost function은 아니다.(1-Divergence와 같이 인위적으로 정의하고 cost라고 이름 붙이지 않는 한)
Reference