ML Atlas

10 · Praktyka · 4 min czytania · aktualizacja

Jak wyglądała historia uczenia maszynowego i sieci neuronowych?

W skrócie

Od neuronu McCullocha i Pittsa (1943) przez perceptron, zimy AI i propagację wsteczną po AlexNet, Transformera i ChatGPT, czyli najważniejsze daty i ich sens.

Co to jest

Historia uczenia maszynowego to historia pomysłu, że komputer może nabywać umiejętności z przykładów zamiast z ręcznie spisanych reguł. Zaczyna się od matematycznego modelu neuronu McCullocha i Pittsa z 1943 roku, a jej najnowszy rozdział to duże modele językowe, które od premiery ChatGPT w 2022 roku znają setki milionów ludzi.

Nie jest to historia równego postępu. To raczej fale: okresy entuzjazmu i hojnego finansowania, po których przychodziły rozczarowania i „zimy AI”. Wiele idei, które dziś napędzają głębokie uczenie, istniało od dziesięcioleci i czekało na wystarczająco dużo danych i mocy obliczeniowej.

Mechanizm — dlaczego tak działa

Początki (1943–1969). McCulloch i Pitts pokazali w 1943 roku, że sieć prostych progowych „neuronów” może realizować funkcje logiczne. Hebb w 1949 roku zaproponował regułę wzmacniania połączeń między jednocześnie aktywnymi neuronami. W 1958 roku Rosenblatt opisał perceptron — pierwszy neuron, który uczył się wag z przykładów. Termin „uczenie maszynowe” spopularyzował Arthur Samuel, autor samouczącego się programu do warcabów (1959). W 1969 roku Minsky i Papert w książce „Perceptrons” wykazali formalnie ograniczenia jednowarstwowego perceptronu, m.in. niemożność nauczenia funkcji XOR. Finansowanie badań nad sieciami osłabło na lata.

Powrót sieci (1986–2000). Przełomem była propagacja wsteczna — wydajny sposób liczenia gradientów w sieciach wielowarstwowych. Metoda miała wcześniejszych autorów (Linnainmaa 1970, Werbos 1974), ale dopiero praca Rumelharta, Hintona i Williamsa w „Nature” z 1986 roku pokazała, że sieci z warstwami ukrytymi uczą się użytecznych reprezentacji. LeCun zastosował sieci splotowe do rozpoznawania odręcznych cyfr (1989), Hochreiter i Schmidhuber zaproponowali LSTM (1997). W 1997 roku Deep Blue pokonał Kasparowa — ale głównie dzięki przeszukiwaniu i ręcznie strojonej ocenie pozycji, nie uczeniu.

Era metod statystycznych (lata 90. i 2000.). W praktyce dominowały metody z mocną teorią i dobrym zachowaniem na małych danych: SVM (Cortes i Vapnik 1995), lasy losowe (Breiman 2001), boosting. Sieci neuronowe uchodziły za kapryśne i trudne do uczenia.

Głębokie uczenie (od 2012). Trzy składniki dojrzały jednocześnie: duże zbiory danych (ImageNet, 2009), GPU i poprawki w uczeniu (ReLU, dropout, lepsza inicjalizacja). W 2012 roku AlexNet Krizhevsky'ego, Sutskevera i Hintona wygrał konkurs ImageNet z błędem top-5 15,3% wobec 26,2% drugiego zespołu. Potem przyszły GAN-y (2014), sieci rezydualne (2015) i AlphaGo, który w 2016 roku wygrał z Lee Sedolem 4:1.

Transformery i LLM (od 2017). Praca „Attention Is All You Need” (2017) wprowadziła Transformera, opartego wyłącznie na mechanizmie uwagi i dobrze skalującego się na GPU. Na nim zbudowano BERT (2018), serię GPT (GPT-3 w 2020 roku miał 175 mld parametrów) i ChatGPT (listopad 2022). W 2024 roku Nagrodę Nobla z fizyki otrzymali Hopfield i Hinton, a z chemii między innymi Hassabis i Jumper za AlphaFold.

