rprowadzenie do techniki sieci neuronowych 35
ubogiej) strukturze wszystkich niuansów rozwiązywanego zadania. Pokażę Ci potem konkretne przykłady ilustrujące fakt, że za mała i zbyt prymitywna sieć nie potrafi rozwiązać pewnych zadań - nawet jeśli się ją uczy bardzo długo i bardzo dokładnie.
Niestety, nie można także “przedobrzyć”. Zastosowanie zbyt wielu warstw ukrytych prowadzi do znacznego pogorszenia sprawności procesu uczenia, dlatego często lepsze wyniki daje sieć o mniejszej liczbie warstw ukrytych (bo można ją porządnie nauczyć), niż - teoretycznie lepsza - sieć z większą liczbą warstw ukrytych, w której jednak proces uczenia “grzęźnie” w nadmiarze szczegółów. Dlatego należy stosować sieci o jednej lub dwóch warstwach ukrytych natomiast pokusę stosowania sieci o większej liczbie warstw ukrytych najlepiej przezwyciężać stosując post i zimne kąpiele.
Jeszcze gorsza sytuacja pojawia się przy szacowaniu liczby elementów (neuronów) wymaganych do prawidłowego działania warstwy ukrytej. Wie-my już, jakie są zadania tych elementów - mają one wypracować pewne pomocnicze dane pośrednie, dzięki którym możliwe stanie się łatwiejsze (niż w oparciu o same dane wejściowe) określenie poszukiwanych przez sieć rozwiązań. Jednak ta wiadomość wcale pomaga w określeniu, ile tych elementów ma być? Na pewno nie może ich być zbyt mało, ale co się stanie, jeśli będzie ich za dużo?
Okazuje się, że nadmierna liczba elementów warstwy ukrytej prowadzi do niekorzystnego efektu nazywanego “uczeniem się na pamięć”. Polega on na tym, że sieć ucząc się na podstawie przedstawianych jej przykładów poprawnych rozwiązań stawianych jej zadań nie podejmuje próby uogólniania nabywanych wiadomości, tylko dysponując (dzięki posiadaniu rozleglej warstwy ukrytej) bardzo pojemną pamięcią - usiłuje osiągać sukces na zasadzie dokładnego zapamiętania reguł w rodzaju “przy takim wejściu takie wyjście”. Objawem takiego nieprawidłowego działania sieci jest fakt, że uczy się ona dokładnie i szybko całego tzw. ciągu uczącego (czyli zbioru przykładów użytych do pokazania sieci, jak należy rozwiązywać stawiane zadania) natomiast fatalnie kompromituje się przy pierwszej próbie egzaminu, czyli rozwiązania zadania z podobnej klasy, ale jednak nieco odmiennego od zadań jawnie pokazywanych w trakcie uczenia. Przykładowo ucząc sieć rozpoznawania liter bardzo szybko uzyskujemy sukces (sieć bezbłędnie rozpoznaje wszystkie pokazywane jej litery) ale próba pokazania jej litery napisanej odmiennym charakterem pisma lub wydrukowanej innym fontem - prowadzi do zupełnego braku rozpoznania (na wszystkich wyjściach sieci są zera) lub do rozpoznań ewidentnie błędnych. Bliższa analiza wiedzy zgromadzonej przez sieć ujawnia w takich przypadkach, że zapamiętała ona wiele prostych reguł w rodzaju “jak tutaj są dwa piksele zapalone, a tam jest pięć zer - to należy rozpoznać literę A”. Te prymitywne reguły