Algorytm wstecznej propagacji - jak powinna wyglądać funkcja błędu?

0

Czytając o algorytmie wstecznej propagacji zazwyczaj spotykam się z tym, że funkcja błędu wygląda w taki sposób: J = 1/2*(z - y)^2
, gdzie z to wynik, który ma zwrócić sieć neuronowa, a y to wynik otrzymany na wyjściu sieci neuronowej.

Natomiast tutaj: home.agh.edu.pl/~horzyk/lectures/biocyb/BIOCYB-SieciNeuronowe.pdf (strona 29)
funkcja błędu jest określona wzorem J = z - y

I teraz pytanie. Czy funkcja błędu może zarówno przyjmować taką postać jaką podałem na początku tego wpisu (J = 1/2(z - y)^2) oraz może po prostu przyjąć taką postać J = z - y? Jeśli tak to jaka jest różnica pomiędzy późniejszym obliczaniem korekty wag według tych dwóch róznych funkcji błędu?

2

Są różne funkcje, zależy od tego, co chcesz minimalizować. Może to być mean squared error, może być coś innego.

Korekta wag jest taka sama koncepcyjnie, tylko obliczona pochodna będzie inna.

0

A czy to co się minimalizuje to funkcja błędu? Czy jeśli bym w tej instrukcji z pdfa zamiast funkcji błedu J = z - y zastosował funkcję błędu J = 1/2(z - y)^2 to czy proces liczenia wyglądałby dalej tak samo jak właśnie w tym pdfie to opisano? Czy by się coś zmieniło?

1

Tak, minimalizujesz funkcję błędu. Pdfa nie otworzę w podróży, ale koncepcyjnie inna funkcja błędu zmienia tylko wartość pochodnej, więc przy aktualizacji wag zmieni się pewnie jeden czynnik w każdej formule.

0

W jakim celuu liczy się te pochodne funkcji dla danych argumentów?

1
tom8543 napisał(a):

W jakim celuu liczy się te pochodne funkcji dla danych argumentów?

Zeby zobaczyc, w jakim kierunku zmienic rangi polaczen nauronow na warstwie poprzedniej w danej epoce uczenia. To wlasnie propagacja wsteczna.

Apropos funkcji bledu -> dobor funkcji aktywacji, jak i funkcji bledu, zalezy glownie do klasy problemu do jakiego Twoja siec ma byc uczona.
Jest duzo funkcji bledow nadajacych sie do danego problemu, wiec niektore mozna stosowac zamiennie, czasem lepsze efekty dostaje sie jedna, czasem inna.
https://ml-cheatsheet.readthedocs.io/en/latest/loss_functions.html

1

@tom8543: bo musisz obliczyć gradient.

0

A co do tego tutoriala z pdfu. W nim w każdej warstwie sieci tak samo jest aktualizowana waga. Spotkałem się też z czymś takim, że w każdej warstwie sieci wzór na akutalizację wag był różny. To jak to z tym jest? Czy to ja coś pomyliłem?

1

Zależy od funkcji aktywacji, ale koncepcyjnie jest zawsze to samo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1