Як інтерпретувати "втрату" та "точність" для моделі машинного навчання


201

Коли я тренував свою нейронну мережу разом із Теано чи Тенсдорфлоу, вони повідомлятимуть про змінну під назвою "втрата" за епоху.

Як слід інтерпретувати цю змінну? Чим більше втрати, тим краще чи гірше, або що це означає для остаточної продуктивності (точності) моєї нейронної мережі?

Відповіді:


284

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

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

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

Точність моделі зазвичай визначається після того, як параметри моделі вивчаються та фіксуються і не відбувається навчання. Потім тестові зразки подаються до моделі і записується кількість помилок (нуль-одна втрата), яку робить модель, після порівняння з справжніми цілями. Потім обчислюється відсоток неправильної класифікації.

Наприклад, якщо кількість тестових зразків становить 1000 і модель класифікує 952 з них правильно, точність точності моделі становить 95,2%.

введіть тут опис зображення

Також є деякі тонкощі при зниженні вартості збитків. Наприклад, ви можете зіткнутися з проблемою перевиконання, коли модель «запам’ятовує» приклади тренувань і стає на зразок неефективною для тестового набору. Переналагодження також виникає у випадках, коли ви не використовуєте регуляризацію , у вас дуже складна модель (кількість вільних параметрів Wвелика) або кількість точок даних Nдуже мала.


2
Привіт @Amir, дякую за дуже детальне пояснення. Однак у мене є проблема: у моїй Нейронній мережі втрати завжди зменшуються, коли я тренуюся (коли епохи збільшуються), проте точність не краща.
mamatv

8
@mamatv Поки вартість зменшується, вам слід добре піти. Хоча вартість і точність зазвичай мають зворотне співвідношення пропорційності, але ви можете зауважити, що точність - це підсумок помилок нуля один, тоді як вартість - це підсумок чисел з плаваючою комою. Тому зниження вартості на 0,001% не обов'язково означає збільшення точності на 0,001%. Підвищити точність набагато складніше, коли зменшення вартості нематеріальне (вартість дуже близька до місцевих мінімумів)
Амір

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

1
Чому б не навчити модель збільшувати точність, а не мінімізувати втрати?
бікашг

2
Точність @bikashg не відрізняється, і тому ви не можете її підтримувати.
DharmaTurtle

23

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

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

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

Скористаємося прикладом класифікації іграшок. Ви хочете передбачити стать за вагою і зростом. У вас є 3 дані, вони такі: (0 підстав для чоловіків, 1 підставка для жінок)

y1 = 0, x1_w = 50кг, x2_h = 160см;

y2 = 0, x2_w = 60кг, x2_h = 170см;

y3 = 1, x3_w = 55кг, x3_h = 175см;

Ви використовуєте просту модель логістичної регресії, яка y = 1 / (1 + exp- (b1 * x_w + b2 * x_h))

Як ви знаходите b1 і b2? спершу ви визначаєте збитки і використовуєте метод оптимізації, щоб мінімізувати втрати ітераційним шляхом, оновивши b1 і b2.

У нашому прикладі типовою втратою для цієї проблеми бінарної класифікації може бути: (перед знаком підсумовування слід додати знак мінус)

Ми не знаємо, якими повинні бути b1 і b2. Зробимо випадкову здогадку, скажімо, b1 = 0,1 і b2 = -0,03. Тоді яка наша втрата зараз?

тому втрата є

Тоді алгоритм навчання (наприклад, спуск градієнта) знайде спосіб оновити b1 і b2, щоб зменшити втрати.

Що робити, якщо b1 = 0,1 і b2 = -0,03 є кінцевими b1 і b2 (вихід із градієнтного спуску), яка точність зараз?

Припустимо, якщо y_hat> = 0,5, ми вирішимо, що наше передбачення жіноче (1). інакше було б 0. Тому наш алгоритм прогнозує y1 = 1, y2 = 1 і y3 = 1. Яка наша точність? Ми робимо неправильне передбачення на y1 і y2 і робимо правильне на y3. Тож тепер наша точність становить 1/3 = 33,33%

PS: У відповіді Аміра , зворотне поширення вважається оптимізаційним методом в NN. Я думаю, це було б розцінено як спосіб знайти градієнт для ваг у NN. Поширеними методами оптимізації в NN є GradientDescent та Adam.


дякую за математику це допомогло з’ясувати концепцію.
Фінн Фротчер

6

@Aadnan Просто для уточнення наборів даних тренінгу / валідації / тесту: Набір тренувань використовується для виконання початкової підготовки моделі, ініціалізації ваг нейронної мережі.

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

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

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