Wstęp do teorii sztucznej inteligencji

Podobne dokumenty
Wstęp do teorii sztucznej inteligencji

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych.

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Metody Sztucznej Inteligencji II

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Lekcja 5: Sieć Kohonena i sieć ART

8. Neuron z ciągłą funkcją aktywacji.

Wstęp do teorii sztucznej inteligencji Wykład II. Uczenie sztucznych neuronów.

Sztuczna inteligencja

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda

Sztuczne sieci neuronowe

Sztuczne sieci neuronowe i sztuczna immunologia jako klasyfikatory danych. Dariusz Badura Letnia Szkoła Instytutu Matematyki 2010

Inteligentne systemy przeciw atakom sieciowym

Podstawy sztucznej inteligencji

wiedzy Sieci neuronowe

Literatura. Sztuczne sieci neuronowe. Przepływ informacji w systemie nerwowym. Budowa i działanie mózgu

Elementy Sztucznej Inteligencji. Sztuczne sieci neuronowe cz. 2

1. Logika, funkcje logiczne, preceptron.

Sztuczne sieci neuronowe (SNN)

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335

Temat: Sieci neuronowe oraz technologia CUDA

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

SIECI KOHONENA UCZENIE BEZ NAUCZYCIELA JOANNA GRABSKA-CHRZĄSTOWSKA

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

SIECI NEURONOWE Liniowe i nieliniowe sieci neuronowe

Zastosowania sieci neuronowych

Elementy kognitywistyki III: Modele i architektury poznawcze

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane cd.

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Sieć Hopfielda. Sieci rekurencyjne. Ewa Adamus. ZUT Wydział Informatyki Instytut Sztucznej Inteligencji i Metod Matematycznych.

Sztuczne siei neuronowe - wprowadzenie

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Metody i techniki sztucznej inteligencji / Leszek Rutkowski. wyd. 2, 3 dodr. Warszawa, Spis treści

Elementy inteligencji obliczeniowej

MODELOWANIE RZECZYWISTOŚCI

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, Spis treści

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Uczenie sieci typu MLP

Sieci neuronowe jako sposób na optymalizacje podejmowanych decyzji. Tomasz Karczyoski Wydział W-08 IZ

Sztuczne sieci neuronowe

OCENA DZIAŁANIA AE. METODY HEURYSTYCZNE wykład 4 LOSOWOŚĆ W AE KRZYWE ZBIEŻNOŚCI ANALIZA STATYSTYCZNA:

Sieć przesyłająca żetony CP (counter propagation)

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Algorytmy sztucznej inteligencji

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD XI: Sztuczne sieci neuronowe

Wstęp do sztucznych sieci neuronowych

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

SZTUCZNA INTELIGENCJA

METODY INTELIGENCJI OBLICZENIOWEJ wykład 5

MATLAB Neural Network Toolbox przegląd

SIECI REKURENCYJNE SIECI HOPFIELDA

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Sieci neuronowe w Statistica

Obliczenia Naturalne - Sztuczne sieci neuronowe

Co to jest grupowanie

Podstawy Sztucznej Inteligencji Sztuczne Sieci Neuronowe. Krzysztof Regulski, WIMiIP, KISiM, B5, pok. 408

Wykład 2. Model Neuronu McCulocha-Pittsa Perceptron Liniowe Sieci Neuronowe

Wstęp do sieci neuronowych laboratorium 01 Organizacja zajęć. Perceptron prosty

Deep Learning na przykładzie Deep Belief Networks

sieci jednowarstwowe w MATLABie LABORKA Piotr Ciskowski

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

KARTA MODUŁU KSZTAŁCENIA

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM

ELEMENTY SZTUCZNEJ INTELIGENCJI. Sztuczne sieci neuronowe

Sieci Kohonena Grupowanie

Sztuczne sieci neuronowe. Uczenie, zastosowania

Monitorowanie i Diagnostyka w Systemach Sterowania

Zastosowania sieci neuronowych - automatyka identyfikacja sterowanie

Inteligentne systemy informacyjne

synaptycznych wszystko to waży 1.5 kg i zajmuje objętość około 1.5 litra. A zużywa mniej energii niż lampka nocna.

Wykład 1: Wprowadzenie do sieci neuronowych

