Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #30693 > unrolled thread
| Started by | "M.M." <mmarszik@gmail.com> |
|---|---|
| First post | 2017-09-17 17:26 -0700 |
| Last post | 2017-09-18 13:21 -0700 |
| Articles | 5 — 3 participants |
Back to article view | Back to pl.comp.programming
sieć neuronowa do uczenia sieci neuronowej "M.M." <mmarszik@gmail.com> - 2017-09-17 17:26 -0700
Re: sieć neuronowa do uczenia sieci neuronowej t-1 <t-1@todlaspamu.pl> - 2017-09-18 16:23 +0200
Re: sieć neuronowa do uczenia sieci neuronowej "M.M." <mmarszik@gmail.com> - 2017-09-18 13:08 -0700
Re: sieć neuronowa do uczenia sieci neuronowej Szyk Cech <szyk100@o2.pl> - 2017-09-18 16:43 +0200
Re: sieć neuronowa do uczenia sieci neuronowej "M.M." <mmarszik@gmail.com> - 2017-09-18 13:21 -0700
| From | "M.M." <mmarszik@gmail.com> |
|---|---|
| Date | 2017-09-17 17:26 -0700 |
| Subject | sieć neuronowa do uczenia sieci neuronowej |
| Message-ID | <471296cd-f954-4aeb-91d8-ffb3291424dc@googlegroups.com> |
Co prawda to nie jest grupa stricte o sztucznej inteligencji, ale takowa niemal zamarła, piszą tam z rzadka góra 3-4 osoby; ponadto temat sztucznej inteligencji (póki co) jest ściśle związany z algorytmiką, więc chyba można na tę grupę pisać o sieciach neuronowych, a szczególnie o sztucznych sieciach neuronowych. Do rzeczy, jakiś czas temu przyszło mi kilka pomysłów do głowy na to, jak jedną sztuczną sieć neuronową wykorzystać do uczenia drugiej sztucznej sieci neuronowej. Pomysłami tymi nie chcę się na razie dzielić, poza jednym wyjątkiem. Ten jeden stricte nie dotyczy uczenia, ale dotyczy doboru architektury, doboru sposobu inicjalizacji wag, parametrów uczenia, czasu uczenia, i innych. Pomysł nie jest przełomowy, wiem że analogiczne zastosowania sztucznych sieci neuronowych były już w innych dziedzinach, chociażby w optymalizacji technologii wypiekania ciasteczek. Wpisałem jednak w google i nic podobnego nie znalazłem, więc postanowiłem ten pomysł opisać tutaj, ryzykując że już ktoś to opisywał. Teraz naprawdę do rzeczy. Mamy duże zadanie, dużo danych, prawdopodobnie będzie do tego zadania potrzebna duża sieć, a więc każda próba uczenia będzie kosztowna i czasochłonna. Na początku na wyczucie dobieramy czas uczenia, rozmiary pod-zbiorów uczących, architekturę sieci, sposób inicjalizacji wag, itd. Przeprowadzamy kilka eksperymentów i sprawdzamy (kroswalidacja) jakie uzyskaliśmy wyniki na zbiorach testowych. Następnie na wejście drugiej (dużo mniejszej) sieci podajemy wyniki ze zbiorów testowych, a na wyjście dajemy właśnie czas uczenia, rozmiary pod-zbiorów, architekturę, inicjalizację, itd. Potem oczywiście uczymy drugą sieć. W końcu na wejście sieci dajemy wartość 100%, bo na zbiorach walidacyjnych chcemy mieć właśnie skuteczność 100%. Druga sieć na wyjściu zaproponuje nowy czas uczenia, nowe podziały na pod-zbiory, nową architekturę itd. Pierwszą sieć, o ile odpowiedź drugiej sieci nie jest całkowicie nonsensowna, uczymy według propozycji drugiej sieci. W ten sposób uzyskamy kolejne dane uczące dla drugiej sieci. Cały proces zapętlamy. Będę wdzięczny za uwagi. Pozdrawiam
[toc] | [next] | [standalone]
| From | t-1 <t-1@todlaspamu.pl> |
|---|---|
| Date | 2017-09-18 16:23 +0200 |
| Message-ID | <opoktp$278$1@node1.news.atman.pl> |
| In reply to | #30693 |
W dniu 2017-09-18 o 02:26, M.M. pisze: > Druga sieć na wyjściu zaproponuje > nowy czas uczenia, nowe podziały na pod-zbiory, nową architekturę itd. > Pierwszą sieć, o ile odpowiedź drugiej sieci nie jest całkowicie > nonsensowna, uczymy według propozycji drugiej sieci. W ten sposób > uzyskamy kolejne dane uczące dla drugiej sieci. Cały proces zapętlamy. > > Będę wdzięczny za uwagi. Rysuje się więc układ potencjalnie niestabilny. A ponieważ jest niewątpliwie układem dynamicznym, wielowymiarowym, nieliniowym i niestacjonarnym to trudno nawet oszacować jak się zachowa.
[toc] | [prev] | [next] | [standalone]
| From | "M.M." <mmarszik@gmail.com> |
|---|---|
| Date | 2017-09-18 13:08 -0700 |
| Message-ID | <36053383-c06d-40fd-b66e-4001f67f0dca@googlegroups.com> |
| In reply to | #30694 |
On Monday, September 18, 2017 at 4:23:54 PM UTC+2, t-1 wrote: > W dniu 2017-09-18 o 02:26, M.M. pisze: > > Druga sieć na wyjściu zaproponuje > > nowy czas uczenia, nowe podziały na pod-zbiory, nową architekturę itd. > > Pierwszą sieć, o ile odpowiedź drugiej sieci nie jest całkowicie > > nonsensowna, uczymy według propozycji drugiej sieci. W ten sposób > > uzyskamy kolejne dane uczące dla drugiej sieci. Cały proces zapętlamy. > > > > Będę wdzięczny za uwagi. > > Rysuje się więc układ potencjalnie niestabilny. > A ponieważ jest niewątpliwie układem dynamicznym, wielowymiarowym, > nieliniowym i niestacjonarnym to trudno nawet oszacować jak się zachowa. Druga sieć jest po prostu aproksymatorem. Skuteczność sieci na zbiorze testowym zależy głównie od: inicjalizacji wag, algorytmu uczenia, czasu uczenia, podziału danych na pod-zbiory uczące/testowe i od architektury sieci. Przykład dotyczący architektury: zbyt dużo neuronów ukrytych doprowadzi do przeuczenia, zbyt mało do niedouczenia. I w jednym, i w drugim przypadku sieć kiepsko zachowa się na zbiorze testowym. Druga sieć, na podstawie kilkudziesięciu danych uczących, może z jakimś prawdopodobieństwem odgadnąć optymalną ilość ukrytych neuronów. Pozdrawiam
[toc] | [prev] | [next] | [standalone]
| From | Szyk Cech <szyk100@o2.pl> |
|---|---|
| Date | 2017-09-18 16:43 +0200 |
| Message-ID | <opom23$2b5$1@mx1.internetia.pl> |
| In reply to | #30693 |
Nie znam się na SI, ale na logikę, skoro 1 sieć jest jedynie przybliżeniem rozwiązania problemu, to czy nauczona na niej druga sieć nie będzie czasem gorszym przybliżeniem rozwiązania problemu?!?
[toc] | [prev] | [next] | [standalone]
| From | "M.M." <mmarszik@gmail.com> |
|---|---|
| Date | 2017-09-18 13:21 -0700 |
| Message-ID | <a933e9c8-6eca-4b54-9f6d-371493b43733@googlegroups.com> |
| In reply to | #30695 |
On Monday, September 18, 2017 at 4:43:16 PM UTC+2, Szyk Cech wrote: > Nie znam się na SI, ale na logikę, skoro 1 sieć jest jedynie > przybliżeniem rozwiązania problemu, to czy nauczona na niej druga sieć > nie będzie czasem gorszym przybliżeniem rozwiązania problemu?!? Tak, jakby druga sieć uczyła się tego samego co pierwsza, to albo byłoby tak jak piszesz, albo jeszcze gorzej. Pierwsza sieć uczy się na zupełnie innych danych. Przykład: Mamy zbiór X jakiś danych. Przygotowujemy 10 różnych eksperymentów uczenia. W każdym eksperymencie używamy sieci o innej architekturze, w pierwszym mamy 5 neuronów, w drugim w drugim 10, itd aż do 50. Uczymy pierwszą sieć w każdym eksperymencie i testujemy na zbiorze uczącym. Następnie tworzymy zbiór Y danych. W zbiorze Y będzie początkowo 30 wektorów. Wejście w tych wektorach będzie stanowiła skuteczność sieci na zbiorze testowym. Wyjście 5, 10, itd aż do 50 neuronów. Na tych 30tu wektorach uczymy drugą sieć. Następnie na wejście podajemy drugiej sieci wartość 100%, bo chcemy uzyskać skuteczność 100%. Druga sieć na wyjściu poda np. 38 neuronów. Więc do następnego eksperymentu używamy w pierwszej sieci 38 neuronów. Pozdrawiam
[toc] | [prev] | [standalone]
Back to top | Article view | pl.comp.programming
csiph-web