Sztuczna sieć neuronowa - Artificial neural network
Część serii na |
Uczenie maszynowe i eksploracja danych |
---|
Część serii na |
Sztuczna inteligencja |
---|
Złożone systemy |
---|
Tematy |
Nauka o sieci | ||||
---|---|---|---|---|
Typy sieci | ||||
Wykresy | ||||
|
||||
Modele | ||||
|
||||
| ||||
Sztuczne sieci neuronowe ( SN ), zwykle nazywane po prostu sieciami neuronowymi ( NN ), to systemy obliczeniowe inspirowane biologicznymi sieciami neuronowymi, które składają się na mózgi zwierząt .
SSN opiera się na zbiorze połączonych jednostek lub węzłów zwanych sztucznymi neuronami , które luźno modelują neurony w biologicznym mózgu. Każde połączenie, podobnie jak synapsy w biologicznym mózgu, może przekazywać sygnał do innych neuronów. Sztuczny neuron odbiera sygnał, a następnie przetwarza go i może sygnalizować podłączonym do niego neuronom. „Sygnał” na połączeniu jest liczbą rzeczywistą , a wyjście każdego neuronu jest obliczane przez jakąś nieliniową funkcję sumy jego wejść. Połączenia nazywane są krawędziami . Neurony i krawędzie zazwyczaj mają wagę, która dostosowuje się wraz z postępem uczenia się. Waga zwiększa lub zmniejsza siłę sygnału w połączeniu. Neurony mogą mieć próg taki, że sygnał jest wysyłany tylko wtedy, gdy sygnał zagregowany przekroczy ten próg. Zazwyczaj neurony są agregowane w warstwy. Różne warstwy mogą wykonywać różne przekształcenia na swoich danych wejściowych. Sygnały wędrują z pierwszej warstwy (warstwy wejściowej) do ostatniej warstwy (warstwy wyjściowej), prawdopodobnie po wielokrotnym przejściu przez warstwy.
Szkolenie
Sieci neuronowe uczą się (lub są szkolone) poprzez przetwarzanie przykładów, z których każdy zawiera znane „dane wejściowe” i „wyniki”, tworząc ważone prawdopodobieństwem powiązania między nimi, które są przechowywane w strukturze danych samej sieci. Uczenie sieci neuronowej z danego przykładu odbywa się zwykle poprzez określenie różnicy między przetworzonym wyjściem sieci (często predykcją) a wyjściem docelowym. Ta różnica jest błędem. Sieć następnie dostosowuje swoje ważone powiązania zgodnie z regułą uczenia się i wykorzystując tę wartość błędu. Kolejne korekty spowodują, że sieć neuronowa wytworzy dane wyjściowe, które będą coraz bardziej podobne do wyników docelowych. Po wystarczającej liczbie tych dostosowań szkolenie może zostać zakończone w oparciu o określone kryteria. Nazywa się to uczeniem nadzorowanym .
Takie systemy „uczą się” wykonywać zadania, biorąc pod uwagę przykłady, zwykle bez programowania z regułami specyficznymi dla zadania. Na przykład w przypadku rozpoznawania obrazów mogą nauczyć się rozpoznawać obrazy przedstawiające koty, analizując przykładowe obrazy, które zostały ręcznie oznaczone jako „kot” lub „bez kota” i wykorzystując wyniki do identyfikowania kotów na innych obrazach. Robią to bez wcześniejszej wiedzy o kotach, na przykład o tym, że mają futro, ogony, wąsy i kocie twarze. Zamiast tego automatycznie generują cechy identyfikujące na podstawie przetwarzanych przez siebie przykładów.
Historia
Warren McCulloch i Walter Pitts (1943) otworzyli temat, tworząc model obliczeniowy dla sieci neuronowych. Pod koniec lat czterdziestych DO Hebb stworzył hipotezę uczenia się opartą na mechanizmie plastyczności neuronalnej, który stał się znany jako uczenie Hebbowskie . Farley i Wesley A. Clark (1954) po raz pierwszy użyli maszyn obliczeniowych, zwanych wówczas „kalkulatorami”, do symulacji sieci Hebbowskiej. W 1958 roku psycholog Frank Rosenblatt wynalazł perceptron , pierwszą sztuczną sieć neuronową, finansowaną przez Biuro Badań Marynarki Wojennej Stanów Zjednoczonych . Pierwsze funkcjonalne sieci z wieloma warstwami zostały opublikowane przez Ivakhnenko i Lapę w 1965 roku jako Group Method of Data Handling . Podstawy ciągłej propagacji wstecznej zostały wyprowadzone w kontekście teorii sterowania przez Kelleya w 1960 r. i Brysona w 1961 r., stosując zasady programowania dynamicznego . Następnie badania uległy stagnacji po Minsky i Papert (1969), którzy odkryli, że podstawowe perceptrony nie są w stanie przetwarzać obwodu wyłącznego lub, że komputery nie mają wystarczającej mocy do przetwarzania użytecznych sieci neuronowych.
W 1970 roku Seppo Linnainmaa opublikował ogólną metodę automatycznego różnicowania (AD) dyskretnych połączonych sieci zagnieżdżonych funkcji różniczkowalnych . W 1973 Dreyfus zastosował propagację wsteczną, aby dostosować parametry regulatorów proporcjonalnie do gradientów błędów. Werbos „S (1975) wstecznej algorytm włączony praktykę sieci wielowarstwowej. W 1982 roku zastosował metodę AD Linnainmaa do sieci neuronowych w sposób, który stał się szeroko stosowany.
Opracowanie bardzo dużej integracji (VLSI) metal-tlenek-półprzewodnik (MOS) w postaci komplementarnej technologii MOS (CMOS) umożliwiło zwiększenie liczby tranzystorów MOS w elektronice cyfrowej . Zapewniło to większą moc obliczeniową dla rozwoju praktycznych sztucznych sieci neuronowych w latach 80. XX wieku.
W 1986 roku Rumelhart , Hinton i Williams wykazali, że propagacja wsteczna nauczyli się interesujących wewnętrznych reprezentacji słów jako wektorów cech, kiedy zostali nauczeni przewidywania następnego słowa w sekwencji.
W 1992 r. wprowadzono funkcję max-pooling, aby pomóc w zmniejszeniu niezmienności przesunięcia i tolerancji na deformacje, aby ułatwić rozpoznawanie obiektów 3D . Schmidhuber przyjął wielopoziomową hierarchię sieci (1992) wstępnie przeszkolonych jeden poziom na raz przez nienadzorowane uczenie się i dostrojone przez wsteczną propagację .
Wczesne sukcesy sieci neuronowych obejmowały przewidywanie rynku giełdowego, aw 1995 roku (w większości) autonomiczny samochód.
Geoffrey Hinton i in. (2006) zaproponowali uczenie się reprezentacji wysokiego poziomu przy użyciu kolejnych warstw binarnych lub ukrytych zmiennych o wartościach rzeczywistych z ograniczoną maszyną Boltzmanna do modelowania każdej warstwy. W 2012 roku Ng i Dean stworzyli sieć, która nauczyła się rozpoznawać pojęcia wyższego poziomu, takie jak koty, tylko dzięki oglądaniu nieoznakowanych obrazów. Nienadzorowane szkolenie wstępne oraz zwiększona moc obliczeniowa z procesorów graficznych i obliczeń rozproszonych umożliwiły korzystanie z większych sieci, szczególnie w problemach z obrazem i rozpoznawaniem wizualnym, które stały się znane jako „ uczenie głębokie ”.
Ciresan i współpracownicy (2010) wykazali, że pomimo zanikającego problemu gradientu , GPU umożliwiają propagację wsteczną dla wielowarstwowych sieci neuronowych ze sprzężeniem do przodu. W latach 2009-2012 ANN zaczęły zdobywać nagrody w konkursach ANN, zbliżając się do wydajności na poziomie człowieka w różnych zadaniach, początkowo w rozpoznawaniu wzorców i uczeniu maszynowym . Na przykład dwukierunkowa i wielowymiarowa pamięć krótkotrwała długotrwała (LSTM) Graves et al. wygrał trzy konkursy w dziedzinie połączonego rozpoznawania pisma ręcznego w 2009 roku bez wcześniejszej znajomości trzech języków, których należy się nauczyć.
Ciresan i współpracownicy zbudowali pierwsze rozpoznawanie wzorców, aby osiągnąć konkurencyjną/nadludzką wydajność w oparciu o testy porównawcze, takie jak rozpoznawanie znaków drogowych (IJCNN 2012).
Modele
SSN rozpoczęły się jako próba wykorzystania architektury ludzkiego mózgu do wykonywania zadań, z którymi konwencjonalne algorytmy nie odniosły sukcesu. Wkrótce przeorientowali się w kierunku poprawy wyników empirycznych, w większości porzucając próby pozostania wiernymi swoim biologicznym prekursorom. Neurony są połączone ze sobą na różne sposoby, aby wyjście jednych neuronów stało się wejściem innych. Sieć tworzy ukierunkowany , ważony wykres .
Sztuczna sieć neuronowa składa się ze zbioru symulowanych neuronów. Każdy neuron jest węzłem, który jest połączony z innymi węzłami za pośrednictwem łączy, które odpowiadają biologicznym połączeniom akson-synapsa-dendryt. Każde łącze ma wagę, która określa siłę oddziaływania jednego węzła na inny.
Składniki SSN
Neurony
SSN składają się ze sztucznych neuronów, które koncepcyjnie wywodzą się z neuronów biologicznych . Każdy sztuczny neuron ma wejścia i wytwarza jedno wyjście, które można wysłać do wielu innych neuronów. Dane wejściowe mogą być wartościami cech próbki danych zewnętrznych, takich jak obrazy lub dokumenty, lub mogą być danymi wyjściowymi innych neuronów. Wyjścia końcowych neuronów wyjściowych sieci neuronowej realizują zadanie, takie jak rozpoznawanie obiektu na obrazie.
Aby znaleźć wyjście neuronu, najpierw bierzemy sumę ważoną wszystkich wejściach, ważone wagami tych połączeń z wejść do neuronu. Do tej sumy dodajemy termin odchylenia . Ta ważona suma jest czasami nazywana aktywacją . Ta ważona suma jest następnie przekazywana przez (zwykle nieliniową) funkcję aktywacji w celu uzyskania danych wyjściowych. Początkowe dane wejściowe to dane zewnętrzne, takie jak obrazy i dokumenty. Ostateczne wyniki realizują zadanie, takie jak rozpoznanie obiektu na obrazie.
Połączenia i ciężary
Sieć składa się z połączeń, przy czym każde połączenie dostarcza wyjście jednego neuronu jako wejście do innego neuronu. Każdemu połączeniu przypisywana jest waga, która reprezentuje jego względną wagę. Dany neuron może mieć wiele połączeń wejściowych i wyjściowych.
Funkcja propagacji
Funkcja propagacji oblicza wejście do neuronu z wyjść jego poprzedników neuronów i ich połączeń jako sumę ważoną. Odchylenie termin może być dodana do wyniku propagacji.
Organizacja
Neurony są zazwyczaj zorganizowane w wiele warstw, szczególnie w przypadku uczenia głębokiego . Neurony jednej warstwy łączą się tylko z neuronami warstwy bezpośrednio poprzedzającej i następnej. Warstwa odbierająca dane zewnętrzne to warstwa wejściowa . Warstwa, która daje ostateczny wynik, to warstwa wyjściowa . Pomiędzy nimi jest zero lub więcej ukrytych warstw . Stosowane są również sieci jednowarstwowe i niewarstwowe. Pomiędzy dwiema warstwami możliwych jest wiele wzorów połączeń. Mogą być w pełni połączone , przy czym każdy neuron w jednej warstwie łączy się z każdym neuronem w następnej warstwie. Mogą być łączenie , w którym grupa neuronów w jednej warstwie połączenia do jednego neuronu na kolejnej warstwy, a tym samym zmniejszenie liczby neuronów w tej warstwie. Neurony posiadające tylko takie połączenia tworzą ukierunkowany graf acykliczny i są znane jako sieci ze sprzężeniem do przodu . Alternatywnie sieci, które umożliwiają połączenia między neuronami w tej samej lub poprzednich warstwach, są znane jako sieci rekurencyjne .
Hiperparametr
Hiperparametr to stały parametr, którego wartość jest ustawiana przed rozpoczęciem procesu uczenia. Wartości parametrów uzyskuje się poprzez uczenie. Przykładami hiperparametrów są szybkość uczenia , liczba ukrytych warstw i rozmiar partii. Wartości niektórych hiperparametrów mogą zależeć od wartości innych hiperparametrów. Na przykład rozmiar niektórych warstw może zależeć od ogólnej liczby warstw.
Uczenie się
Uczenie się to przystosowanie sieci do lepszego radzenia sobie z zadaniem poprzez uwzględnienie przykładowych obserwacji. Nauka polega na dostosowaniu wag (i opcjonalnych progów) sieci w celu poprawy dokładności wyniku. Odbywa się to poprzez minimalizację obserwowanych błędów. Nauka jest zakończona, gdy badanie dodatkowych obserwacji nie zmniejsza w użyteczny sposób wskaźnika błędów. Nawet po uczeniu się, stopa błędów zazwyczaj nie osiąga 0. Jeśli po uczeniu się, stopa błędów jest zbyt wysoka, sieć zazwyczaj musi zostać przeprojektowana. W praktyce odbywa się to poprzez zdefiniowanie funkcji kosztu, która jest okresowo oceniana podczas nauki. Dopóki jego produkcja będzie spadać, uczenie się będzie kontynuowane. Koszt jest często definiowany jako statystyka, której wartość można jedynie przybliżyć. Dane wyjściowe są w rzeczywistości liczbami, więc gdy błąd jest niski, różnica między wynikiem (prawie na pewno kot) a poprawną odpowiedzią (kot) jest niewielka. Uczenie próbuje zmniejszyć sumę różnic pomiędzy obserwacjami. Większość modeli uczenia się można postrzegać jako proste zastosowanie teorii optymalizacji i estymacji statystycznej .
Szybkość uczenia się
Szybkość uczenia się określa wielkość kroków naprawczych, które model podejmuje w celu skorygowania błędów w każdej obserwacji. Wysoka szybkość uczenia się skraca czas uczenia, ale z niższą ostateczną dokładnością, podczas gdy niższa szybkość uczenia się trwa dłużej, ale z potencjałem większej dokładności. Optymalizacje, takie jak Quickprop, mają na celu przede wszystkim przyspieszenie minimalizacji błędów, podczas gdy inne ulepszenia mają głównie na celu zwiększenie niezawodności. Aby uniknąć oscylacji wewnątrz sieci, takich jak naprzemienne wagi połączeń, oraz poprawić szybkość konwergencji, udoskonalenia wykorzystują adaptacyjną szybkość uczenia się, która odpowiednio wzrasta lub maleje. Pojęcie pędu umożliwia ważenie równowagi między gradientem a poprzednią zmianą w taki sposób, że dostosowanie wagi zależy w pewnym stopniu od poprzedniej zmiany. Moment bliski 0 uwydatnia gradient, a wartość bliska 1 uwydatnia ostatnią zmianę.
Funkcja kosztów
Chociaż możliwe jest zdefiniowanie funkcji kosztu ad hoc , często o wyborze decydują pożądane właściwości funkcji (takie jak wypukłość ) lub ponieważ wynika ona z modelu (np. w modelu probabilistycznym prawdopodobieństwo a posteriori może być użyte jako odwrotne koszt).
Propagacja wsteczna
Propagacja wsteczna to metoda używana do dostosowania wag połączeń w celu skompensowania każdego błędu wykrytego podczas uczenia. Wielkość błędu jest efektywnie dzielona między połączenia. Z technicznego punktu widzenia backprop oblicza gradient (pochodną) funkcji kosztu związanej z danym stanem w odniesieniu do wag. Aktualizacje wag można wykonać za pomocą stochastycznego spadku gradientu lub innych metod, takich jak Extreme Learning Machines , sieci „No-prop”, trening bez cofania się, sieci „nieważkie” i niekoneksjonistyczne sieci neuronowe .
Paradygmaty uczenia się
Trzy główne paradygmaty nauki są nadzorowane uczenie się , bez nadzoru nauka i uczenie się zbrojenie . Każdy z nich odpowiada poszczególnym zadaniu uczenia się
Nadzorowana nauka
Uczenie nadzorowane wykorzystuje zestaw sparowanych wejść i pożądanych wyjść. Zadaniem nauki jest wytworzenie pożądanego wyniku dla każdego wejścia. W tym przypadku funkcja kosztowa wiąże się z eliminacją błędnych odliczeń. Powszechnie stosowanym kosztem jest błąd średniokwadratowy , który próbuje zminimalizować średni błąd kwadratowy między danymi wyjściowymi sieci a żądanymi danymi wyjściowymi. Zadania odpowiednie do nadzorowanego uczenia się to rozpoznawanie wzorców (znane również jako klasyfikacja) i regresja (znana również jako aproksymacja funkcji). Uczenie nadzorowane ma również zastosowanie do danych sekwencyjnych (np. do pisania odręcznego, rozpoznawania mowy i gestów ). Można to traktować jako uczenie się z „nauczycielem”, w postaci funkcji, która zapewnia ciągłą informację zwrotną o jakości dotychczas uzyskanych rozwiązań.
Nauka nienadzorowana
W uczeniu nienadzorowanym podaje się dane wejściowe wraz z funkcją kosztu, pewną funkcją danych i wyjściem sieci. Funkcja kosztu jest zależna od zadania (dziedziny modelu) i wszelkich założeń a priori (domniemanych właściwości modelu, jego parametrów i obserwowanych zmiennych). Jako trywialny przykład rozważ model, w którym jest stała, a koszt . Minimalizacja tego kosztu daje wartość, która jest równa średniej danych. Funkcja kosztu może być znacznie bardziej skomplikowana. Jego forma zależy od aplikacji: na przykład w kompresji może być powiązana z wzajemną informacją między i , podczas gdy w modelowaniu statystycznym może być powiązana z prawdopodobieństwem a posteriori modelu na danych danych (zauważ, że w obu tych przykładach te ilości byłyby zmaksymalizowane, a nie zminimalizowane). Zadania, które mieszczą się w paradygmacie uczenia się nienadzorowanego, to ogólne problemy z szacowaniem ; aplikacje obejmują tworzenie klastrów , szacowanie rozkładów statystycznych , kompresję i filtrowanie .
Nauka wzmacniania
W aplikacjach, takich jak granie w gry wideo, aktor wykonuje szereg działań, po każdym z nich otrzymuje nieprzewidywalną reakcję otoczenia. Celem jest wygranie gry, czyli wygenerowanie najbardziej pozytywnych (o najniższych kosztach) odpowiedzi. W uczeniu się przez wzmacnianie celem jest ważenie sieci (opracowanie polityki) w celu wykonania działań, które minimalizują długoterminowe (oczekiwane skumulowane) koszty. W każdym momencie agent wykonuje akcję, a środowisko generuje obserwację i natychmiastowy koszt, zgodnie z pewnymi (zwykle nieznanymi) regułami. Zasady i długoterminowy koszt zwykle można jedynie oszacować. W dowolnym momencie agent decyduje, czy zbadać nowe działania, aby odkryć ich koszty, czy wykorzystać wcześniejsze uczenie się, aby postępować szybciej.
Formalnie środowisko jest modelowane jako proces decyzyjny Markowa (MDP) ze stanami i działaniami . Ponieważ przejścia stanów nie są znane, zamiast tego używane są rozkłady prawdopodobieństwa: chwilowy rozkład kosztów , rozkład obserwacji i rozkład przejść , podczas gdy polityka jest zdefiniowana jako rozkład warunkowy na działania podane w obserwacjach. Wzięte razem, dwa definiują łańcuch Markowa (MC). Celem jest odkrycie najtańszego MC.
W takich aplikacjach SSN pełnią rolę komponentu uczącego. Programowanie dynamiczne w połączeniu z sieciami ANN (daje programowanie neurodynamiczne) zostało zastosowane do problemów, takich jak te związane z trasowaniem pojazdów , grami wideo, zarządzaniem zasobami naturalnymi i medycyną, ze względu na zdolność sieci ANN do łagodzenia utraty dokładności nawet przy zmniejszeniu gęstości siatki dyskretyzacji w celu aproksymacji liczbowej rozwiązanie problemów sterowania. Zadania, które mieszczą się w paradygmacie uczenia się przez wzmacnianie, to problemy kontrolne, gry i inne sekwencyjne zadania decyzyjne.
Samodzielnego uczenia się
Samouczenie się w sieciach neuronowych zostało wprowadzone w 1982 roku wraz z siecią neuronową zdolną do samouczenia się o nazwie Crossbar Adaptive Array (CAA). Jest to system z tylko jednym wejściem, sytuacją i tylko jednym wyjściem, działaniem (lub zachowaniem). Nie ma ani zewnętrznych porad, ani zewnętrznego wzmocnienia ze strony otoczenia. CAA oblicza w sposób krzyżowy zarówno decyzje dotyczące działań, jak i emocje (uczucia) dotyczące napotkanych sytuacji. System jest napędzany przez interakcję między poznaniem a emocjami. Biorąc pod uwagę macierz pamięci W =||w(a,s)||, algorytm samouczenia poprzecznego w każdej iteracji wykonuje następujące obliczenia:
In situation s perform action a; Receive consequence situation s'; Compute emotion of being in consequence situation v(s'); Update crossbar memory w'(a,s) = w(a,s) + v(s').
Wartość propagowana wstecz (wzmocnienie wtórne) to emocja wobec sytuacji konsekwencji. CAA istnieje w dwóch środowiskach, jednym jest środowiskiem behawioralnym, w którym się zachowuje, a drugim środowiskiem genetycznym, z którego początkowo i tylko raz otrzymuje początkowe emocje dotyczące napotkanych sytuacji w środowisku behawioralnym. Po otrzymaniu wektora genomu (wektora gatunkowego) ze środowiska genetycznego, CAA nauczy się zachowania dążącego do celu w środowisku behawioralnym, które zawiera zarówno pożądane, jak i niepożądane sytuacje.
Neuroewolucja
Neuroevolution może tworzyć topologie i wagi sieci neuronowych za pomocą obliczeń ewolucyjnych . Jest konkurencyjny z zaawansowanymi podejściami do zjazdów gradientowych. Jedną z zalet neuroewolucji jest to, że może być mniej podatna na wpadnięcie w „ślepy zaułek”.
Inne
W ramach bayesowskich , rozkład w zbiorze dozwolonych modeli jest wybierany w celu zminimalizowania kosztów. Inne algorytmy uczenia się to metody ewolucyjne , programowanie ekspresji genów , symulowane wyżarzanie , maksymalizacja oczekiwań , metody nieparametryczne i optymalizacja roju cząstek . Rekurencja zbieżna to algorytm uczenia sieci neuronowych modelu móżdżkowego kontrolera artykulacji (CMAC).
Tryby
Dostępne są dwa tryby uczenia: stochastyczny i wsadowy. W uczeniu stochastycznym każde wejście tworzy korektę wagi. W uczeniu wsadowym wagi są dostosowywane na podstawie partii danych wejściowych, kumulując błędy w partii. Uczenie stochastyczne wprowadza do procesu „szum” przy użyciu lokalnego gradientu obliczonego z jednego punktu danych; zmniejsza to prawdopodobieństwo utknięcia sieci w lokalnych minimach. Jednak uczenie wsadowe zazwyczaj zapewnia szybsze i bardziej stabilne zejście do lokalnego minimum, ponieważ każda aktualizacja jest wykonywana w kierunku średniego błędu wsadowego. Powszechnym kompromisem jest stosowanie „minipartii”, małych partii z próbkami w każdej partii wybieranymi stochastycznie z całego zestawu danych.
Rodzaje
SSN przekształciły się w szeroką rodzinę technik, które przyczyniły się do postępu w wielu dziedzinach. Najprostsze typy mają jeden lub więcej elementów statycznych, w tym liczbę jednostek, liczbę warstw, wagi jednostek i topologię . Typy dynamiczne pozwalają jednemu lub więcej z nich ewoluować poprzez uczenie się. Te ostatnie są znacznie bardziej skomplikowane, ale mogą skrócić okresy nauki i przynieść lepsze wyniki. Niektóre typy umożliwiają/wymagają „nadzorowania” uczenia się przez operatora, podczas gdy inne działają niezależnie. Niektóre typy działają wyłącznie sprzętowo, podczas gdy inne są czysto programowe i działają na komputerach ogólnego przeznaczenia.
Niektóre z głównych przełomów obejmują: splotowe sieci neuronowe , które okazały się szczególnie skuteczne w przetwarzaniu danych wizualnych i innych danych dwuwymiarowych; długotrwała pamięć krótkotrwała pozwala uniknąć problemu zanikającego gradientu i może obsługiwać sygnały, które zawierają mieszankę składowych o niskiej i wysokiej częstotliwości, wspomagając rozpoznawanie mowy o dużym zasobie, syntezę tekstu na mowę i gadające głowy w fotorealistycznym ujęciu; konkurencyjne sieci, takie jak generatywne sieci adwersarzy, w których wiele sieci (o różnej strukturze) konkuruje ze sobą w zadaniach, takich jak wygranie gry lub oszukanie przeciwnika co do autentyczności danych wejściowych.
Projekt sieci
Wyszukiwanie architektury neuronowej (NAS) wykorzystuje uczenie maszynowe do automatyzacji projektowania sieci ANN. Różne podejścia do NAS zaprojektowały sieci, które dobrze wypadają w porównaniu z ręcznie zaprojektowanymi systemami. Podstawowym algorytmem wyszukiwania jest zaproponowanie potencjalnego modelu, ocena go względem zestawu danych i wykorzystanie wyników jako informacji zwrotnej do uczenia sieci NAS. Dostępne systemy obejmują AutoML i AutoKeras.
Kwestie projektowe obejmują określenie liczby, typu i połączenia warstw sieci, a także rozmiaru każdej i typu połączenia (pełne, pulowanie, ...).
Hiperparametry muszą być również zdefiniowane jako część projektu (nie są wyuczone), regulując kwestie takie jak liczba neuronów w każdej warstwie, szybkość uczenia się, krok, krok, głębokość, pole receptywne i wypełnienie (dla CNN) itp.
Posługiwać się
Korzystanie ze sztucznych sieci neuronowych wymaga zrozumienia ich właściwości.
- Wybór modelu: Zależy od reprezentacji danych i aplikacji. Nadmiernie złożone modele uczą się powoli.
- Algorytm uczenia się: Istnieje wiele kompromisów między algorytmami uczenia się. Prawie każdy algorytm będzie działał dobrze z prawidłowymi hiperparametrami do uczenia na określonym zbiorze danych. Jednak wybór i dostrojenie algorytmu do uczenia na niewidocznych danych wymaga znacznych eksperymentów.
- Odporność: Jeśli model, funkcja kosztu i algorytm uczenia się zostaną odpowiednio wybrane, wynikowa SSN może stać się niezawodna.
Możliwości SSN mieszczą się w następujących szerokich kategoriach:
- Aproksymacja funkcji lub analiza regresji , w tym przewidywanie szeregów czasowych , aproksymacja sprawności i modelowanie.
- Klasyfikacja , w tym rozpoznawanie wzorców i sekwencji, wykrywanie nowości i sekwencyjne podejmowanie decyzji.
- Przetwarzanie danych , w tym filtrowanie, grupowanie, ślepa separacja źródeł i kompresja.
- Robotyka , w tym manipulatory kierujące i protezy .
Aplikacje
Ze względu na ich zdolność do odtwarzania i modelowania procesów nieliniowych, sztuczne sieci neuronowe znalazły zastosowanie w wielu dyscyplinach. Obszary zastosowań obejmują identyfikację i kontrolę systemu (sterowanie pojazdem, przewidywanie trajektorii, sterowanie procesem , zarządzanie zasobami naturalnymi ), chemię kwantową , ogólną grę , rozpoznawanie wzorców (systemy radarowe, identyfikacja twarzy , klasyfikacja sygnałów, rekonstrukcja 3D , rozpoznawanie obiektów i inne), rozpoznawanie sekwencji (gesty, mowa, rozpoznawanie tekstu odręcznego i drukowanego), diagnostyka medyczna , finanse (np. zautomatyzowane systemy handlowe ), eksploracja danych , wizualizacja, tłumaczenie maszynowe , filtrowanie sieci społecznościowych i filtrowanie spamu e-mail . SSN są wykorzystywane do diagnozowania kilku rodzajów nowotworów i do odróżniania wysoce inwazyjnych linii komórkowych rakowych od mniej inwazyjnych, wykorzystując jedynie informacje o kształcie komórki.
Sieci SSN są wykorzystywane do przyspieszenia analizy niezawodności infrastruktury narażonej na klęski żywiołowe oraz do przewidywania osiadań fundamentów. Sieci SSN były również wykorzystywane do budowania modeli czarnoskrzynkowych w naukach o Ziemi : hydrologii , modelowaniu oceanów i inżynierii przybrzeżnej oraz geomorfologii . Sieci SSN zostały wykorzystane w cyberbezpieczeństwie , w celu odróżnienia działań zgodnych z prawem od złośliwych. Na przykład uczenie maszynowe zostało wykorzystane do klasyfikowania złośliwego oprogramowania na Androida, identyfikowania domen należących do cyberprzestępców oraz do wykrywania adresów URL stwarzających zagrożenie dla bezpieczeństwa. Trwają badania nad systemami ANN przeznaczonymi do testów penetracyjnych, wykrywania botnetów, oszustw związanych z kartami kredytowymi i włamań do sieci.
SSN zostały zaproponowane jako narzędzie do rozwiązywania równań różniczkowych cząstkowych w fizyce i symulowania właściwości wielociałowych otwartych układów kwantowych . W badaniach nad mózgiem SSN badały krótkoterminowe zachowanie poszczególnych neuronów , dynamikę obwodów neuronalnych wynikają z interakcji między poszczególnymi neuronami oraz to, jak zachowanie może wynikać z abstrakcyjnych modułów neuronowych, które reprezentują kompletne podsystemy. Badania dotyczyły długo- i krótkoterminowej plastyczności układów nerwowych oraz ich związku z uczeniem się i pamięcią od pojedynczego neuronu do poziomu systemu.
Właściwości teoretyczne
Moc obliczeniowa
Wielowarstwowy perceptron jest funkcja uniwersalna Aproksymator, jako sprawdzony przez uniwersalnego aproksymacji twierdzenia . Jednak dowód nie jest konstruktywny, jeśli chodzi o liczbę wymaganych neuronów, topologię sieci, wagi i parametry uczenia się.
Specyficzna architektura rekurencyjna z wagami o wartościach wymiernych (w przeciwieństwie do wag o wartościach rzeczywistych o pełnej precyzji ) ma moc uniwersalnej maszyny Turinga , wykorzystującej skończoną liczbę neuronów i standardowe połączenia liniowe. Co więcej, użycie nieracjonalnych wartości dla odważników daje maszynę o mocy super Turinga .
Pojemność
Właściwość „pojemność” modelu odpowiada jego zdolności do modelowania dowolnej danej funkcji. Wiąże się to z ilością informacji, które można przechowywać w sieci oraz z pojęciem złożoności. Społeczność zna dwa pojęcia pojemności. Pojemność informacyjna i wymiar VC. Zdolność informacyjna perceptronu jest intensywnie omawiana w książce Sir Davida MacKaya, która podsumowuje pracę Thomasa Covera. Pojemność sieci standardowych neuronów (nie splotowych) można wyprowadzić z czterech zasad, które wynikają z rozumienia neuronu jako elementu elektrycznego . Pojemność informacji przechwytuje funkcje, które można modelować przez sieć, biorąc pod uwagę dowolne dane jako dane wejściowe. Drugim pojęciem jest wymiar VC . VC Dimension wykorzystuje zasady teorii miary i znajduje maksymalną pojemność w najlepszych możliwych warunkach. Oznacza to, że dane wejściowe są podane w określonej formie. Jak zauważono w VC Dimension dla dowolnych danych wejściowych to połowa pojemności informacyjnej Perceptronu. Wymiar VC dla dowolnych punktów jest czasami określany jako pojemność pamięci.
Konwergencja
Modele mogą nie być konsekwentnie zbieżne w jednym rozwiązaniu, po pierwsze dlatego, że mogą istnieć lokalne minima, w zależności od funkcji kosztu i modelu. Po drugie, zastosowana metoda optymalizacji może nie gwarantować zbieżności, gdy zaczyna się daleko od lokalnego minimum. Po trzecie, dla wystarczająco dużych danych lub parametrów niektóre metody stają się niepraktyczne.
Zachowanie zbieżności niektórych typów architektur SNN jest lepiej rozumiane niż inne. Gdy szerokość sieci zbliża się do nieskończoności, sieć SSN jest dobrze opisana przez jej rozwinięcie Taylora pierwszego rzędu w trakcie uczenia, a zatem dziedziczy zachowanie zbieżności modeli afinicznych . Innym przykładem jest to, że gdy parametry są małe, obserwuje się, że SSN często dopasowują funkcje docelowe od niskich do wysokich częstotliwości. Takie zachowanie jest określane mianem odchylenia widmowego lub zasady częstotliwości sieci neuronowych. Zjawisko to jest przeciwieństwem niektórych dobrze zbadanych iteracyjnych schematów numerycznych, takich jak metoda Jacobiego . Zaobserwowano, że głębsze sieci neuronowe są bardziej nastawione na funkcje o niskiej częstotliwości.
Uogólnienie i statystyki
Aplikacje, których celem jest stworzenie systemu dobrze uogólniającego na niespotykane przykłady, stają przed możliwością przetrenowania. Dzieje się tak w zawiłych lub nadmiernie określonych systemach, gdy przepustowość sieci znacznie przekracza wymagane wolne parametry. Dwa podejścia dotyczą przetrenowania. Pierwszym z nich jest użycie walidacji krzyżowej i podobnych technik w celu sprawdzenia obecności przetrenowania i wybrania hiperparametrów w celu zminimalizowania błędu uogólnienia.
Drugim jest użycie jakiejś formy regularyzacji . Koncepcja ta wyłania się w modelu probabilistycznym (bayesowskim), w którym regularyzację można przeprowadzić, wybierając większe prawdopodobieństwo a priori w stosunku do prostszych modeli; ale także w statystycznej teorii uczenia się, gdzie celem jest zminimalizowanie ponad dwóch wielkości: „ryzyka empirycznego” i „ryzyka strukturalnego”, które w przybliżeniu odpowiada błędowi w zestawie uczącym i przewidywanemu błędowi w niewidocznych danych z powodu nadmiernego dopasowania.
Nadzorowane sieci neuronowe, które używają funkcji kosztu błędu średniokwadratowego (MSE), mogą używać formalnych metod statystycznych do określania ufności trenowanego modelu. MSE na zbiorze walidacyjnym można wykorzystać jako oszacowanie wariancji. Wartość tę można następnie wykorzystać do obliczenia przedziału ufności wyjścia sieciowego, przy założeniu rozkładu normalnego . Przeprowadzona w ten sposób analiza ufności jest statystycznie ważna, o ile rozkład prawdopodobieństwa wyjścia pozostaje taki sam, a sieć nie jest modyfikowana.
Przypisując funkcję aktywacji softmax , uogólnienie funkcji logistycznej , w warstwie wyjściowej sieci neuronowej (lub składnik softmax w sieci opartej na komponentach) do kategorycznych zmiennych docelowych, wyniki można interpretować jako prawdopodobieństwa a posteriori. Jest to przydatne w klasyfikacji, ponieważ daje miarę pewności klasyfikacji.
Funkcja aktywacji softmax to:
Krytyka
Szkolenie
Powszechna krytyka sieci neuronowych, zwłaszcza w robotyce, polega na tym, że wymagają one zbyt dużego szkolenia, aby mogły działać w rzeczywistych warunkach. Potencjalne rozwiązania to losowe tasowanie przykładów uczących, poprzez zastosowanie algorytmu optymalizacji numerycznej, który nie wykonuje zbyt dużych kroków przy zmianie połączeń sieciowych za przykładem, grupowanie przykładów w tzw. mini-partie i/lub wprowadzenie rekurencyjnego algorytmu najmniejszych kwadratów dla CMAC .
Teoria
Podstawowym zarzutem jest to, że SSN nie odzwierciedlają w wystarczającym stopniu funkcji neuronów. Propagacja wsteczna jest krytycznym krokiem, chociaż taki mechanizm nie istnieje w biologicznych sieciach neuronowych. Nie wiadomo, w jaki sposób informacja jest kodowana przez prawdziwe neurony. Czujnika neuronów ogień potencjałów czynnościowych częściej z aktywacją czujnika i komórek mięśniowych ciągnąć mocniej, gdy związane z nimi neurony motoryczne otrzymać potencjały czynnościowe częściej. Poza przypadkiem przekazywania informacji z neuronu sensorowego do neuronu ruchowego, prawie nic nie jest znane z zasad przetwarzania informacji przez biologiczne sieci neuronowe.
Głównym twierdzeniem SSN jest to, że ucieleśniają one nowe i potężne ogólne zasady przetwarzania informacji. Te zasady są źle zdefiniowane. Często twierdzi się, że wyłaniają się one z samej sieci. Dzięki temu proste powiązanie statystyczne (podstawowa funkcja sztucznych sieci neuronowych) można opisać jako uczenie się lub rozpoznawanie. Alexander Dewdney skomentował, że w rezultacie sztuczne sieci neuronowe mają „jakość coś za nic, taką, która nadaje osobliwą aurę lenistwa i wyraźny brak ciekawości tego, jak dobre są te systemy komputerowe. Brak ludzkiej ręki (lub umysł) interweniuje; rozwiązania znajdują się jak za dotknięciem czarodziejskiej różdżki; i wydaje się, że nikt się niczego nie nauczył”. Jedną z odpowiedzi na Dewdneya jest to, że sieci neuronowe obsługują wiele złożonych i różnorodnych zadań, od autonomicznie latających samolotów, przez wykrywanie oszustw związanych z kartami kredytowymi, po opanowanie gry w Go .
Pisarz o technologii, Roger Bridgman, skomentował:
Na przykład sieci neuronowe są w doku nie tylko dlatego, że zostały rozreklamowane (co się nie stało?), ale także dlatego, że można było stworzyć udaną sieć, nie rozumiejąc, jak to działa: zbiór liczb, które przechwytują jej zachowanie byłoby według wszelkiego prawdopodobieństwa „nieprzezroczystą, nieczytelną tabelą… bezwartościową jako zasób naukowy”.
Pomimo jego stanowczej deklaracji, że nauka nie jest technologią, Dewdney wydaje się tutaj traktować sieci neuronowe jako złą naukę, podczas gdy większość z tych, którzy je opracowują, po prostu stara się być dobrymi inżynierami. Nieczytelna tabela, którą mogłaby odczytać użyteczna maszyna, nadal byłaby warta posiadania.
Mózgi biologiczne wykorzystują zarówno płytkie, jak i głębokie obwody, jak wynika z anatomii mózgu, wykazując szeroką różnorodność niezmienności. Weng argumentował, że mózg łączy się w sobie w dużej mierze zgodnie ze statystykami sygnałów, a zatem kaskada szeregowa nie może uchwycić wszystkich głównych zależności statystycznych.
Sprzęt komputerowy
Duże i wydajne sieci neuronowe wymagają znacznych zasobów obliczeniowych. Podczas gdy mózg ma sprzęt dostosowany do przetwarzania sygnałów przez wykres neuronów, symulacja nawet uproszczonego neuronu w architekturze von Neumanna może pochłaniać ogromne ilości pamięci i przechowywania. Co więcej, projektant często musi przesyłać sygnały przez wiele z tych połączeń i związanych z nimi neuronów – co wymaga ogromnej mocy i czasu procesora .
Schmidhuber zauważył, że odrodzenie się sieci neuronowych w XXI wieku jest w dużej mierze związane z postępem w sprzęcie: od 1991 do 2015 roku moc obliczeniowa, zwłaszcza dostarczana przez GPGPU (na GPU ), wzrosła około milion razy, dzięki czemu standardowy algorytm wstecznej propagacji błędów możliwy do zastosowania w sieciach szkoleniowych, które są o kilka warstw głębsze niż wcześniej. Zastosowanie akceleratorów, takich jak FPGA i GPU, może skrócić czas szkolenia z miesięcy do dni.
Inżynieria neuromorficzna lub fizyczna sieć neuronowa bezpośrednio rozwiązuje problem sprzętowy, konstruując chipy inne niż von Neumann w celu bezpośredniego wdrożenia sieci neuronowych w obwodach. Inny rodzaj chipa zoptymalizowanego pod kątem przetwarzania sieci neuronowych nazywa się Tensor Processing Unit lub TPU.
Praktyczne kontrprzykłady
Analizowanie tego, czego nauczyła się sieć SSN, jest znacznie łatwiejsze niż analizowanie tego, czego nauczyła się biologiczna sieć neuronowa. Co więcej, badacze zaangażowani w badanie algorytmów uczenia sieci neuronowych stopniowo odkrywają ogólne zasady, które pozwalają maszynie uczącej się odnieść sukces. Na przykład uczenie lokalne i nielokalne oraz płytka i głęboka architektura.
Podejścia hybrydowe
Zwolennicy modeli hybrydowych (łączących sieci neuronowe i podejścia symboliczne) twierdzą, że taka mieszanka może lepiej uchwycić mechanizmy ludzkiego umysłu.
Galeria
Zobacz też
- Duże granice szerokości sieci neuronowych
- Hierarchiczna pamięć czasowa
- ADALINE
- Adaptacyjna teoria rezonansu
- Pamięć skojarzeniowa
- Autokoder
- Robotyka BEAM
- Cybernetyka biologiczna
- Obliczenia inspirowane biologicznie
- Projekt Niebieski Mózg
- Katastrofalne zakłócenia
- Kontroler artykulacji modelu móżdżku (CMAC)
- Architektura poznawcza
- Konwolucyjna sieć neuronowa (CNN)
- System ekspercki koneksjonistów
- Łączność
- Hodowane sieci neuronowe
- Głęboka nauka
- Programowanie różniczkowe
- Enkog
- Algorytm genetyczny
- Grupowy sposób obsługi danych
- Przyzwyczajenie
- Adaptacyjna tablica in situ
- Koncepcje uczenia maszynowego
- Modele obliczeń neuronowych
- Neuroewolucja
- Kodowanie neuronowe
- Gaz neuronowy
- Neuronowe tłumaczenie maszynowe
- Oprogramowanie do sieci neuronowych
- Nieliniowa identyfikacja systemu
- Optyczna sieć neuronowa
- Równoległe procesy zadowolenia z ograniczeń
- Równoległe przetwarzanie rozproszone
- Radialna sieć funkcji bazowej
- Rekurencyjne sieci neuronowe
- Samoorganizująca się mapa
- Wzrastająca sieć neuronowa
- Tablica skurczowa
- Sieć produktów Tensor
- Sieć neuronowa z opóźnieniem czasowym (TDNN)
Uwagi
Bibliografia
Bibliografia
- Bhadeshia HKDH (1999). „Sieci neuronowe w materiałoznawstwie” (PDF) . ISIJ Międzynarodowy . 39 (10): 966-979. doi : 10.2355/isijinternational.39.966 .
- Biskup Christopher M. (1995). Sieci neuronowe do rozpoznawania wzorców . Prasa Clarendona. Numer ISBN 978-0-19-853849-3. OCLC 3301074 .
- Borgelt, Chrześcijanin (2003). Neuro-Fuzzy-Systeme : von den Grundlagen künstlicher Neuronaler Netze zur Kopplung mit Fuzzy-Systemen . Zobacznp. Numer ISBN 978-3-528-25265-6. OCLC 76538146 .
- Cybenko, GV (2006). „Aproksymacja przez superpozycje funkcji sigmoidalnej” . W van Schuppen Jan H. (red.). Matematyka sterowania, sygnałów i systemów . Springer International. s. 303–314. PDF
- Dewdney, AK (1997). Tak, nie mamy neutronów: otwierająca oczy wycieczka po zawiłościach złej nauki . Nowy Jork: Wiley. Numer ISBN 978-0-471-10806-1. OCLC 35558945 .
- Duda, Ryszard O.; Hart, Peter Elliot; Bocian, David G. (2001). Klasyfikacja wzorców (2 wyd.). Wileya. Numer ISBN 978-0-471-05669-0. OCLC 41347061 .
- Egmont-Petersen, M.; de Ridder, D.; Handels, H. (2002). „Obróbka obrazu za pomocą sieci neuronowych – recenzja”. Rozpoznawanie wzorców . 35 (10): 2279–2301. CiteSeerX 10.1.1.21.5444 . doi : 10.1016/S0031-3203(01)00178-9 .
-
Fahlman S.; Lebière, C (1991). „Architektura uczenia się kaskadowo-korelacji” (PDF) .
- stworzony dla National Science Foundation , numer kontraktu EET-8716324 i Defense Advanced Research Projects Agency (DOD), zamówienie ARPA nr 4976 w ramach kontraktu F33615-87-C-1499.
- Gurneya, Kevina (1997). Wprowadzenie do sieci neuronowych . UCL Naciśnij. Numer ISBN 978-1-85728-673-1. OCLC 37875698 .
- Haykin, Simon S. (1999). Sieci neuronowe: kompleksowa podstawa . Sala Prezydencka. Numer ISBN 978-0-13-273350-2. 38908586 OCLC .
- Hertz, J.; Palmer, Richard G.; Krogh, Anders S. (1991). Wprowadzenie do teorii obliczeń neuronowych . Addisona-Wesleya. Numer ISBN 978-0-201-51560-2. OCLC 21522159 .
- Teoria informacji, wnioskowanie i algorytmy uczenia . Wydawnictwo Uniwersytetu Cambridge. 25 września 2003. Kod Bibcode : 2003itil.book.....M . Numer ISBN 978-0-521-64298-9. OCLC 52377690 .
- Kruse, Rudolf; Borgelt, chrześcijanin; Klawonn, F.; Moewes, Chrześcijanin; Steinbrecher, Maciej; Held, Pascal (2013). Inteligencja obliczeniowa: wprowadzenie metodologiczne . Skoczek. Numer ISBN 978-1-4471-5012-1. OCLC 837524179 .
- Lawrence, Jeanette (1994). Wprowadzenie do sieci neuronowych: projektowanie, teoria i zastosowania . Kalifornijskie oprogramowanie naukowe. Numer ISBN 978-1-883157-00-5. OCLC 32179420 .
- MacKay, David, JC (2003). Teoria informacji, wnioskowanie i algorytmy uczenia się (PDF) . Wydawnictwo Uniwersytetu Cambridge . Numer ISBN 978-0-521-64298-9.
- Mistrzowie, Tymoteusz (1994). Przetwarzanie sygnału i obrazu za pomocą sieci neuronowych: podręcznik C++ . J. Wileya. Numer ISBN 978-0-471-04963-0. OCLC 29877717 .
- Ripley, Brian D. (2007). Rozpoznawanie wzorców i sieci neuronowe . Wydawnictwo Uniwersytetu Cambridge. Numer ISBN 978-0-521-71770-0.
- Siegelmann, HT; Sontag, Eduardo D. (1994). „Obliczenia analogowe za pośrednictwem sieci neuronowych”. Informatyka teoretyczna . 131 (2): 331-360. doi : 10.1016/0304-3975(94)90178-3 . S2CID 2456483 .
- Smith, Murray (1993). Sieci neuronowe do modelowania statystycznego . Van Nostranda Reinholda. Numer ISBN 978-0-442-01310-3. OCLC 27145760 .
- Wasserman, Philip D. (1993). Zaawansowane metody obliczeń neuronowych . Van Nostranda Reinholda. Numer ISBN 978-0-442-00461-3. OCLC 27429729 .
- Wilson, Halsey (2018). Sztuczna inteligencja . Wydawnictwo Szary Dom. Numer ISBN 978-1-68217-867-6.
Zewnętrzne linki
- Zoo sieci neuronowych – zestawienie typów sieci neuronowych
- The Stilwell Brain – odcinek Mind Field zawierający eksperyment, w którym ludzie działają jako pojedyncze neurony w sieci neuronowej, która klasyfikuje odręczne cyfry