Zastosowania sieci neuronowych

BIOCYBERNETYKA SIECI NEURONOWE. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Definicja perceptronu wielowarstwowego

Metody sztucznej inteligencji Zadanie 3: (1) klasteryzacja samoorganizująca się mapa Kohonena, (2) aproksymacja sieć RBF.

NEURAL NETWORK ) FANN jest biblioteką implementującą SSN, którą moŝna wykorzystać. w C, C++, PHP, Pythonie, Delphi a nawet w środowisku. Mathematica.

Podstawy Sztucznej Inteligencji (PSZT)

WYKŁAD 4 PLAN WYKŁADU. Sieci neuronowe: Algorytmy uczenia & Dalsze zastosowania. Metody uczenia sieci: Zastosowania

Sieci M. I. Jordana. Sieci rekurencyjne z parametrycznym biasem. Leszek Rybicki. 30 listopada Leszek Rybicki Sieci M. I.

Zrealizować sieć neuronową (learnbpm) uczącą się odwzorowania z = x 2 + y 2 dla x i y zmieniających się od -1 do 1.

Celem tych ćwiczeń jest zapoznanie się z klasyfikacją za pomocą sieci neuronowych.

Optymalizacja ciągła

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak

METODY INTELIGENCJI OBLICZENIOWEJ wykład 4

Sztuczne sieci neuronowe Ćwiczenia. Piotr Fulmański, Marta Grzanek

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD X: Sztuczny neuron

Przykładowe funkcje przejścia używane przy budowie sztucznych neuronów

SZTUCZNE SIECI NEURONOWE

Podstawy Sztucznej Inteligencji

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka ADALINE.

DEKOMPOZYCJA HIERARCHICZNEJ STRUKTURY SZTUCZNEJ SIECI NEURONOWEJ I ALGORYTM KOORDYNACJI

METODY INŻYNIERII WIEDZY

Uczenie sieci neuronowych i bayesowskich

Systemy uczące się wykład 2

Transkrypt:

Wstęp do teorii sztucznej inteligencji Wykład V Algorytmy uczenia SSN

Modele sieci neuronowych. SSN = Architektura + Algorytm

Wagi i wejścia dla sieci neuronuowej: reprezentacja macierzowa

δ i = z i y i W(k+1) ij = W(k) ij + η δ i X j X wektor sygnałów wejsciowych Y wektor sygnałów wyjsciowych W macierz wag Z wektor wejsciowych sygnałów porządanych δ wektor błedu η współczynnik uczenia, zwykle z przedziału [0-1] Metoda uczenia AdaLiNe (Adaptive Linear Network); Uczenie z nauczycielem (supervised learning)

z nauczyciela:

z nauczyciela: Uczenie bez nauczyciela: Dobór wag wiąże się z wykorzystaniem bądź to konkurencji neuronów między sobą (strategia Winner Takes All WTA lub Winner Takes Most WTM), bądź korelacji sygnałów uczących (metody hebbowskie); W uczeniu bez nauczyciela na etapie adaptacji neuronu nie jesteśmy w stanie przewidzieć sygnału wyjściowego neuronu;

Dotychczas zajmowaliśmy się: regułą perceptronową (z nauczycielem, sygnał uczący jest różnicą miedzy wartością rzeczywistą a pożądaną) Nowe idee: reguła Hebba (bez nauczyciela, sygnałem uczącym jest sygnał wyjściowy) reguła delta (dla neuronów z ciągłymi funkcjami aktywacji I nadzorowaniem). Chodzi o minimalizację kwadratowego kryterium błędu. reguła korelacyjna (poprawka każdej składowej wektora wag jest proporcjonalna do iloczynu odpowiedniej składowej obrazu wejściowego i pożądanego przy tym wzorca wyjścia) metoda więć nieco podobna do uczenia z nauczycielem. reguła 'wygrywający bierze wszystko' różni się zdecydowanie od pozostałych tu opisanych. Jest ona przykładem nauki z rywalizacją.

