Функція Втрат
Під час навчання нейронної мережі необхідно мати спосіб оцінити, наскільки добре працює наша модель. Для цього використовується функція втрат, яка кількісно визначає різницю між передбаченими вихідними значеннями та фактичними цільовими значеннями. Мета навчання — мінімізувати цю втрату, щоб наші передбачення були якомога ближчими до реальних значень.
Однією з найпоширеніших функцій втрат для бінарної класифікації є крос-ентропія (cross-entropy loss), яка добре працює з моделями, що видають ймовірності.
Виведення функції крос-ентропії
Щоб зрозуміти крос-ентропію, почнемо з принципу максимальної правдоподібності. У задачі бінарної класифікації мета — навчити модель оцінювати ймовірність y^ того, що певний вхід належить до класу 1. Фактична мітка y може бути 0 або 1.
Якісна модель повинна максимізувати ймовірність правильного передбачення всіх навчальних прикладів. Це означає, що потрібно максимізувати функцію правдоподібності, яка відображає ймовірність спостережуваних даних за передбаченнями моделі.
Для одного навчального прикладу, за умови незалежності, правдоподібність можна записати так:
P(y∣x)=y^y(1−y^)1−yЦей вираз означає:
- Якщо y=1, тоді P(y∣x)=y^, тобто потрібно максимізувати y^ (ймовірність, призначену класу 1);
- Якщо y=0, тоді P(y∣x)=1−y^, тобто потрібно максимізувати 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 — кількість навчальних зразків.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4
Функція Втрат
Свайпніть щоб показати меню
Під час навчання нейронної мережі необхідно мати спосіб оцінити, наскільки добре працює наша модель. Для цього використовується функція втрат, яка кількісно визначає різницю між передбаченими вихідними значеннями та фактичними цільовими значеннями. Мета навчання — мінімізувати цю втрату, щоб наші передбачення були якомога ближчими до реальних значень.
Однією з найпоширеніших функцій втрат для бінарної класифікації є крос-ентропія (cross-entropy loss), яка добре працює з моделями, що видають ймовірності.
Виведення функції крос-ентропії
Щоб зрозуміти крос-ентропію, почнемо з принципу максимальної правдоподібності. У задачі бінарної класифікації мета — навчити модель оцінювати ймовірність y^ того, що певний вхід належить до класу 1. Фактична мітка y може бути 0 або 1.
Якісна модель повинна максимізувати ймовірність правильного передбачення всіх навчальних прикладів. Це означає, що потрібно максимізувати функцію правдоподібності, яка відображає ймовірність спостережуваних даних за передбаченнями моделі.
Для одного навчального прикладу, за умови незалежності, правдоподібність можна записати так:
P(y∣x)=y^y(1−y^)1−yЦей вираз означає:
- Якщо y=1, тоді P(y∣x)=y^, тобто потрібно максимізувати y^ (ймовірність, призначену класу 1);
- Якщо y=0, тоді P(y∣x)=1−y^, тобто потрібно максимізувати 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 — кількість навчальних зразків.
Дякуємо за ваш відгук!