Функція втрат Функція втрат у машинному навчанні
Огляд
- Що таке функції втрат? І як вони працюють в алгоритмах машинного навчання? Дізнайтеся в цій статті
- Функції збитків насправді лежать в основі цих методів, які ми регулярно використовуємо
- Ця стаття висвітлює безліч функцій втрат, де вони працюють, і те, як їх можна кодувати на Python
Вступ
Уявіть собі це: ви навчили модель машинного навчання на певному наборі даних і готові поставити її перед своїм клієнтом. Але як ви можете бути впевнені, що ця модель дасть оптимальний результат? Чи існує метрика чи техніка, яка допоможе вам швидко оцінити свою модель на наборі даних?
Так - і це, у двох словах, де функції машин втрат вступають у програму машинного навчання.
Функції збитків лежать в основі алгоритмів машинного навчання, якими ми любимо користуватися. Але я бачив, як більшість початківців та ентузіастів заплутались у тому, як і де їх використовувати.

Їх не важко зрозуміти, і вони нескінченно покращать ваше розуміння алгоритмів машинного навчання. Отже, що таке функції збитків і як можна зрозуміти їх значення?
У цій статті я розгляну 7 основних функцій втрат, які використовуються в машинному навчанні, та поясни, де використовується кожна з них. У цій статті ми маємо багато висвітлити, тож давайте почнемо!
Функції збитків - це частина всієї подорожі машинного навчання, яку ви пройдете. Ось ідеальний курс, який допоможе розпочати роботу та зробити вас готовим до галузі:
Зміст
- Що таке функції збитків?
- Функції втрати регресії
- Втрата помилок у квадраті
- Абсолютна втрата помилок
- Втрата Губера
- Функції втрати двійкової класифікації
- Двійкова перехресна ентропія
- Втрата шарніра
- Багатокласні класифікаційні функції втрат
- Багатокласна втрата перехресної ентропії
- Втрата дивергенції Куллбека Лейблера
Що таке функції збитків?
Скажімо, ви знаходитесь на вершині пагорба і вам потрібно зійти вниз. Як ви вирішуєте, куди йти назустріч?
Ось що б я зробив:
- Озирніться навколо, щоб побачити всі можливі шляхи
- Відкиньте ті, що йдуть вгору. Це пов’язано з тим, що ці шляхи насправді залежали б від мене більше енергії та ускладнили б моє завдання
- Нарешті, піти шляхом, який я подумайтемає найбільший схил під гору
Ця інтуїція, проти якої я щойно судив свої рішення? Це саме те, що забезпечує функція втрат.
Функція збитків відображає рішення з пов'язаними з ними витратами.
Рішення піднятися на схил буде коштувати нам сил та часу. Рішення спуститися піде нам на користь. Тому це має негативні витрати.
У керованих алгоритмах машинного навчання ми цього хочемо мінімізувати помилка для кожного навчального прикладу в процесі навчання. Це робиться за допомогою деяких стратегій оптимізації, таких як градієнтний спуск. І ця помилка походить від функції втрат.
Яка різниця між функцією збитків та функцією витрат?
Я хочу наголосити на цьому тут - хоча функція витрат і функція втрат є синонімами та використовуються як взаємозамінні, вони різні.
Функція втрат призначена для одного прикладу навчання. Його також іноді називають an функція помилки. З іншого боку, функцією витрат є середня втрата по всьому набору навчальних даних. Стратегії оптимізації спрямовані на мінімізацію функції витрат.
Функції втрати регресії
Ви повинні бути добре знайомі з лінійною регресією в цей момент. Він займається моделюванням лінійних взаємозв’язків між залежна змінна, Y, і кілька незалежні змінні, X_i. Таким чином, ми по суті вміщуємо лінію в просторі на цих змінних.
Ми використаємо наведені точки даних, щоб знайти коефіцієнти a0, a1,…, an.
Для розуміння цієї концепції ми використаємо відомий набір даних про житло в Бостоні. І щоб все було простіше, ми будемо використовувати лише одну особливість - Середню кількість кімнат на житло (X) - для прогнозування залежної змінної - Середнє значення (Y) будинків у $ 1000.
Ми будемо використовувати Градієнтний спуск як стратегія оптимізації для пошуку лінії регресії. Я не буду вдаватися в хитромудрі подробиці щодо градієнтного спуску, але ось нагадування про правило оновлення ваги:
Тут theta_j - вага, який слід оновити, альфа - швидкість навчання, а J - функція витрат. Функція витрат параметризована тета. Наша мета - знайти значення тета, яке приносить мінімальні загальні витрати.
Ви можете отримати поглиблене пояснення Gradient Descent та як це працює тут.
Я визначив кроки, які ми будемо виконувати для кожної функції втрат нижче:
- Напишіть вираз для нашої функції предиктора f (X) та визначте параметри, які нам потрібно знайти
- Визначте втрати, які слід використовувати для кожного прикладу навчання
- Знайдіть вираз для функції витрат - середньої втрати на всіх прикладах
- Знайдіть градієнт функції витрат щодо кожного невідомого параметра
- Визначтесь із швидкістю навчання та запустіть правило оновлення ваги для фіксованої кількості ітерацій
1. Втрата помилок у квадраті
Втрата помилок у квадраті для кожного прикладу навчання, також відомого як L2 Втрата, - квадрат різниці між фактичним та прогнозованим значеннями:
Відповідною функцією витрат є Середній з них Помилки в квадраті (MSE).
Я рекомендую вам спробувати знайти градієнт для градієнтного спуску самостійно, перш ніж звертатися до коду нижче.
Я використав цей код на даних Бостона для різних значень швидкості навчання для 500 ітерацій кожна:
Ось вам завдання. Спробуйте запустити код для швидкості навчання 0,1 ще раз на 500 ітерацій. Повідомте мене про свої спостереження та можливі пояснення у розділі коментарів.
Давайте поговоримо трохи більше про функцію втрати MSE. Це позитивна квадратична функція (виду ax ^ 2 + bx + c, де a> 0). Пригадайте, як це виглядає графічно?