Відповіді:
Втрата журналу має приємну властивість, що це диференційована функція. Точність може бути важливішою і, безумовно, більш інтерпретаційною, але вона не може бути безпосередньо застосована при навчанні мережі завдяки алгоритму зворотного розповсюдження, який вимагає диференціювання функції втрат. Якщо бажана втрата не може бути оптимізована безпосередньо (як точність), ви використовуєте функцію втрат, яка поводиться аналогічно проксі-серверу істинної метрики. У разі двійкової класифікації ви використовуєте сигмоїд в кінці та втрату журналу для приблизної точності. Вони сильно корелюються.
Так, вони обидва вимірюють точність y і y_hat, і так вони зазвичай співвідносяться. Іноді функція втрати може бути не точною, але ви все ще зацікавлені в вимірюванні точності, хоча ви не оптимізуєте її безпосередньо. Приклад MNIST Google TensorFlow мінімізує / оптимізує втрату перехресної ентропії, але показує точність користувачеві під час повідомлення про результати, і це зовсім чудово.
Іноді не хочеться безпосередньо оптимізувати точність. Наприклад, якщо у вас серйозний дисбаланс класу, ваша модель дозволить максимально підвищити точність, просто вибираючи найпоширеніший клас, але це не буде корисною моделлю. У цьому випадку ентропія / втрата журналу буде кращою функцією втрат для оптимізації.
show_accuracy
параметра встановлено значення True (наприклад, при встановленні або оцінці). Це правильно?
def your_own_metric(y_true, y_pred)
функцію та передайте їїmodel.compile(..., metrics=[your_own_metric])