Programming/python-deep learning

Tensorflow의 Loss Function과 Metrics의 차이

방황하는 데이터불도저 2023. 10. 5. 18:50

우리는 Tensorflow에서 학습 모델을 구축하려 한다. model architecture를 구성한 뒤, 모델을 실행시키기 위해서는 model compile 과정을 거치게 된다. compile단계에서는 loss function과 metrics를 정의해줄 수 있는데, 여러 종류의 loss function, metrics 중에서 풀고자하는 문제에 적합한 손실함수와 매트릭스를 선택하게 된다.

 

예를 들어 이진 분류 문제에서는 loss='binary_crossentropy', metrics='accuracy'를 해줄 수 있고, 회귀 문제라면 loss='mean_squared_error', metrics='mean_absolute_percentage_error'로 선택하여 모델을 컴파일할 수 있다.

 

얼핏보면 loss와 metrics는 비슷한 기능을 수행하기 때문에, 두 용도에 대해 헷갈릴 수 있다.

따라서, 해당 글에서는 loss와 metrics의 차이점과 그 용도에 대해서 각각 정리해보았다.

loss    ↔    metrics

  • 학습단계(training step)에서 loss 계산    ↔    평가단계(evaluation step)에서 metrics 계산
  • 각 epoch에서 gradient 계산을 위해 활용    ↔    각 epoch 후에 모델 performance를 측정하기 위해 활용
  • 모델의 예측값(predictions)와 실제값(true labels)를 비교하여 loss / metrics를 계산
  • loss를 최소화시키는 방향의 weights update를 위한 최적화 과정이 있음    ↔    최적화 과정이 없음
  • 모델을 평가하기에 해석하기 어려움    ↔     해석하기 쉬움
### Examples ###

# For a binary classification problem
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# For a multi-class classification problem
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# For a regression problem
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mean_absolute_percentage_error'])

 

Reference : https://saturncloud.io/blog/understanding-the-difference-between-loss-function-and-metric-in-keras/

 

Understanding the Difference Between Loss Function and Metric in Keras | Saturn Cloud Blog

In the world of machine learning, understanding the difference between a loss function and a metric is crucial. This is especially true when working with Keras, a popular deep learning library in Python. In this blog post, we will delve into the difference

saturncloud.io