praca dyplomowa sieci neuronowe.doc

(756 KB) Pobierz
Praca magisterska

AKADEMIA GÓRNICZO - HUTNICZA

IM. STANISŁAWA STASZICA W KRAKOWIE

______________________________________________________

WYDZIAŁ ELEKTROTECHNIKI AUTOMATYKI INFORMATYKI I ELEKTRONIKI

 

KATEDRA INFORMATYKI

 

 

Praca dyplomowa

 

Temat pracy:

System do poglądowego przedstawienia właściwości sieci neuronowych.

 

Autorzy:

Piotr Swatowski

Tomasz Góźdź

 

 

Kierunek:

Informatyka

 

 

Ocena:

.................................

 

 

Promotor:

Prof. dr hab. inż. Ryszard Tadeusiewicz

Recenzent:

 

 

Kraków 1998/99

 

5

 

 



1              Cel              4

2              Sztuczne sieci neuronowe              5

2.1              Rys historyczny rozwoju sieci neuronowych              5

2.2              Definicja i podstawowe właściwości sieci neuronowych              7

2.3              Opis działania neuronu              9

2.4              Uczenie sieci neuronowych              10

2.4.1              Uczenie z nauczycielem              10

2.4.2              Uczenie bez nauczyciela              11

2.5              Organizacja uczenia sieci              11

2.6              Projektowanie zbioru uczącego dla sieci neuronowej              13

2.6.1              Rozmiar zbioru              13

2.6.2              Błędy przypadkowe              13

2.6.3              Zależność rozmiaru sieci i rozmiaru zbioru uczącego              14

2.6.4              Rozwarstwienie zbioru uczącego              14

2.6.5              Ukryte błędy systematyczne              14

2.7              Reguły uczenia              15

2.7.1              Reguła Delta              15

2.7.2              Reguła Hebba              16

3              Opis implementacji poglądowej prezentacji wybranych przykładów sieci neuronowych              19

3.1              Prezentacja neuronu              19

3.2              Prosta sieć neuronowa (z WAT)              23

3.3              Uczenie pojedynczego neuronu              25

3.4              Uczenie prostej sieci              28

3.5              Sieć neuronowa jako filtr sygnału z zakłóceniami              31

3.6              Rozpoznawanie obrazu              33

3.7              Backpropagation - najpopularniejsza metoda uczenia liniowych sieci neuronowych              38

3.8              Sieć Kohonena              44

3.9              Samouczenie sieci neuronowej              48

3.10              Sieć Hopfielda              53

4              Opis środowiska Delphi jako przykład narzędzia typu RAD              59

4.1              Charakterystyka środowiska              59

4.1.1              Język programowania: Pascal (zarys)              60

4.1.2              Środowisko RAD: Delphi              61

4.1.3              Komponenty – nowa jakość w programowaniu              62

4.1.4              Mocne i słabe strony Delphi              63

5              Prezentacja programu komputerowego              65

5.1              Opis konstrukcji programu              65

5.2              Poszczególne moduły programu komputerowego              65

5.2.1              Moduł pierwszy - Prezentacja neuronu              65

5.2.2              Moduł drugi - Prosta sieć neuronowa (z WAT)              68

5.2.3              Moduł trzeci - Uczenie pojedynczego neuronu              71

5.2.4              Moduł czwarty - Uczenie prostej sieci              74

5.2.5              Moduł piąty - Sieć neuronowa jako filtr sygnału z zakłóceniami              76

5.2.6              Moduł szósty - Rozpoznawanie obrazu              81

5.2.7              Moduł siódmy - Backpropagation - najpopularniejsza metoda uczenia liniowych sieci neuronowych              86

5.2.8              Moduł ósmy - Sieć Kohonena              95

5.2.9              Moduł dziewiąty - Samouczenie sieci neuronowej              99

5.2.10              Moduł dziesiąty - Sieć Hopfielda              103

6              Podsumowanie              110

6.1              Wnioski              110

6.2              Propozycje dalszej ewolucji programu              110

7              Literatura              112

1        Cel

Celem naszej pracy jest stworzenie środowiska (dydaktyczno - symulacyjnego programu komputerowego) umożliwiającego użytkownikowi zapoznanie się z możliwościami zastosowań oraz ze sposobem działania sieci neuronowych. Program ten w założeniu jest narzędziem edukacyjnym i służyć ma do wizualizacji wybranych właściwości sieci neuronowych oraz przykładów istotnych aspektów uczenia, testowania i wykorzystania sieci.

Do aplikacji dołączamy również system pomocy dla użytkownika (Help), zawierający wstęp teoretyczny i szczegółowe omówienie prezentowanych przez nas zagadnień.

2        Sztuczne sieci neuronowe

W rozdziale tym zawrzemy informacje o sieciach neuronowych, ich częściach składowych – neuronach, konstrukcji, typach, sposobach uczenia oraz testowania.

Naszkicujemy również historyczny aspekt ewolucji zainteresowania, budowy teorii jak i jej praktycznego wykorzystania w materii sztucznych sieci neuronowych.

2.1      Rys historyczny rozwoju sieci neuronowych