Model D. Hebba W modelu Hebba przyrost wagi w ij w procesie uczenia jest proporcjonalny do iloczynu sygnałów wejsciowego x i oraz wyjściowego y j neuronów połączonych wagą w ij. w ij (k +1) = w ij (k) +η x i (k) y j (k) Model Hebba ma być odwzorowaniem sytuacji w sieci prawdziwych neuronów, gdy sygnał ulega wzmocnieniu przy częstym powtarzaniu, gdy następuje wtedy lepsze zapamietywanie. Powyższa formuła ma jednak ograniczone zastosowanie w praktyce: matematycznie nie może bowiem opisywać procesów, albowiem (udowodniono to ogólnie, ale jest to też widoczne tutaj) będzie prowadzić do eksponencjalnej rozbieżności wyników.

Przykład rozbieżności modelu Hebba w przypadku najprostszym, 1 nueron, 1 wejscie, 1 wyjście: y(0) = w x w(1) = w +η x y(0) y(1) = w(1) x = (w +η x y(0)) x = w x + η x y(0) x= = y(0) (1+η x x) 2 y(2) = y(1) (1+η x x) = y(0) (1+η x x) Ogólnie: y(k) = y(0) (1+η x x) k A więc mamy do czynienia z rozbieżnością eksponencjalną. Udowodniono ogólnie, że rozbieżnoś eksponencjalna istnieje w przypadku dowolnie złóżonej sieci.

Uogólniony Algorytm Hebba (Generalized Hebbian Algorithm) to jedna z odmian modelu Hebba, w której unika się eksponencjalnej rozbieżności, poprzez wprowadzenie negatywnego sprzężenia zwrotnego do zmiany wag: W przypadku dwukomórkowej sieci Kohonena z dwoma wejściami i dwoma wyjściami, bedziemy mieli następujące równania na zmianę wag: w11= w11 + eta * y1 * (x1 - w11*y1); w12= w12 + eta * y2 * (x1 - w11*y1 - w12*y2); w21= w21 + eta * y1 * (x2 - w21*y1); w22= w22 + eta * y2 * (x2 - w21*y1 - w22*y2);

Uogólniony Algorytm Hebba w Python #!/usr/bin/env python # -*- coding: utf-8 -*- # Ten plik zapisujemy pod nazwą z rozszerzeniem.py (np. uczenie2.py) # i uruchamiamy komenda: python uczenie4.py (albo, lepiej, otwieramy plik w IDLE, w przypadku Windows) # Siec dwukomorkowa Kohonena (kazde wejscie polączone do każdej komórki): # 2 wejscia x1, x2 dla komorki 1, 1 wyjscie y1. # Te same wejscia dla komorki 2. Komorka 2 ma 1 wyjscie y2. # DEFINIUJEMY wektor wejść: x1 = 0.5; x2 = 0.9; # Macierz wag W bedzie więc mieć 4 składowe, w11 i w12 dla komórki pierwszej # oraz w21 i w22 dla komórki drugiej. Przyjmijmy wagi poczatkowe. w11= 0.5; w12=0.7; w21= 0.3; w22=0.5; # Uogólniony Algorytm HEBBA # Współczynnik uczenia eta niechaj wynosi 0.5. DEFINIUJEMY: eta = 0.1; # Sumowanie S bedzie dane wzorami: y1 = w11*x1 + w12*x2, y2 = w21*x1 + w22*x2 # DEFINIUJEMY funkcje y. Niechaj bedzie ona dana ogólnie w ten sposób: def y(w1, w2): return w1*x1 + w2*x2; # W modelu HEBBA w PIERWSZYM KROKU OBLICZEN przyjmujemy wartości y1, y2=1 dla obliczeń korekty wag # y1=y(w11, w12);y2=y(w21, w22); y1=1;y2=1; # Wypiszmy pierwszym razem wartości początkowe: print `w11`+"\t"+`w12`+"\t"+`w21`+"\t"+`w22`+"\t"+`y1`+"\t"+`y2`; # KROK DRUGI OBLICZEN. Obliczamy nowe wartości macierzy wag w modelu HEBBA: w11= w11 + eta * y1 * (x1 - w11*y1); w12= w12 + eta * y2 * (x1 - w11*y1 - w12*y2); w21= w21 + eta * y1 * (x2 - w21*y1); w22= w22 + eta * y2 * (x2 - w21*y1 - w22*y2); # KROK TRZECI OBLICZEN # Zobaczmy, jakie sa nowe wartosci macierzy w oraz jaka jest nowa wartosc y: print "w11="+`w11`+"\tw12="+`w12`+"\tw21="+`w21`+"\tw22="+`w22`+"\ty1="+`y1`+"\ty2="+`y2`; # POWTARZAMY KROKI od 1 do 3 (w pętli), az do czasu gdy y staje sie dostatecznie bliskie z. for i in range(0,50,1): y1=y(w11, w12);y2=y(w21, w22); w11= w11 + eta * y1 * (x1 - w11*y1); w12= w12 + eta * y2 * (x1 - w11*y1 - w12*y2); w21= w21 + eta * y1 * (x2 - w21*y1); w22= w22 + eta * y2 * (x2 - w21*y1 - w22*y2); print `i`+"\t"+`w11`+"\t"+`w12`+"\t"+`w21`+"\t"+`w22`+"\t"+`y1`+"\t"+`y2`;

