Inteligentna technologia: Kognitywistyka w służbie maszyn



Nauczanie maszynowe, czyli metody z pogranicza statystyki są popularne ostatnimi czasy pod akronimami ML, AI, SI.

ML (Machine Learning), AI (Artificial Intelligence), SI (Synthetic Intelligence). Tak naprawdę, uczenie maszynowe (Machine Learning) jest gałęzią większej dyscypliny, jaką jest sztuczna inteligencja. Z kolei syntetyczna inteligencja (SI) jest alternatywnym określeniem sztucznej inteligencji. Zwróćmy uwagę na wyrażenie „syntetyczna inteligencja”, które coraz częściej zastępuje bardziej znaną „sztuczną inteligencję”. Podkreśla ono, że inteligencja maszyny wcale nie musi być zwykłym naśladownictwem, nie musi być sztuczna. Tym samym, aspiruje ona do formy prawdziwej inteligencji.


Temat jest interesujący i żywy dzięki zauważalnej potrzebie automatyzacji ludzkiej kognitywistyki. Przypomnijmy, że obszarem zainteresowań kognitywistów badających ludzki umysł i jego procesy są percepcja, język, pamięć, uwaga, rozumowanie i emocje. Automatyzacja to kluczowe zadanie cywilizacyjne, napędzające postęp technologiczny.


"Uczenie się oznacza zmiany w systemie, które mają charakter adaptacyjny w tym sensie, że pozwalają systemowi wykonać za następnym razem takie samo zadanie lub zadania podobne bardziej efektywnie." Herbert Simon (1983)


"Field of study that gives computers the ability to learn without being explicitly programmed" [1]

Artur Samuel (1959)

W rodzinie nauczania maszynowego istnieje wiele propozycji na adresację wymienionej problematyki. Szeroko rozwijanym obecnie pomysłem są techniki wykorzystujące sztuczne sieci neuronowe.



Sztuczna sieć neuronowa

Sztuczne sieci neuronowe to modele statystyczne, oparte na biologicznej budowie neuronów, czyli komórek układu nerwowego. Inspirowane ludzkimi neuronami składają się z wielu warstw podatnych na uczenie. W procesie uczenia sieć karmiona jest dobrej jakości danymi obrazowymi, tekstowymi, rekordami mowy bądź innymi zbiorami. W efekcie powstaje pewnego rodzaju obiekt predykcyjny, o możliwościach tworzenia stwierdzeń na temat nowych danych, bez ingerencji osoby trzeciej. Zastosowanie technologiczne? Sieci neuronowe są doskonałymi narzędziami do znajdywania wzorców, które są zbyt złożone lub liczne, aby programista mógł je samodzielnie wyodrębnić, a następnie nauczyć maszynę aby je rozpoznawała.



Jak to się zaczęło?

W 1943 roku Warren McCulloch, wraz z Walterem Pitts’em na podstawie wiedzy teoretycznej nt. funkcjonowania mózgu zaprojektowali prostą sieć neuronową, zapoczątkowując drogę dla rozwoju sztucznych sieci neuronowych[2]. Pierwszy model, który został wykorzystany do problemów życia codziennego był ADALINE, konstrukcji B. Widrow, który bazował na koncepcji Panów Warrena i Waltera. Praca na temat konstrukcji została opublikowana 1960 r.[3] Warto przeczytać więcej na temat przełomowego projektu ADALINE, przykładowo tutaj: https://en.wikipedia.org/wiki/ADALINE



Rozwój sieci neuronowych

Skoro już podczas trwania II Wojny Światowej istniała koncepcja sieci neuronowych to pojawia się pytanie, dlaczego temat rozwija się prężnie dopiero dzisiaj, 75 lat po zakończeniu wspomnianego światowego konfliktu. Przyczyną tego są potrzeby techniczne sieci. Proces uczenia zaawansowanych schematów neuronowych wymaga wysokich pokładów mocy obliczeniowej. Szczęśliwie, obecny postęp technologiczny gwarantuje ogromne możliwości maszyn w porównaniu do komputerów sprzed kilku dekad.

Przykładowo, na moment pisania artykułu świeżą informacją była premiera układu graficznego A100 z rodziny AMPERE firmy NVIDIA. Jego możliwości obliczeniowe oscylują w granicach 19.5 TFLOPs[4](teraflopy, czyli jednostka mówiąca o ilości wykonanych w sekundę operacji na liczbach zmiennoprzecinkowych). W 2000 roku superkomputer IBM ASCI White, czyli z definicji maszyna znacznie przekraczająca możliwości komputerów personalnych, osiągał w szczycie możliwości 7.226 TFLOPs. Jeżeli weźmiemy pod uwagę fakt, że kartę A100 można trzymać w dłoniach, a ASCI White ważył 106 ton[5], możemy zauważyć diametralny postęp. Postęp, który pozwala sieciom dokonywać efektywnych działań – niegdyś niewyobrażalnych.



Osiągnięcia sieci neuronowych

Obecnie funkcjonujące sieci neuronowe przyczyniają się do ewolucji dziedzin otaczających każdego z nas. Ich funkcjonalności z sukcesem wdrażane są przy:

  • wykrywaniu cech obrazów, np. przy detekcji twarzy, chorób człowieka i innych;

  • predykcji nowych wartości na podstawie historycznych przebiegów

  • wykrywaniu związków chemicznych i innych zależności w dziedzinie medycyny

  • prognozach meteorologicznych

  • automatycznej jeździe samochodów

  • modelowaniu ruchów aktorów w silnikach graficznych

  • … i wielu innych

Sieci neuronowe/nauczanie maszynowe przynoszą korzyści w wielu dziedzinach. Biorąc pod uwagę obecne możliwości technologiczne, mamy niepowtarzalną okazję obserwować zwiększający się wpływ wspomnianych technik na nasze życia. Warto być świadomym danej tematyki, bo na jej podstawie są i będą opierane coraz większe projekty. Zdalne gaszenie światła w mieszkaniu oddalonym od nas o 500 km? Automatyczny samochód i roboty sprzątające? Wystarczy zauważyć, że to, co 100 lat temu było czystym science fiction lub wręcz fantastyką, stało się już teraz realną możliwością!


Kamil Gross Machine Learning Developer w BitPeak

kamil.gross@bitpeak.pl

Źródła:

(1) Some studies in machine learning using the game of checkers. IBM Journal of research and development, 3(3), 210-229

(2) Artificial Neural Networks Technology

(3) An Adaptive "ADALINE" Neuron Using Chemical "MEMISTORS"

(4) NVIDIA A100 Tensor Core GPU Architecture

(5) ASCI WHITE: LAWRENCE LIVERMORE NATIONAL LABORATORY

50 wyświetlenia