-
1. Data: 2017-09-18 02:26:45
Temat: sieć neuronowa do uczenia sieci neuronowej
Od: "M.M." <m...@g...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
-
2. Data: 2017-09-18 16:23:56
Temat: Re: sieć neuronowa do uczenia sieci neuronowej
Od: t-1 <t...@t...pl>
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.
-
3. Data: 2017-09-18 16:43:16
Temat: Re: sieć neuronowa do uczenia sieci neuronowej
Od: Szyk Cech <s...@o...pl>
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?!?
-
4. Data: 2017-09-18 22:08:51
Temat: Re: sieć neuronowa do uczenia sieci neuronowej
Od: "M.M." <m...@g...com>
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
-
5. Data: 2017-09-18 22:21:39
Temat: Re: sieć neuronowa do uczenia sieci neuronowej
Od: "M.M." <m...@g...com>
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