Algorytm Oja odmiana Uogólnionego Algorytmu Hebba w ij (k +1) = w ij (k) +η y j - jest stabilny (zbieżny) - ponoć dobrze opisuje rzeczywiste sieci neuronowe (k) (x (k)-y (k) w (k)) i i ij W przypadku dwukomórkowej sieci Kohonena z dwoma wejściami i dwoma wyjściami, bedziemy mieli następujące równania na zmianę wag: w11= w11 + eta * y1 * (x1 - w11*y1); w12= w12 + eta * y2 * (x1 - w12*y2); w21= w21 + eta * y1 * (x2 - w21*y1); w22= w22 + eta * y2 * (x2 - w22*y2); A więc niewielka różnica w porównaniu z Uogólnionym Algorytmem Hebba: w11= w11 + eta * y1 * (x1 - w11*y1); w12= w12 + eta * y2 * (x1 - w11*y1 - w12*y2); w21= w21 + eta * y1 * (x2 - w21*y1); w22= w22 + eta * y2 * (x2 - w21*y1 - w22*y2); Wystarczy zmienić te 4 linijki w kodzie powyżej, by otrzymać model Oja.

Algorytm Oja w Python #!/usr/bin/env python # -*- coding: utf-8 -*- # Ten plik zapisujemy pod nazwą z rozszerzeniem.py (np. uczenie2.py) # i uruchamiamy komenda: python uczenie4.py (albo, lepiej, otwieramy plik w IDLE, w przypadku Windows) # Siec dwukomorkowa Kohonena (kazde wejscie polączone do każdej komórki): # 2 wejscia x1, x2 dla komorki 1, 1 wyjscie y1. # Te same wejscia dla komorki 2. Komorka 2 ma 1 wyjscie y2. # DEFINIUJEMY wektor wejść: x1 = 0.5; x2 = 0.9; # Macierz wag W bedzie więc mieć 4 składowe, w11 i w12 dla komórki pierwszej # oraz w21 i w22 dla komórki drugiej. Przyjmijmy wagi poczatkowe. w11= 0.5; w12=0.7; w21= 0.3; w22=0.5; # Uogólniony Algorytm HEBBA # Współczynnik uczenia eta niechaj wynosi 0.5. DEFINIUJEMY: eta = 0.1; # Sumowanie S bedzie dane wzorami: y1 = w11*x1 + w12*x2, y2 = w21*x1 + w22*x2 # DEFINIUJEMY funkcje y. Niechaj bedzie ona dana ogólnie w ten sposób: def y(w1, w2): return w1*x1 + w2*x2; # W modelu HEBBA w PIERWSZYM KROKU OBLICZEN przyjmujemy wartości y1, y2=1 dla obliczeń korekty wag # y1=y(w11, w12);y2=y(w21, w22); y1=1;y2=1; # Wypiszmy pierwszym razem wartości początkowe: print `w11`+"\t"+`w12`+"\t"+`w21`+"\t"+`w22`+"\t"+`y1`+"\t"+`y2`; # KROK DRUGI OBLICZEN. Obliczamy nowe wartości macierzy wag w modelu HEBBA: w11= w11 + eta * y1 * (x1 - w11*y1); w12= w12 + eta * y2 * (x1 - w12*y2); w21= w21 + eta * y1 * (x2 - w21*y1); w22= w22 + eta * y2 * (x2 - w22*y2); # KROK TRZECI OBLICZEN # Zobaczmy, jakie sa nowe wartosci macierzy w oraz jaka jest nowa wartosc y: print "w11="+`w11`+"\tw12="+`w12`+"\tw21="+`w21`+"\tw22="+`w22`+"\ty1="+`y1`+"\ty2="+`y2`; # POWTARZAMY KROKI od 1 do 3 (w pętli), az do czasu gdy y staje sie dostatecznie bliskie z. for i in range(0,50,1): y1=y(w11, w12);y2=y(w21, w22); w11= w11 + eta * y1 * (x1 - w11*y1); w12= w12 + eta * y2 * (x1 - w12*y2); w21= w21 + eta * y1 * (x2 - w21*y1); w22= w22 + eta * y2 * (x2 - w22*y2); print `i`+"\t"+`w11`+"\t"+`w12`+"\t"+`w21`+"\t"+`w22`+"\t"+`y1`+"\t"+`y2`;

