Jakie są typowe funkcje kosztów wykorzystywane do oceny wydajności sieci neuronowych?
Detale
(pomiń resztę tego pytania, moim celem jest tutaj wyjaśnienie notacji, w której odpowiedzi mogą pomóc, aby były bardziej zrozumiałe dla ogólnego czytelnika)
Myślę, że dobrze byłoby mieć listę typowych funkcji kosztów wraz z kilkoma sposobami ich wykorzystania w praktyce. Więc jeśli inni są tym zainteresowani, myślę, że wiki społeczności jest prawdopodobnie najlepszym podejściem, lub możemy to usunąć, jeśli nie jest to temat.
Notacja
Na początek chciałbym zdefiniować zapis, którego wszyscy używamy przy ich opisywaniu, aby odpowiedzi dobrze do siebie pasowały.
Ten zapis pochodzi z książki Neilsena .
Sieć neuronowa Feedforward to wiele warstw neuronów połączonych ze sobą. Następnie pobiera dane wejściowe, które „przeciekają” przez sieć, a następnie sieć neuronowa zwraca wektor wyjściowy.
Bardziej formalnie nazwij aktywacją (czyli wyjściem) neuronu w warstwie , gdzie jest w wektorze wejściowym.
Następnie możemy powiązać dane wejściowe następnej warstwy z jej poprzednią poprzez następującą relację:
gdzie
to funkcja aktywacyjna,
to waga od neuronu w warstwie do neuronu w warstwie ,
jest stronniczością neuronu w warstwie , i
reprezentuje wartość aktywacji neuronu w warstwie.
Czasami piszemy aby reprezentować , innymi słowy, wartość aktywacji neuronu przed zastosowaniem funkcji aktywacji .
Aby uzyskać bardziej zwięzły zapis, możemy napisać
Aby użyć tej formuły do obliczenia wyniku sieci przekazywania dla niektórych danych wejściowych , ustaw , a następnie oblicz , , ..., , gdzie m jest liczbą warstw.
Wprowadzenie
Funkcja kosztu jest miarą „tego, jak dobra” była sieć neuronowa w odniesieniu do danej próbki treningowej i oczekiwanego wyniku. Może również zależeć od zmiennych, takich jak wagi i odchylenia.
Funkcja kosztu jest pojedynczą wartością, a nie wektorem, ponieważ ocenia, jak dobrze działała sieć neuronowa jako całość.
W szczególności funkcja kosztu ma postać
gdzie jest wagami naszej sieci neuronowej, jest stronniczością naszej sieci neuronowej, jest wkładem pojedynczej próbki treningowej, a jest pożądanym wynikiem tej próbki treningowej. Uwaga ta funkcja może również potencjalnie być w zależności od i jakiegokolwiek neuronów w warstwie , ponieważ wartości te są zależne , , i .
W propagacji wstecznej funkcja kosztu służy do obliczenia błędu naszej warstwy wyjściowej , przez
Które można również zapisać jako wektor za pomocą
Podamy gradient funkcji kosztów w kategoriach drugiego równania, ale jeśli ktoś chce sam udowodnić te wyniki, zaleca się użycie pierwszego równania, ponieważ łatwiej jest z nim pracować.
Wymagania dotyczące funkcji kosztów
Aby zastosować w propagacji wstecznej, funkcja kosztu musi spełniać dwie właściwości:
1: Funkcja kosztu musi być zapisywana jako średnia
funkcje przekroczenia kosztów dla indywidualnych przykładów szkolenia, .
Dzięki temu możemy obliczyć gradient (w odniesieniu do wag i odchyleń) dla pojedynczego przykładu treningowego i uruchomić opadanie gradientu.
2. funkcja kosztu nie musi być zależna od jakichkolwiek wartości aktywacji sieci neuronowej oprócz wartości wyjście .
Technicznie funkcja kosztu może zależeć od dowolnego lub . Po prostu wprowadzamy to ograniczenie, abyśmy mogli zareagować wstecz, ponieważ równanie do znalezienia gradientu ostatniej warstwy jest jedynym zależnym od funkcji kosztu (pozostałe zależą od następnej warstwy). Jeśli funkcja kosztu jest zależna od innych warstw aktywacyjnych oprócz warstwy wyjściowej, propagacja wsteczna będzie nieważna, ponieważ pomysł „cofania się” już nie działa.
Ponadto wymagane są funkcje aktywacyjne, aby mieć wyjście dla wszystkich . Dlatego te funkcje kosztów muszą być zdefiniowane tylko w tym zakresie (na przykład jest poprawny, ponieważ gwarantujemy ).
źródło
Odpowiedzi:
Oto te, które do tej pory rozumiem. Większość z nich działa najlepiej, gdy podano wartości od 0 do 1.
Kwadratowy koszt
Znany również jako średni błąd kwadratu , maksymalne prawdopodobieństwo i błąd kwadratu , określa się go jako:
Gradient tej funkcji kosztu w odniesieniu do wyjścia sieci neuronowej i pewnej próbki wynosi:r
Koszt entropii krzyżowej
Znany również jako ujemne prawdopodobieństwo logarytmiczne Bernoulliego i binarna krzyżowa Entropia
Gradient tej funkcji kosztu w odniesieniu do wyjścia sieci neuronowej i pewnej próbki wynosi:r
Koszt wykładniczy
Wymaga to wybrania parametru który według ciebie da ci pożądane zachowanie. Zazwyczaj musisz się z tym bawić, dopóki wszystko nie zadziała.τ
gdzie jest po prostu skrótem dla .exp(x) ex
Gradient tej funkcji kosztu w odniesieniu do wyjścia sieci neuronowej i pewnej próbki wynosi:r
Mógłbym przepisać , ale to wydaje się zbędne. Punkt to gradient, który oblicza wektor, a następnie mnoży go przez .CEXP CEXP
Odległość Hellingera
Więcej informacji na ten temat można znaleźć tutaj . To musi mieć wartości dodatnie, a najlepiej wartości od do . To samo dotyczy następujących rozbieżności.0 1
Gradient tej funkcji kosztu w odniesieniu do wyjścia sieci neuronowej i pewnej próbki wynosi:r
Rozbieżność Kullbacka – Leiblera
Znany również jako Informacyjnego dywergencji , Informacji wzmocnienia , względna entropii , KLIC lub KL dywergencji (patrz tutaj ).
Rozbieżność Kullback – Leibler jest zazwyczaj oznaczana jako ,
gdzie jest miarą danych utracone, gdy oznacza przybliżenie . W ten sposób chcemy ustawić i , ponieważ chcemy zmierzyć, jak wiele informacji jest stracone, gdy używamy zbliżenie . To nam dajeDKL(P∥Q) Q P P=Ei Q=aL aij Eij
Inne różnice tu stosować tę samą ideę wyznaczenia i .P=Ei Q=aL
Gradient tej funkcji kosztu w odniesieniu do wyjścia sieci neuronowej i pewnej próbki wynosi:r
Uogólniona dywergencja Kullbacka-Leiblera
Od tutaj .
Gradient tej funkcji kosztu w odniesieniu do wyjścia sieci neuronowej i pewnej próbki wynosi:r
Odległość Itakura – Saito
Również stąd .
Gradient tej funkcji kosztu w odniesieniu do wyjścia sieci neuronowej i pewnej próbki wynosi:r
Gdzie . Innymi słowy, jest po prostu równa kwadratury każdy element .((aL)2)j=aLj⋅aLj (aL)2 aL
źródło
a*(1-a)
niea*(1+a)
Nie mam reputacji do komentowania, ale w ostatnich 3 gradientach występują błędy podpisu.
W dywergencji KL To ten sam błąd znaku pojawia się w Uogólnionej dywergencji KL.
W odległości Itakura-Saito
źródło