JavaRush /Blog Java /Random-PL /Sieci neuronowe: kolebka przyszłej sztucznej inteligencji...

Sieci neuronowe: kolebka przyszłej sztucznej inteligencji czy po prostu kolejny trend techno?

Opublikowano w grupie Random-PL
W materiałach na JavaRush poruszyliśmy już temat sztucznej inteligencji (AI), uczenia maszynowego i innych technologii w taki czy inny sposób powiązanych z AI. W szczególności rozmawialiśmy już o tym, jak sztuczna inteligencja jest powiązana z programowaniem w Javie , omawialiśmy mity i horrory na temat AI , a w szeregu artykułów wspominaliśmy o kluczowych technologiach, które są wykorzystywane w tym obszarze. Sieci neuronowe: kolebka przyszłej sztucznej inteligencji czy po prostu kolejny trend techno?  - 1Dlatego uznaliśmy, że teraz jest dobry moment, aby jeszcze głębiej zagłębić się w dziedzinę AI i przyjrzeć się bliżej technologii, która faktycznie leży u podstaw współczesnej sztucznej inteligencji i uczenia maszynowego – sieci neuronowych. Mianowicie: jak powstała koncepcja sieci neuronowych i jak technologia ta została przekształcona do obecnego stanu, czym sztuczne sieci neuronowe różnią się od neuronów w ludzkim mózgu, czy rzeczywiście wiedzą, jak się uczyć i do czego tak naprawdę dzisiaj są zdolne. Sieci neuronowe: kolebka przyszłej sztucznej inteligencji czy po prostu kolejny trend techno?  - 2

Sztuczne sieci neuronowe i ludzki mózg. To samo?

Początkowo komputerowe sieci neuronowe otrzymały tę nazwę, ponieważ zasada ich konstrukcji przypomina układ neuronów w ludzkim mózgu. Zatem przeciętny ludzki mózg zawiera ponad 100 milionów maleńkich komórek zwanych neuronami. Tak naprawdę nikt nie wie dokładnie, ile takich komórek faktycznie mogłoby znajdować się w ludzkim mózgu – szacunki wahają się od 50 do 500 miliardów.Każdy neuron składa się z ciała komórkowego z wieloma tzw. dendrytami (wejścia komórkowe – przekazują informacje do komórki ) i jeden akson (wyjście komórki - przekazuje informację z komórki). Neurony są tak małe, że na powierzchni jednego milimetra kwadratowego można umieścić około stu takich komórek. Wewnątrz komputera odpowiednikiem neuronu są maleńkie urządzenia przełączające zwane tranzystorami. Najnowsze nowoczesne mikroprocesory (komputery jednoukładowe) zawierają ponad 30 miliardów tranzystorów. Już pierwszy mikroprocesor Pentium, stworzony około 20 lat temu, miał około 50 milionów tranzystorów upakowanych w układzie scalonym o powierzchni zaledwie 25 mm. Tak naprawdę, jak twierdzą eksperci, na tym kończy się połączenie między procesorami komputerów a neuronami w ludzkim mózgu, bo poza tym bardzo się od siebie różnią i działają zupełnie inaczej. Tranzystory komputerowe są połączone w stosunkowo proste obwody szeregowe, z których każdy można połączyć z dwoma lub trzema innymi, podczas gdy neurony w mózgu są ściśle połączone w skomplikowany, równoległy sposób. Naukowcy obliczyli zatem, że każdy neuron można połączyć z ponad 10 tysiącami swoich sąsiadów.

Co to jest sztuczna sieć neuronowa?

