Uczenie prostych liniowych sieci jednowarstwowych
Radzę Ci również sprawdzić, jak na efekty uczenia wpływają “wrodzone zdolności” neuronu. W tym celu powinieneś ponowić kilka razy proces uczenia uruchamiając program od początku i obserwując zachodzące zmiany. Losowy proces nadawania wartości początkowych współczynników Wagowych spowoduje, że będziesz obserwował różne tempo uczenia neuronu dla tych samych danych wejściowych - czasem neuron uczy się wręcz błyskawicznie (taki jest od urodzenia uzdolniony!), a czasem wymaga bardzo długiego czasu nauki, w trakcie której zdarzają się nawet okresy pogarszania wyników (błąd rośnie mimo intensywnego uczenia), jeśli neuron musi przezwyciężać w trakcie nauki pewne “wrodzone preferencje”. Ten efekt przypadkowości przebiegu i wyników procesu uczenia bywa zaskakująco duży, co trzeba samemu zobaczyć, żeby w to uwierzyć. Dlatego nie oszczędzaj czasu i przeprowadź kilka doświadczeń z zaproponowanym programem zmieniając w tekście programu zakres, w jakim ustalane są początkowe losowe wartości współczynników wag. Na przykład możesz zamiast instrukcji
wagi(i) = -.1 + .2 * RND zastosować instrukcję
wagi(i) » -.4 + .8 * RND
w wyniku czego początkowe wartości wag będą miały znacznie większy wpływ na przebieg uczenia sieci i na jego wyniki. Uruchamiając kilka razy proces uczenia z tym samym ciągiem uczącym łatwo zaobserwujesz, jak duży może być wpływ przypadkowo rozłożonych początkowych wartości wag. Neuron za każdym razem będzie się uczył zupełnie inaczej! W ten sposób poznasz namacalnie jeszcze jedną, demonizowaną niekiedy (“wolna wola automatu?!”) cechę sieci neuronowych - ich indeterminizm czyli nie-przewidywalność zarówno przebiegu procesu uczenia, jak i jego wyników. W dużej sieci sumowanie się wielu losowych efektów, takich jak przebadane w opisanym programie, może prowadzić do całkiem nieprzewidywalnych zachowań sieci, co niekiedy wprawia w osłupienie “uczonych w piśmie”, przyzwyczajonych do całkowitej i niezawodnej powtarzalności zachowań typowych algorytmów numerycznych.
Zaproponowany wyżej prosty programik demonstracyjny może być “poligonem doświadczalnym”, na którym powinieneś zbadać jeszcze jeden ważny czynnik, wpływający na przebieg procesu uczenia, a mianowicie wpływ