Jeszcze inna odmiana Uogólnionego Algorytmu Hebba: Uwzględnia się zapominanie przez sieć tego, co już sięc została nauczona, czyli własnych wag: w ij (k +1) = w ij (k) (1- gdzie γ<1 γ) +η y (k) (x (k)- (k) w (k)), j i i ij

Analogie Rozwiązywanie problemu SSN (uczenie SSN) jest jak szukanie drogi, po której rzeka spływa ze źródła górskiego (w wielowymiarowej przestrzeni wag). W przypadku problemu z nauczycielem, pokazujemy jej drogę. W przypadku problemu bez nauczyciela, jedynie poznajemy, dokąd rzeka dopłynęła. Czasem, tylko czasem, możemy odgadnąć jej drogę, znając jej ujście do morza.

Analogie z innych dziedzin: - Teoria szkła. Albo szkła spinowego. - Opis niestabilności w wielu układach mezoskopowych. - Procesy modelowania komputerowego. Rola parametru eta.

Późniejsze modele sieci neuronowych: To m.in. F. Rosenblatt teoria dynamicznych systemów neuronowych modelujących mózg, oparta na modelu perceptronowym komórki nerwowej.

Pojawiają sie pytania i uogólnienia Który z tych modeli najlepiej opisuje rzeczywistą sieć neuronową? Co my naprawdę wiemy o funkcjonowaniu pojedynczego neuronu? Na ile modele matematyczne opisują ich fizyczne funkcjonowanie? Teoria SSN tworzona jest nie tylko z myślą o modelowaniu naturalnych sieci neuronowych. A nawet bardziej jest modelem do opisu złożonych systemów (np. społecznych). Do opisu i przewidywania złożonych sytuacji, gdy określonym stanom wejsciowym odpowiadają określone stany wyjściowe, ale nie znamy mechanizmów tego, co dzieje się w środku procesu. Zgaduję, że istnieje w tej dziedzinie bardzo wiele jeszcze do zrobienia...

Studenckie prezentacje na wybrane tematy (5-15 minut) 1. Co to jest sieć Hamminga? Albo Hopfielda? (stosowane w uczeniu) 13/XI 2. Pompa sodowo-potasowa 27/XI 3. EEG, fale mózgowe. Jak są badane? Na ile model SSN jest przydatny do ich analizy? - 27/XI 4. Model Hodgkin-Huxley'a propagacji sygnału 11/XII 5. Niespodzianka (oby na temat ;) 11/XII 6. Historia badań sztucznych sieci neuronowych i sztucznej inteligencji. Rola polskiej nauki? - 8/I 7. Sztuczna Inteligencja 8/I 8. Chemo-fizjologia neuronu. Jak duże potencjały elektryczne występują? Jak można je mierzyć? - 22/I 6. Dostępne oprogramowanie do modelowania SSN, czy to na poziomie dydaktycznym (jako pomoc dla studentów i naczycieli) czy też zaawansowane systemy komputerowe. 7. Elektroniczne (sprzętowe) realizacje układów logicznych (bramki AND, OR. NOT, XOR, etc) 8. Czy i na ile wykorzystywane modele matematyczne SSN odpowiadają prawdziwym SN? 27/XI 11/XII 8/I 22/I