Функція Втрат
Під час навчання нейронної мережі необхідно вимірювати, наскільки точно модель передбачає правильні результати. Для цього використовується функція втрат, яка обчислює різницю між прогнозами моделі та фактичними цільовими значеннями. Мета навчання — мінімізувати цю втрату, зробивши прогнози максимально наближеними до справжніх виходів.
Для задач бінарної класифікації однією з найпоширеніших функцій втрат є крос-ентропія, яка особливо ефективна для моделей, що видають ймовірності.
Виведення функції крос-ентропії
Щоб зрозуміти крос-ентропію, розглянемо принцип максимальної правдоподібності. У задачі бінарної класифікації мета — навчити модель оцінювати ймовірність y^ того, що певний вхід належить до класу 1. Істинна мітка y може набувати одного з двох значень: 0 або 1.
Ефективна модель повинна призначати високі ймовірності правильним прогнозам. Ця ідея формалізується через функцію правдоподібності, яка відображає ймовірність спостереження фактичних даних за прогнозами моделі.
Для одного навчального прикладу, за умови незалежності, правдоподібність можна записати так:
P(y∣x)=y^y(1−y^)1−yЦей вираз означає наступне:
- Якщо y=1, тоді P(y∣x)=y^ — модель повинна призначати високу ймовірність класу 1;
- Якщо y=0, тоді P(y∣x)=1−y^ — модель повинна призначати високу ймовірність класу 0.
В обох випадках мета — максимізувати ймовірність, яку модель призначає правильному класу.
P(y∣x) означає ймовірність спостереження фактичної мітки класу y за умови вхідних даних x.
Для спрощення оптимізації використовується логарифмічна правдоподібність замість функції правдоподібності, оскільки логарифм перетворює добутки на суми, що полегшує диференціювання:
logP(y∣x)=ylog(y^)+(1−y)log(1−y^)Оскільки навчання спрямоване на максимізацію логарифмічної правдоподібності, функція втрат визначається як її від’ємне значення, щоб процес оптимізації став задачею мінімізації:
L=−(ylog(y^)+(1−y)log(1−y^))Це функція втрат бінарної крос-ентропії, яка часто використовується для задач класифікації.
Якщо змінна output представляє y^ для певного навчального прикладу, а змінна target представляє y для цього прикладу, цю функцію втрат можна реалізувати наступним чином:
import numpy as np
loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))
Чому саме ця формула?
Функція втрат крос-ентропії має чітке інтуїтивне пояснення:
- Якщо y=1, втрата спрощується до −log(y^), тобто втрата мала, коли y^ близьке до 1, і дуже велика, коли y^ близьке до 0;
- Якщо y=0, втрата спрощується до −log(1−y^), тобто втрата мала, коли y^ близьке до 0, і дуже велика, коли y^ близьке до 1.
Оскільки логарифми стають дуже від’ємними при наближенні аргументу до нуля, неправильні передбачення сильно штрафуються, що стимулює модель робити впевнені та правильні передбачення.
Якщо під час прямого проходження передається декілька прикладів, загальна втрата обчислюється як середнє значення втрат по всіх прикладах:
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))де N — кількість навчальних зразків.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain how cross-entropy loss differs from mean squared error?
What happens if the model predicts exactly 0 or 1 for the output?
Can you show how this loss function is used during neural network training?
Awesome!
Completion rate improved to 4
Функція Втрат
Свайпніть щоб показати меню
Під час навчання нейронної мережі необхідно вимірювати, наскільки точно модель передбачає правильні результати. Для цього використовується функція втрат, яка обчислює різницю між прогнозами моделі та фактичними цільовими значеннями. Мета навчання — мінімізувати цю втрату, зробивши прогнози максимально наближеними до справжніх виходів.
Для задач бінарної класифікації однією з найпоширеніших функцій втрат є крос-ентропія, яка особливо ефективна для моделей, що видають ймовірності.
Виведення функції крос-ентропії
Щоб зрозуміти крос-ентропію, розглянемо принцип максимальної правдоподібності. У задачі бінарної класифікації мета — навчити модель оцінювати ймовірність y^ того, що певний вхід належить до класу 1. Істинна мітка y може набувати одного з двох значень: 0 або 1.
Ефективна модель повинна призначати високі ймовірності правильним прогнозам. Ця ідея формалізується через функцію правдоподібності, яка відображає ймовірність спостереження фактичних даних за прогнозами моделі.
Для одного навчального прикладу, за умови незалежності, правдоподібність можна записати так:
P(y∣x)=y^y(1−y^)1−yЦей вираз означає наступне:
- Якщо y=1, тоді P(y∣x)=y^ — модель повинна призначати високу ймовірність класу 1;
- Якщо y=0, тоді P(y∣x)=1−y^ — модель повинна призначати високу ймовірність класу 0.
В обох випадках мета — максимізувати ймовірність, яку модель призначає правильному класу.
P(y∣x) означає ймовірність спостереження фактичної мітки класу y за умови вхідних даних x.
Для спрощення оптимізації використовується логарифмічна правдоподібність замість функції правдоподібності, оскільки логарифм перетворює добутки на суми, що полегшує диференціювання:
logP(y∣x)=ylog(y^)+(1−y)log(1−y^)Оскільки навчання спрямоване на максимізацію логарифмічної правдоподібності, функція втрат визначається як її від’ємне значення, щоб процес оптимізації став задачею мінімізації:
L=−(ylog(y^)+(1−y)log(1−y^))Це функція втрат бінарної крос-ентропії, яка часто використовується для задач класифікації.
Якщо змінна output представляє y^ для певного навчального прикладу, а змінна target представляє y для цього прикладу, цю функцію втрат можна реалізувати наступним чином:
import numpy as np
loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))
Чому саме ця формула?
Функція втрат крос-ентропії має чітке інтуїтивне пояснення:
- Якщо y=1, втрата спрощується до −log(y^), тобто втрата мала, коли y^ близьке до 1, і дуже велика, коли y^ близьке до 0;
- Якщо y=0, втрата спрощується до −log(1−y^), тобто втрата мала, коли y^ близьке до 0, і дуже велика, коли y^ близьке до 1.
Оскільки логарифми стають дуже від’ємними при наближенні аргументу до нуля, неправильні передбачення сильно штрафуються, що стимулює модель робити впевнені та правильні передбачення.
Якщо під час прямого проходження передається декілька прикладів, загальна втрата обчислюється як середнє значення втрат по всіх прикладах:
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))де N — кількість навчальних зразків.
Дякуємо за ваш відгук!