플로라도의 data workout

Loss Function vs Cost Function vs Objective Function은 무슨 차이 인가요? 본문

기초 노트/MachineLearning

Loss Function vs Cost Function vs Objective Function은 무슨 차이 인가요?

플로라도 2023. 7. 1. 15:53


머신러닝, 딥러닝 관련 다양한 서적과 논문,  강의와 저널등에서 한국말로 "손실함수" 라는 표현에 대응 되는 영어 표현으로
왠지 줄여야만 할것 같은 녀석들,

'Loss function'과 'Cost function' 그리고 'objective function'이 등장한다.
도대체 이놈들의 차이는 뭐길래,  이름을  달리하여 쓰는걸까?
 
 
①Loss function :

Loss function은 단일 데이터 포인트에 대한 모델의 오차를 측정하는 컨텍스트라고 보면 된다.

훈련 데이터로 예측한 값인 $\hat{y}$ 실제 $y$값간의 차이를 $Loss$라 하고

그 차이를 측정하는 방법인 Loss fuction으로 절댓값 손실, 제곱 손실 등이 있다. (위의 수식은 제곱 손실에 해당한다.)

일반적으로 회귀 문제(regression task)의 경우, 제곱 오차를 사용하고
분류 문제(Classification task)의 경우, 크로스 엔트로피를 사용한다.
 
 
②cost function :

cost function(비용 함수)은 전체 데이터셋에 대한 모델의 오차를 측정한다.

일반적으로 단일 데이터 포인트들에서 loss function을 통해 구한 loss들의 합을 평균내는 방식을 취하게 된다.
머신러닝과 딥러닝에서는 이러한 cost function의 값을 최소화하는 파라미터를 찾는것이 목표(goal)가 된다.

 

 

그러나 실질적인 사용에 있어서 Loss function과 Cost function이라는 용어에 크게 구분을 두지 않는다. 

손실(Loss)는 대게 모델의 최종단에 계산되는 것으로 항상 모든 훈련셋에 대하여 각 단일 데이터 포인트의 loss를 총합으로 나눈 것을 사용하기 때문에 큰 구분없이 사용하게  된다. 
 


③objective function:
"목적 함수" ,말 그대로 목적에 따른 함수이다. task와 원하는 컨텍스트에 따라 최대화를 요구할수도, 최소화를 요구할 수도 있는 녀석이다. (Cost function과 Loss function은 각 함수값을 최소화 하는 것이 모델의 최적의 파라미터를 도출하는 결과를 이끌어 내는 컨텍스트 였다.)
가장 general term이다. 비단 머신러닝 딥러닝 뿐만 아니라 최적화(optimization)를 다루는 분야에서도 많이 등장하는 녀석이다.

 

이전과 다르게 최대화를 하는 예시로 머신러닝 딥러닝에서 자주 등장하는 통계 개념인 MLE와 MAP가 있다.

각자 주장하는 가장 그럴듯한 확률을 추정하고자 하는 방법이며, log-likelihood를 최대화 하는 파라미터$/theta$를 찾고자 한다. (사실 이것이 머신러닝 딥러닝에서 곧 loss function을 minimize 하는 parameter $\theta$를 찾는 것과 같은 맥락이긴 하다.) 

 

MLE의 경우
L(θ; X) = P(X | θ) 에서 
계산의 용이성을 위해 로그를 취하고, objective function의 최댓값이 아닌
θ의 최댓값을 찾고자 하고, objective function은 다음과 같이 간단히 쓸 수 있다.

 
objective function = argmaxθ (log L(θ; X)) = argmaxθ(log P(X | θ))


마찬가지로 MAP의 경우에도
constant, 상수항을 모두 제거한 비례식 P(θ | X) ∝ P(X | θ)P(θ) 에서
θ의 최댓값을 찾고자 시도하는것이며,
argmaxθ(log P(θ | X)) ∝ argmaxθ( log P(X | θ) + log P(θ)) 라고 쓸 수 있고
objective function은 다음과 같이 쓸 수 있다.

 
objective function = argmaxθ( log P(X | θ)  

 

 

또한 앞선 제곱오차의 손실함수, 비용함수의 예시에서 L2 regularization term을 추가한 최종 함수식을 objective function이라고 부르기도 하며 , 마찬가지로 이러한 weight decay, regularization term을 추가하는 것은 빈번한 일이기 때문에 모델에게 규제를 부여하는 컨텍스트로 비용함수(Cost function)이라고 부르기도 한다.

 

 

 

L2 term을 추가한 예

 
특히 생성모델로 유명한 GAN(generative adversarial neural network)에서 사용하는 함수는 최대화와 최소화의 문제를 동시에 풀어야 하는 min-max problem으로 해당 목적식을 objective functinon이라고 부르며,  물론 이 역시 너무 자주 등장하기 때문에 간단히 GAN loss라고 부르기도 한다.

gan loss

 



즉 목적함수(objective function)은 단순 함수의 최소를 보는 것을 벗어나 최대 또는 parameter의 최대값을 찾는 등, 목적에 맞게 사용하게 된다.
 
 

 

Loss function(손실 함수), Cost function(비용 함수), Objective function(목적 함수)의 차이에 대해서 알아보았다.

결국 의미적으로는 크게 차이가 없지만, 사용하는 목적과 맥락에 따라 조금씩 뉘앙스가 다르다.

 

굳이 따지자면 Objective function과 Cost function , Loss function 사이의 관계를 아래의 집합으로 나타낼 수 있다.