Функції збитків та збитків для навчання нейронних мереж глибокого навчання

Останнє оновлення 23 жовтня 2019 року

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

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

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

Прочитавши цю публікацію, ви дізнаєтесь:

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

Почніть свій проект з моєю новою книгою «Краще глибоке навчання», включаючи покрокові підручники та файли вихідного коду Python для всіх прикладів.

Давайте розпочнемо.

навчання

Функції збитків та збитків для навчання нейронних мереж глибокого навчання
Фото Райана Олбрі, деякі права захищено.

Огляд

Цей підручник розділений на сім частин; вони є:

  1. Навчання нейронних мереж як оптимізація
  2. Що таке функція збитків та втрата?
  3. Максимальна ймовірність
  4. Максимальна ймовірність та перехресна ентропія
  5. Яку функцію втрати використовувати?
  6. Як реалізувати функції збитків
  7. Функції збитків та звіт про ефективність моделі

Ми зупинимося на теорії функцій втрат.

Довідку щодо вибору та реалізації різних функцій втрат див. У дописі:

Навчання нейронних мереж як оптимізація

Нейронна мережа глибокого навчання вчиться відображати набір входів до набору результатів навчальних даних.

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

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

"Градієнт" у градієнтному спуску означає градієнт помилки. Модель із заданим набором ваг використовується для прогнозування та обчислюється похибка цих прогнозів.

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

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

Хочете отримати кращих результатів завдяки глибокому навчанню?

Пройдіть мій безкоштовний 7-денний курс збою електронної пошти зараз (із зразком коду).

Клацніть, щоб зареєструватися, а також отримати безкоштовну версію курсу у форматі PDF для електронних книг.

Що таке функція та втрата?

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

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

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

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

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

Функція витрат зменшує всі різні хороші та погані аспекти можливо складної системи до єдиного числа - скалярного значення, що дозволяє ранжирувати та порівнювати рішення-кандидати.

При обчисленні похибки моделі під час процесу оптимізації повинна бути обрана функція втрат.

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

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

Тепер, коли ми знайомі з функцією втрат та втрат, нам потрібно знати, які функції використовувати.

Максимальна ймовірність

Існує багато функцій, за допомогою яких можна оцінити похибку набору ваг у нейронній мережі.

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

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

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

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

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

Одним із способів інтерпретувати оцінку максимальної ймовірності є розглядати її як мінімізацію різниці між емпіричним розподілом […], визначеним навчальним набором, та розподілом моделі, зі ступенем відмінності між двома, виміряними дивергенцією KL. […] Мінімізація цієї розбіжності KL точно відповідає мінімізації перехресної ентропії між розподілами.

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

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

Тепер, коли ми знайомі із загальним підходом максимальної ймовірності, ми можемо розглянути функцію помилок.

Максимальна ймовірність та перехресна ентропія

За рамкової максимальної ймовірності похибка між двома розподілами ймовірностей вимірюється за допомогою перехресної ентропії.

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

У наборі навчальних даних імовірність прикладу, що належить даному класу, буде 1 або 0, оскільки кожен зразок у наборі навчальних даних є відомим прикладом із домену. Ми знаємо відповідь.

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

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

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

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

Кілька основних функцій використовуються дуже часто. Середня квадратична помилка популярна для задач наближення функції (регресії) […] Функція помилки перехресної ентропії часто використовується для задач класифікації, коли результати інтерпретуються як ймовірності належності до вказаного класу.

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

Багато авторів використовують термін "перехресна ентропія", щоб визначити конкретно негативну логарифмічну ймовірність розподілу Бернуллі або софтмакса, але це помилкова назва. Будь-яка втрата, що складається із негативної логарифмічної вірогідності, є перехресною ентропією між емпіричним розподілом, визначеним навчальним набором, та розподілом ймовірностей, визначеним моделлю. Наприклад, середньоквадратична помилка - це перехресна ентропія між емпіричним розподілом та моделлю Гауса.

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

Майже повсюдно нейронні мережі глибокого навчання навчаються в рамках максимальної ймовірності з використанням крос-ентропії як функції збитків.

Більшість сучасних нейронних мереж навчаються з використанням максимальної ймовірності. Це означає, що функція витрат […] описується як перехресна ентропія між навчальними даними та розподілом моделі.

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

Однією з цих алгоритмічних змін стала заміна середньої квадратичної помилки сімейством функцій перехресних ентропій. Середньоквадратична помилка була популярна у 1980-х і 1990-х роках, але поступово її замінювали перехресні ентропійні втрати та принцип максимальної ймовірності, коли ідеї поширювались між спільнотою статистики та спільнотою машинного навчання.

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

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

Яку функцію втрати використовувати?

Ми можемо підсумувати попередній розділ і прямо запропонувати функції збитків, якими ви повинні користуватися в рамках максимальної ймовірності.

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

Подумайте про конфігурацію вихідного рівня як про вибір кадру вашої проблеми прогнозування, а про вибір функції втрат як про спосіб обчислення помилки для даного кадру вашої проблеми.

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

Ми розглянемо найкращу практику або значення за замовчуванням для кожного типу проблеми щодо вихідного рівня та функції втрат.

Проблема регресії

Проблема, коли ви передбачаєте реальну величину.

  • Конфігурація вихідного рівня: Один вузол з лінійним блоком активації.
  • Функція збитків: Середньоквадратична помилка (MSE).

Проблема двійкової класифікації

Проблема, коли ви класифікуєте приклад як один із двох класів.

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

  • Конфігурація вихідного рівня: Один вузол із сигмоподібним блоком активації.
  • Функція збитків: Перехресна ентропія, яка також називається логарифмічною втратою.

Багатокласова проблема класифікації

Проблема, коли ви класифікуєте приклад як один із більш ніж двох класів.

Проблема сформульована як передбачення ймовірності прикладу, що належить кожному класу.

  • Конфігурація вихідного рівня: Один вузол для кожного класу з використанням функції активації softmax.
  • Функція збитків: Перехресна ентропія, яка також називається логарифмічною втратою.

Як реалізувати функції збитків

Для того, щоб конкретизувати функції збитків, у цьому розділі пояснюється, як працює кожен з основних типів функцій збитків та як розрахувати оцінку в Python.

Середня квадратична втрата помилок

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

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

Функція Python, наведена нижче, надає псевдокодоподібну робочу реалізацію функції для обчислення середньоквадратичної помилки для списку фактичних та списку передбачуваних дійсних величин.