Różne definicje funkcji utraty entropii krzyżowej

12

Zacząłem uczyć się o sieciach neuronowych w samouczku dotyczącym sieci neuronowych i programowania. W szczególności w trzecim rozdziale znajduje się sekcja o funkcji entropii krzyżowej i definiuje utratę entropii krzyżowej jako:

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

Jednak, czytając wprowadzenie Tensorflow , utratę entropii krzyżowej definiuje się jako:

C=1nxj(yjlnajL) (przy użyciu tych samych symboli jak powyżej)

Następnie, szukając tego, co się dzieje, znalazłem inny zestaw notatek: ( https://cs231n.github.io/linear-classify/#softmax-classifier ), który wykorzystuje zupełnie inną definicję utraty entropii krzyżowej, chociaż to czas na klasyfikator softmax, a nie na sieć neuronową.

Czy ktoś może mi wyjaśnić, co się tutaj dzieje? Dlaczego występują rozbieżności? co ludzie określają jako utratę entropii? Czy istnieje jakaś nadrzędna zasada?

Reginald
źródło
Ściśle związane: stats.stackexchange.com/questions/260505/...
Sycorax mówi Przywróć Monikę

Odpowiedzi:

18

Te trzy definicje są zasadniczo takie same.

1) Wprowadzenie do Tensorflow ,

C=1nxj(yjlnaj).

2) W przypadku klasyfikacji binarnych , staje się oraz z powodu ograniczeń i , można go przepisać jako co jest takie samo jak w rozdziale trzecim .j=2

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

3) Ponadto, jeśli jest wektorem rozgrzanym (co często ma miejsce w przypadku etykiet klasyfikacyjnych), przy czym jest jedynym niezerowym elementem, to utrata entropii krzyżowej odpowiedniej próbki wynosi yyk

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

W notatkach cs231 utratę entropii krzyżowej jednej próbki podano wraz z normalizacją softmax jako

Cx=ln(ak)=ln(efkjefj).
dontloo
źródło
0

W trzecim rozdziale równanie (63) jest entropią krzyżową stosowaną do wielu sigmoidów (które nie mogą sumować się do 1), podczas gdy we wstępie do Tensoflow entropia krzyżowa jest obliczana na warstwie wyjściowej softmax.

Jak wyjaśniono przez dontloo, obie formuły są zasadniczo równoważne dla dwóch klas, ale nie jest tak, gdy rozważa się więcej niż dwie klasy. Softmax ma sens dla multiklas z klasami wyłącznymi ( tj. Gdy jest tylko jedna etykieta na próbkę, która pozwala na jednokrotne kodowanie etykiet), podczas gdy (wielokrotne) sigmoidy mogą być użyte do opisania problemu z wieloma etykietami (tj. Z próbkami, które są prawdopodobnie pozytywne dla kilku klas).

Zobacz także inną odpowiedź dontloo .

Xiawi
źródło