Wspólny wątek: o tempie postępu częściej decydowała skala danych i obliczeń niż nowy pomysł algorytmiczny — to teza „gorzkiej lekcji” Suttona. Zastrzeżenie: taka narracja jest uproszczeniem, a pierwszeństwo wielu idei bywa sporne.

Na przykładzie

Spór z 1969 roku da się powtórzyć w kilka sekund. Funkcja XOR ma cztery punkty: (0,0)→0, (0,1)→1, (1,0)→1, (1,1)→0. Perceptron z scikit-learn uczony z pięcioma różnymi ziarnami za każdym razem kończy z dokładnością 50%, regresja logistyczna również — żadna prosta nie oddziela tych klas, więc model liniowy może poprawnie sklasyfikować najwyżej trzy z czterech punktów.

Wystarczy jedna warstwa ukryta, by problem zniknął: sieć z 4 neuronami ukrytymi (tanh) uczy się XOR bezbłędnie dla 10 z 10 ziaren. Z tylko 2 neuronami ukrytymi — teoretycznie wystarczającymi — udaje się to dla 6 z 10 ziaren, reszta utyka na 50–75%. Ten drobny eksperyment streszcza dwie lekcje historii: ograniczenie z 1969 roku dotyczyło sieci jednowarstwowych, a jego przełamanie wymagało nie tylko architektury, ale też metody uczenia i odrobiny zapasu pojemności.

W praktyce

  • Perceptron Rosenblatta żyje w scikit-learn jako Perceptron; sieć wielowarstwowa jako MLPClassifier.
  • Klasyczne metody z lat 90. i 2000. (SVC, RandomForestClassifier, boosting) nadal wygrywają na wielu danych tabelarycznych.
  • Sieci splotowe (torch.nn.Conv2d) i LSTM (torch.nn.LSTM) to bezpośredni potomkowie prac z 1989 i 1997 roku.
  • torch.nn.Transformer i biblioteki z gotowymi modelami językowymi implementują architekturę z 2017 roku.
  • Czytając dawne prace, zwracaj uwagę na skalę: „duży zbiór” w 1990 roku to dziś mały przykład testowy.

Najczęstsze pytania

Czym były zimy AI?
To okresy ostrego spadku finansowania i zainteresowania po niespełnionych obietnicach: pierwszy w latach 70. (m.in. po raporcie Lighthilla z 1973 roku), drugi pod koniec lat 80., po rozczarowaniu systemami ekspertowymi. W obu przypadkach oczekiwania wyprzedziły możliwości ówczesnych komputerów i danych.
Kto wynalazł propagację wsteczną?
Nie ma jednej odpowiedzi. Odwrotny tryb różniczkowania opisał Linnainmaa w 1970 roku, zastosowanie do sieci zaproponował Werbos w 1974 roku, a praca Rumelharta, Hintona i Williamsa z 1986 roku spopularyzowała metodę i pokazała, co potrafi.
Dlaczego głębokie uczenie wystartowało dopiero po 2010 roku?
Bo potrzebowało jednocześnie dużych oznaczonych zbiorów danych, tanich i szybkich obliczeń na GPU oraz kilku technicznych poprawek ułatwiających uczenie głębokich sieci. Każdy z tych składników osobno nie wystarczał.

Źródła

  • McCulloch W. S., Pitts W. „A logical calculus of the ideas immanent in nervous activity”, Bulletin of Mathematical Biophysics 5, 1943.
  • Rosenblatt F. „The perceptron: A probabilistic model for information storage and organization in the brain”, Psychological Review 65(6), 1958.
  • Rumelhart D. E., Hinton G. E., Williams R. J. „Learning representations by back-propagating errors”, Nature 323, 1986.
  • Krizhevsky A., Sutskever I., Hinton G. E. „ImageNet Classification with Deep Convolutional Neural Networks”, NeurIPS 2012.
  • Goodfellow I., Bengio Y., Courville A. „Deep Learning”, MIT Press 2016, rozdz. 1.2 (Historical Trends in Deep Learning).

Zobacz też