Zatem najbardziej znaczącą różnicą strukturalną między komputerami i neuronami w mózgu jest sposób ich działania. Podstawową ideą sieci neuronowych jest symulacja lub, jeśli wolisz, modelowanie w uproszczonej formie działania wielu wzajemnie połączonych neuronów w mózgu. To właśnie pozwala sieci neuronowej robić rzeczy, których nie potrafią zwykłe mikroprocesory, a mianowicie uczyć się, rozpoznawać wzorce i podejmować decyzje na zasadzie podobnej do ludzkiego mózgu. Należy jednak podkreślić, że na chwilę obecną sieci neuronowe są prostą programową emulacją pracy neuronów w mózgu. Sieci neuronowe: kolebka przyszłej sztucznej inteligencji czy po prostu kolejny trend techno?  - 3Typowa sieć neuronowa zawiera od kilkudziesięciu do setek, tysięcy, a nawet milionów sztucznych neuronów, zwanych jednostkami, ułożonych w kilku warstwach. Niektóre z tych jednostek, zwane jednostkami wejściowymi, odpowiadają za odbieranie różnych form informacji ze świata zewnętrznego, które sieć neuronowa będzie następnie próbowała poznać, zapamiętać i przetworzyć w inny sposób. Inne jednostki, zwane jednostkami wyjściowymi, zlokalizowane po przeciwnej stronie sieci, odpowiadają za sposób, w jaki sieć współdziała z tymi informacjami. Pomiędzy tymi dwiema warstwami znajdują się inne jednostki, które wykonują obliczenia i stanowią większość sieci neuronowej. Większość sieci neuronowych jest ze sobą połączona, co oznacza, że ​​każda jednostka jest połączona z innymi jednostkami warstwami po obu stronach. Połączenia między jednostkami są reprezentowane przez liczbę zwaną wagą. Waga w sieci neuronowej może być dodatnia (jeśli jedna jednostka aktywuje drugą) lub ujemna (jeśli jedna jednostka tłumi lub osłabia drugą). Im większa waga, tym większy wpływ jednej jednostki na drugą. Prosta sieć neuronowa przeznaczona do rozwiązywania prostych problemów może składać się tylko z trzech podstawowych warstw, jak pokazano na rysunku. Jednakże pomiędzy warstwą wejściową i wyjściową może znajdować się wiele różnych warstw, które wykonują różne funkcje. Sieci neuronowe o bardziej złożonych strukturach (niż na powyższej ilustracji) nazywane są głębokimi sieciami neuronowymi i zwykle służą do rozwiązywania złożonych problemów. Teoretycznie zastosowanie głębokiej struktury umożliwia sieci neuronowej mapowanie dowolnego typu danych wejściowych na dowolny typ danych wyjściowych, dzięki czemu jest w stanie rozwiązać każdy problem. Jednak w tym celu sieć neuronowa będzie wymagała poważnego i długiego „szkolenia”, które polega na przetwarzaniu milionów, a nawet miliardów przykładów informacji, z którymi sieć musi pracować. Sieci neuronowe: kolebka przyszłej sztucznej inteligencji czy po prostu kolejny trend techno?  - 4

Sieci neuronowe: trochę historii

