1 / 32

Komputerowe Wspomaganie w Inżynierii Materiałowej

Komputerowe Wspomaganie w Inżynierii Materiałowej. Sieci neuronowe. Sztuczne sieci neuronowe. Sieci neuronowe to matematyczne i obliczeniowe modele, których budowa została zainspirowana strukturą i funkcjonowaniem biologicznych sieci neuronowych.

ora
Download Presentation

Komputerowe Wspomaganie w Inżynierii Materiałowej

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Komputerowe Wspomaganie w Inżynierii Materiałowej Sieci neuronowe

  2. Sztuczne sieci neuronowe Sieci neuronowe to matematyczne i obliczeniowe modele, których budowa została zainspirowana strukturą i funkcjonowaniem biologicznych sieci neuronowych. Zbudowane są z połączonych grup tzw. sztucznych neuronów. W większości przypadków są układami adaptacyjnymi, które potrafią zmieniać swoją strukturę i parametry w oparciu o zewnętrzne lub wewnętrzne informacje, które przepływają przez sieć w fazie uczenia. Podstawowym elementem obliczeniowym takiej sieci jest sztuczny neuron.

  3. Sieci neuronowe są trenowane i wykorzystywane do wykonywanie złożonych zadań w takich dziedzinach jak: • rozpoznawanie obrazów (wzorców) • rozpoznawania mowy • identyfikacja • klasyfikacja • systemy kontroli • systemy ekspertowe (wspomaganie decyzji)

  4. Uproszczony schemat neuronu biologicznego

  5. Ogólny schemat neuronu x1 w1 dowolna (na ogół nieliniowa funkcja aktywacji) Funkcja aktywacji Sumator wyjście x2 w2 x3 w3

  6. Przykład 0,7 0,5 Sumator 2,89 1,2 -0,2 2,3 1,0 Jest to przykład neuronu liniowego. Funkcja aktywacji f(s)=s, więc została pominięta.

  7. Zauważmy, że w przypadku gdy funkcja aktywacji ma postać to neuron nieliniowy staje się liniowym, gdyż

  8. Neuron z funkcją progową 1 -1 (Inne nazwy to funkcja unipolarna lub funkcja Heaviside’a)

  9. Przykłady funkcji aktywacji Funkcja bipolarna Funkcja unipolarna

  10. Funkcja sigmoidalna Wykres dla b=1.

  11. Poniżej jest przedstawiony schemat perceptronu x0=1 w0 x1 w1 wejście x2 w2 wyjście 1 S -1 xn wn

  12. Funkcja aktywacji perceptronu Rysunkowy schemat perceptronu sugeruje następującą funkcję aktywacji W literaturze spotyka się także (może nawet częściej) inną definicję W gruncie rzeczy nie ma tu zasadniczej różnicy, gdyż perceptron służy do klasyfikacji: czy sygnał wejściowy (reprezentowany przez punkt lub wektor kolumnowy) należy do jednej klasy czy do drugiej.

  13. Cześć liniowa perceptronu (sumator, S) Dla danych wag perceptronu w1, …, wn oraz progu -b, gdy impulsy wejściowe są równe x1, …, xn, to pobudzenie neuronu jest równe Używając symbolu iloczynu skalarnego możemy to zapisać też tak gdzie

  14. Istota działania perceptronu Funkcja aktywacji rozróżnia dwa przypadki: (i) s > 0, (ii) s ≤ 0, zatem to co jest kluczowe w działaniu perceptronu sprowadza się do klasyfikacji punktów (wektorów) x=(x1,…,xn) wg poniższych nierówności: Oznacza to, że punkty x spełniające nierówność (i) będą klasyfikowane do jednej kategorii, a punkty spełniające nierówność (ii) do drugiej.

  15. Pojedynczy neuron to oczywiscie za mało, aby oczekiwać, że taki system obliczeniowy był w praktyce użyteczny. Prawdziwą siłę obliczeniową możemy spodziewać się uzyskać dopiero gdy zastosujemy zbiór wielu sztucznych neuronów odpowiednio połączonych. Wtedy powstaje sztuczna sieć neuronowa o pewnej liczbie wejść i pewnej liczbie wyjść. W zastosowaniach spotyka sie wiele struktur takich sieci (czyli tzw. topologii) scharakteryzowanych przez sposób połączenia poszczególnych neuronów. W zasadzie możemy te sieci podzielić na dwie duże klasy: sieci jednokierunkowe (ang. feed forward) oraz sieci rekurencyjne. W sieciach jednokierunkowych (jedno- lub wielowarstwowych) sygnały płyną tylko w jednym kierunku od wejścia do wyjścia. Oznacza to, że w takiej sieci nie ma połączeń powrotnych. Natomiast w sieciach rekurencyjnych sygnały mogą zawracać i przebiegać wielokrotnie przez sieć. W takiej sieci występują więc połączenia powrotne – syganły wyjściowe pewnych neuronów mogą być kierowane na wejścia tych samych lub innych neuronów wielokrotnie.

  16. Jednowarstwowa i jednokierunkowa sieć N=liczba wejść K=liczba wyjść Dla wygody progi (bi) włączamy w powyższej sumie jako wagi odpowiadające impulsowi x0=1. Tak więc wk,0=bk.

  17. Przykład sieci rekurencyjnej w11 y1 S, f w12 w13 w21 y2 S, f w22 w23 w31 y3 S, f w32 w33 Na rysunku widać jednowarstwową sieć ze sprzężeniem zwrotnym. Widać, że wyjścia z poszczególnych neuronów mogą być także kierowane na wejścia (tych samych jak i innych neuronów). Na rysunku nie zaznaczono sygnałów wejściowych, x1, x2, x3, gdyż są one podawane do sieci tylko raz.

  18. Model sieci Hopfielda (n=3) y1 S w12 w13 w21 1 1 1 y2 S w23 -1 -1 -1 w31 y3 S w32 Klasyczna sieć Hopfielda nie posiada sprzężenia neuronu z samym sobą, tzn. waga takiego połączenia jest równa zero, wii=0. Dlatego często na rysunkach z tymi sieciami nie jest w ogóle rysowane połączenie i—i.

  19. Przykład Wykorzystamy sieć Hopfielda do zapamiętania i rozpoznawania cyfr 0-9. Wzorcowe cyfry są zdefiniowane na matrycy o wymiarach 7x7 pikseli. Przedstawione są poniżej – zostały ona użyte do uczenia sieci metodą pseudoinwersji. Liczba neuronów sieci jest równa liczbie pikseli matrycy: 7·7=49. W kodowaniu użyto schematu:  → (-1),  → (+1).

  20. Pierwszy wiersz – wzorce. Drugi wiersz – przykładowe zaburzone cyfry poprawnie rozpoznane. Trzeci wiersz – przykładowe obrazy, które nie zostały zakwalifikowane do kategorii z pierwszego wiersza. W przypadku cyfry 2 wydaje się to poprawne (mimo, że zaburzenie jest minimalne, ale dla cyfry 4 raczej uznalibyśmy to z błąd sieci. Cyfry wzorcowe Wzorce Rozpoznane Wzorce klasyfikowane do innych kategorii

  21. Ogólny schemat uczenia (trenowania) jednokierunkowej sieci neuronowej z nauczycielem (ang. supervised)

  22. Sieci neuronowe w MATLABI-e MATLAB jest środowiskiem do obliczeń numerycznych. Pierwotnie powstał jako pakiet wspomagający obliczenia w algebrze liniowej, stąd posiada ogromne możliwości operacji na macierzach. Jego nazwa nawiązuje do tych źródeł (MATLAB od MatrixLaboratory). Obecnie jest to jednak wszechstronne środowisko obliczeniowe oferujące możliwości obliczeń w praktycznie każdej dziedzinie metod numerycznych. Niezwykle cennym elementem w MATLAB-a są tzw. toolbox-y, czyli wyspecjalizowane pakiety do obliczeń i zastosowań w konkretnych obszarach. Jednym z takich pakietów jest Neural Network.

  23. Podstawowe funkcje aktywacji neuronów – nazwy zgodne z pakietem Neural Network MATLAB-a hardlim = funkcja unipolarna (Heaviside’a) purelin = funkcja liniowa, f(s)=s logsig = funkcja sigmoidalna

  24. Standardowa symbolika używana w opisie neuronów w MATLAB-ie Dla pojedynczego neuronu nie ma w zasadzie potrzeby używania dla wag notacji z podwójnym indeksem w1,j. Można posługiwać się pojedynczym indeksem j oznaczać wagi przez wj.

  25. Przykład (neuron liniowy) Ciąg uczący składa się z czterech par (Q=4): Wejście: Wyjście: Wagi początkowe i próg:

  26. Komendy MATLAB-a Przygotowanie tablic z danymi. P=wejścia, T=oczekiwane wartości na wyjściu. P=[1 2 2 3; 2 1 3 1]; T=[-100 50 50 100]; net=newlin(P,T); sim(net,P); net=train(net,P,T) Komenda tworząca nowy neuron liniowy. Obiekt jest zapisany do zmiennej net. Obliczenie co zwraca sieć (symulacja). Na razie sieć jest tylko zainicjalizowana – nie była uczona. Uczenie neuronu (z nauczycielem – T).

  27. Przykład(perceptron z dwoma wejściami, jednym wyjściem, funkcja aktywacji progowa) Problem funkcji logicznej OR

  28. Komendy MATLAB-a Tym razem użyjemy perceptronu, a nie neuronu liniowego. Dlatego funkcja tworzącą sieć będzie newp. net=newp([-2 2;-2 2],1); P=[1 1 0 0; 1 0 1 0]; T=[1 11 0]; net=train(net,P,T) sim(net,P)

  29. Sieci wielowarstwowe jednokierunkowe (ang. multi-layer, feedforward) Sieć wielowarstwową tworzą neurony ułożone w wielu warstwach, przy czym oprócz warstwy wejściowej i wyjściowej istnieje co najmniej jedna warstwa ukryta. Czasami sieć taka określa się mianem perceptronu wielowarstwowego. Teraz przeanalizujemy dokładniej szczególny przypadek – sieć o jednej warstwie ukrytej. W MATLAB-ie do utworzenia sieci wielowarstwowej jednokierunkowej służy komenda newff.

  30. Sieć wielowarstwowa

  31. Przykładowy schemat sieci wielowarstwowej jednokierunkowej (ang. multilayerfeedforwardnetwork) W zielonych ramkach zaznaczone są poszczególne warstwy: wejściowa, ukryta oraz wyjściowa. W tym przypadku jest jedna warstwa ukryta – ale w ogólności może ich być więcej.

  32. Przykład (wycena wartości nieruchomości) Wykorzystamy przykładowe dane zapisane w plikach houseInputs.txt oraz housePrices.txt. Zawierają on dane na temat rynku nieruchomości. Parametry opisujące sprzedaną nieruchomość (houseInputs.txt) oraz cenę sprzedaży (housePricess.txt). Dane wejściowe zawierają 506 przykładowych wektorów, każdy o 13-tu elementach opisujących cechy danej nieruchomości. Z kolei tablica housePrices zawiera 506 elementów (macierz 1x506), które są wartościami nieruchomości dla odpowiadających im zestawów parametrów z tablicy houseInputs. P=load(‘houseInputs.txt’,’-ascii’); T=load(‘housePrices.txt’,’-ascii’); size(P); size(T); P(:,1), T(1,1) net = newff(P,T,20); net = train(net,P,T);

More Related