Rodzaje sieci neuronowych. Klasyfikacja sieci neuronowych i ich właściwości

13.10.2017

Można dokonać następującej klasyfikacji sieci neuronowe:

Charakter szkolenia

Klasyfikacja sieci neuronowych ze względu na charakter uczenia się dzieli je na:

  • sieci neuronowe wykorzystujące uczenie nadzorowane;
  • sieci neuronowe wykorzystujące uczenie się bez nadzoru.

Przyjrzyjmy się temu bardziej szczegółowo.

Sieci neuronowe wykorzystujące uczenie nadzorowane. Uczenie nadzorowane zakłada, że ​​dla każdego wektora wejściowego istnieje wektor docelowy, reprezentujący wymagany wynik. Razem nazywani są parą treningową. Zazwyczaj sieć jest uczona na określonej liczbie takich par uczących. Prezentowany jest wektor wyjściowy, obliczana jest moc sieciowa i porównywana z odpowiednim wektorem docelowym. Następnie wagi są zmieniane zgodnie z algorytmem mającym na celu zminimalizowanie błędu. Wektory zbioru uczącego prezentowane są sekwencyjnie, obliczane są błędy i korygowane wagi dla każdego wektora, aż błąd w całym zbiorze uczącym osiągnie akceptowalny poziom.

Sieci neuronowe wykorzystujące uczenie się bez nadzoru. Uczenie się bez nadzoru jest znacznie bardziej prawdopodobnym modelem uczenia się, jeśli chodzi o biologiczne korzenie sztucznych sieci neuronowych. Opracowany przez Kohonena i wielu innych, nie wymaga wektora docelowego dla wyników, a zatem nie wymaga porównania z wcześniej zdefiniowanymi idealnymi odpowiedziami. Zbiór uczący składa się wyłącznie z wektorów wejściowych. Algorytm uczenia dostosowuje wagi sieci w taki sposób, aby uzyskać spójne wektory wyjściowe, to znaczy tak, aby prezentacja wystarczająco bliskich wektorów wejściowych dała identyczne wyniki. Dlatego proces uczenia się wyodrębnia właściwości statystyczne zbioru uczącego i grupuje podobne wektory w klasy.

Ustawianie wag

  • sieci o połączeniach stałych – współczynniki wagowe sieci neuronowej dobierane są natychmiastowo na podstawie uwarunkowań problemu;
  • sieci z połączeniami dynamicznymi – dla nich w procesie uczenia dopasowywane są wagi synaptyczne.

Rodzaj informacji wejściowych

  • analogowe – informacja wejściowa prezentowana jest w postaci liczb rzeczywistych;
  • binarny - wszystkie informacje wejściowe w takich sieciach są reprezentowane w postaci zer i jedynek.

Obowiązujący model sieci neuronowej

Sieci ze sprzężeniem zwrotnym - wszystkie połączenia są kierowane ściśle od neuronów wejściowych do neuronów wyjściowych. Do takich sieci zalicza się np. perceptron prosty (opracowany przez Rosenblatta) oraz perceptron wielowarstwowy.

Rekurencyjne sieci neuronowe – sygnał z neuronów wyjściowych lub neuronów warstwy ukrytej jest częściowo przesyłany z powrotem na wejścia neuronów warstwy wejściowej.

Radialne funkcje bazowe to rodzaj sieci neuronowej, która ma ukrytą warstwę elementów radialnych i warstwę wyjściową elementy liniowe. Sieci tego typu są dość zwarte i szybko się uczą. Zaproponowane przez Broomheada i Lowe’a (1988) oraz Moody’ego i Darkina (1989). Sieć o bazie radialnej ma następujące cechy: jedna warstwa ukryta, tylko neurony w warstwie ukrytej mają nieliniową funkcję aktywacji, a wagi synaptyczne warstwy wejściowej i ukrytej są równe jedności.

Samoorganizujące się mapy lub sieci Kohonena - tej klasy sieci z reguły uczy się bez nauczyciela i jest z powodzeniem wykorzystywana w problemach rozpoznawania. Sieci tej klasy potrafią wykryć nowość w danych wejściowych: jeśli po treningu sieć napotka zbiór danych niepodobny do żadnej ze znanych próbek, to nie będzie w stanie takiego zbioru sklasyfikować i tym samym zidentyfikować jego nowość. Sieć Kohonena ma tylko dwie warstwy: wejściową i wyjściową, zbudowane z elementów promieniowych.

Rodzaje sieci neuronowych

Problem z powyższymi wykresami polega na tym, że nie pokazują one, jak odpowiednie sieci są wykorzystywane w praktyce. Na przykład autoenkodery wariacyjne (VAE) wyglądają podobnie do prostych autoenkoderów (AE), ale ich procesy uczenia się znacznie się różnią. Przypadki użycia są jeszcze bardziej różne, ponieważ VAE jest oscylatorem zasilanym nowym szumem w celu wytworzenia nowej próbki. AE po prostu porównuje otrzymane dane z najbardziej podobną próbką uzyskaną podczas treningu.

Warto zauważyć, że chociaż większość tych skrótów jest ogólnie akceptowana, istnieją wyjątki. Przez RNN czasami mają na myśli rekursywną sieć neuronową, ale zwykle mają na myśli rekurencyjną. Często można również spotkać skrót RNN używany w odniesieniu do dowolnej rekurencyjnej sieci neuronowej. Autoenkodery również stają przed tym problemem, gdy autoenkodery wariacyjne i odszumiające (VAE, DAE) nazywane są po prostu autoenkoderami (AE). Ponadto wiele skrótów różni się liczbą liter „N” na końcu, ponieważ w niektórych przypadkach używana jest „sieć neuronowa”, a w innych po prostu „sieć”.

Część 1: Podstawowe architektury

Sieci neuronowe ze sprzężeniem zwrotnym(sieci neuronowe ze sprzężeniem zwrotnym, FF lub FFNN) i perceptrony (P) są bardzo proste, przekazują informacje z wejścia na wyjście. Sieci neuronowe są często opisywane jako ciasto warstwowe, w którym każda warstwa składa się z komórek wejściowych, ukrytych lub wyjściowych. Komórki w jednej warstwie nie są ze sobą połączone, natomiast sąsiednie warstwy są zwykle całkowicie połączone. Najprostsza sieć neuronowa ma dwie komórki wejściowe i jedną komórkę wyjściową i może służyć jako model bramek logicznych. FFNN jest zwykle szkolony przy użyciu propagacji wstecznej, w której sieć otrzymuje wiele wejść i wyjść. Proces ten nazywa się uczeniem nadzorowanym i różni się od uczenia bez nadzoru tym, że w drugim przypadku sieć samodzielnie kompiluje wiele danych wyjściowych. Powyższy błąd to różnica między wejściem a wyjściem. Jeśli sieć ma wystarczającą liczbę ukrytych neuronów, teoretycznie jest w stanie modelować interakcję między wejściem i wyjściem. W praktyce sieci takie są rzadko stosowane, często jednak łączy się je z innymi typami, tworząc nowe.

Sieci radialnych funkcji bazowych(radialna funkcja bazowa, RBF) to FFNN, który wykorzystuje radialne funkcje bazowe jako funkcje aktywacji. Nie wyróżnia się już.

Sieć neuronowa Hopfielda(Sieć Hopfield, HN) to w pełni połączona sieć neuronowa z macierz symetryczna znajomości. Podczas procesu wejściowego każdy węzeł jest wejściem, podczas procesu uczenia zostaje ukryty, a następnie staje się wyjściem. Sieć szkoli się w ten sposób: wartości neuronów ustawia się zgodnie z pożądanym wzorcem, po czym wyliczane są wagi, które później się nie zmieniają. Gdy sieć zostanie przeszkolona w oparciu o jeden lub więcej wzorców, zawsze będzie zbiegać się do jednego z nich (ale nie zawsze do pożądanego). Stabilizuje się w zależności od ogólnej „energii” i „temperatury” sieci. Każdy neuron ma swój własny, zależny od temperatury próg aktywacji, po przekroczeniu którego neuron przyjmuje jedną z dwóch wartości (zwykle -1 lub 1, czasem 0 lub 1). Sieć taką często nazywa się siecią pamięci skojarzeniowej; tak jak osoba, widząc połowę stołu, może sobie wyobrazić drugą połowę stołu, tak ta sieć, otrzymując stół w połowie zaszumiony, przywraca go do pełnego.

Łańcuchy Markowa(łańcuchy Markowa, MC lub łańcuchy Markowa z czasem dyskretnym, DTMC) są poprzednikami maszyn Boltzmanna (BM) i sieci Hopfielda (HN). Ich znaczenie można wytłumaczyć w następujący sposób: jakie mam szanse dostać się do jednego z kolejnych węzłów, jeśli jestem w tym? Każdy kolejny stan zależy tylko od poprzedniego. Chociaż łańcuchy Markowa nie są w rzeczywistości sieciami NN, są dość podobne. Ponadto łańcuchy Markowa niekoniecznie są w pełni połączone.

Maszyna Boltzmanna(maszyna Boltzmanna, BM) jest bardzo podobna do sieci Hopfielda, ale w niej niektóre neurony są oznaczone jako wejściowe, a inne jako ukryte. Neurony wejściowe stają się następnie neuronami wyjściowymi. Maszyna Boltzmanna jest siecią stochastyczną. Uczenie odbywa się metodą propagacji wstecznej lub algorytmem dywergencji porównawczej. Ogólnie proces uczenia się jest bardzo podobny do procesu uczenia się w sieci Hopfielda.

Ograniczona maszyna Boltzmanna(ograniczona maszyna Boltzmanna, RBM) jest niezwykle podobna do maszyny Boltzmanna, a zatem do sieci Hopfielda. Jedyną różnicą są jego ograniczenia. W nim neurony tego samego typu nie są ze sobą połączone. Ograniczoną maszynę Boltzmanna można trenować jak FFNN, ale z jednym zastrzeżeniem: zamiast przesyłania danych do przodu i propagacji wstecznej, należy najpierw przesyłać dane w kierunku do przodu, a następnie w kierunku odwrotnym. Następnie odbywa się szkolenie metodą propagacji błędów do przodu i do tyłu.

Autoenkoder(autoencoder, AE) jest nieco podobny do FFNN, ponieważ jest to inny sposób korzystania z FFNN, a nie zasadniczo inna architektura. Główną ideą jest automatyczne kodowanie (w sensie kompresji, a nie szyfrowania) informacji. Sama sieć ma kształt klepsydry, jej warstwy ukryte są mniejsze od warstwy wejściowej i wyjściowej oraz są symetryczne. Sieć można uczyć przy użyciu propagacji wstecznej, podając dane wejściowe i ustawiając błąd jako różnicę między wejściem a wyjściem.

Rzadki autoenkoder(rzadki autoenkoder, SAE) - w pewnym sensie przeciwieństwo zwykłego. Zamiast uczyć sieć wyświetlania informacji w mniejszej „objętości” węzłów, zwiększamy ich liczbę. Zamiast zwężać się w kierunku centrum, sieć tam się pęcznieje. Sieci tego typu są przydatne do pracy z dużą liczbą małych właściwości zbioru danych. Jeśli będziesz trenować sieć jak zwykły autoenkoder, nic pożytecznego z tego nie wyniknie. Dlatego oprócz danych wejściowych dostarczany jest również specjalny filtr rzadkości, który przepuszcza tylko niektóre błędy.

Autoenkodery wariacyjne(wariacyjny autoenkoder, VAE) mają podobną architekturę do AE, ale uczą ich czegoś innego: przybliżania rozkładu prawdopodobieństwa próbek wejściowych. W tym sensie pochodzą one z maszyn Boltzmanna. Jednak jeśli chodzi o wnioskowanie probabilistyczne i niezależność, opierają się na matematyce bayesowskiej, która jest intuicyjna, ale trudna do wdrożenia. Podsumowując, można powiedzieć, że sieć ta uwzględnia wpływ neuronów. Jeśli coś dzieje się w jednym miejscu, a coś innego w innym, to zdarzenia te niekoniecznie są ze sobą powiązane i należy to wziąć pod uwagę.

Autoenkodery redukujące szumy(automatyczny koder odszumiający, DAE) to elementy AE, do których dane wejściowe są dostarczane w stanie zaszumionym. Obliczamy błąd w ten sam sposób, a dane wyjściowe porównujemy z danymi zaszumionymi. Pozwala to sieci nauczyć się zwracać uwagę na szersze właściwości, ponieważ małe mogą zmieniać się wraz z szumem.

Sieć „Głęboka wiara”.(sieci głębokich przekonań, DBN) to nazwa nadana typowi architektury, w której sieć składa się z kilku połączonych RBM lub VAE. Takie sieci są szkolone blok po bloku, a każdy blok musi jedynie móc zakodować poprzedni. Technika ta nazywana jest „chciwym uczeniem się” i polega na wyborze lokalnych optymalnych rozwiązań, które nie gwarantują optymalnego rezultatu końcowego. Sieć można także nauczyć (metodą wstecznej propagacji) wyświetlania danych w postaci modelu probabilistycznego. Jeśli stosowane jest uczenie się bez nadzoru, ustabilizowany model można wykorzystać do wygenerowania nowych danych.

Konwolucyjne sieci neuronowe splotowe sieci neuronowe (CNN) i głębokie splotowe sieci neuronowe (DCNN) bardzo różnią się od innych typów sieci. Stosowane są zazwyczaj do przetwarzania obrazu, rzadziej do dźwięku. W typowy sposób Zastosowaniem CNN jest klasyfikacja obrazu: jeśli na obrazie znajduje się kot, sieć wyświetli „kot”, jeśli jest pies, „pies”. W takich sieciach zwykle używany jest „skaner”, który nie analizuje wszystkich danych na raz. Na przykład, jeśli masz obraz o wymiarach 200x200, nie przetworzysz wszystkich 40 tysięcy pikseli na raz. Zamiast tego sieć oblicza kwadrat o wymiarach 20 x 20 (zwykle od lewej strony). górny róg), następnie przesuwa się o 1 piksel i liczy nowy kwadrat itd. Dane wejściowe są następnie przepuszczane przez warstwy splotowe, w których nie wszystkie węzły są ze sobą połączone. Warstwy te mają tendencję do kurczenia się wraz z głębokością, często przy użyciu potęg dwójki: 32, 16, 8, 4, 2, 1. W praktyce na końcu CNN dołącza się FFNN w celu dalszego przetwarzania danych. Takie sieci nazywane są sieciami głębokimi (DCNN).

Rozwijanie sieci neuronowych Sieci dekonwolucyjne (DN), zwane także sieciami odwróconych grafów, są odwrotnością splotowych sieci neuronowych. Wyobraź sobie, że przekazujesz do sieci słowo „kot”, a ona generuje zdjęcia kotów, które wyglądają jak prawdziwe zdjęcia kotów. DNN można także połączyć z FFNN. Warto zaznaczyć, że w większości przypadków do sieci przesyłany jest nie ciąg znaków, lecz wektor binarny: np. - jest kotem, - jest psem, oraz - jest jednocześnie kotem i psem.

Część 2: Zaawansowane konfiguracje

Głęboko splotowe odwrotne sieci graficzne(głęboko splotowe odwrotne sieci graficzne, DCIGN) nazywane są nieco niepoprawnie, ponieważ są to zasadniczo wariacyjne autoenkodery, których części kodujące i dekodujące są reprezentowane odpowiednio przez splotowy i rozpakowujący NN. Tego typu sieci modelują właściwości jako prawdopodobieństwa, dzięki czemu można je wytrenować, aby tworzyły zdjęcie psa i kota, nawet jeśli sieć widziała tylko zdjęcia tylko jednego ze zwierząt. Możliwe jest również usunięcie jednego z dwóch obiektów. Stworzono także sieci, które mogły zmieniać źródło światła i obracać obiekt. Sieci tego typu są zwykle uczone przy użyciu propagacji wstecznej.

Generacyjne sieci przeciwstawne(generatywne sieci przeciwstawne, GAN)- są to sieci innego typu, wyglądają jak bliźniaki. Takie sieci składają się z dowolnych dwóch (zwykle FF i CNN), z których jedna generuje treść, a druga ją ocenia. Sieć dyskryminatorów otrzymuje dane szkoleniowe lub generowane przez generator. Stopień, w jakim dyskryminator odgaduje źródło danych, dodatkowo uczestniczy w powstawaniu błędu. W ten sposób powstaje rywalizacja pomiędzy generatorem a dyskryminatorem, gdzie pierwszy uczy się oszukiwać pierwszego, a drugi uczy się wykrywać oszustwo. Trenowanie takich sieci jest bardzo trudne, ponieważ trzeba nie tylko przeszkolić każdą z nich, ale także dostosować równowagę.

Rekurencyjne sieci neuronowe(rekurencyjne sieci neuronowe, RNN)- są to sieci typu FFNN, ale z cechą: neurony otrzymują informację nie tylko z poprzedniej warstwy, ale także od siebie z poprzedniego przejścia. Oznacza to, że kolejność podawania danych i uczenia sieci staje się istotna. Dużym wyzwaniem dla sieci RNN jest problem zanikającego (lub eksplodującego) gradientu, tj szybka strata informacje w czasie. Oczywiście wpływa to tylko na wagi, a nie stany neuronów, ale to właśnie w nich gromadzi się informacja. Zazwyczaj sieci tego typu służą do automatycznego uzupełniania informacji.

Sieci z pamięcią długoterminową(pamięć długoterminowa, LSTM) spróbuj rozwiązać powyższy problem utraty informacji za pomocą filtrów i jawnie zdefiniowanej komórki pamięci. Każdy neuron ma komórkę pamięci i trzy filtry: wejściowy, wyjściowy i zapominający. Celem tych filtrów jest ochrona informacji. Filtr wejściowy określa, ile informacji z poprzedniej warstwy będzie przechowywanych w komórce. Filtr wyjściowy określa, ile informacji otrzymają kolejne warstwy. Cóż, filtr zapominania, bez względu na to, jak dziwne może się to wydawać, również działa przydatna funkcja: Na przykład, jeśli sieć studiuje książkę i przechodzi do nowego rozdziału, niektóre postacie ze starej mogą zostać zapomniane. Takie sieci mogą nauczyć się tworzyć złożone struktury na przykład pisanie jak Szekspir lub komponowanie prosta muzyka, ale zużywają też dużo zasobów.

Kontrolowane neurony nawracające(bramkowane jednostki rekurencyjne, GRU)- Jest to niewielka odmiana poprzedniej sieci. Mają o jeden filtr mniej, a połączenia są realizowane inaczej. Filtr aktualizacji określa, ile informacji pozostanie z poprzedniego stanu, a ile zostanie pobrane z poprzedniej warstwy. Filtr resetowania działa trochę jak filtr nieświadomości.

Neuronowe maszyny Turinga(neuralne maszyny Turinga, NTM) można traktować jako abstrakcyjny model LSTM i próbę pokazania, co faktycznie dzieje się w sieci neuronowej. Komórka pamięci nie jest umieszczona w neuronie, ale jest umieszczona osobno, aby połączyć wydajność regularne przechowywanie danych i mocy sieci neuronowej. Właściwie dlatego takie sieci nazywane są maszynami Turinga - ze względu na możliwość odczytu i zapisu danych oraz zmiany stanu w zależności od tego, co zostanie odczytane, są one kompletne Turinga.

Dwukierunkowe RNN, LSTM i GRU(dwukierunkowe rekurencyjne sieci neuronowe, dwukierunkowe sieci pamięci długoterminowej/krótkoterminowej i dwukierunkowe bramkowane jednostki rekurencyjne, BiRNN, BiLSTM i BiGRU) nie są pokazane w tabeli, ponieważ nie różnią się od ich wariantów jednokierunkowych. Różnica polega na tym, że sieci te korzystają nie tylko z danych z „przeszłości”, ale także z „przyszłości”. Na przykład, zwykła sieć Typ LSTM jest szkolony w odgadywaniu słowa „ryba”, podając litery pojedynczo, a dwukierunkowo – podając także kolejną literę z sekwencji. Sieci takie potrafią na przykład nie tylko rozszerzać obraz na krawędziach, ale także wypełniać dziury w jego wnętrzu.

Głębokie sieci resztkowe(głębokie sieci szczątkowe, DRN)- są to bardzo głębokie sieci typu FFNN z dodatkowymi połączeniami pomiędzy oddzielonymi od siebie warstwami. Takie sieci można trenować na szablonach o głębokości do 150 warstw – znacznie więcej, niż można by się spodziewać. Wykazano jednak, że sieci te niewiele różnią się od sieci rekurencyjnych i często porównuje się je do sieci LSTM.

Sieć echa neuronowego(sieci stanu echa, ESN)- to kolejna odmiana sieci powtarzalne. Jego osobliwością jest brak utworzonych warstw, tj. połączenia między neuronami są losowe. W związku z tym metoda propagacji wstecznej nie działa. Zamiast tego musisz dostarczyć dane wejściowe, przesłać je przez sieć i zaktualizować neurony, obserwując dane wyjściowe.

Ekstremalna metoda nauki(ekstremalne maszyny uczące się, ELM) jest zasadniczo siecią podobną do FFNN, ale z losowymi połączeniami. Są bardzo podobne do sieci LSM i ESN, ale są używane jako FFNN. Dzieje się tak nie tylko dlatego, że nie są one powtarzalne, ale także dlatego, że można je wytrenować po prostu poprzez propagację wsteczną.

Metoda stanów niestabilnych(maszyny stanu ciekłego, LSM) podobny do sieci echa, ale jest znacząca różnica: aktywacja sigmoidy zostaje zastąpiona funkcją progową, a każdy neuron jest komórką pamięci przechowującej. Zatem po aktualizacji neuronu jego wartość nie staje się równa sumie jego sąsiadów, ale jest dodawana do siebie, a po osiągnięciu progu jest przekazywana innym neuronom.

Maszyna wektorów nośnych(maszyny wektorów nośnych, SVM) znajdzie optymalne rozwiązania problemy optymalizacyjne. Wersja klasyczna umożliwia kategoryzację danych dających się oddzielić liniowo: na przykład rozróżnienie obrazów przedstawiających kota Toma i kota Garfielda. Podczas procesu uczenia sieć w pewnym sensie umieszcza wszystkie dane na wykresie 2D i stara się podzielić dane linią prostą, tak aby po każdej stronie znajdowały się dane tylko jednej klasy i aby odległość danych od linii jest maksymalne. Używając sztuczki z jądrem, możesz klasyfikować dane o wymiarze n. Zazwyczaj metoda ta nie zawsze jest uważana za sieć neuronową.

I w końcu, Sieci neuronowe Kohonena(Sieci Kohonena, KN), znany również jako samoorganizujące się mapy(samoorganizujące się (funkcyjne) mapy, SOM, SOFM), uzupełnij naszą listę. Sieci te wykorzystują uczenie się konkurencyjne do klasyfikowania danych w sposób bez nadzoru. Sieć otrzymuje dane wejściowe, po czym określa, które neurony najlepiej do niej pasują. Neurony te są następnie modyfikowane w celu jeszcze dokładniejszego dopasowania, przenosząc przy tym swoich sąsiadów. Czasami mapy Kohonena również nie są uważane za sieci neuronowe.

Sieci neuronowe klasyfikuje się ze względu na następujące rodzaje uczenia:

  1. sieci neuronowe podlegające uczeniu nadzorowanemu;
  2. sieci neuronowe przechodzą szkolenie bez nauczyciela.

Przyjrzyjmy się tym typom nieco bardziej szczegółowo.

Sieci neuronowe podlegające uczeniu nadzorowanemu.

Uczenie nadzorowane zakłada, że ​​każdy wektor zawarty w istniejącym wektorze docelowym reprezentuje wymagany wynik. Razem stanowią parę nauczycielską. Sieć jest uczona na kilku parach uczących.
Podawany jest wektor wyjściowy, wyznaczana jest moc wyjściowa sieci i porównywana z przedstawionymi wektorami.
Następnie zmień wagi zgodnie z algorytm matematyczny, którego celem jest ograniczenie błędów.
Wektory zbioru danych uczących prezentowane są sekwencyjnie. W miarę upływu czasu błędy i wagi są obliczane i dostosowywane dla wszystkich wektorów, aż błąd danych treningowych osiągnie pożądany poziom.

Sieci neuronowe, które uczą się bez pomocy nauczyciela.

Uczenie się bez nadzoru wydaje się być znacznie powszechniejszym modelem uczenia się, szczególnie powszechnym w biologicznych sieciach neuronowych.

Opracowany przez innych naukowców, nie wymaga wektora docelowego dla wyników. Wynika z tego, że nie są wymagane porównania z wcześniej przygotowanymi idealnymi opcjami odpowiedzi. Dane uczące składają się wyłącznie z wektorów wejściowych.

Algorytm uczący zmienia wagi swojej sieci w taki sposób, że tworzone są spójne wektory wyjściowe, to znaczy zapewnienie wystarczająco podobnych wektorów wejściowych daje podobne wyniki.
Proces uczenia iteracyjnie określa właściwości statystyczne dostarczonych danych uczących i grupuje podobne wektory w klasy.

Zmiana ciężarów

Sieci neuronowe dzielą się również na następujące grupy. Z stałe połączenia– których ciężary dobierane są z góry w zależności od zadania iz połączenia dynamiczne– które w procesie uczenia się przestawiają swoje ciężary.

Typ wejścia

Dane wejściowe są również podzielone na kilka; analogowe dane wejściowe reprezentowane jako liczby rzeczywiste i dwójkowy których informacja jest reprezentowana w postaci zer i jedynek.

Najczęściej stosowane obecnie modele sieci neuronowych

Sieci dystrybucji bezpośredniej– wszystkie połączenia tej sieci mają ścisły kierunek od neuronów wejściowych do ich wyjść. Wśród takich sieci chciałbym zwrócić uwagę: najprostszy perceptron którego autorem jest perceptron wielowarstwowy.

Rekurencyjne sieci neuronowe– dane z neuronów wyjściowych lub z warstwy ukrytej są częściowo przesyłane z powrotem do neuronów wejściowych.

Radialne funkcje bazowe jest siecią neuronową opartą na obecności warstwy ukrytej elementów promieniowych i warstwy wyjściowej elementów liniowych. Takie sieci są dość zwarte i uczą się dość szybko.

Zaproponowano je w pracach Miotła i Lowe (1988) I Moody i Darkin (1989).
Promieniowa sieć bazowa wykorzystuje następujące unikalne właściwości: jedną warstwę ukrytą, posiadają neurony tylko warstwy ukrytej funkcja nieliniowa aktywacje i wagi synaptyczne warstwy ukrytej i wejściowej stanowią jedność.

Sieci Kohonena Lub Samoorganizujące się mapy– Sieci tej klasy są zwykle uczone bez pomocy nauczyciela i często wykorzystywane są w problemach związanych z rozpoznawaniem obrazów.
Sieci takie potrafią identyfikować nowe elementy w danych wejściowych: jeśli po treningu sieć zobaczy zbiór danych niepodobny do żadnej ze znanych próbek, to taki zbiór zaklasyfikuje i nie wykryje jego nowości.
Sieć Kohonena ma tylko dwie warstwy: wyjściową i wejściową, złożone z elementów promieniowych.

    Krok 4. Zastosuj zasadę 2, której warunkiem jest to stwierdzenie. Otrzymujemy konkluzję pierwotnego stwierdzenia.

    Należy zauważyć, że dla uproszczenia sytuacji założyliśmy, że w obu przypadkach fakty „Niebo jest zasłonięte chmurami” i „Barometr opada” są już systemowi znane. Tak naprawdę system dowiaduje się o prawdziwości lub fałszywości faktu zawartego w warunku danej reguły, pytając o to użytkownika w momencie, gdy próbuje zastosować regułę. Podany przykład został celowo wybrany jako bardzo prosty i nie odzwierciedla wielu problemów związanych z organizacją wyników w systemie ekspertowym. W szczególności przykład może sprawiać wrażenie, że dalszy ciąg rozumowania jest skuteczniejszy niż odwrotny, co w rzeczywistości, ogólnie rzecz biorąc, nie ma miejsca. Skuteczność konkretnej strategii wnioskowania zależy od charakteru zadania i zawartości bazy wiedzy. W systemach diagnostycznych częściej stosuje się wnioskowanie bezpośrednie, natomiast w systemach planistycznych skuteczniejsze jest wnioskowanie odwrotne. W niektórych systemach wnioskowanie opiera się na kombinacji odwrotności i ograniczonego przodu. Ta łączona metoda nazywa się cykliczną.

  • 2.7 Objaśnienie rozwiązań

Część objaśniająca scenariusza narażenia wyjaśnia, w jaki sposób system uzyskał rozwiązanie problemu (lub dlaczego nie uzyskał rozwiązania) oraz jaką wiedzę przy tym wykorzystał, co ułatwia ekspertowi testowanie i zwiększa pewność użytkownika uzyskany wynik. Ponieważ systemy oparte na wiedzy wdrażane są na komputerach, informacja wejściowa jest odbierana albo w formie zrozumiałej dla komputera, tj. w bitach i bajtach. Aby jednak nieprzeszkolony użytkownik mógł nawiązać interakcję, musi zawierać narzędzia komunikacji w języku naturalnym. Zdecydowana większość systemów opartych na wiedzy ma dość prymitywny interfejs w języku naturalnym - prawidłowe komunikaty wejściowe użytkownika są ograniczone do zestawu pojęć zawartych w bazie wiedzy. Zatem na przykładzie prostego ES-u i bazy wiedzy dialog użytkownika z systemem można sobie wyobrazić następująco:

System: Chcesz wiedzieć, czy musisz zabrać ze sobą parasol?

Użytkownik: Tak.

System: Czy to prawda, że ​​niebo jest pokryte chmurami?

Użytkownik: Tak.

System: Czy to prawda, że ​​barometr spada?

Użytkownik: Tak.

System: (po chwili „namyślenia”) Trzeba zabrać ze sobą parasol.

Jak widać na tym przykładzie, podczas konsultacji inicjatywa dialogu należy do systemu, a sama konsultacja z narodem naświetlającym wygląda tak samo, jak konsultacja z ekspertem-człowiekiem: zadawany jest szereg pytań i na podstawie ich analizie wydawana jest opinia biegłego.

Jeden z najbardziej ważne sprawy charakterystycznym dla systemów opartych na wiedzy jest problem reprezentacji wiedzy. Tłumaczy się to faktem, że forma reprezentacji wiedzy ma istotny wpływ na charakterystykę i właściwości systemu. Aby za pomocą komputera manipulować wszelkiego rodzaju wiedzą ze świata rzeczywistego, konieczna jest jej symulacja. W takich przypadkach konieczne jest odróżnienie wiedzy przeznaczonej do przetwarzania przez komputer od wiedzy, z której korzysta człowiek.

Projektując model reprezentacji wiedzy, należy wziąć pod uwagę jednolitość reprezentacji i łatwość zrozumienia. Jednorodna reprezentacja prowadzi do uproszczenia mechanizmu kontroli wnioskowań i uproszczenia zarządzania wiedzą. Reprezentacja wiedzy musi być zrozumiała dla ekspertów i użytkowników systemu. W przeciwnym razie zdobywanie wiedzy i jej ocena stają się trudne. Jednak spełnienie tego wymagania w równym stopniu jest trudne zarówno w przypadku problemów prostych, jak i złożonych. Zwykle w przypadku prostych problemów opierają się na jakiejś przeciętnej (kompromisowej) reprezentacji, ale aby rozwiązać złożone i duże problemy, konieczna jest strukturyzacja i reprezentacja modułowa.

Typowymi modelami reprezentacji wiedzy są: modele: produkcyjne, oparte na wykorzystaniu ramek, sieć semantyczna, model logiczny.

23. Sieci neuronowe. Rodzaje sieci neuronowych. Algorytmy uczenia sieci neuronowych. Zastosowanie sieci neuronowych do problemów rozpoznawania wzorców.

Sztuczna sieć neuronowa(INS) - modele matematyczne, a także ich implementacje programowe lub sprzętowe, zbudowane na zasadzie organizacji i funkcjonowania biologicznych sieci neuronowych - sieci komórek nerwowych organizmu żywego. Koncepcja ta zrodziła się podczas badania procesów zachodzących w mózgu podczas myślenia i przy próbie modelowania tych procesów. Pierwszym takim modelem mózgu był perceptron. Następnie modele te zaczęto wykorzystywać do celów praktycznych, zwykle do prognozowania problemów.

SSN to system połączonych i oddziałujących na siebie prostych procesorów (sztucznych neuronów). Procesory te są zwykle dość proste, zwłaszcza w porównaniu z procesorami stosowanymi w komputerach osobistych. Każdy procesor w takiej sieci zajmuje się jedynie sygnałami, które okresowo odbiera oraz sygnałami, które okresowo wysyła do innych procesorów. A jednak będąc podłączonym do wystarczająco dużej sieci z kontrolowaną interakcją, np. lokalnie proste procesory razem są w stanie wykonywać dość złożone zadania.

Z punktu widzenia uczenia maszynowego sieć neuronowa jest szczególny przypadek metody rozpoznawania wzorców, analiza dyskryminacyjna, metody grupowania itp. Z matematycznego punktu widzenia uczenie sieci neuronowych jest wieloparametrowym problemem optymalizacji nieliniowej. Z punktu widzenia cybernetyki sieć neuronowa wykorzystywana jest w zagadnieniach sterowania adaptacyjnego oraz jako algorytmy w robotyce. Z punktu widzenia rozwoju techniki komputerowej i programowania sieć neuronowa jest sposobem na rozwiązanie problemu efektywnej równoległości. A z punktu widzenia sztucznej inteligencji SSN jest podstawą filozoficznego ruchu konektywizmu i głównym kierunkiem strukturalnego podejścia do badania możliwości konstruowania (modelowania) naturalnej inteligencji za pomocą algorytmów komputerowych.

Sieci neuronowe nie są programowalne w zwykłym tego słowa znaczeniu są szkoleni. Zdolność uczenia się jest jedną z głównych przewag sieci neuronowych nad tradycyjnymi algorytmami. Technicznie rzecz biorąc, uczenie się polega na znajdowaniu współczynników połączeń między neuronami. W procesie uczenia sieć neuronowa jest w stanie identyfikować złożone zależności pomiędzy danymi wejściowymi i wyjściowymi, a także dokonywać uogólnień. Oznacza to, że jeśli uczenie się powiedzie, sieć będzie mogła zwrócić poprawny wynik na podstawie danych, których brakowało w zbiorze uczącym.

Znane zastosowania

Rozpoznawanie wzorcówi klasyfikacja. Obrazy mogą być obiektami o różnym charakterze: symbole tekstowe, obrazy, próbki dźwiękowe itp. Podczas uczenia sieci oferowane są różne próbki obrazów ze wskazaniem, do której klasy należą. Próbkę przedstawia się zwykle jako wektor wartości cech. W takim przypadku całość wszystkich znaków powinna jednoznacznie zdefiniować klasę, do którego należy próbka. Jeśli nie ma wystarczającej liczby funkcji, sieć może przypisać tę samą próbkę do kilku klas, co jest nieprawidłowe. Po przeszkoleniu sieci możesz zaprezentować jej nieznane wcześniej obrazy i otrzymać odpowiedź o przynależności do określonej klasy.

Topologię takiej sieci charakteryzuje się tym, że liczba neuronów w warstwie wyjściowej jest z reguły równa liczbie zdefiniowanych klas. Ustala to zgodność między sygnałem wyjściowym sieci neuronowej a klasą, którą reprezentuje. Gdy dany obraz zostanie zaprezentowany w sieci, na jednym z jej wyjść powinien pojawić się znak, że obraz należy do tej klasy. Jednocześnie na pozostałych wyjściach powinien znajdować się znak, że obraz nie należy do tej klasy. Jeśli dwa lub więcej wyjść ma znak przynależności do klasy, uważa się, że sieć „nie jest pewna” swojej odpowiedzi.

Podejmowanie decyzji i zarządzanie. Klasyfikacji podlegają sytuacje, których charakterystyka jest wprowadzana do sieci neuronowej. Na wyjściu sieci powinien pojawić się znak rozwiązania. W tym przypadku jako sygnały wejściowe wykorzystuje się różne kryteria opisu stanu sterowanego układu.

Grupowanie. Klastrowanie oznacza podział zbioru sygnałów wejściowych na klasy, pomimo tego, że ani liczba, ani charakterystyka klas nie są z góry znane. Sieć taka po treningu jest w stanie określić, do której klasy należy sygnał wejściowy. Sieć może także sygnalizować, że sygnał wejściowy nie należy do żadnej z wybranych klas – jest to oznaka, że ​​w zbiorze uczącym brakuje nowych danych. Zatem taka sieć potrafi zidentyfikować nowe, nieznane wcześniej klasy sygnałów. Zgodność pomiędzy klasami zidentyfikowanymi przez sieć a klasami istniejącymi w domenie ustalana jest przez osobę. Klastrowanie realizowane jest na przykład przez sieci neuronowe Kohonena.

PrognozowanieIprzybliżenie. Możliwości predykcyjne sieci neuronowej wynikają bezpośrednio z jej zdolności do uogólniania i podkreślania ukrytych zależności między danymi wejściowymi i wyjściowymi. Po nauczeniu sieć jest w stanie przewidzieć przyszłą wartość określonej sekwencji na podstawie kilku poprzednich wartości i/lub niektórych aktualnie istniejących czynników. Należy zauważyć, że prognozowanie jest możliwe tylko wtedy, gdy poprzednie zmiany w pewnym stopniu determinują przyszłe. Na przykład przewidywanie cen akcji na podstawie cen z ostatniego tygodnia może (ale nie musi) okazać się skuteczne, podczas gdy przewidywanie wyników jutrzejszej loterii na podstawie danych z ostatnich 50 lat prawie na pewno zakończy się niepowodzeniem.

Kompresja danychIPamięć skojarzeniowa. Zdolność sieci neuronowych do identyfikowania zależności między różnymi parametrami umożliwia bardziej zwięzłe wyrażanie danych wielowymiarowych, jeśli dane są ze sobą ściśle powiązane. Proces odwrotny – przywracanie pierwotnego zbioru danych z fragmentu informacji – nazywany jest pamięcią (auto)skojarzeniową. Pamięć skojarzeniowa Umożliwia także przywrócenie oryginalnego sygnału/obrazu z zaszumionych/uszkodzonych danych wejściowych. Rozwiązanie problemu pamięci heteroasocjacyjnej pozwala nam zaimplementować pamięć adresowalną treściowo.

Etapy rozwiązywania problemów

Zbieranie danych do szkoleń;

    Przygotowanie i normalizacja danych;

    Wybór topologii sieci;

    Eksperymentalny dobór charakterystyk sieci;

    Eksperymentalny dobór parametrów treningowych;

    Rzeczywiste szkolenie;

    Sprawdzanie adekwatności szkoleń;

    Dopasowanie parametrów, szkolenie końcowe;

    Werbalizacja sieci do dalszego wykorzystania.

    Warto rozważyć niektóre z tych etapów bardziej szczegółowo.

Zbieranie danych treningowych

Wybór danych do uczenia sieci i ich przetwarzania to najtrudniejszy etap rozwiązania problemu. Zbiór danych szkoleniowych musi spełniać kilka kryteriów:

Reprezentatywność – dane powinny ilustrować prawdziwy stan rzeczy w danej dziedzinie;

Spójność - niespójne dane w zbiorze uczącym będą prowadzić do niskiej jakości uczenia sieci;

Dane źródłowe są konwertowane do postaci, w której można je wprowadzić na wejścia sieciowe. Każdy rekord w pliku danych jest wywoływany para nauczycielska Lub wektor szkoleniowy. Wektor uczący zawiera jedną wartość dla każdego wejścia sieciowego oraz, w zależności od rodzaju uczenia (z nadzorem lub bez nadzoru), jedną wartość dla każdego wyjścia sieciowego. Uczenie sieci na „surowym” zestawie z reguły nie daje wysokiej jakości wyników. Istnieje wiele sposobów na poprawę „percepcji” sieci.

Normalizacja jest wykonywana, gdy na różne wejścia dostarczane są dane o różnych wymiarach. Na przykład pierwsze wejście sieci otrzymuje wielkości o wartościach od zera do jednego, a drugie od stu do tysiąca. W przypadku braku normalizacji wartości na drugim wejściu będą zawsze miały znacznie większy wpływ na wyjście sieci niż wartości na pierwszym wejściu. Podczas normalizacji wymiary wszystkich danych wejściowych i wyjściowych są łączone;

Kwantyzacja przeprowadza się na wielkościach ciągłych, dla których identyfikowany jest skończony zbiór wartości dyskretnych. Na przykład kwantyzacja służy do ustawiania częstotliwości sygnałów audio w rozpoznawaniu mowy;

Filtrowanie wykonywane dla „zaszumionych” danych.

Ponadto ważną rolę odgrywa prezentacja zarówno danych wejściowych, jak i wyjściowych. Załóżmy, że sieć została przeszkolona do rozpoznawania liter w obrazach i ma jeden wynik numeryczny — numer litery w alfabecie. W takim przypadku sieć odniesie fałszywe wrażenie, że litery 1 i 2 są bardziej podobne niż litery 1 i 3, co na ogół jest fałszywe. Aby uniknąć tej sytuacji, użyj topologii sieci z duża liczba wyjść, gdy każde wyjście ma swoje znaczenie. Im więcej wyjść w sieci, tym większa jest odległość pomiędzy klasami i tym trudniej je pomylić.

Wybór topologii sieci. Typ sieci należy wybrać na podstawie opisu problemu i dostępnych danych szkoleniowych. Uczenie się pod nadzorem wymaga „eksperckiej” oceny każdego elementu w próbie. Czasami uzyskanie takiego oszacowania dla dużego zbioru danych jest po prostu niemożliwe. W takich przypadkach naturalnym wyborem jest sieć ucząca się bez nadzoru, taka jak samoorganizująca się mapa Kohonena lub sieć neuronowa Hopfielda. Przy rozwiązywaniu innych problemów, np. prognozowania szeregów czasowych, ocena ekspercka jest już zawarta w danych źródłowych i może zostać uwydatniona w trakcie ich przetwarzania. W tym przypadku możesz użyć perceptronu wielowarstwowego lub sieci Word.

Eksperymentalny dobór charakterystyk sieci. Po selekcji struktura ogólna musisz eksperymentalnie dobrać parametry sieci. W przypadku sieci takich jak perceptron będzie to liczba warstw, liczba bloków w warstwach ukrytych (w przypadku sieci Word), obecność lub brak połączeń obejściowych oraz funkcje przenoszenia neuronów. Przy wyborze liczby warstw i znajdujących się w nich neuronów należy kierować się tym, że Im większa jest całkowita liczba połączeń między neuronami, tym większa jest zdolność sieci do generalizowania. Natomiast ilość połączeń ograniczona jest powyżej ilością rekordów w danych treningowych.

Eksperymentalny dobór parametrów treningowych. Po wybraniu konkretnej topologii należy wybrać parametry uczące sieci neuronowej. Ten etap jest szczególnie ważny w przypadku nadzorowanych sieci uczących się. Z właściwy wybór Parametry określają nie tylko to, jak szybko odpowiedzi sieci będą zbieżne z poprawnymi. Na przykład wybranie niskiej szybkości uczenia się wydłuży czas konwergencji, ale czasami pozwoli uniknąć paraliżu sieci. Zwiększanie momentu uczenia się może prowadzić do wydłużenia lub zmniejszenia czasu zbieżności, w zależności od kształtu powierzchni błędu. Na podstawie tak sprzecznego wpływu parametrów można stwierdzić, że ich wartości należy dobierać eksperymentalnie, kierując się kryterium ukończenia szkolenia (np. minimalizacją błędów lub ograniczeniem czasu szkolenia).

Właściwie trenuję sieć. Podczas procesu uczenia sieć sprawdza próbkę uczącą w określonej kolejności. Kolejność przeglądania może być sekwencyjna, losowa itp. Niektóre sieci uczące się bez nadzoru, takie jak sieci Hopfielda, skanują próbkę tylko raz. Inne, takie jak sieci Kohonena i sieci nadzorowanego uczenia się, skanują próbkę wiele razy, a jedno pełne przejście przez próbkę nazywa się epoka nauki. Podczas nauki z nauczycielem zbiór danych początkowych dzielony jest na dwie części – rzeczywisty zbiór uczący i dane testowe; zasada podziału może być dowolna. Dane szkoleniowe są wprowadzane do sieci w celu uczenia, a dane testowe służą do obliczenia błędu sieci (dane testowe nigdy nie są wykorzystywane do uczenia sieci). Zatem jeśli błąd zmniejsza się w danych testowych, wówczas sieć faktycznie generalizuje. Jeżeli błąd w danych uczących będzie się nadal zmniejszał, a błąd w danych testowych wzrastał, wówczas sieć przestaje generalizować i po prostu „pamięta” dane uczące. Zjawisko to nazywa się przekwalifikowaniem sieci lub nadmiernym dopasowaniem. W takich przypadkach trening jest zwykle przerywany. W procesie uczenia mogą pojawić się inne problemy, takie jak paraliż lub wpadnięcie sieci w lokalne minimum powierzchni błędu. Nie da się z góry przewidzieć przejawów konkretnego problemu, a także podać jednoznacznych zaleceń dotyczących ich rozwiązania.

Sprawdzanie adekwatności szkolenia. Nawet w przypadku pozornie udanego szkolenia sieć nie zawsze dowiaduje się dokładnie, czego chciał od niej twórca. Znany jest przypadek, gdy sieć została przeszkolona do rozpoznawania obrazów czołgów ze zdjęć, ale później okazało się, że wszystkie czołgi zostały sfotografowane na

to samo tło. W rezultacie sieć „nauczyła się” rozpoznawać tego typu teren, zamiast „uczyć się” rozpoznawać czołgi. Sieć zatem „rozumie” nie to, czego się od niej wymaga, ale to, co najłatwiej uogólnić.

Klasyfikacja według rodzaju informacji wejściowych

Analogowe sieci neuronowe (wykorzystują informację w postaci liczb rzeczywistych);

Binarne sieci neuronowe (działają z informacją przedstawioną w postaci binarnej).

Klasyfikacja ze względu na charakter szkolenia

Uczenie nadzorowane – znana jest wyjściowa przestrzeń rozwiązań sieci neuronowej;

Uczenie się bez nadzoru – sieć neuronowa generuje wyjściową przestrzeń rozwiązań w oparciu wyłącznie o wpływy wejściowe. Takie sieci nazywane są samoorganizującymi się;

Uczenie się przez wzmacnianie to system przydzielania kar i nagród ze strony otoczenia.

Klasyfikacja ze względu na charakter strojenia synaps

Sieci o połączeniach stałych (współczynniki wagowe sieci neuronowej dobierane są natychmiast na podstawie uwarunkowań problemu, w tym przypadku: , gdzie W to współczynniki wagowe sieci);

sieci z połączeniami dynamicznymi (dla nich w procesie uczenia dopasowywane są połączenia synaptyczne, czyli gdzie W są współczynnikami wagowymi sieci).

Klasyfikacja ze względu na czas transmisji sygnału

W wielu sieciach neuronowych funkcja aktywująca może zależeć nie tylko od współczynników ważących połączeń w ja, ale także od czasu przesłania impulsu (sygnału) kanałami komunikacyjnymi τ ja. Z tego powodu w ogólna perspektywa aktywowanie (nadawanie) funkcji komunikacyjnej C ja z elementu ty I do elementu ty J ma postać: . Następnie sieć synchroniczna to sieć, której czas transmisji wynosi τ ja każde połączenie jest równe zero lub stałej stałej τ. Asynchroniczny to sieć, której czas transmisji wynosi τ ja dla każdego połączenia pomiędzy elementami ty I I ty J swój własny, ale i trwały.

Klasyfikacja ze względu na charakter połączeń

Sieci ze sprzężeniem zwrotnym

Wszystkie połączenia są kierowane ściśle od neuronów wejściowych do neuronów wyjściowych. Przykładami takich sieci są perceptron Rosenblatta, perceptron wielowarstwowy i sieci Word.

Rekurencyjne sieci neuronowe

Sygnał z neuronów wyjściowych lub neuronów warstwy ukrytej jest częściowo przesyłany z powrotem na wejścia neuronów warstwy wejściowej (sprzężenie zwrotne). Sieć rekurencyjna, czyli sieć Hopfielda, „filtruje” dane wejściowe, powracając do stanu stabilnego, a tym samym pozwala na rozwiązywanie problemów kompresji danych i budowania pamięci asocjacyjnej. Szczególnym przypadkiem sieci rekurencyjnych są sieci dwukierunkowe. W takich sieciach połączenia pomiędzy warstwami występują zarówno w kierunku od warstwy wejściowej do warstwy wyjściowej, jak i w kierunku przeciwnym. Klasycznym przykładem jest sieć neuronowa Cosco.

Radialne funkcje bazowe

Sztuczne sieci neuronowe wykorzystujące promieniowe sieci bazowe jako funkcje aktywacji (takie sieci są w skrócie sieciami RBF). Ogólny widok radialnej funkcji bazowej:

, Na przykład,

Gdzie X- wektor sygnałów wejściowych neuronu, σ - szerokość okna funkcji, φ( y) jest funkcją malejącą (najczęściej równą zeru poza pewnym segmentem).

Sieć promieniowo-podstawowa charakteryzuje się trzema cechami:

Pojedyncza warstwa ukryta

Tylko neurony warstwy ukrytej mają nieliniową funkcję aktywacji

Wagi synaptyczne połączeń warstwy wejściowej i ukrytej są równe jeden

O procedurze szkoleniowej – patrz literatura

Samoorganizujące się mapy. Takie sieci są konkurencyjnymi sieciami neuronowymi podlegającymi szkoleniu

bez nadzoru, wykonując zadanie wizualizacji i

grupowanie. Jest to metoda rzutowania przestrzeni wielowymiarowej na przestrzeń o mniejszym wymiarze (najczęściej dwuwymiarowym), stosowana jest także do rozwiązywania problemów modelowania, prognozowania itp. Jest to jedna z wersji sieci neuronowych Kohonena. Samoorganizujące się mapy Kohonena służą przede wszystkim do wizualizacji i wstępnej („rozpoznawczej”) analizy danych.

Sygnał w sieci Kohonena wysyłany jest do wszystkich neuronów jednocześnie, wagi odpowiednich synaps interpretowane są jako współrzędne położenia węzła, a sygnał wyjściowy generowany jest zgodnie z zasadą „zwycięzca bierze wszystko” – czyli , neuron najbliższy (pod względem wag synaps) neuronowi dostarczanemu na wejście ma niezerowy obiekt sygnału wyjściowego. W procesie uczenia wagi synaps dobierane są w taki sposób, aby węzły sieci „umiejscowiały się” w miejscach lokalnej kondensacji danych, czyli opisywały z drugiej strony strukturę klastrową chmury danych; połączenia między neuronami odpowiadają relacjom sąsiedztwa pomiędzy odpowiednimi klastrami w przestrzeni cech.

Wygodnie jest myśleć o takich mapach jak o dwuwymiarowych siatkach węzłów zlokalizowanych w przestrzeni wielowymiarowej. Początkowo samoorganizująca się mapa jest siatką węzłów połączonych łączami. Kohonen rozważał dwie możliwości łączenia węzłów – w siatkę prostokątną i sześciokątną – z tą różnicą, że w siatce prostokątnej każdy węzeł jest połączony z 4 sąsiednimi węzłami, a w siatce sześciokątnej – z 6 najbliższymi węzłami. Dla dwóch takich sieci proces budowy sieci Kohonena różni się jedynie miejscem przesunięcia sąsiadów znajdujących się najbliżej danego węzła.

Wybierane jest początkowe osadzenie siatki w przestrzeni danych losowo. Autorski pakiet SOM_PAK oferuje opcje losowej lokalizacji początkowej węzłów w przestrzeni oraz opcję lokalizacji węzłów w płaszczyźnie. Następnie węzły zaczynają poruszać się w przestrzeni zgodnie z następującym algorytmem:

Punkt danych jest wybierany losowo X.

Najbliżej X węzeł mapy (BMU – Best Matching Unit).

Węzeł ten przesuwa dany krok w kierunku x. Jednak nie porusza się sam, ale niesie ze sobą pewną liczbę pobliskich węzłów z określonej okolicy na mapie. Ze wszystkich ruchomych węzłów centralny – węzeł najbliższy punktu danych – przemieszcza się najbardziej, a pozostałe ulegają mniejszym przemieszczeniom, im dalej znajdują się od BMU. Istnieją dwa etapy zakładania karty – etap zamawiania i etap dostrajania. W pierwszym etapie wybierane są duże wartości sąsiedztw, a ruch węzłów ma charakter zbiorczy – w efekcie mapa „wyprostowuje się” i z grubsza odzwierciedla strukturę danych; na scenie strojenie promień sąsiedztwa wynosi 1-2 i dostosowywane są poszczególne położenia węzłów. Dodatkowo wartość przemieszczenia maleje równomiernie w czasie, czyli na początku każdego etapu treningu jest duża, a na końcu bliska zeru.

Algorytm powtarza się przez określoną liczbę epok (jasne jest, że liczba kroków może się znacznie różnić w zależności od zadania).

Znane typy sieci: Perceptron Rosenblatta, sieć Jordana, sieć Hamminga, sieć Kohonena, Cognitron, chaotyczna sieć neuronowa, sieć neuronowa o działaniu przeciwpropagacyjnym; sieć probabilistyczna; syjamskie sieci neuronowe;

Algorytmy uczenia sieci neuronowych.

Propagacja wsteczna

Szybkie rozprzestrzenianie się

Metoda gradientu sprzężonego

Algorytm Levenberga-Marquarda

Algorytm quasi-newtonowski

Delta-delta z myślnikiem

Algorytm Kohonena

LVC (uczący się kwantyzator wektorowy)

Metoda pseudoodwrotna (rozkład osobliwy)

Metoda K-średnich

Algorytmy ustalania odchyłek

Trenowanie sieci neuronowej oznacza mówienie jej, co robimy

Dostajemy to od niej. Proces ten jest bardzo podobny do nauczania dziecka alfabetu. Po pokazaniu dziecku obrazka przedstawiającego literę „A” pytamy: „Co to za litera?” Jeśli odpowiedź jest błędna, mówimy dziecku odpowiedź, jaką chcielibyśmy, żeby udzieliła: „To jest litera A”. Dziecko pamięta ten przykład wraz z poprawną odpowiedzią, czyli w jego pamięci zachodzą pewne zmiany we właściwym kierunku. Będziemy powtarzać proces przedstawiania liter, aż wszystkie 33 litery zostaną dobrze zapamiętane. Proces ten nazywany jest „uczeniem się pod nadzorem”.

Ucząc sieć neuronową postępujemy dokładnie w ten sam sposób. Mamy bazę danych zawierającą przykłady (zestaw odręcznych obrazów listów). Wprowadzając obraz litery „A” na wejście sieci neuronowej, otrzymujemy od niej jakąś odpowiedź, niekoniecznie poprawną. Znamy również poprawną (pożądaną) odpowiedź - w w tym przypadku chcielibyśmy, aby poziom sygnału był maksymalny na wyjściu sieci neuronowej oznaczonej „A”. Zazwyczaj pożądanym wyjściem w problemie klasyfikacyjnym jest zbiór (1, 0, 0, ...), gdzie 1 oznacza wyjście oznaczone jako „A”, a 0 oznacza wszystkie inne wyjścia. Obliczając różnicę między żądaną odpowiedzią a rzeczywistą odpowiedzią sieci, otrzymujemy 33 liczby - wektor błędu. Algorytm wstecznej propagacji błędów jest zbiorem formuł pozwalających obliczyć wymagane poprawki dla wag sieci neuronowej za pomocą wektora błędu. Tę samą literę (a także różne obrazy tej samej litery) możemy wielokrotnie prezentować sieci neuronowej. W tym sensie nauka bardziej przypomina powtarzanie ćwiczeń w sporcie – treningu.

Okazuje się, że po wielokrotnym prezentowaniu przykładów wagi sieci neuronowej stabilizują się, a sieć neuronowa udziela poprawnych odpowiedzi na wszystkie (lub prawie wszystkie) przykłady z bazy. W tym przypadku mówią, że „sieć neuronowa nauczyła się wszystkich przykładów”, „sieć neuronowa została wytrenowana” lub „sieć neuronowa została przeszkolona”. W implementacjach oprogramowania widać, że podczas procesu uczenia wielkość błędu (suma kwadratów błędów na wszystkich wynikach) stopniowo maleje. Gdy błąd osiągnie zero lub akceptowalny mały poziom, uczenie zostaje zatrzymane, a powstałą sieć neuronową uważa się za wyszkoloną i gotową do użycia na nowych danych.

Należy zauważyć, że wszystkie informacje, jakie sieć neuronowa posiada na temat problemu, są zawarte w zestawie przykładów. Dlatego jakość uczenia sieci neuronowej zależy bezpośrednio od liczby przykładów w zbiorze uczącym, a także od tego, jak kompleksowo te przykłady opisują dane zadanie. Na przykład nie ma sensu używanie sieci neuronowej do przewidywania kryzysu finansowego, jeśli kryzysy nie są reprezentowane w zbiorze uczącym. Uważa się, że aby w pełni wytrenować sieć neuronową potrzeba co najmniej kilkudziesięciu (a jeszcze lepiej setek) przykładów.

Powtórzmy jeszcze raz, że uczenie sieci neuronowych jest procesem złożonym i wymagającym dużej wiedzy. Algorytmy uczące sieci neuronowe mają różne parametry i ustawienia, którymi zarządzanie wymaga zrozumienia ich wpływu.

Zastosowanie sieci neuronowej

Po przeszkoleniu sieci neuronowej możemy ją wykorzystać do rozwiązywania przydatnych problemów. Najważniejszą cechą ludzkiego mózgu jest to, że gdy już nauczy się określonego procesu, potrafi poprawnie działać w sytuacjach, w których nie był narażony w procesie uczenia się. Na przykład jesteśmy w stanie odczytać niemal każdy charakter pisma, nawet jeśli widzimy je po raz pierwszy w życiu. Podobnie odpowiednio wyszkolona sieć neuronowa może z dużym prawdopodobieństwem poprawnie zareagować na nowe, wcześniej nie prezentowane jej dane. Na przykład możemy narysować literę „A” innym charakterem pisma, a następnie poprosić naszą sieć neuronową o sklasyfikowanie nowego obrazu. Wagi wytrenowanej sieci neuronowej przechowują całkiem sporo informacji o podobieństwach i różnicach liter, dzięki czemu można liczyć na poprawną odpowiedź w przypadku nowej wersji obrazka.

Zastosowanie sieci neuronowych do problemów rozpoznawania wzorców.

Zadanie rozpoznawania pisma odręcznego

Dany: rastrowy czarno-biały obraz litery 30x30 pikseli

Niezbędny: określ, jaka to litera (w alfabecie są 33 litery)

Sformułowanie sieci neuronowej:

Dany: wektor wejściowy 900 znaków binarnych (900=30x30)

Niezbędny: zbuduj sieć neuronową z 900 wejściami i 33

wyjścia oznaczone literami. Jeżeli wejściem sieci neuronowej jest obraz litery „A”, wówczas maksymalną wartość sygnału wyjściowego osiąga się na wyjściu „A”. Sieć neuronowa działa podobnie dla wszystkich 33 liter.

Wyjaśnijmy, dlaczego konieczne jest wybranie wyjścia sieci neuronowej maksymalny poziom sygnał. Faktem jest, że poziom sygnału wyjściowego z reguły może przyjmować dowolną wartość z określonego segmentu. Jednak w tym zadaniu nie interesuje nas odpowiedź analogowa, a jedynie numer kategorii (numer litery w alfabecie). Dlatego też stosuje się następujące podejście – każda kategoria jest powiązana z własnym wyjściem, a za odpowiedź sieci neuronowej uważa się kategorię, której poziom sygnału wyjściowego jest maksymalny. W pewnym sensie poziom sygnału na wyjściu „A” jest wiarygodnością faktu, że na wejście sieci neuronowej została podana odręcznie napisana litera „A”. Nazywa się problemy, w których należy sklasyfikować dane wejściowe do jednej ze znanych kategorii problemy klasyfikacyjne. Prezentowane podejście jest standardową metodą klasyfikacji wykorzystującą sieci neuronowe.

Jak zbudować sieć neuronową. Teraz, gdy stało się jasne, co dokładnie chcemy zbudować, możemy przejść do pytania „jak zbudować taką sieć neuronową”. Problem ten rozwiązuje się w dwóch etapach:

Wybór typu (architektury) sieci neuronowej.

Dobór wag (uczenie) sieci neuronowej.

Pierwszym krokiem jest wybranie następujących elementów:

jakie neurony chcemy wykorzystać (liczba wejść, funkcje przenoszenia);

jak powinny być ze sobą połączone?

co należy przyjąć jako wejścia i wyjścia sieci neuronowej.

Zadanie to na pierwszy rzut oka wydaje się ogromne, ale na szczęście sieci neuronowej nie musimy wymyślać od zera – istnieje kilkadziesiąt różnych architektur sieci neuronowych, a skuteczność wielu z nich została matematycznie udowodniona. Najbardziej popularne i badane architektury to perceptron wielowarstwowy, sieć neuronowa regresji ogólnej, sieci neuronowe Kohonena i inne.

W drugim etapie powinniśmy „wytrenować” wybraną sieć neuronową, czyli dobrać takie wartości jej wag, aby działała zgodnie z oczekiwaniami. Niewytrenowana sieć neuronowa jest jak dziecko – wszystkiego można ją nauczyć. W stosowanych w praktyce sieciach neuronowych liczba wag może sięgać kilkudziesięciu tysięcy, dlatego uczenie jest procesem naprawdę złożonym. Dla wielu architektur opracowano specjalne algorytmy uczenia, które pozwalają w określony sposób skonfigurować wagi sieci neuronowej. Najpopularniejszym z tych algorytmów jest metoda Error Back Propagation, wykorzystywana na przykład do uczenia perceptronu.

Do problemów pomyślnie rozwiązanych przez NS on na tym etapie ich rozwój obejmuje:

rozpoznawanie obrazów wzrokowych i słuchowych; ogromny zakres zastosowań: od rozpoznawania tekstu i celów na ekranie radaru po systemy sterowania głosowego;

wyszukiwanie informacji asocjacyjnych i tworzenie modeli asocjacyjnych; synteza mowy; tworzenie języka naturalnego;

tworzenie modeli i różnych nieliniowych i trudnych do opisania matematycznie układów, prognozowanie rozwoju tych układów w czasie:

użytek przemysłowy; prognozowanie rozwoju cyklonów i innych procesów naturalnych, prognozowanie zmian kursów walut i innych procesów finansowych;

systemy kontroli predykcyjnej i regulacji; sterowanie robotami i innymi złożonymi urządzeniami

różne maszyny skończone: systemy kolejkowe i przełączające, systemy telekomunikacyjne;

podejmowanie decyzji i diagnostyka wykluczająca wnioskowanie logiczne; szczególnie w obszarach, gdzie

nie ma jednoznacznych modeli matematycznych: w medycynie, kryminologii, finansach;

Chociaż dla prawie wszystkich wymienionych problemów istnieją skuteczne matematyczne metody rozwiązywania i pomimo tego, że NN ustępują metodom specjalistycznym dla konkretnych zadań, ze względu na ich wszechstronność i obietnicę rozwiązywania problemów globalnych, na przykład budowania sztucznej inteligencji i modelowania myślenia procesie, stanowią one ważny obszar badań wymagający dokładnego przestudiowania.

Sieci neuronowe można podzielić ze względu na szereg cech.

Z punktu widzenia topologia, Można wyróżnić trzy główne typy sieci neuronowych (ryc. 2.4):

· w pełni podłączony;

· wielowarstwowe lub warstwowe;

słabo połączone (z połączeniami lokalnymi).

Ryż. 2.4. Architektury sieci neuronowych: a – sieć w pełni połączona; b – sieć wielowarstwowa z połączeniami szeregowymi;

c – sieci słabo połączone

W w pełni połączone sieci neuronowe każdy neuron przesyła swój sygnał wyjściowy do innych neuronów, w tym do siebie. Wszystkie sygnały wejściowe są przekazywane do wszystkich neuronów. Sygnałami wyjściowymi sieci mogą być wszystkie lub część sygnałów wyjściowych neuronów po kilku cyklach pracy sieci.

W wielowarstwowe (warstwowe) sieci neuronowe neurony są łączone w warstwy. Warstwa zawiera zbiór neuronów o wspólnych sygnałach wejściowych. Liczba neuronów w warstwie może być dowolna i nie zależy od liczby neuronów w pozostałych warstwach. Ogólnie rzecz biorąc, sieć składa się z warstw ponumerowanych od lewej do prawej. Zewnętrzne sygnały wejściowe podawane są na wejścia neuronów warstwy wejściowej (często o numerze zerowym), a wyjścia sieci są sygnałami wyjściowymi ostatniej warstwy. Oprócz warstw wejściowych i wyjściowych wielowarstwowa sieć neuronowa ma jedną lub więcej warstw ukrytych. Połączenia z wyjść neuronów określonej warstwy Q do wejść neuronów następnej warstwy ( Q+1) nazywane są sekwencyjnymi.

Z kolei wśród wielowarstwowych sieci neuronowych wyróżnia się następujące typy.

1) Monotonny. Jest to szczególny przypadek sieci warstwowych z dodatkowe warunki na połączeniach i neuronach. Każda warstwa, z wyjątkiem ostatniej (wyjściowej), jest podzielona na dwa bloki: pobudzający i hamujący. Połączenia między blokami dzielą się również na hamujące i pobudzające. Jeśli tylko połączenia pobudzające prowadzą od neuronów blokowych do neuronów blokujących, oznacza to, że dowolny sygnał wyjściowy bloku jest monotoniczną, niemalejącą funkcją dowolnego sygnału wyjściowego bloku. Jeżeli te połączenia mają charakter wyłącznie hamujący, wówczas dowolny sygnał wyjściowy bloku jest nierosnącą funkcją dowolnego sygnału wyjściowego bloku. W przypadku neuronów sieci monotonicznych wymagana jest monotoniczna zależność sygnału wyjściowego neuronu od parametrów sygnałów wejściowych.

2) Sieci bez sprzężenia zwrotnego . W takich sieciach neurony warstwy wejściowej odbierają sygnały wejściowe, przetwarzają je i przekazują neuronom pierwszej warstwy ukrytej i tak dalej, aż do warstwy wyjściowej, która generuje sygnały dla interpretatora i użytkownika. O ile nie zaznaczono inaczej, każdy sygnał wyjściowy Q- warstwa ta jest dostarczana na wejście wszystkich neuronów ( Q+1)warstwa; jednakże możliwa jest opcja połączenia Q- warstwę z dowolną warstwą.


Wśród sieci wielowarstwowych bez sprzężenia zwrotnego znajdują się sieci w pełni podłączony (wyjście każdego neuronu Q-ta warstwa jest podłączona do wejścia każdego neuronu ( Q+1)ta warstwa) i częściowo w pełni podłączony . Klasyczną wersją sieci warstwowych są sieci w pełni połączone sieci wyprzedzające (ryc. 2.5).

3) Sieci informacji zwrotnej. W sieciach ze sprzężeniem zwrotnym informacje z kolejnych warstw przekazywane są do poprzednich. Wśród nich z kolei wyróżnia się:

· warstwowy cykliczny , znamienny tym, że warstwy są zamknięte w pierścieniu: ostatnia warstwa przekazuje swoje sygnały wyjściowe do pierwszej; wszystkie warstwy mają równe prawa i mogą zarówno odbierać sygnały wejściowe, jak i wytwarzać sygnały wyjściowe;

· warstwowe, w pełni połączone składają się z warstw, z których każda stanowi w pełni połączoną sieć, a sygnały przesyłane są zarówno z warstwy na warstwę, jak i wewnątrz warstw; w każdej warstwie cykl pracy podzielony jest na trzy części: odbiór sygnałów z warstwy poprzedniej, wymiana sygnałów w obrębie warstwy, wygenerowanie sygnału wyjściowego i przesłanie do kolejnej warstwy;

· w pełni połączone warstwowo , o podobnej budowie warstwowo - w pełni połączone , ale funkcjonują inaczej: nie oddzielają faz wymiany w obrębie warstwy i transmisji do następnej; w każdym cyklu zegarowym neurony wszystkich warstw otrzymują sygnały zarówno od neuronów własnej warstwy, jak i kolejnych.

Jako przykład sieci ze sprzężeniem zwrotnym na rys. 2.6 przedstawia częściowo powtarzające się sieci Elmana i Jordana.

W słabo połączone sieci neuronowe neurony znajdują się w węzłach sieci prostokątnej lub sześciokątnej. Każdy neuron jest podłączony do czterech (sąsiedztwo von Neumanna), sześciu (sąsiedztwo Golaya) lub ośmiu (sąsiedztwo Moore'a) swoich najbliższych sąsiadów.

Znane sieci neuronowe można podzielić ze względu na rodzaje struktur neuronowych jednorodny (jednorodny) I heterogeniczny . Sieci jednorodne składają się z neuronów tego samego typu z pojedyncza funkcja aktywacja i w sieć heterogeniczna neurony wchodzą z różne funkcje aktywacja.

Ryż. 2.6. Sieci częściowo rekurencyjne: a – Elman; b – Jordania

Istnieć dwójkowy I sieci analogowe . Pierwsze z nich operują wyłącznie sygnałami binarnymi, a wyjście każdego neuronu może przyjąć wartość zera logicznego (stan zahamowany) lub logicznej (stan wzbudzony).

Inna klasyfikacja dzieli sieci neuronowe na synchroniczny I asynchroniczny . W pierwszym przypadku w każdym momencie swój stan zmienia tylko jeden neuron, w drugim stan zmienia się natychmiast w całej grupie neuronów, z reguły w całej warstwie. Algorytmicznie upływ czasu w sieciach neuronowych jest wyznaczany poprzez iteracyjne wykonywanie podobnych działań na neuronach.

Sieć neuronowa to zbiór elementów neuronopodobnych, połączonych w określony sposób ze sobą i ze środowiskiem zewnętrznym za pomocą połączeń określonych za pomocą współczynników wagowych. W zależności od funkcji pełnionych przez neurony w sieci można wyróżnić trzy typy

Neurony wejściowe, do których dostarczany jest wektor kodujący efekt wejściowy lub obraz środowiska zewnętrznego; zazwyczaj nie wykonują procedur obliczeniowych, a informacja jest przekazywana z wejścia na wyjście poprzez zmianę ich aktywacji;

Neurony wyjściowe, których wartości wyjściowe reprezentują wyjścia sieci neuronowej; przekształcenia w nich przeprowadza się według wyrażeń (1.1) i (1.2);

Neurony pośrednie stanowiące podstawę sieci neuronowych, w których również dokonuje się przekształceń zgodnie z wyrażeniami (1.1) i (1.2).

W większości modeli neuronowych typ neuronu jest powiązany z jego lokalizacją w sieci. Jeśli neuron ma tylko połączenia wyjściowe, jest neuronem wejściowym, jeśli odwrotnie, jest neuronem wyjściowym. Jednakże możliwe jest, że wyjście topologicznie wewnętrznego neuronu będzie traktowane jako część wyjścia sieci. Podczas działania sieci wektor wejściowy jest przekształcany na wektor wyjściowy i przeprowadzane jest pewne przetwarzanie informacji. O specyficznym typie transformacji danych realizowanym przez sieć decydują nie tylko cechy elementów neuronopodobnych, ale także cechy jej architektury, czyli topologia połączeń międzyneuronowych, wybór pewnych podzbiorów elementów neuronopodobnych dla wprowadzanie i wyprowadzanie informacji, metody uczenia sieci, obecność lub brak konkurencji między neuronami, kierunek i metody kontroli i synchronizacji przesyłania informacji między neuronami.

Z topologicznego punktu widzenia można wyróżnić trzy główne typy sieci neuronowych:

W pełni podłączony (ryc. 1.4, a);

Wielowarstwowe lub warstwowe (ryc. 1.4, b);

Luźno połączone (z połączeniami lokalnymi) (ryc. 1.4, c).

W w pełni połączonych sieciach neuronowych każdy neuron przesyła swój sygnał wyjściowy do innych neuronów, w tym do siebie. Wszystkie sygnały wejściowe są przekazywane do wszystkich neuronów. Sygnałami wyjściowymi sieci mogą być wszystkie lub część sygnałów wyjściowych neuronów po kilku cyklach pracy sieci.

W wielowarstwowych sieciach neuronowych neurony są łączone w warstwy. Warstwa zawiera zbiór neuronów o wspólnych sygnałach wejściowych. Liczba neuronów w warstwie może być dowolna i nie zależy od liczby neuronów w innych warstwach. Ogólnie rzecz biorąc, sieć składa się z warstw ponumerowanych od lewej do prawej. Zewnętrzne sygnały wejściowe podawane są na wejścia neuronów w warstwie wejściowej (często numerowane jako zero), a wyjścia sieci stanowią wyjście

Ryż. 1.4. Architektury sieci neuronowych. a - sieć w pełni połączona, b - sieć wielowarstwowa z połączeniami sekwencyjnymi, c - sieci luźno połączone

sygnały ostatniej warstwy. Oprócz warstw wejściowych i wyjściowych wielowarstwowa sieć neuronowa ma jedną lub więcej warstw ukrytych. Połączenia wyjść neuronów określonej warstwy z wejściami neuronów następnej warstwy nazywane są szeregowymi.

Z kolei wśród wielowarstwowych sieci neuronowych wyróżnia się następujące typy.

1) Monotonne.

