손실은 학습시키고 평가지표는 관찰해
둘 다 compile()에 넣지만 역할은 달라. 손실은 기울기가 흐르는 학습 목표라 미분 가능해야 해. 평가지표는 단계마다 계산해 기록할 뿐 가중치에는 영향을 주지 않아. 정확도는 불연속적인 값이라 손실로 쓰기 어렵지만 사람에게 모델 상태를 설명하는 지표로는 좋아.
평가지표는 목록에 문자열과 인스턴스를 섞어 넘길 수 있어. 이름과 설정을 명확히 하려면 인스턴스를 사용해. 정확도뿐 아니라 precision, recall, AUC, F1 계열을 함께 보면 얼마나 자주 틀리는지와 어떤 종류의 오류를 내는지 알 수 있어.
학습보다 검증 지표를 봐
검증 데이터를 넘기면 모든 지표에 val_이 붙은 짝이 생겨. 학습 지표는 데이터를 맞추는 정도를, 검증 지표는 새로운 데이터로 일반화하는 정도를 보여주며 둘의 차이가 과적합 신호야. 내장 지표로 부족하면 keras.metrics.Metric을 상속해 update_state()에서 배치 값을 누적하고 result()에서 현재 값을 돌려주며 reset_state()에서 에포크마다 초기화해.