Cóż, wyjaśniliśmy już podstawowe wyjaśnienia, czym właściwie są sieci neuronowe, teraz możemy cofnąć się nieco o teorię i porozmawiać o historii tej technologii oraz o tym, kiedy w ogóle się pojawiła. Może to wielu zdziwić, ale sieci neuronowe pojawiły się w nauce ponad 70 lat temu. Koncepcja została po raz pierwszy zaproponowana w 1944 r. przez Warrena McCullougha i Waltera Pittsa, dwóch badaczy z Uniwersytetu w Chicago, którzy w 1952 r. przenieśli się do Massachusetts Institute of Technology, gdzie założyli pierwszą grupę badawczą w zakresie nauk o kognitywistyce. Sieci neuronowe były w rzeczywistości głównym obszarem badań zarówno w neuronauce, jak i informatyce do 1969 roku. Oznacza to, że technologia ta, będąca podstawą nowoczesnych systemów sztucznej inteligencji, jest w modzie już od ponad całej dekady – od połowy lat pięćdziesiątych do końca lat sześćdziesiątych. Uważa się, że „zabójcą” tego szumu była książka autorstwa dwóch informatyków – Marvina Minsky’ego i Seymoura Paperta – którzy w swojej pracy ujawnili wszystkie ograniczenia sieci neuronowych. Faktem jest, że wczesne sieci neuronowe miały tylko jedną lub dwie warstwy, które można było trenować. Minsky i Papert wykazali, że tak proste sieci nie są matematycznie zdolne do modelowania złożonych zjawisk zachodzących w świecie rzeczywistym. W rezultacie zainteresowanie sieciami neuronowymi jako technologią zanikło na wiele lat – przez całe lata siedemdziesiąte i pierwszą połowę lat osiemdziesiątych poświęcano im obiektywnie niewiele uwagi. Zainteresowanie odnowiło się dopiero w 1986 r. wraz z publikacją artykułu, w którym przedstawiono koncepcję propagacji wstecznej, praktycznej metody uczenia głębokich sieci neuronowych. Dzięki propagacji wstecznej głębokie sieci neuronowe stały się bardziej przyjazne obliczeniowo, ale nadal wymagały ogromnych zasobów obliczeniowych do działania. Badania przeprowadzone w latach 90. i 2000. często wykazały, że złożone sieci neuronowe nie dawały pożądanych rezultatów pod względem wydajności. W rezultacie sieci neuronowe na jakiś czas wypadły z fali szumu i powróciły dopiero w drugiej dekadzie pierwszej dekady XXI wieku, głównie ze względu na zwiększoną moc obliczeniową układów graficznych, które pozwalają głębokim sieciom neuronowym działać wydajniej niż wcześniej. Zjawisko takiej cykliczności w nauce jako całości jest dobrze wyjaśnioneTomaso Poggio, profesor w Massachusetts Institute of Technology: „Istnieje wyjaśnienie, że idee w nauce rozprzestrzeniają się w podobny sposób, jak wirusy. Na przykład istnieje pięć lub sześć głównych szczepów wirusa grypy, a każdy z nich powraca mniej więcej raz na 25 lat. Ludzie zarażają się, rozwijają odporność i są chronieni przed infekcją przez następne 25 lat. A potem przychodzi nowe pokolenie i ponownie zostaje zarażone tym samym szczepem wirusa. W nauce ludzie zakochują się w pomysłach i pracują nad nimi aż do wyczerpania, do tego stopnia, że ​​rozwija się w nich odporność w postaci zmęczenia pomysłami. A potem pomysł powraca wraz z kolejnym pokoleniem naukowców”. Biorąc pod uwagę fakt, że sieci neuronowe i technologie sztucznej inteligencji są wciąż dość nową i słabo rozwiniętą technologią, możliwe, że szum wokół niej wkrótce zacznie ponownie słabnąć, by powrócić ponownie za kilka dekad. Sieci neuronowe: kolebka przyszłej sztucznej inteligencji czy po prostu kolejny trend techno?  - 5

Jak uczą się sieci neuronowe?

Zazwyczaj informacje przechodzą przez sieć neuronową na dwa sposoby. Kiedy sieć dopiero się uczy lub już działa po treningu, wzorce informacji docierają do niej poprzez jednostki wejściowe, które uruchamiają warstwy jednostek ukrytych, które z kolei wchodzą do jednostek wyjściowych. Ta ogólna struktura nazywana jest siecią wyprzedzającą. Nie wszystkie jednostki działają jednocześnie. Każda jednostka otrzymuje dane przychodzące od jednostek po lewej stronie i mnoży je przez wagę połączeń, przez które przechodzi. Każda jednostka sumuje wszystkie otrzymane w ten sposób dane i w najprostszym typie sieci, jeśli suma przekroczy określony próg, jednostka aktywuje pozostałe jednostki, do których jest podłączona (te po prawej). Jednym z kluczowych punktów umożliwiających naukę każdej sieci neuronowej jest sprzężenie zwrotne. Tak jak dziecko musi być wychowywane przez osobę dorosłą, która będzie mu mówić, co jest dobre, a co złe, tak sieci neuronowe potrzebują informacji zwrotnej i wskazówek. Używają metody uczenia zwanej backpropagacją . W tej metodzie sieć porównuje wytwarzaną moc z mocą, którą powinna wytwarzać, i wykorzystuje różnicę między tymi dwoma czynnikami do zmiany wagi połączeń pomiędzy jednostkami w sieci, od jednostek wyjściowych, poprzez jednostki pośrednie, do jednostek wejściowych - czyli odwrotnie. Z biegiem czasu propagacja wsteczna zmusza sieć do uczenia się, zmniejszając różnicę między rzeczywistą a szacunkową mocą wyjściową do punktu, w którym dokładnie się zgadzają. Sieci neuronowe: kolebka przyszłej sztucznej inteligencji czy po prostu kolejny trend techno?  - 6

