Czy sieć neuronowa bez wstecznej propagacji jest w stanie wyliczyć odpowiednie wyniki na wyjściu?

Odpowiedz Nowy wątek
2019-05-19 22:23
0

Czy sieć neuronowa bez wstecznej propagacji jest w stanie wyliczyć odpowiednie wyniki na wyjściu?

Pozostało 580 znaków

2019-05-20 22:23
1

@tom8543: Czy sieć neuronowa bez wstecznej propagacji jest w stanie wyliczyć odpowiednie wyniki na wyjściu?

Musialbys najpierw zdefiniowac "odpowiednie", ale zakladajac ze masz na mysli optymalne dla danego zestawu danych, to odpowiedz brzmi: o ile nie zostala wczesnej nauczona to nie.

@tom8543: Jak wtedy są wyliczane wagi neuronów?

Wagi w pierwszym kroku najczesciej dobierane sa losowo dla kazdego poloczenia neuronowego, mozna rowniez dobierac je wg jakiegos klucza, lub doswiadczenia opartego na analizie podobnych problemow.

@Patryk27: Nie pytałeś o proces uczenia się sieci neuronowej - do uczenia w większości przypadków potrzebujesz wykorzystać jakiś algorytm (np. wsteczną propagację albo rand()) ...

Co ma piernik do wiatraka? Mieszasz proces uczecznia sieci z inicjacja wartosci wag.

@Shalom: Backpropagation to nie jedyny algorytm uczenia przecież. Masz przecież jakieś Kohoneny czy forward propagation...

Ty rowniez mylisz pojecia. Mieszasz proces uczenia, z typem sieci i procesowaniem sygnalu miedzy jej warstwami.

@tom8543: To w takim przypadku wagi między warstwą wejściową i ukrytą na starcie są dobierane losowo. Jak natomiast będą dobierane wagi połączeń między warstwą ukrytą a warstwą wyjściową? Zakładając, że jest jedna warstwa ukryta?

Wszystkie wagi w procesie inicjacji ich wartosci sa dobierane losowo niezaleznie od warstwy. No chyba, ze jestes gosciem, ktory ma niesamowitego czuja, albo postepujesz wg jakiegos znanego sobie klucza, ale za takie umiejetnosci dostalbys z marszu Nobla.

@superdurszlak: Może to być wsteczna propagacja a może to być np. "wprowadź losową zmianę i sprawdź, czy uzyskałeś poprawę".

Z ta losowa zmiana to pojechales :). Generalnie uzycie algorytmu wstecznej propagacji jako metody uczenia sieci, ma jedynie zastosowanie czysto "prezentacyjne". W wiekszosci przypadkow MLP niezaleznie czy jest on rekurencyjny czy nie, stosuje sie najrozniejsze odmiany metod gradientowych. Sam algortym Levenberg'a-Marquardt'a posiada calkiem sporo odmian.

@superdurszlak: Sieć zbudowaną z wielu neuronów jednego rodzaju? Nie siedzę w żadnym AI, deep learningu i niczym podobnym, tylko klepię CRUDy, także będę hipotetyzował, ale nie ma żadnych przeszkód, by np. każda warstwa neuronów miała np. inną funkcję aktywacji - algorytmy wstecznej propagacji i tak są uogólnione na jakąś funkcję aktywacji i jej pochodne, ...

Masz jak najbardziej racje, z tym ze ja osobiscie mialem do czynienia z jednym algorytmem wstecznej propagacji.

@superdurszlak: więc użycie różnych funkcji nawet w jednej warstwie nie powinno być niemożliwe - inna sprawa, czy jest praktyczne i cokolwiek daje.

Masz jak najbardziej racje. Powiem wiecej, mozesz nawet roznicowac funkcje aktywacji dla neuronow tej samej warstwy.

@superdurszlak: No ale przecież na tym polega sieć neuronowa, że zawiera "neurony" (albo raczej ich biedną imitację), które dostają jakieś sygnały na wejściu, które są sumowane (z wagami) i przekazywane do funkcji aktywacji, która przybiera jakąś wartości, stanowiąc sygnał na wyjściu podawany gdzieś dalej - wgłąb sieci lub jako sygnał wyjściowy. To się nie zmienia.

To nalezy doprecyzowac. Neuron poprzedniej warstwy daje jakas wartosc na wyjsciu. Neuron warstwy nastepnej "przechowuje" odpowiednia wage dla kazdego wyjscia neuronow warstwy poprzedniej. Zeby nie komplikowac sprawy, wartosci sygnalow emitowanych przez neurony warstwy poprzedniej mnozone sa przez wartosci odpowadajacych im wag w neuronie warstwy nastemnej. Takie iloczyny sa sumowane i podstawiane jako argument do funkcji aktywacj. Wartosc funkcji aktywacji dla tak przygotowanego argumentu staje sie sygnalem wyjsciowym danego neuronu.

