우리는 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/
'Programming > python-deep learning' 카테고리의 다른 글
[Tensorflow 2.0] 텐서플로우 데이터 구조 파악하기 (tf.data.Dataset + TFRecord) (0) | 2024.01.19 |
---|---|
[tensorflow] RaggedTensor란? (0) | 2024.01.15 |
[Tensorflow] 그림으로 이해하는 CNN 연산과정 (코드포함) (0) | 2023.09.21 |
Pytorch로 Tensor Operation 다루는 법! (기본 기능 모음) (0) | 2023.09.01 |
Tensor란 무엇인가? (+ Python Numpy Tensor 구현 및 기본 기능) (1) | 2023.08.31 |