Funkcja kosztu krzyżowego w sieci neuronowej

11

Patrzę na funkcję kosztu entropii znalezioną w tym samouczku :

do=-1nx[ylnza+(1-y)ln(1-za)]

Co dokładnie sumujemy? Jest to oczywiście ponad , ale i a nie zmieniają się z x . Wszystkie x są wejściami do jednego a . a jest nawet zdefiniowane w akapicie powyżej równania jako funkcja sumy wszystkich w i x . xyaxxaawx

Również jest zdefiniowane jako liczba wejść do tego konkretnego neuronu, prawda? Jest on sformułowany jako „łączna liczba elementów danych treningowych” .n


Edytować:

Czy mam rację, że tak myślę

C=1nx[ylna+(1y)ln(1a)]

byłaby funkcją kosztu dla całej sieci, natomiast

C=[ylna+(1y)ln(1a)]

byłby koszt dla pojedynczego neuronu? Czy suma nie powinna przekraczać każdego neuronu wyjściowego?

Adam12344
źródło

Odpowiedzi:

14

Oto jak wyraziłbym utratę entropii krzyżowej :

L(X,Y)=-1nja=1ny(ja)lnza(x(ja))+(1-y(ja))ln(1-za(x(ja)))

Tutaj to zbiór przykładów wejściowych w zbiorze danych szkoleniowych, a to odpowiedni zestaw etykiet dla tych przykładów wprowadzania. A reprezentuje wyjście sieci neuronowej przy danym wejściu . Y = { y ( 1 ) , , y ( n ) } a ( x ) xX={x(1),,x(n)}Y={y(1),,y(n)}za(x)x

Każde z ma wartość 0 lub 1, a aktywacja wyjścia jest zwykle ograniczona do otwartego przedziału (0, 1) przy użyciu logistycznej sigmoidu . Na przykład w przypadku sieci jednowarstwowej (co jest równoważne regresji logistycznej) aktywacja byłaby realizowana przez gdzie jest macierz wagowa jest wektorem polaryzacji. W przypadku wielu warstw możesz rozwinąć funkcję aktywacji do czegoś takiego jak gdzie i to macierz wagowa i odchylenie dla pierwszej warstwy oraz a ( x ) a ( x ) = 1y(ja)za(x) Wba(x)=1

za(x)=11+mi-W.x-b
W.b Vcz(x)
za(x)=11+mi-W.z(x)-bz(x)=11+mi-V.x-do
V.doz(x) to aktywacja ukrytej warstwy w sieci.

Użyłem indeksu górnego (i) do oznaczenia przykładów, ponieważ okazało się, że jest on dość skuteczny na kursie uczenia maszynowego Andrew Ng; czasami ludzie wyrażają przykłady jako kolumny lub wiersze w matrycy, ale idea pozostaje taka sama.

lmjohns3
źródło
Dzięki! To dałoby nam jeden numer błędu dla całej sieci, dla wszystkich naszych próbek. W celu propagacji wstecznej muszę znaleźć pochodną cząstkową tej funkcji w macierzy wagowej w warstwie końcowej. Jak mam to zrobić?
Adam12344,
Robienie backpropa to osobna puszka robaków! Strona, do której linkujesz, zawiera opis pochodnych obliczeniowych itp. I jest wiele pytań na temat backpropu na stackoverflow i tej stronie. Spróbuj się rozejrzeć, a następnie zadaj osobne pytanie dotyczące backprop.
lmjohns3
Może to być przydatne w zrozumieniu backprop przechodzi przez podpory tylnej z czterech warstw sieci neuronowej z krzyżem utraty entropii w gory szczegółach :) cookedsashimi.wordpress.com/2017/05/06/...
YellowPillow
5

Co dokładnie sumujemy?

Samouczek jest dość wyraźny:

... jest całkowitą liczbą pozycji danych treningowych, suma obejmuje wszystkie dane treningowe ...n

xΣza

za=jotwjotxjot.

Później w tym samym samouczku Nielsen podaje wyrażenie dla funkcji kosztu dla wielowarstwowej sieci wielonerwowej (równanie 63):

do=-1nxjot[yjotlnzajotL.+(1-yjot)ln(1-zajotL.)].

xjot

ali_m
źródło
Dzięki za wgląd, jedno pytanie: to ostatnie, które zdefiniowałeś, nie jest kategoryczną entropią krzyżową, prawda?
Tommaso Guerrini
Powiedział także w swoim samouczku, że „y może czasami przyjmować wartości pośrednie między 0 a 1”, ale funkcja, którą on dał, to wszystko na y i nie było żadnych danych wejściowych aktywacji. Jak moglibyśmy zaimplementować wartości pośrednie w funkcji st?
Feras
W samouczku Nielsena, który pokazuje perceptron jednowarstwowy, a = \ sigma (\ sum_ {j} w_j x_j), ponieważ masz funkcję aktywacji sigmoid dla swojej warstwy wyjściowej, a nie = \ sum_ {j} w_j x_j
ARAT