[ML/DL 용어정리] Error - Loss - Cost 비슷한듯 다른듯 헷갈리는 너
Error << Loss << Cost 용어 정리
"The error is the difference between the actual value (label) and the predicted value computed for a single data point."
즉, 단일 데이터 포인트(or single instance)에 대한 모델예측과 정답사이의 차이를 나타내는 스칼라 값이다.
"The loss is some sort of aggregation of errors for a set of data points."
즉, 주어진 데이터 포인터의 각 에러 값을 하나의 대표값으로 만든 스칼라 값이다.
그러면 Cost 는? 이부분은 그동안 읽었던 책 내용을 바탕으로 정리했을 때 상충되는 주장이 있는데 다음과 같다:
(관점1) 전통적인 '수치 최적화 커뮤니티'에서는 Cost라는 표현을 더 쓰고, '딥러닝 커뮤니티'에서는 Loss 를 사용한다는 관점이다. 왜냐하면 수치 최적화 관점에서는 함수의 Minimization 값 뿐만 아니라 Maximization 이 되는 부분을 찾을 수도 있기 때문에 이 둘을 아우르는 Cost 라는 표현이 더 어울린다. 반대로 '딥러닝'에서는 Gradient decent 알고리즘으로 수치 최적화가 이루어지므로 함수의 최소값을 찾는 것이 핵심이기 때문에 손실을 나타내는 Loss function 이라 칭한다.
(관점2)
Mini-batch 로 부터 도출된 에러 대표값을 Loss 라고 하고, 전체 Batch 에 대한 에러 대표값이 Cost 이다.
Cost 에 대한 용어 정리가 조금 애매한데 추후에 다른 자료를 더 찾는다면 업데이트하도록 하자.
(추가)
https://www.deeplearning.ai/ai-notes/optimization/
여기에서는 또 다르게 설명 된다. :s 뭐가 맞는거야 대체. 책마다 설명이 다르니 아주 헷갈리네.
말로는 정의하기 애매해졌다. 하지만, 공통적으로 error → loss → cost 순서대로
- aggregation 이 늘어난다
- error 는 순전히 (prediction - ground_truth) 사이의 차이다
- loss 는 error 를 조작한 스칼라 값
- cost 는 loss 를 모아서 대표값을 구하는 것
댓글
댓글 쓰기