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.
Aktywacja liniowa idzie z kwadratem błędu
Aktywacja sigmoidu idzie w parze z logloss / cross-entropy
Aktywacja Softmax idzie w parze z logowaniem wieloklasowym
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?
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ć.tanh
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?