W początkowym okresie, gdy nie było formalnych podstawa nauki sztucznych sieci neuronowych zainteresowanie badaczy osadzonych mocno w dziedzinie neurofizjologii czy bioniki skierowane były na opisie mechanizmów działania mózgu czy pojedynczych komórek układu nerwowego. Dziedzina sieci neuronowych zaistniała samodzielnie wraz z wydaniem historycznej pracy [5], w której po raz pierwszy pokuszono się o matematyczny opis komórki neuronowej. W tejże pracy istotnym elementem było również określenie zasad przetwarzania informacji opartego na kanwie modelu sztucznego neuronu.

Kolejnym kanonem wyznaczającym na długi czas rozwój wiedzy o sieciach neuronowych stanowią dwie pozycje: książka [6] prezentująca tę problematykę od strony rozwiązań technicznych oraz książka [7] stanowiąca podstawowe źródło wiadomości biologicznych, które to od zarania dziedziny sztucznych sieci neuronowych są niedoścignionym wzorem i źródłem inspiracji dla kolejnych pokoleń badaczy.

Pierwszym szeroko znanym przykładem znanej sieci neuronowej był Perceptron [8]. Sieci ta jako układ częściowo elektromechaniczny a częściowo elektroniczny została zbudowana w 1957 w Cornell Aeronautical Laboratory. Sieć ta miała za zadanie rozpoznawać znaki. Programowanie tego rozwiązania oparto na zasadach prostego uczenia co stanowiło o wielkim kroku na przód w dziedzinie sieci neuronowych. Po ogłoszeniu wyników przez twórców nastąpił gwałtowny rozwój tego typu sieci neuronowych na całym świecie. Oczywiście większość naśladowców nie wyszło ponad odtworzenie pierwotnego rozwiązania, ale znaleźli się i tacy którzy twórczo przekształcili pomysły Rosenblatta i Wightmana.

Bardzo istotnym tu przykładem jest rozwiązania zaproponowane przez Bernarda Widrowa z Uniwersytetu Standforda sieć Madaline zbudowana w 1960 roku. Sieć ta składała się z pojedynczych elementów Adaline (ang. Adaptive linear element), który powielony oraz połączony dało układ Madaline (ang. Many Adaline). [9, 10]

W owych pionierskich czasach próbowano nawet tworzyć model całego mózgu. Obecnie gdy o mózgu wiemy już znacznie więcej nikt nie porywa się na takiego rodzaju zaangażowania.

Tempo rozwoju badań nad problematyką sztucznych sieci neuronowych zostało gwałtownie zahamowane na początku lat 70-tych po publikacji książki [11], która to zawierała formalny dowód, że sieci jednowarstwowe (podobne do perceptronu) mają bardzo ograniczony zakres zastosowań. Taki stan - impasu utrzymywał się przez około 15 lat aż do ukazania się serii publikacji, które w sposób bardzo sugestywny pokazywały, że sieci nieliniowe wolne są od ograniczeń pokazanych w pracy [11]. Jednocześnie mniej więcej w tym czasie ogłoszono kilka bardzo efektywnych, formalnych przepisów na uczenie sieci wielowarstwowych.

Okres lat 70-tych nie jest jednak zupełnie bezpłodny jeśli chodzi o tworzone nowe konstrukcje sieci neuronowych. Wymienić tu należy, chociażby zbudowaną przez Stephena Grossberga na uniwersytecie w Bostonie sieć Avalanche. Służyła ona do rozpoznawania mowy oraz sterowaniem ramieniem robota. Z kolei w MIT powstaje Cerebellatron skonstruowany przez badaczy Davida Mara, Jamesa Albusa i Andresa Pollioneze, służący także do sterowania robota. Odmienne zastosowanie miała sieć Brain State in the Box, zbudowana przez Jamesa Andersona z uniwersytetu Browna w 1977 roku. Funkcjonalnie była odpowiednikiem pamięci asocjacyjnej z dwustronnym dostępem (BAM), ale jej działanie nie było związane z iteracyjnym procesem poszukiwania, lecz polegało na szybkich zależnościach typu wejście – wyjście.

W momencie opracowania technologii wytwarzania sztucznych modeli komórek nerwowych w postaci układów scalonych pojawiły się w latach 80-tych pierwsze konstrukcje o dużych rozmiarach oraz znaczących mocach obliczeniowych.

W tym czasie pojawiają się pierwsze sieci ze sprzężeniami zwrotnymi. Istotnym przykładem takiej konstrukcji jest opracowana przez Johna Hopfielda z AT&T Bell Labs sieć wykorzystywana do odtwarzania obrazów z ich fragmentów, a także stosowana do rozwiązywania zadań optymalizacyjnych – słynny problem komiwojażera.

Renesans szerokiego zainteresowania tematyką sieci neuronowych datuję się na drugą połowę lat 80-tych. Wtedy to swoją przełomową książkę publikuje  J.A. Anderson [12], , a J.J.Hopfield wprowadza rekurencyjną architekturę pamięci neuronowych i opisuje w swoich pracach obliczeniowe własności sieci ze sprzężeniem zwrotnym. Ożywienie wniosło także opublikowanie monografii opracowanej przez McClellanda i Rumelharta [19] na temat równoległego przetwarzania rozproszonego – publikacja ta spowodowała wzrost zainteresowania możliwościami sieci warstwowych.

Począwszy od lat 1986-87 datuje się wzrost liczby projektów badawczych w dziedzinie sieci neuronowych. Wzrasta również liczba zagadnień, które można rozwiązać przy użyciu sieci neuronowych  – dokładna analiza różnego rodzaju zag...

Zgłoś jeśli naruszono regulamin