To tyle.

edytowany 1x, ostatnio: Constantic, 2019-05-20 22:25
Pokaż pozostałe 14 komentarzy
Oczywiscie, ze sa bo tworca tego watku uzywajac sformulowania backpropagation mial na mysli, kaskadowy proces modyfikacji wartosci wag poprzez wyznaczanie wartosci delta. Natomiast we wspomnianym przeze mnie wczesniej algorytmie LM, ok wykorzystywany jest proces propagacji wstecznej, nie dosc, ze przebiega zupelnie odmiennie, to jeszcze dodatkowo sluzy zupelnie innemu celowi, mianowicie ustaleniu okreslonej parametryzacji maciezy tworzacych rownanie ktorego rozwiazaniem sa delty. Twierdzenie, ze jest to jedno i to samo jest semantycznym naduzyciem. - Constantic 2019-05-21 13:50
LM to jedna z odmian backpropa https://pdfs.semanticscholar.[...]b51be0472a6654453673ae114.pdf i nie jest to zadne naudyzcie rownie dobrze moglbys powiedziec ze ADAM to nie jest algorytm optymalizacyjny bo jest inny od SGD xD - komuher 2019-05-21 13:59
Ok, w tym momencie to juz do niczego nie prowadzi a ja mam mase roboty z implementacja ReactPhp :). - Constantic 2019-05-21 14:03
Boze gardze ludzmi ktorzy nie potrafia przyznac sie do bledu -> https://www.quora.com/What-is[...]g-Are-they-not-the-same-thing na upartego nawet quora. - komuher 2019-05-21 14:04
Daruj sobie wycieczki osobiste, to raz, a dwa jak zmieniasz kolo w rowerze to wyrywasz kierownice z samochodu ? W koncu i jedno i drugie to kolo. - Constantic 2019-05-21 14:08

Pozostało 580 znaków

2019-05-20 23:07
0

Mieszasz proces uczecznia sieci z inicjacja wartosci wag.

Nie mieszam - jak najbardziej celowo podałem rand() jako sposób "uczenia" sieci, zestawiając to z dosyć abstrakcyjnie zadanym pytaniem przez autora ;-)


Pozostało 580 znaków

2019-05-20 23:22
1

Ty rowniez mylisz pojecia. Mieszasz proces uczenia, z typem sieci i procesowaniem sygnalu miedzy jej warstwami.

Nie, nie myle. Sieci Kohonena/SOM jak najbardziej określają sposób nauki i co więcej stosują właśnie metody mocno odmienne od backpropagation czy gradientów.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: hauleth, 2019-05-20 23:38

Pozostało 580 znaków

2019-05-20 23:44
1

@Shalom: Nie, nie myle. Sieci Kohonena/SOM jak najbardziej określają sposób nauki i co więcej stosują właśnie metody mocno odmienne od backpropagation czy gradientów.

Jak najbardziej mylisz sie kolego, bo siec Kohanena to typ sieci. Gdybys zamiast tego uzyl pojec samoorganizacja i konkurencyjnosc oraz darowal sobie forward propagtion, to nie byloby tematu.

O to mi chodziło, ale faktycznie wyraziłem się nieprecyzyjnie. Wykładu by z tego nie było... :P - Shalom 2019-05-21 01:36

Pozostało 580 znaków

2019-05-20 23:53
1
Constantic napisał(a):

Z ta losowa zmiana to pojechales :). Generalnie uzycie algorytmu wstecznej propagacji jako metody uczenia sieci, ma jedynie zastosowanie czysto "prezentacyjne". W wiekszosci przypadkow MLP niezaleznie czy jest on rekurencyjny czy nie, stosuje sie najrozniejsze odmiany metod gradientowych. Sam algortym Levenberg'a-Marquardt'a posiada calkiem sporo odmian.

MLP z zalozenia nie jest rekurencyjny tylko liniowy :D

Pozostało 580 znaków

2019-05-21 00:06
1

@komuher: dodaj sobie R z przodu i "powyciagaj" sprzezenia z warstw pozniejszych do wczesniejszych i wszystko bedzie sie zgadzalo :D, a tak powaznie jest po polnocy, podobnie jak pozostali "klepie z palca" bez wsparcia z wikipedii. To jest forum a nie wyklad na AGH :).

