Jak neurony stały się algebrą liniową
W artykule o macierzach wag przechodziliśmy między dwoma obrazami sieci neuronowej: neuronami połączonymi z innymi neuronami oraz macierzą przekształcającą wektor. Kiedy rozumiesz obliczenia, wydaje się to niewielkim krokiem. Historycznie wymagało jednak istotnej zmiany w tym, jak badacze pojmowali przedmiot swoich badań.
Jak daleko zaszła ta zmiana, można zobaczyć, otwierając książkę Franka Rosenblatta Principles of Neurodynamics, opublikowaną w 1962 roku. Na stronie 83 definiuje on macierz oddziaływań opisującą połączenia między jednostkami. Obok regulowane parametry sieci stają się współrzędnymi w przestrzeni euklidesowej. Uczenie można opisać jako ruch w tej przestrzeni.
Do współczesnego oprogramowania do głębokiego uczenia pozostało jeszcze kilka dekad. Macierz już tam jest.
Ciekawe jest to, jak się tam znalazła i dlaczego z czasem stała się zwyczajnym sposobem nauczania i programowania sieci neuronowych. Pierwsi badacze próbowali wyjaśnić obliczanie, rozpoznawanie i pamięć. Każdy problem stawiał modelowi inne wymagania i sprawiał, że przydatny stawał się kolejny fragment matematyki.
Problem z dokładnie określonym układem
Neuron generuje impuls albo nie. Ta obserwacja dała Warrenowi McCullochowi i Walterowi Pittsowi punkt wyjścia do ich pracy z 1943 roku. Jeśli aktywność neuronu można wyidealizować jako zdarzenie zachodzące na zasadzie wszystko albo nic, być może sieci neuronów da się badać za pomocą logiki.
Ich uproszczone jednostki miały progi i opóźnienia. Niektóre wejścia pobudzały jednostkę, a wejścia hamujące mogły uniemożliwić jej aktywację. Przy ustalonej strukturze sieci badacze mogli analizować, jak jej aktywność wyraża zależności logiczne, także między zdarzeniami zachodzącymi w różnych chwilach.
Łatwo dostrzec zalety tego podejścia. Zamiast mierzyć się od razu ze wszystkimi szczegółami biologicznymi, można było określić układ i rozumować o tym, co oblicza. Rysunek połączonych komórek stawał się obiektem matematycznym.
Samo określenie układu pomija jednak wiele z tego, co czyni uczenie interesującym. Zwierzę nabywa zachowania dzięki doświadczeniu. Coś w systemie musi więc być zdolne do zmiany.
Donald Hebb w książce The Organization of Behavior, opublikowanej w 1949 roku, umieścił tę zmianę w skuteczności połączeń. Zaproponował, że gdy jedna komórka wielokrotnie przyczynia się do pobudzenia drugiej, trwała zmiana może wzmocnić jej wpływ. Była to hipoteza biologiczna wyrażona słowami. Dała późniejszym modelom matematycznym konkretne miejsce, w którym mogły zapisywać skutki doświadczenia.
Rosenblatt chciał ilościowo opisać, jak może uczyć się system z częściowo losowymi połączeniami. W swojej pracy o perceptronie z 1958 roku wskazał trudność podejścia logicznego: ogólna organizacja układu nerwowego może być znana, choć jego dokładne połączenia pozostają nieznane. Dlatego za podstawę modelu przyjął rachunek prawdopodobieństwa.
Ten wybór zmienia pytanie. Mając dokładnie określony układ, możemy zapytać, co oblicza. Mając statystycznie opisaną populację jednostek, możemy zapytać, w jakich warunkach nabędzie użyteczne zachowanie.
Perceptron Rosenblatta zawierał jednostki sensoryczne, asocjacyjne i jednostki odpowiedzi, a część ich połączeń była losowa. Uczenie zmieniało sposób, w jaki aktywność jednostek asocjacyjnych wpływała na odpowiedzi. Była to znacznie bogatsza propozycja niż pojedynczy neuron progowy, od którego zwykle zaczyna się dziś wprowadzenie do perceptronów.
Teraz trzeba było rozróżniać wzorce aktywności, dostrajać połączenia i przewidywać przebieg uczenia. Logika umożliwiła formalną analizę obliczeń neuronowych. Rachunek prawdopodobieństwa pozwolił Rosenblattowi badać je bez znajomości każdego połączenia.
Kiedy połączenie stało się współrzędną
Gdy siły połączeń stają się regulowanymi liczbami, pojawia się przydatna możliwość: każdy zestaw ich wartości można potraktować jako punkt. Uczenie staje się ścieżką przez możliwe ustawienia.
Bernard Widrow i Marcian Hoff nadali temu spojrzeniu konkretną postać w swojej pracy nad ADALINE z 1960 roku. Ich adaptacyjne urządzenie miało współczynniki, które można było zmieniać, aby zmniejszać błędy. W analizie wejścia były wektorami, a błąd średniokwadratowy tworzył powierzchnię nad przestrzenią wartości współczynników.
Mierzyli ten błąd, zanim końcowy próg zamieniał sygnał w dyskretną decyzję. Otrzymali w ten sposób powierzchnię, po której adaptacja mogła zmierzać ku minimum. Ten sam współczynnik był ustawieniem urządzenia i współrzędną w problemie optymalizacji. Samą regułę uczenia omawiamy w artykule o ADALINE.
To prowadzi nas z powrotem do książki Rosenblatta. Jego macierz oddziaływań zbierała współczynniki połączeń między jednostkami, a zerem oznaczała brak połączenia. Przestrzeń parametrów opisywała możliwe stany pamięci sieci. Dalej Rosenblatt wykorzystywał rząd i osobliwość macierzy do analizowania, jakie klasyfikacje mogą realizować perceptrony.
Macierz rzeczywiście pomagała coś wyjaśnić. Sieć można było badać jako całość, a własności tej całości ujawniały coś, co trudno dostrzec, oglądając połączenia pojedynczo.
Ta siła matematyki mogła też podważać optymistyczne oczekiwania. W książce Perceptrons, opublikowanej w 1969 roku, Marvin Minsky i Seymour Papert badali systemy, które zbierały częściowe informacje za pomocą detektorów cech i podejmowały decyzję na podstawie ważonej kombinacji ich wyjść. Podtytuł, An Introduction to Computational Geometry, pokazuje, jak ważna stała się perspektywa matematyczna.
Weźmy parzystość: ustalenie, czy obraz zawiera parzystą, czy nieparzystą liczbę aktywnych pikseli. Autorzy dowiedli, że perceptron łączący wyjścia detektorów pojedynczą ważoną decyzją progową nie rozwiąże tego zadania dla każdego wejścia, chyba że co najmniej jeden detektor zależy od całego obrazu. Jeśli każdy detektor widzi tylko część obrazu, żadne dostrojenie końcowych wag nie sprawi, że system będzie działał poprawnie. Ograniczenie wynikało z architektury i jej cech.
Uczenie było więc bardziej złożone niż znalezienie dobrych sił połączeń. Znaczenie miała także reprezentacja dostarczana tym połączeniom. Jeśli nie pozwalała dokonać wymaganego rozróżnienia, model potrzebował innego sposobu przedstawienia wejścia.
Macierz, która potrafiła pamiętać
Rozpoznawanie było tylko jednym z powodów zainteresowania zmieniającymi się połączeniami. Pamięć stawiała inny problem: jak doświadczenie może pozostawić ślad, który później da się odtworzyć na podstawie wskazówki?
Karl Steinbuch podjął ten problem w Die Lernmatrix, opublikowanej w 1961 roku. Nazwa oznacza macierz uczącą się. Zaproponowany układ miał fazę uczenia, w której sygnały reprezentujące właściwości pojawiały się wraz z przypisanym im znaczeniem, oraz fazę odtwarzania, w której podanie jednego pozwalało odzyskać drugie. Steinbuch proponował realizacje z wykorzystaniem magnetycznych elementów pamięci lub procesów elektrochemicznych i przewidywał zastosowania w rozpoznawaniu znaków oraz wyszukiwaniu informacji.
Pamięć stawała się problemem inżynierskim: jak podczas uczenia zmieniać tablicę elementów, aby przechodzące przez nią później sygnały odtwarzały skojarzenie.
Teuvo Kohonen podjął ten temat w Correlation Matrix Memories, opublikowanej w 1972 roku. Wprost zastąpił macierz przełączającą Steinbucha macierzą korelacyjną, badając matematykę odtwarzania skojarzeniowego i pozostawiając możliwą rolę biologiczną modelu poza zakresem pracy.
W wersji przechowującej każdy iloczyn pary składowych każde skojarzenie łączyło wektor klucza z wektorem danych. Pomnożenie każdej składowej danych przez każdą składową klucza dawało iloczyn zewnętrzny: macierz iloczynów parami. Pamięć przechowywała przeskalowaną sumę takich macierzy. Zastosowanie jej do klucza dawało odtworzony wzorzec.
Ta sama matematyka wyjaśniała, dlaczego odtwarzanie mogło zawodzić. Podobne klucze mogły wnosić niepożądane składniki pochodzące z innych skojarzeń. Wspólnie przechowywane wspomnienia mogły sobie przeszkadzać.
James Anderson w pracy opublikowanej w tym samym roku podszedł do tej samej konstrukcji opartej na iloczynach od strony lokalnych zmian synaptycznych. Połączenie zmieniało się proporcjonalnie do iloczynu aktywności komórki wysyłającej i odbierającej sygnał. Gdy każda komórka jednej grupy była połączona z każdą komórką drugiej, zmiany te tworzyły taki sam iloczyn zewnętrzny. Liczbowa reguła Hebba stawała się tu aktualizacją macierzy: lokalne zmiany gromadziły się w pamięci, z której później można było odtworzyć skojarzony wzorzec.
John Hopfield nadał problemowi pamięci szczególnie znajomą postać w swojej pracy z 1982 roku: wyobraź sobie odtwarzanie pełnego opisu bibliograficznego z fragmentu, być może zawierającego nawet literówkę.
Jego sieć zawracała aktywność przez połączenia rekurencyjne. Niepełny wzorzec mógł ewoluować w kierunku zapamiętanego. Macierz połączeń opisywała, jak jednostki wpływają na siebie, a osobny wektor przedstawiał ich bieżące stany.
Przy symetrycznych połączeniach, braku połączeń jednostek z samymi sobą i asynchronicznych aktualizacjach Hopfield mógł wykazać, że funkcja energii nie rośnie w miarę zmian stanów. Łączyło to odtwarzanie w sieci neuronowej z zachowaniem oddziałujących ze sobą układów fizycznych. Zapamiętane wzorce mogły działać jak atraktory: stany, ku którym zmierzała pobliska aktywność.
Podczas odtwarzania połączenia pozostawały stałe. Stabilizowała się aktywność. Macierz połączeń i nieliniowe aktualizacje wspólnie wyjaśniały, jak częściowa wskazówka mogła prowadzić do pełniejszego wzorca.
Przeszliśmy długą drogę od zebrania sił połączeń w tabeli. Macierze pomagały wyjaśnić, jak przechowywano doświadczenie, dlaczego wspomnienia sobie przeszkadzały i jak sieć odtwarzała wzorzec z niedoskonałej wskazówki.
Uczenie tego, co powinna widzieć następna warstwa
W problemie rozpoznawania wciąż pozostawała trudność ujawniona przez analizę perceptronów: użyteczne decyzje zależały od użytecznych cech. Czy sieć mogła nabywać również same cechy dzięki doświadczeniu?
Jeden wymowny wynik uzyskał Erkki Oja w 1982 roku. Badał neuron liniowy z regułą Hebba zmodyfikowaną tak, aby kontrolować wzrost wag. Przy założeniach jego analizy wagi zbliżały się do wektora własnego odpowiadającego największej wartości własnej macierzy drugich momentów wejścia. Dla wejść o zerowej średniej jest to kierunek pierwszej składowej głównej.
Reguła wyrażona jako lokalne zmiany połączeń mogła zatem wydobywać znaną strukturę statystyczną. Algebra liniowa pomagała ustalić, czego neuron się uczy.
W sieci złożonej z kilku etapów pojawiała się dodatkowa trudność. Przykłady treningowe mogły określać odpowiedź, ale zwykle nie mówiły, co powinna wykrywać każda jednostka pośrednia. Pożądane zachowanie na wyjściu musiało kierować zmianami głębiej w sieci.
David Rumelhart, Geoffrey Hinton i Ronald Williams dobitnie pokazali tę możliwość w Learning Representations by Back-Propagating Errors, opublikowanej w 1986 roku. W ich przykładach dostrajane były zarówno połączenia ukryte, jak i wyjściowe. W sieci uczonej rozpoznawania symetrii lustrzanej analizowali wyuczone wagi, aby zrozumieć wkład jednostek pośrednich w rozwiązanie.
Mechanizm obliczania pochodnych miał wcześniejsze korzenie w pracy Seppo Linnainmaa nad odwrotną akumulacją, wywodzącej się z jego pracy dyplomowej z 1970 roku, oraz w rozprawie Paula Werbosa z 1974 roku, opisanej w jego późniejszej relacji. Demonstracja z 1986 roku pokazała, dlaczego ten aparat był ważny dla uczenia sieci: wcześniejsze etapy mogły nauczyć się dostarczać cechy potrzebne kolejnym.
Obliczenia wyjaśniamy w artykule o propagacji wstecznej. Dla tej historii ważne jest to, co stało się regulowane. Trening mógł kształtować przekształcenia tworzące reprezentację wewnętrzną, a także końcową decyzję podejmowaną na jej podstawie.
Obraz połączonych neuronów nadal opisywał sieć. Obraz kolejnych wyuczonych przekształceń opisywał to, co sieć osiągała.
Jak schemat stał się programem
Wektory i macierze mogły już opisywać połączenia, wspomnienia, cechy statystyczne oraz przekształcenia między warstwami. Osoba wchodząca w tę dziedzinę potrzebowała sposobu, by zrozumieć te opisy razem.
Michael I. Jordan zaproponował go w pierwszym tomie Parallel Distributed Processing, opublikowanym w 1986 roku. Jego wkładem był rozdział 9, wprowadzenie do algebry liniowej używanej do analizy modeli przedstawionych w tomie.
Wyjaśniał przestrzenie wektorowe, iloczyny skalarne i liniowość, pokazując, jak proste modele koneksjonistyczne odpowiadają operacjom na wektorach. Czytelnik uczył się języka matematycznego, który mógł przenosić z jednego modelu do drugiego.
To konkretny moment, w którym widać, jak ten związek stawał się częścią nauczania dziedziny. Badacze używali macierzy od dekad. Teraz obszerna prezentacja modeli koneksjonistycznych zawierała wprowadzenie uczące czytelnika myślenia w tych kategoriach.
Ta zmiana w nauczaniu jest widoczna również w książce Christophera Bishopa Neural Networks for Pattern Recognition, opublikowanej w 1995 roku. W przedmowie Hinton przedstawiał ją jako odpowiedź na potrzebę jasnego wykładu opartego na algebrze liniowej, analizie matematycznej i rachunku prawdopodobieństwa.
Bishop przechodził od prostszych modeli statystycznych do sieci wielowarstwowych. Początkujący mógł poznawać sieci neuronowe jako część matematycznego ujęcia estymacji, optymalizacji i uogólniania. Droga od analogii biologicznej do modeli liczbowych coraz bardziej wpisywała się w sposób nauczania przedmiotu.
Oprogramowanie nadało temu językowi praktyczny wymiar. Pakiet NETLAB Iana Nabneya przenosił opis macierzowy bezpośrednio do kodu. Jego procedura propagacji w przód przyjmuje macierz przykładów wejściowych. Mnożenie macierzy, dodanie biasu i nieliniowa aktywacja obliczają warstwę ukrytą. Kolejne mnożenie macierzy przekazuje jej aktywność do etapu wyjściowego.
Każdy wiersz zawiera przykład, więc te same operacje przetwarzają całą partię danych przez obie warstwy. Połączenia ze schematu stały się współczynnikami w programie.
Student poznający temat z takich książek i narzędzi otrzymuje oba opisy jednocześnie. Nie ma osobnego momentu odkrycia, że warstwa może być macierzą: właśnie tak jest już wyjaśniana i implementowana.
Później GPU sprawiły, że organizacja tych operacji nabrała jeszcze większego znaczenia. W pracy z 2009 roku dotyczącej uczenia bez nadzoru na dużą skalę Rajat Raina, Anand Madhavan i Andrew Ng wyrazili obliczenia głębokich sieci przekonań jako operacje macierzowe, które równoległe procedury numeryczne mogły wykonywać wydajnie. Aby uzyskać korzyść, trzeba było grupować pracę w partie i ograniczać przesyłanie danych między pamięcią CPU i GPU. Ten praktyczny problem omawiamy w naszym porównaniu CPU i GPU.
Algebra dawała też język do rozmowy o wyborach architektonicznych. W pracy o modelu Transformer z 2017 roku autorzy zebrali zapytania, klucze i wartości w macierze, wskazując zoptymalizowane mnożenie macierzy jako przewagę uwagi opartej na iloczynie skalarnym nad uwagą addytywną pod względem szybkości i zużycia pamięci. Niektóre macierze opisywały teraz oddziaływania obliczane na podstawie bieżącego wejścia, rozszerzając ten język poza stałe siły połączeń.
Dwa obrazy, od których zaczęliśmy, stały się wspólnie znajome, ponieważ przechodzenie między nimi okazało się dla badaczy tak użyteczne. Przedstawienie aktywności neuronów jako liczb, a połączeń jako współczynników dało sumowaniu ważonemu dokładny opis algebraiczny, obok nieliniowych operacji sieci. Opis ten pomagał wyjaśniać uczenie i pamięć, a następnie stał się językiem podręczników i programów. Gdy dziś badamy podprzestrzenie macierzy wag, dziedziczymy tę historię: sposób patrzenia na sieć, który stał się naturalny dzięki używaniu go.