Рання зупинка на втраті перевірки чи на точності?


10

В даний час я навчаю нейронну мережу, і не можу вирішити, що використовувати для реалізації своїх критеріїв раннього припинення: втрата валідації або такі показники, як точність / f1score / auc / незалежно від обчислених наборів перевірки.

У своєму дослідженні я натрапив на статті, що захищають обидві точки зору. Здається, Керас за замовчуванням втрати валідації, але я також натрапив на переконливі відповіді протилежного підходу (наприклад, тут ).

У когось є вказівки щодо того, коли краще використовувати втрати валідації та коли використовувати конкретний показник?

Відповіді:


6

TLDR; Контролюйте втрати, а не точність

Я відповім на власне запитання, оскільки думаю, що отримані відповіді пропустили точку, і хтось може мати одну і ту ж проблему одного дня.

По-перше, дозвольте мені швидко уточнити, що використання ранньої зупинки є цілком нормальним при навчанні нейронних мереж (див. Відповідні розділи в книзі «Глибоке навчання» Goodfellow et al., Більшість паперів DL та документацію для зворотного виклику керів EarlyStopping).

Тепер, щодо кількості для моніторингу: віддайте перевагу втраті точності. Чому? Кількість втрат кількісно визначає, наскільки певна модель стосується прогнозування (в основному має значення, близьке до 1 у правому класі та близьке до 0 в інших класах). Точність лише пояснює кількість правильних прогнозів. Аналогічно, будь-які показники, що використовують жорсткі прогнози, а не ймовірності, мають однакову проблему.

Очевидно, яку б метрику ви не підходили до вибору, її слід розраховувати на наборі перевірки, а не на навчальному наборі (інакше ви повністю пропускаєте точку використання EarlyStopping в першу чергу)


Якщо значення становлять від 0 до 1, cross_entropyвтрата є більш кращим кандидатом, ніж MSEабо MAE. Ознайомтесь із розділом підсумкової роботи цієї статті та у цій публікації про статистику .
Есмаїлія

@Esmailian це не питання переваги; Для проблем класифікації MSE та MAE просто не підходять.
пустеля

4

На мою думку, це суб’єктивно та проблематично. Ви повинні використовувати все, що є найважливішим фактором у вашій свідомості, як рушійну метрику, оскільки це може прийняти ваші рішення щодо того, як змінити модель, щоб бути більш зосередженою.

L1

Наприклад, якщо ви повідомляєте F1-бал у своєму звіті / своєму начальнику тощо (і припускаючи, що це саме їх насправді хвилює), то використання цього показника може мати найбільш сенс. F1-рахунок, наприклад, приймає точність і згадати до уваги те , що описує взаємозв'язок між більше двох дрібнозернистих метрик.

Якщо об'єднати ці речі разом, обчислення результатів, окрім звичайних втрат, може бути приємним для огляду та побачити, як оптимізується ваш остаточний показник у ході навчальних ітерацій. Ці відносини, можливо, можуть дати вам більш глибоке розуміння проблеми,

Зазвичай найкраще спробувати кілька варіантів, однак оптимізація втрат під час перевірки може дати можливість навчанню тривати довше, що в кінцевому підсумку також може призвести до найкращого показника F1 . Точність і відкликання можуть коливатися навколо деяких місцевих мінімумів, створюючи майже статичний показник F1 - так ви припините тренуватися. Якби ви оптимізували чисті втрати, можливо, ви зафіксували достатньо коливання втрат, щоб ви могли довше тренуватися.


Чому використання втрати перевірки дозволить тренуватись довше, ніж використання показників? Також, чи можете ви детальніше розглянути різницю між двома варіантами? Чи бачите ви випадок, коли було б погано використовувати метрику, а не втрату?
qmeeus

@ id-2205 - дивіться мою відредаговану відповідь.
n1k31t4

цікавий момент! Наразі я використовую точність для ранньої зупинки, але спробую використати втрати перевірки. Я не чекаю змін у навчальному процесі! Дякую за вашу відповідь
qmeeus

1

В даний час я навчаю нейронну мережу, і не можу вирішити, що використовувати для реалізації своїх критеріїв раннього припинення: втрата валідації або такі показники, як точність / f1score / auc / незалежно від обчислених наборів перевірки.

Якщо ви тренуєтесь у глибокій мережі, я настійно рекомендую не використовувати ранню зупинку. У глибокому навчанні це не дуже звично. Натомість ви можете використовувати інші методи, такі як випадання, щоб добре узагальнити. Якщо ви наполягаєте на цьому, вибір критерію залежить від вашого завдання. Якщо у вас є незбалансовані дані, ви повинні використовувати F1оцінку та оцінювати їх за вашими перехресними даними. Якщо у вас є збалансовані дані, спробуйте використовувати точність даних перехресної перевірки. Інші методи сильно залежать від вашого завдання.

Я настійно заохочую вас знайти модель, яка дуже добре відповідає вашим даним, та використати можливість відмовитися від цього. Це найбільш звична річ, яку люди використовують для глибоких моделей.


2
Я також використовую випадання. Однак я не можу знайти причину, чому не слід використовувати ранню зупинку ...
qmeeus

Рання зупинка намагається вирішити як проблеми навчання, так і узагальнення. З іншого боку, випадання просто намагається подолати проблему узагальнення.
ЗМІ

1
Ви не відповідаєте на моє запитання ... Я не заперечую того факту, що випадання корисне і його слід використовувати для захисту від надмірного оздоблення, я не могла більше погодитися на це. Моє запитання: чому ви говорите, що ранню зупинку не слід використовувати разом з ANN? (cf ваше перше речення: Якщо ви
тренуєтесь

Ви читали мій останній коментар? Це точно відповідає на ваше запитання. Це відома цитата з пр. Нг у своєму класі глибокого навчання, другий курс. Останній випадок є більш легким завданням, оскільки не намагається вирішити кілька задач одночасно.
Медіа

3
А для того, щоб знайти його і знайти правильний набір гіперпараметрів, я використовую якийсь спрямований пошук сітки з ранньою зупинкою з причин, пояснених вище. Точка прийнята, хоча і як тільки я вибрав остаточну модель і буду тренувати її, я не буду використовувати ранню зупинку. Дякую за цю цікаву дискусію та за поради
qmeeus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.