edytowany 1x, ostatnio: Constantic, 2019-05-21 00:16
Wykłady na AGH też wyglądają czasami, jakby były prowadzone po północy, z palca i bez wsparcia nawet z Wikipedii :D - superdurszlak 2019-05-21 05:29

Pozostało 580 znaków

2019-05-21 00:10
0

Dziękuję wszystkim za odpowiedzi

  1. Czyli nawet najbardziej skomplikowane sieci neuronowe działają w ten sposób, że wyliczają sumę wag dla danego neuronu i obliczają funkcję aktywacji dla niego?
  2. Czy algortym wstecznej propagacji jest reukrencyjny?
  3. Jeśli sieć ma więcej neuronów w warstwie ukrytej tym bardziej dokładne wyniki będziemy otrzymywać na wyjściu sieci neuronowej?
edytowany 1x, ostatnio: tom8543, 2019-05-21 00:10

Pozostało 580 znaków

2019-05-21 00:14
2

@tom8543: Czyli nawet najbardziej skomplikowane sieci neuronowe działają w ten sposób, że wyliczają sumę wag dla danego neuronu i obliczają funkcję aktywacji dla niego?
Czy algortym wstecznej propagacji jest reukrencyjny?
Jeśli sieć ma więcej neuronów w warstwie ukrytej tym bardziej dokładne wyniki będziemy otrzymywać na wyjściu sieci neuronowej?

Niniejszym oficjalnie "odszczekuje" wszystkie moje negatywne wypowiedzi na temat arogancji i opryskliwosci odpowiadajacych na pytania doswiadczonych uzytkownikow forum. Chyba w koncu zrozumialem skad sie to bierze.

edytowany 1x, ostatnio: Constantic, 2019-05-21 00:27

Pozostało 580 znaków

2019-05-21 01:35
2

@tom8543

  1. Strukturalnie? Generalnie tak. Ale nie sumę wag, tylko sumę jego wejść.
  2. Co rozumiesz tutaj przez rekurencje? Jest iteracyjny, ale można by to zapisać w postaci rekurencji...
  3. Niekoniecznie. Dobranie struktury sieci to zwykle spory problem i trochę loteria. Za mało to źle ale za dużo też może być źle.

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2019-05-21 14:23
3
Constantic napisał(a):

@superdurszlak: Może to być wsteczna propagacja a może to być np. "wprowadź losową zmianę i sprawdź, czy uzyskałeś poprawę".

Z ta losowa zmiana to pojechales :). Generalnie uzycie algorytmu wstecznej propagacji jako metody uczenia sieci, ma jedynie zastosowanie czysto "prezentacyjne". W wiekszosci przypadkow MLP niezaleznie czy jest on rekurencyjny czy nie, stosuje sie najrozniejsze odmiany metod gradientowych. Sam algortym Levenberg'a-Marquardt'a posiada calkiem sporo odmian.

Dobra postanowilem odpowiedziec jako ze dysputa z cytowanym uzytkownikiem nic nie zmienila i nie zamierza on poprawic tak razacego bledu.

Po pierwsze algorytmu wstecznej propagacji jest w praktycznie kazdej sieci neuronowej uzywany do "compute gradientu" uzywanego przez pozniejsze algorytmy optymalizacyjne (bazowane na gradient descent -> SGD, Adam, AdaGrad etc.)
Za http://neuralnetworksanddeeplearning.com/chap2.html -> "... we didn't discuss how to compute the gradient of the cost function. That's quite a gap! In this chapter I'll explain a fast algorithm for computing such gradients, an algorithm known as backpropagation."

Kolejna pomylka tutaj to Levenberg'a-Marquardt ktory jest jedym z algorytmow uzywanych do "wyznaczenia gradientu" [oczywiscie w przypadku podanym przez tegoz uzytkownika] (czyli backpropagation) nie gradient descent ktory jest algorytmem optymalizacyjnym. -> https://pdfs.semanticscholar.[...]b51be0472a6654453673ae114.pdf

Plus jesli ktos sie zastanawia czy istnieja sieci bez backpropa (to owsze sa to miedzy innymi sieci ktore korzystaja z "Evolutionary Algorithms" (np. Neuroevolution)) -> https://eng.uber.com/deep-neuroevolution/

No i MLP nie moze byc rekurencyjny za cos takiego szybko dostaje się ujemne punkty na jakiejkolwiek rozmowie rekrutacyjnej (jako ze to jedna z podstaw NN :D)

edytowany 8x, ostatnio: komuher, 2019-05-21 14:29

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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