Jak działają sieci neuronowe i gdzie są wykorzystywane?

Na koniec spójrzmy na przykład działania takiej sieci neuronowej. Gdy sieć neuronowa ma wystarczającą liczbę przykładów danych do trenowania, osiąga punkt, w którym użytkownik może wprowadzić do niej zupełnie nowe dane, których sieć nigdy wcześniej nie przetwarzała, i uzyskać z nich pożądany wynik. Załóżmy na przykład, że szkolisz swoją sieć neuronową do wykrywania broni, gdy pojawia się ona w polu widzenia kamery bezpieczeństwa. Trenujesz sieć, pokazując jej setki, tysiące i dziesiątki tysięcy obrazów różnych rodzajów broni, takich jak pistolety i karabiny. W pewnym momencie przesyłasz zdjęcie nowego rodzaju broni, którego wcześniej nie była jej pokazywana, np. pistolet. W rezultacie sieć skutecznie identyfikuje ten obiekt jako broń na podstawie szeregu podstawowych kryteriów, takich jak ogólny kształt, obecność rękojeści i kolby, obecność spustu i tak dalej. Oznacza to, że sieć neuronowa określa broń na obrazie na podstawie szeregu „wyuczonych” wzorców. Jednocześnie nie oznacza to oczywiście, że sieć neuronowa może przeglądać nowe dane i samodzielnie podejmować decyzję, tak jak robią to ludzie. Otrzymuje wszystkie informacje w postaci kodu binarnego, a każda z jednostek wejściowych (informacja do sieci) może znajdować się tylko w dwóch pozycjach: włączona lub wyłączona. Odpowiednio, jeśli na tym samym przykładzie przeszkolisz sieć neuronową do wyszukiwania broni, informacja przejdzie przez zestaw jednostek wejściowych, które odpowiadają na podstawowe pytania „tak/nie”. Na przykład: czy obiekt ma wyzwalacz?; czy jest kaganiec?; czy przedmiot jest wykonany z metalu?; czy jego kształt pasuje do pistoletu? Odpowiednio w przypadku broni odpowiedź sieci brzmiałaby: „tak, tak, tak, nie” lub „1110” w kodzie binarnym. Oczywiście w prawdziwym systemie takich pytań byłoby znacznie więcej, ale istota pozostaje ta sama: sieć neuronowa otrzymuje dane w postaci kodu binarnego i za jego pomocą uczy się odróżniać informacje niezbędne od niepotrzebnych. Teraz, znając podstawowy mechanizm działania sieci neuronowej, łatwo sobie wyobrazić, w jaki sposób technologia ta jest dziś wykorzystywana do rozwiązywania różnorodnych problemów. Klasycznym przykładem jest na przykład wykorzystanie sieci neuronowych do zapobiegania oszustwom bankowym – gdy system uczy się samodzielnie znajdować i natychmiastowo blokować te przelewy, które z tego czy innego powodu wydają się podejrzane. Albo np. wykorzystanie sieci neuronowych do podstawowego autopilota samochodów czy samolotów: gdy jednostki wejściowe otrzymują informacje z różnych systemów sterowania, a jednostki wyjściowe dostosowują tryb pilotażu zgodnie z zadanym kursem.

wnioski

Teraz widać, że sieć neuronowa jest ogólnie stosunkowo nieskomplikowaną technologią, która naprawdę przesuwa komputery i systemy komputerowe o krok naprzód, bliżej ludzi. Z drugiej strony oczywiste jest również, że sieci neuronowe wciąż nie są tak złożone i wydajne jak ludzki mózg. Bądźmy więc wdzięczni, że wszyscy rodzimy się z zaawansowaną siecią neuronową wbudowaną wprost w nasze mózgi i częściej wykorzystujmy to naturalne bogactwo na przykład do nauki i samodoskonalenia.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION