www.math.uni.lodz.pl/ radmat
Cel wykładu Celem wykładu jest prezentacja różnych rodzajów sztucznych sieci neuronowych.
Biologiczny model neuronu Mózg człowieka składa się z około 10 11 komórek nerwowych, zwanych neuronami, które tworzą formę regularnych sieci. Rysunek: Model neuronu
Centralną część neuronu stanowi soma (ciało komórki), z której wyrastają liczne rozgałęzienia, zwane dendrytami oraz jedno, długie włókno, zwane aksonem. Na zakończeniach dendrytu umiejscowione są połączenia synaptyczne, zwane krótko synapsami. Komórka nerwowa może mieć nawet około 10 4 połączeń synaptycznych z dendrytami innych neuronów. Za transmisję sygnałów do innych neuronów odpowiedzialne są synapsy. Przesyłanie sygnału jest złożonym procesem biochemicznym, w którym po stronie nadawczej połączenia uwalniane są specjalne substancje, zwane transmiterami.
Natomiast po drugiej stronie uwalniane są inne złożone substancje biochemiczne, zwane receptorami. W rezultacie zmianie ulega potencjał neuronu, do którego przesyłany jest sygnał. Jeżeli przekroczy on pewną wartość progową, to wówczas w kierunku aksonu wysyłany jest potencjał o stałej wartości i czasie trwania. Sygnał ten dzięki aksonowi dociera do innych komórek nerwowych. Po przesłaniu sygnału neuron przez krótki czas (zwany okresem refrakcji) nie może wyemitować kolejnego impulsu.
Matematyczny model sieci neuronowej Wraz z dynamicznym rozwojem badań nad procesami zachodzącymi w mózgu człowieka powstała potrzeba matematycznego opisu tych zjawisk. W latach czterdziestych XX wieku pojawiły się pierwsze próby matematycznego ujęcia procesów zachodzących w neuronach. Przesyłanie sygnałów pomiędzy komórkami nerwowymi odbywa się dzięki jonom, które mogą być dodatnie lub ujemne. Ich koncentracja w ciele i-tej komórki wynosi t h i (t τ)t ij g j (x j (τ))dτ.
W tym wzorze T ij opisuje procesy biochemiczne zachodzące w synapsie (przy czym T ij może przyjmować wartość dodatnią lub ujemną), x j oznacza potencjał membrany neuronu j, g j jest tzw. funkcją aktywacji, natomiast h i (t τ) jest pewną funkcją zanikania, gdyż jony, które wcześniej dotarły do synapsy umierają. Funkcja zanikania często przyjmuje postać h i (t) = 1 µ i e t µ i, gdzie µ i > 0 jest stałą membrany.
W opisie modelu sztucznej sieci neuronowej zakładać będziemy ponadto istnienie zewnętrznego wejścia I i, które nie pochodzi od innych neuronów. Stąd potencjał (stan) danego neuronu w danej chwili t opisany jest wzorem n x i (t) = t j=1 h i (t τ)t ij g j (x j (τ))dτ + t h i (t τ)i i (τ)dτ dla i = 1,..., n, n N.
Przekształcając powyższy wzór otrzymujemy układ równań różniczkowych µ i dx i (t) dt n = x i (t) + T ij g j (x j (t)) + I i (t) j=1 dla i = 1,..., n, µ i > 0. Układ ten modeluje procesy, które zachodzą w sieci neuronowej. Wzór ten jest również wykorzystywany do opisu sztucznych sieci neuronowych.
Zastosowania sztucznych sieci neuronowych klasyfikacja i rozpoznawanie wzorców; aproksymacja funkcji; optymalizacja; filtrowanie danych; grupowanie i wyodrębnianie cech; sterowanie.
Z punktu widzenia zastosowań najważniejszą cechą sztucznych sieci neuronowych jest zdolność do uczenia się. Rozważmy sieć Hopfielda, której główne zadanie polega na rozpoznawaniu wzorców. Etap uczenia tej sieci polega na dostarczaniu na wejście wzorców uczących, do których dobierane są wagi. Proces ten kształtuje obszary przyciągania (atraktory), które odpowiadają danym uczącym. Po ustaleniu wag następuje poces rozpoznawania zaburzonych wzorców podawanych na wejście, który kończy się określonym minimum lokalnym.
Przykład działania sieci Hopfielda Rysunek: Wzorce uczące Rysunek: Wzorce zaburzone
Rodzaje sieci neuronowych W zależności od zadań, jakie ma realizować sieć neuronowa konstruowane są różne jej typy. Do najbardziej znanych rodzajów sztucznych sieci neuronowych zaliczyć można m.in. sieć Hopfielda; sieć Kohonena; sieć Cohena-Grossberga; sieć BAM; sieć komórkową.
Model neuronu dla informatyka Tworząc sztuczne sieci neuronowe będziemy łączyć pojedyncze neurony w większe struktury, tworzące właśnie sieć. W budowie pojedynczego neuronu wyróżniamy następujące elementy: wejście do sieci, które jest odpowiednikiem dendrytu dostarczającego sygnały wejściowe; element przetwarzający sygnał, który jest odpowiednikiem ciała komórki; jednego wyjścia, które odpowiada aksonowi.
Rysunek: Model neuronu McCullocha-Pittsa
W powyższym wzorze: x 1,..., x n oznaczają sygnały wejściowe; w 1,..., w n oznaczają wagi; T oznacza wartość progową, po przekroczeniu której neuron jest w stanie zadziałać; y oznacza sygnał wyjściowy poddany działaniu funkcji aktywacji. W tak przyjętym modelu sygnały wejściowe mają wartość 0 lub 1.
W powyższym modelu neuronu sygnał wyjściowy jest obliczany na podstawie wzoru 1, gdy n x y k+1 i k w i T = i=1 0, gdy n xi k w i < T dla kolejnych momentów czasu k = 0, 1,... Dla synaps pobudzających przyjmuje się w i = 1, a dla hamujących w i = 1. i=1
Neuron biologiczny v neuron McCullocha-Pittsa Należy zdawać sobie sprawę, że przedstawiony powyżej model neuronu McCullocha-Pittsa jest dużym uproszczeniem rzeczywistego neuronu i pomija wiele istotnych cech, które posiadają rzeczywiste neurony, m.in.: rzeczywiste neurony reagują na sygnały wejściowe w sposób ciągły; rzeczywiste neurony generują ciągi impulsów, a nie sygnał wyjściowy o stałym poziomie; rzeczywiste neurony nie są synchronizowane.
Ogólny model neuronu Każdy model neuronu składa się z elementu przetwarzającego sygnał wejściowy. Przepływ sygnału jest jednokierunkowy. Sygnał wyjściowy opisuje następująca zależność ( n ) y = f (wx) = f x i w i, gdzie x jest wektorem wejściowym; w jest macierzą wag; f jest funkcją aktywacji; y jest wektorem wyjściowym. i=1 Często przyjmuje się oznaczenie net = wx.
Rysunek: Ogólny model neuronu
Funkcja aktywacji Typowymi funkcjami aktywacji są: signum 1, dla x > 0 f (x) = 0, dla x = 0 1, dla x < 0 funkcja progowa bipolarna { 1, dla x 0 f (x) = 1, dla x < 0 funkcja progowa unipolarna { 1, dla x 0 f (x) = 0, dla x < 0
funkcja sigmoidalna bipolarna f (x) = Często przyjmuje się λ = 1. funkcja sigmoidalna unipolarna funkcja liniowa f (x) = Często przyjmuje się a = 1. 2 1 + e λx 1 1 1 + e λx f (x) = ax
Architektury sieci neuronowych Sposoby połączenia neuronów między sobą, a także wzajemnego ich oddziaływania spowodowały powstanie różnych architektur tych sieci. Każdy rodzaj sieci jest ponadto związany z odpowiednią metodą uczenia (czyli dobierania wag).
Sieć jednokierunkowa jednowarstwowa W sieci jednokierunkowej jednowarstwowej neurony ułożone są w jednej warstwie, a sygnały wejściowe pochodzą wyłącznie od węzłów wejściowych. Przeważnie każdy węzeł połączony jest z każdym neuronem. Przepływ sygnałów przebiega oczywiście w jednym kierunku. Warto zwrócić uwagę na fakt, że węzły wejściowe nie tworzą warstwy neuronów, ponieważ nie zachodzą w nich żadne procesy obliczeniowe.
Rysunek: Sieć jednokierunkowa jednowarstwowa
Sieć jednokierunkowa wielowarstwowa W sieci jednokierunkowej wielowarstwowej występuje co najmniej jedna ukryta warstwa neuronów, która pośredniczy w przekazywaniu sygnałów między węzłami, a wyjściem. Sygnały wejściowe podawane są na pierwszą warstwę neuronów, a te stanowią sygnały wejściowe dla kolejnych (ukrytych) warstw.
Rysunek: Sieć jednokierunkowa wielowarstwowa
Metody uczenia sieci neuronowych Realizując dane zagadnienie przy pomocy sieci neuronowych musimy wybrać jej architekturę, ustalić liczbę neuronów, liczbę warstw sieci oraz dobrać funkcję aktywacji. Pozostaje jeszcze wybór metody uczenia sieci, czyli sposobu w jaki będą dobierane wagi.
Chcąc nauczyć sieć musimy dysponować zbiorem uczącym L = l 1,..., l n, gdzie n jest liczbą elementów zbioru uczącego. Każdy z elementów l i powyższego zbioru składa się z dwóch elementów: wektora danych wejściowych p i i odpowiadającego mu wektora oczekiwanych odpowiedzi t i. Elementy p i i t i tworzą zbiór wzorców uczących P oraz zbiór prawidłowych odpowiedzi T odpowiednio.
Metoda uczenia nadzorowanego w sieciach jednokierunkowych W uczeniu nadzorowanym istnieje pewien nauczyciel, który podpowiada prawidłowe wartości wag. Sygnał uczący przyjmuje postać gdzie r = t y, t = t k jest pożądaną odpowiedzią; y jest rzeczywistą wartością otrzymaną po podaniu na wejście sieci wzorca uczącego p k dla danej próbki uczącej k.
Korekcja wag neuronu w metodzie perceptronu odbywa się za pomocą zależności gdzie w i = η[t f (net)]x i, zakresem zmienności i jest liczba wszystkich wejść; net jest łącznym pobudzeniem neuronu; x i = p k jest sygnałem wejściowym; η jest współczynnikiem uczenia, η (0.01, 0.5); f jest funkcją aktywacji typu signum.
Przykład Nasze zadanie będzie polegało na doborze wag dla danych umieszczonych w poniższej tabeli: Wejście 1 7 5 Wejście 2 1 3 Wyjście 1 1 Wobec powyższego do nauki neuronu wykorzystamy wektory p 1 = [ 7 1] oraz [ 5 3].
Każdemu z powyższych wektorów wejściowych p i odpowiada wektor poprawnej (oczekiwanej) odpowiedzi t i. Niech t 1 = 1 i t 2 = 1. Natomiast stałą uczenia przyjmujemy η = 0.2, a początkową macierz wag ustalamy na w = [ 1 1]. W każdym cyklu uczenia prezentowany jest każdy ze wzorców, badana jest odpowiedź sieci i dokonywana jest korekta wag.
Dla wzorca p 1 otrzymujemy: net = wx 1 = 1 ( 7) = 7 y = f (net) = f (7) = 1 r = t 1 y = 1 1 = 2 w = ηrx 1 = 0.2 ( 2) ( 7) = 2.8
net = wx 1 = 1 ( 1) = 1 y = f (net) = f (1) = 1 r = t 1 y = 1 1 = 2 w = ηrx 1 = 0.2 ( 2) ( 1) = 0.4 Zatem w = w + w = [ 1 1] + [2.8 0.4] = [1.8 0.6].
Dla wzorca p 2 zupełnie analogicznie otrzymujemy: net = wx 2 = 1 ( 5) = 5 y = f (net) = f (5) = 1 r = t 2 y = 1 1 = 2 w = ηrx 2 = 0.2 ( 2) ( 5) = 2
net = wx 2 = 1 3 = 3 y = f (net) = f ( 3) = 1 r = t 2 y = 1 + 1 = 0 w = ηrx 2 = 0.2 0 3 = 0 Zatem w = w + w = [ 1 1] + [2 0] = [1 1]. Dla podanych powyżej dwóch wzorców został zakończony etap uczenia sieci.
Ciągła funkcja aktywacji Zauważmy, że w powyższym przykładzie funkcja aktywacji była nieciągła. Aktualnie rozważymy neuron z ciągłą funkcją aktywacji. W tym przypadku będziemy mogli korzystać z metod gradientowych.
Reguła delta W regule delta sygnał uczący definiuje się następująco r = δ = [t f (net)]f (net), natomiast korekta wektora wag przyjmuje postać w = η(t y)f (net)x.
Wykonując elementarne rachunki otrzymujemy następujące pochodne wcześniej zdefiniowanych, ciągłych funkcji aktywacji: dla funkcji sigmoidalnej bipolarnej f (x) = 2 1+e λx 1 f (net) = 0.5λ(1 f 2 (net)). dla funkcji sigmoidalnej unipolarnej f (x) = 1 1+e λx f (net) = λf (net)(1 f (net)).
Metoda propagacji wstecznej Metoda propagacji wstecznej umożliwia uczenie wielowarstwowych sieci neuronowych. Z formalnego punktu widzenia metoda ta polega na minimalizacji funkcji wielu zmiennych metodą gradientową.
Przykład W poniższym przykładzie prześledzimy zachowanie sieci dla jednej próbki uczącej i jednego cyklu. Zakładamy, że mamy pewien zbiór uczący L, z którego wybieramy dowolną parę (t i, p i ), gdzie p i = {p 1, p 2 }, t i = {t}. Rysunek: Sieć wielowarstwowa
net 1 1 = w 1 11x 1 1 + w 1 12x 1 2 y 1 1 = f (net 1 1) x 2 1 = y 1 1 Rysunek: Pobudzony pierwszy neuron w warstwie pierwszej
net 1 2 = w 1 21x 1 1 + w 1 22x 1 2 y 1 2 = f (net 1 2) x 2 2 = y 1 2 Rysunek: Pobudzony drugi neuron w warstwie pierwszej
net 2 1 = w 2 11x 2 1 + w 2 12x 2 2 y 2 1 = f (net 2 1) x 3 1 = y 2 1 Rysunek: Pobudzony pierwszy neuron w warstwie drugiej
net 2 2 = w 2 21x 2 1 + w 2 22x 2 2 y 2 2 = f (net 2 2) x 3 2 = y 2 2 Rysunek: Pobudzony drugi neuron w warstwie drugiej
net 2 3 = w 2 31x 2 1 + w 2 32x 2 2 y 2 3 = f (net 2 3) x 3 3 = y 2 3 Rysunek: Pobudzony trzeci neuron w warstwie drugiej
net 3 1 = w 3 11x 3 1 + w 3 12x 3 2 + w 3 13x 3 3 y 3 1 = f (net 3 1) y = y 3 1 Rysunek: Pobudzony neuron w warstwie trzeciej
r = t y Rysunek: Obliczanie wartości błędu popełnionego przez sieć
δ 2 1 = δ 3 1w 3 11 Rysunek: Obliczanie wartości błędu popełnionego przez pierwszy neuron z warstwy drugiej
δ 2 2 = δ 3 1w 3 12 Rysunek: Obliczanie wartości błędu popełnionego przez drugi neuron z warstwy drugiej
δ 2 3 = δ 3 1w 3 13 Rysunek: Obliczanie wartości błędu popełnionego przez trzeci neuron z warstwy drugiej
δ 1 1 = δ 2 1w 2 11 + δ 2 2w 2 21 + δ 2 3w 2 31 Rysunek: Obliczanie wartości błędu popełnionego przez pierwszy neuron z warstwy pierwszej
δ 1 2 = δ 2 1w 2 12 + δ 2 2w 2 22 + δ 2 3w 2 32 Rysunek: Obliczanie wartości błędu popełnionego przez drugi neuron z warstwy pierwszej
Gdy mamy już policzony błąd metodą propagacji wstecznej należy uaktualnić wagi poprzez policzenie poprawek dla wszystkich wag. Kolejność wyliczania poprawek nie ma znaczenia.