Uczenie sieci neuronowej metodą gradientową.

MuFaBartek
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 21 paź 2008, o 18:07
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 2 razy

Uczenie sieci neuronowej metodą gradientową.

Post autor: MuFaBartek »

Witam, mam takie zadanie:

Dana jest sztuczna sieć neuronowa złożona z jednej warstwy, w której jest jedna jednostka posiadająca cztery wyjścia, dane są cztery sygnały na wejściu: \(\displaystyle{ p_{1} = 0.1, p_{2} = 0.2, p_{3} = 0.8, p_{4} = 1.0}\) dane są wartości wag:\(\displaystyle{ p_{1} = 0.8, p_{2} = 0.5, p_{3} = 0.3, p_{4} = 1.0}\) dana jest funkcja przejścia (transfer function) w postaci funkcji liniowej \(\displaystyle{ f(x)=ax}\) o współczynniku
\(\displaystyle{ a = 0.8}\)
dany współczynnik uczenia (learning rate)
\(\displaystyle{ lr = 0.5}\)
dany jest wzorzec na wyjściu sieci
\(\displaystyle{ t = 0.2}\)
Obliczyć trzy wartości sygnałów na wyjściu sieci metodą gradientową zastosowaną do zmiany wag,
Wykazać, ze zastosowany algorytm uczenia sieci jest zbieżny.

Zadanie rozwiazywalem w ten sposob:
1. Obliczyłem sumę ważoną i przyjąłem ją jako \(\displaystyle{ y}\).
2. Przyjąłem wzór na wyznaczanie nowych wag: \(\displaystyle{ w_{j}=w_{j}+x_{j}*lr*(t-y)*f'(x)}\) (\(\displaystyle{ f'(x) = a}\)).
3. Na podstawie nowych wag, ponownie obliczylem sume wazona oznaczajac ja jako y1 (pierwsze wyjscie).
4. Wyznaczylem nowe wagi na podstawie wzoru z punktu 2, z tym ze \(\displaystyle{ y = y1}\).
5. Na podstawie nowych wag, ponownie obliczylem sume wazona oznaczajac ja jako y2 (drugie wyjscie).
6. Wyznaczylem nowe wagi na podstawie wzoru z punktu 2, z tym ze \(\displaystyle{ y = y2}\).
7. Na podstawie nowych wag, ponownie obliczylem sume wazona oznaczajac ja jako y3 (trzecie wyjscie).

Wagi zmniejszaly sie z kazdym krokiem, przez co wnioskowalem, ze algorytm jest zbiezny.

Czy moje rozwiazanie jest poprawne? Bo troche srednio wydaje mi sie byc.. czy moglbym prosic Was o wskazanie bledow w rozumowaniu?

Z gory dziekuje za wszelkie posty
ODPOWIEDZ