Jak elastyczny jest związek między funkcją celu a funkcją aktywacji warstwy wyjściowej?

10

Wydaje się, że w wielu pakietach sieci neuronowych sparowanie funkcji celu ma zostać zminimalizowane za pomocą funkcji aktywacji w warstwie wyjściowej.

Na przykład dla liniowej warstwy wyjściowej używanej do regresji standardową (i często jedyną możliwością) jest funkcja celu z kwadratem błędu. Innym typowym parowaniem jest wyjście logistyczne i utrata dziennika (lub entropia krzyżowa). A jeszcze innym jest softmax i utrata wielu logów.

Używając notacji, dla wartości przed aktywacją (suma wag razy aktywacje z poprzedniej warstwy), dla aktywacji, dla prawdy gruntowej użytej do treningu, dla indeksu wyjściowego neuronu.zayi

  • Aktywacja liniowa idzie z kwadratem błęduai=zi12i(yiai)2

  • Aktywacja sigmoidu idzie w parze z logloss / cross-entropyai=11+ezii(yilog(ai)+(1yi)log(1ai))

  • Aktywacja Softmax idzie w parze z logowaniem wieloklasowymai=ezijezji(yilog(ai))

To są te, które znam i oczekuję, że jest wiele takich, o których jeszcze nie słyszałem.

Wydaje się, że utrata logów działałaby i byłaby stabilna numerycznie, gdy dane wyjściowe i docelowe były w zakresie [0,1]. Dlatego wypróbowanie liniowej warstwy wyjściowej z funkcją celu logloss może nie mieć sensu. Chyba że istnieje bardziej ogólna funkcja logloss, która poradziłaby sobie z wartościami które są poza zakresem?y

Jednak nie wydaje się wcale tak źle, aby wypróbować wyjście sigmoid z celem kwadratu błędu. Powinien być stabilny i przynajmniej zbieżny.

Rozumiem, że część konstrukcji tych par polega na tym, że sprawia, że ​​formuła dla - gdzie jest wartością funkcji celu - jest łatwa do propagacji wstecznej. Ale nadal powinno być możliwe znalezienie tej pochodnej przy użyciu innych par. Ponadto istnieje wiele innych funkcji aktywacyjnych, które nie są powszechnie widoczne w warstwach wyjściowych, ale możliwe jest, na przykład , i gdzie nie jest jasne, jaką funkcję celu można zastosować.δEδzEtanh

Czy są jakieś sytuacje przy projektowaniu architektury sieci neuronowej, w których powinieneś lub powinieneś użyć „niestandardowych” par aktywacji wyjścia i funkcji celu?

Neil Slater
źródło

Odpowiedzi:

4

Nie chodzi o to, która funkcja aktywacji, której używasz, decyduje o tym, jakiej funkcji straty należy użyć, ale raczej o to, jaką interpretację masz na wyjściu.

Jeśli dane wyjściowe mają być prawdopodobieństwem, należy wybrać utratę logów.

Jeśli dane wyjściowe są wartością ogólną, to domyślny sposób to błąd kwadratowy. Na przykład, jeśli twój wynik był pikselem w skali szarości z skalą szarości oznaczoną liczbą od 0 do 1, warto zastosować funkcję aktywacji sigmoidalnej z funkcją celu o średnim kwadracie błędu.

patapouf_ai
źródło