Різні визначення функції перехресної ентропії


12

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

C=1nxj(yjlnajL+(1yj)ln(1ajL))

Однак, читаючи вступ Tensorflow , втрата поперечної ентропії визначається як:

C=1nxj(yjlnajL) (при використанні тих же символів, що і вище)

Тоді, шукаючи навколо, щоб знайти, що відбувається, я знайшов ще один набір приміток: ( https://cs231n.github.io/linear-classify/#softmax-classifier ), який використовує зовсім інше визначення перехресної ентропійної втрати, хоча це час для класифікатора softmax, а не для нейронної мережі.

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


Відповіді:


18

Ці три визначення по суті однакові.

1) Вступ Tensorflow ,

C=1nxj(yjlnaj).

2) Для двійкових класифікацій вона стає і через обмеження і , його можна переписати як що є тим же, що і в 3-му розділі .С = - 1j=2

C=1nx(y1lna1+y2lna2)
jaj=1jyj=1
C=1nx(y1lna1+(1y1)ln(1a1))

3) Більше того, якщо - один гарячий вектор (що зазвичай трапляється для класифікаційних міток), а є єдиним ненульовим елементом, то перехресні втрати ентропії відповідного зразка у до С х = - Σ J ( у J пер в J ) = - ( 0 + 0 + . . . + у до пров до ) = - пер в до .yyk

Cx=j(yjlnaj)=(0+0+...+yklnak)=lnak.

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

Cx=ln(ak)=ln(efkjefj).

0

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

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

Дивіться також цю іншу відповідь dontloo .

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