Jest to szczególny przypadek sieci warstwowych z dodatkowymi warunkami dotyczącymi połączeń i neuronów. Każda warstwa z wyjątkiem ostatniej (wyjściowej) jest podzielona na dwa bloki: pobudzający i hamujący. Połączenia między blokami dzielą się również na hamujące i pobudzające. Jeżeli z neuronów bloku A do neuronów bloku B prowadzą tylko połączenia pobudzające, to oznacza to, że dowolny sygnał wyjściowy

Ryż. 1.5 Wielowarstwowa (dwuwarstwowa) sieć ze sprzężeniem zwrotnym

blok jest monotoniczną, nierosnącą funkcją dowolnego sygnału wyjściowego bloku A. Jeśli te połączenia mają jedynie charakter hamujący, to dowolny sygnał wyjściowy bloku B jest nierosnącą funkcją dowolnego sygnału wyjściowego bloku A. Dla neuronów sieci monotonicznych, wymagana jest monotoniczna zależność sygnału wyjściowego neuronu od parametrów sygnałów wejściowych

2) Sieci bez sprzężenia zwrotnego. W takich sieciach neurony warstwy wejściowej odbierają sygnały wejściowe, przetwarzają je i przekazują neuronom pierwszej warstwy ukrytej i tak dalej, aż do warstwy wyjściowej, która generuje sygnały dla interpretatora i użytkownika. O ile nie zaznaczono inaczej, każdy sygnał wyjściowy warstwy będzie podawany na wejście wszystkich neuronów w tej warstwie; jednakże możliwe jest połączenie warstwy z dowolną warstwą

Wśród sieci wielowarstwowych bez sprzężenia zwrotnego rozróżnia się sieci w pełni połączone (wyjście każdego neuronu w warstwie jest połączone z wejściem każdego neuronu w warstwie) i częściowo połączone. Klasyczną wersją sieci warstwowych są w pełni połączone sieci ze sprzężeniem zwrotnym (ryc. 1.5).

3) Sieci ze sprzężeniem zwrotnym W sieciach ze sprzężeniem zwrotnym informacje z kolejnych warstw przenoszone są do poprzednich. Wśród nich z kolei wyróżnia się:

Warstwowy-cykliczny, charakteryzujący się tym, że warstwy są zamknięte w pierścieniu, ostatnia warstwa przekazuje swoje sygnały wyjściowe do pierwszej; wszystkie warstwy mają równe prawa i mogą zarówno odbierać sygnały wejściowe, jak i wytwarzać sygnały wyjściowe;

Warstwowo-w pełni połączone składa się z warstw, z których każda reprezentuje w pełni połączoną sieć, a sygnały są przesyłane zarówno z warstwy na warstwę, jak i w obrębie warstwy; w każdej warstwie cykl pracy podzielony jest na trzy części: odbiór sygnałów z warstwy poprzedniej, wymiana sygnałów w obrębie warstwy, wygenerowanie sygnału wyjściowego i przesłanie do kolejnej warstwy,

W pełni połączone-warstwowe, podobne w budowie do warstwowych w pełni połączonych, ale funkcjonujące inaczej: nie oddzielają faz wymiany w obrębie warstwy i transmisji do następnej; w każdym cyklu zegara neurony wszystkich warstw odbierają sygnały z neuronów zarówno warstwy własnej, jak i kolejnych

Jako przykład sieci ze sprzężeniem zwrotnym na rys. 1.6 przedstawia częściowo powtarzające się sieci Elmana i Jordana.

Ryż. 1.6 Sieci częściowo powtarzalne a – Elman, b – Jordan

W luźno połączonych sieciach neuronowych neurony znajdują się w węzłach prostokątnej lub sześciokątnej siatki, każdy neuron jest połączony z czterema (sąsiedztwo von Neumanna), sześcioma (sąsiedztwo Golaya) lub ośmioma (sąsiedztwo Moore'a) swoich najbliższych sąsiadów.

Znane sieci neuronowe można podzielić ze względu na rodzaje struktur neuronowych na jednorodne (jednorodne) i heterogeniczne. Sieci jednorodne składają się z neuronów tego samego typu z pojedynczą funkcją aktywacji, natomiast sieć heterogeniczna obejmuje neurony z różnymi funkcjami aktywacji.

Istnieją sieci binarne i analogowe. Pierwsze z nich operują wyłącznie sygnałami binarnymi, a wyjście każdego neuronu może przyjąć wartość zera logicznego (stan zahamowany) lub logicznej (stan wzbudzony).

Inna klasyfikacja dzieli sieci neuronowe na synchroniczne i asynchroniczne. W pierwszym przypadku w każdym momencie swój stan zmienia tylko jeden neuron, w drugim stan zmienia się natychmiast w całej grupie neuronów, z reguły w całej warstwie. Algorytmicznie upływ czasu w sieciach neuronowych jest ustalany poprzez iteracyjne wykonywanie podobnych działań na neuronach. Następnie uwzględnione zostaną tylko sieci synchroniczne

Sieci można również klasyfikować według liczby warstw. Teoretycznie liczba warstw i liczba neuronów w każdej warstwie może być dowolna, jednak w rzeczywistości jest ona ograniczona zasobami komputera lub wyspecjalizowanych chipów, na których zwykle realizowana jest sieć neuronowa. Jak bardziej złożona sieć, zwłaszcza złożone zadania ona może zdecydować.

Wybór struktury sieci neuronowej odbywa się zgodnie ze specyfiką i złożonością zadania. Aby rozwiązać określone typy problemów, istnieją już optymalne konfiguracje opisane w załączniku. Jeśli problemu nie można sprowadzić do żadnego z znane typy, musimy zdecydować złożony problem synteza nowa konfiguracja. W takim przypadku musisz kierować się następującymi podstawowymi zasadami:

Możliwości sieci rosną wraz z liczbą neuronów w sieci, gęstością połączeń między nimi oraz liczbą warstw;

Wprowadzenie pętli sprzężenia zwrotnego wraz ze wzrostem możliwości sieci rodzi pytanie o dynamiczną stabilność sieci;

Złożoność algorytmów funkcjonowania sieci oraz wprowadzenie kilku typów synaps pozwalają zwiększyć moc sieci neuronowej.

Kwestia niezbędnych i wystarczających właściwości sieci do rozwiązywania tego czy innego rodzaju problemów reprezentuje cały obszar neuroinformatyki. Ponieważ problem syntezy sieci neuronowej silnie zależy od rozwiązywanego problemu, podaj ogólnie szczegółowe zalecenia w większości przypadków trudne najlepsza opcja uzyskuje się na podstawie intuicyjnej selekcji, chociaż w literaturze można znaleźć dowody na to, że dla każdego algorytmu istnieje sieć neuronowa, która jest w stanie go zrealizować. Przyjrzyjmy się temu bardziej szczegółowo.

Wiele zadań rozpoznawania wzorców (wizualnych, mowy), wykonywania przekształceń funkcjonalnych w przetwarzaniu sygnałów, sterowaniu, prognozowaniu, identyfikacji złożone systemy, sprowadza się do następującego wzoru matematycznego. Należy skonstruować takie odwzorowanie, aby dla każdego możliwego sygnału wejściowego X generowany był poprawny sygnał wyjściowy Y. Odwzorowanie jest określone przez skończony zbiór par („wejście”, „znane wyjście”). Liczba tych par (przykładów szkoleniowych) jest znacznie mniejsza Łączna możliwe kombinacje wartości sygnału wejściowego i wyjściowego. Zbiór wszystkich przykładów uczących nazywa się zbiorem uczącym.

W problemach rozpoznawania wzorców X jest pewną reprezentacją obrazu (obrazu, wektora), Y jest numerem klasy, do której należy obraz wejściowy.

W zadaniach sterujących X jest zbiorem kontrolowanych parametrów kontrolowanego obiektu, Y jest kodem określającym działanie sterujące odpowiadające bieżącym wartościom kontrolowanych parametrów.

W zagadnieniach prognostycznych jako sygnały wejściowe wykorzystuje się szeregi czasowe, reprezentujące wartości zmiennych kontrolowanych w określonym przedziale czasu. Sygnał wyjściowy jest zbiorem zmiennych stanowiącym podzbiór zmiennych sygnału wejściowego.

W identyfikacji X i Y reprezentują odpowiednio sygnały wejściowe i wyjściowe systemu.

Ogólnie rzecz biorąc, większość stosowanych problemów można sprowadzić do realizacji jakiejś złożonej funkcjonalnej transformacji wielowymiarowej.

W wyniku mapowania należy zadbać o to, aby generowane były prawidłowe sygnały wyjściowe zgodnie z:

Ze wszystkimi przykładami zestawu szkoleniowego;

Ze wszystkimi możliwymi sygnałami wejściowymi, które nie zostały uwzględnione w zbiorze uczącym.

Drugi wymóg znacznie komplikuje zadanie utworzenia próbki szkoleniowej. Ogólnie rzecz biorąc, problem ten nie został jeszcze rozwiązany, jednak we wszystkich znanych przypadkach można znaleźć konkretne rozwiązanie