Inteligentne Systemy Autonomiczne Uczenie w Sieciach Wielowarstwowych W

  • Slides: 39
Download presentation
Inteligentne Systemy Autonomiczne Uczenie w Sieciach Wielowarstwowych W oparciu o wyklad Prof. Geoffrey Hintona

Inteligentne Systemy Autonomiczne Uczenie w Sieciach Wielowarstwowych W oparciu o wyklad Prof. Geoffrey Hintona University of Toronto i Dr Kazimierza Duzinkiewicza, Politechnika Gdanska oraz Prof. Włodzisława Ducha Uniwersytet Mikołaja Kopernika Janusz A. Starzyk Wyzsza Szkola Informatyki i Zarzadzania w Rzeszowie

Metody uczenia sieci neuronowych W korzystaniu z sieci neuronowej można wyróżnić dwa etapy: etap

Metody uczenia sieci neuronowych W korzystaniu z sieci neuronowej można wyróżnić dwa etapy: etap uczenia – w oparciu o przedstawiane sieci dane, sieć uczy się realizować zadanie dla którego została zbudowana etap uogólniania – sieć realizuje zadanie dla którego została zbudowana dla danych które są jej przedstawiane Powinniśmy mieć miary oceny jakości każdego z tych etapów

Metody uczenia sieci neuronowych Istnieje obecnie wiele metod uczenia sieci neuronowych. Nikt dokładnie wie

Metody uczenia sieci neuronowych Istnieje obecnie wiele metod uczenia sieci neuronowych. Nikt dokładnie wie ile. Wiele ze znanych metod jest związanych z określonymi topologiami (klasami) sieci Podstawowy podział metod uczenia to rozróżnienie pomiędzy uczeniem z nadzorem (supervised learning) i bez nadzoru (unsupervised learning)

Rodzaje uczenia w sieciach neuronowych • Uczenie z nauczycielem (supervized) – Siec uczy sie

Rodzaje uczenia w sieciach neuronowych • Uczenie z nauczycielem (supervized) – Siec uczy sie przewidziec wyjscie przy zadanym wejsciu – Nauczyciel zapewnia poprawna odpowiedz • Uczenie z krytykiem (reinforced) – Siec uczy sie odpowiedzi ktora optymalizuje nagrode • Sygnal nagrody nie zawiera duzo informacji • Nagroda przychodzi czesto z opoznieniem • Uczenie bez nauczyciela (unsupervised) – Siec tworzy wewnetrzna reprezentacje wejscia e. g. tworzy klastery; wyodrebnia cechy • Skad wiadomo czy reprezentacja jest dobra?

Uczenie bez nadzoru Unsupervised learning Znajdź interesujące struktury w danych. Uczenie spontaniczne, odkrywanie ciekawych

Uczenie bez nadzoru Unsupervised learning Znajdź interesujące struktury w danych. Uczenie spontaniczne, odkrywanie ciekawych struktur w przestrzeni danych Korelacja zachowań systemu ze zmianą tych struktur Dominuje w okresie niemowlęcym.

Uczenie z nadzorem Supervised learning. Zadaj pytanie – pokaż opis obiektu (wektor własności), porównaj

Uczenie z nadzorem Supervised learning. Zadaj pytanie – pokaż opis obiektu (wektor własności), porównaj odpowiedź z pożądaną. Uczenie nadzorowane przez nauczyciela – szkolne. Zmiana parametrów wewnętrznych – adaptacja, w przyszłości trzeba robić jak najmniej błędów. Celem nie jest uczenie „na pamięć”, lecz generalizacja.

Uczenie z krytykiem Reinforcement learning. Optymalizacja zysków na dłuższą metę. Np. gry z przeciwnikiem,

Uczenie z krytykiem Reinforcement learning. Optymalizacja zysków na dłuższą metę. Np. gry z przeciwnikiem, krytyką jest przegrana lub wygrana na końcu partii. Uczenie z krytykiem lub z „wzmocnieniem” pożądanych zachowań po dłuższym okresie. Uczenie dojrzałe (nabieranie „mądrości”).

Uczenie z nauczycielem (supervised learning) • Kazdy przypadek treningowy zawiera wektor wejscia x i

Uczenie z nauczycielem (supervised learning) • Kazdy przypadek treningowy zawiera wektor wejscia x i porzadane wyjscie y (moze by wektor wyjsc) – Przyblizanie: Pozadane wyjscie jest liczba – Klasyfikacja: Pozadane wyjscie jest oznaczeniem klasy (w najprostszym przypadku 1 lub 0). • Trening zaczyna sie od wyboru przykladowej klasy – Przykladowa klasa jest sposobem uzycia parametrow, W, zeby przksztalcic kazdy wektor wejscia, x, w pozadane wyjscie y • Uczenie zwykla oznacza dopasowanie parametrow zeby zmniejszyc rozbieznosc pomiedzy pozadanym wyjsciem a aktualnym wyjsciem modelu w kazdym przypadku treningowym.

Uczenie bez nauczyciela (self-organizing) § W uczeniu bez nadzoru sieć jest samodzielna § Ocenia

Uczenie bez nauczyciela (self-organizing) § W uczeniu bez nadzoru sieć jest samodzielna § Ocenia prezentowane dane, znajduje pewne cechy zbioru danych i uczy się odzwierciedlać te cechy na swoim wyjściu. § Czym są dokładnie te cechy, które sieć może nauczyć się rozpoznawać zależy od konkretnego modelu sieci i metody uczenia. § Zwykle, sieć uczy się pewnych zwięzłych reprezentacji danych.

Uczenie z nauczycielem Posiadamy pewien zbiór wektorów wejściowych sieci o liczebności Q, które zamierzamy

Uczenie z nauczycielem Posiadamy pewien zbiór wektorów wejściowych sieci o liczebności Q, które zamierzamy wykorzystać w procesie uczenia sieci Wektory te będziemy nazywać uczącymi wzorcami wejściowymi. Możemy z posiadanych wektorów utworzyć macierz wzorców wejściowych uczących P (patterns)

Uczenie z nauczycielem Dla każdego uczącego wzorca wejściowego posiadamy wektor wyjściowy sieci jakim powinna

Uczenie z nauczycielem Dla każdego uczącego wzorca wejściowego posiadamy wektor wyjściowy sieci jakim powinna odpowiedzieć wektor ten nazywamy docelowym wzorcem wyjściowym. Z wektorów tych możemy utworzyć macierz docelowych wzorców wyjściowych T (targets) P NN T

Uczenie z nauczycielem Macierze P oraz T nazywamy zbiorami uczącymi - ich elementami są

Uczenie z nauczycielem Macierze P oraz T nazywamy zbiorami uczącymi - ich elementami są kolumny wzorców wejściowych oraz docelowych wzorców wyjściowych. Faktycznie sieć na każdy z wzorców wejściowych odpowiada rzeczywistym wzorcem wyjściowym Z wektorów tych możemy utworzyć macierz wzorców rzeczywistych A (answers) P NN A

Proces uczenia z nauczycielem Wektory z wejściowego zbioru uczącego są przedstawiane sieci w pewnej

Proces uczenia z nauczycielem Wektory z wejściowego zbioru uczącego są przedstawiane sieci w pewnej kolejności Jeżeli wyjście sieci jest poprawne, nie dokonywane są żadne zmiany wartości wag i progów Jeżeli wyjście sieci nie jest poprawne, wagi i progi są modyfikowane w taki sposób, aby minimalizować występujące różnice Zmiany wag i progów dokonuje się na ogół przyrostowo, wprowadzając małe poprawki dla każdej pary uczącej z którą związana jest błędna odpowiedź Można zmiany wag i progów wykonywać grupowo, wprowadzając poprawki po pokazaniu sieci całego zestawu uczącego

Proces uczenia z nauczycielem Pełne przejście przez wszystkie wzorce uczące nazywane jest cyklem uczenia

Proces uczenia z nauczycielem Pełne przejście przez wszystkie wzorce uczące nazywane jest cyklem uczenia (training epoch) Jeżeli po pewnym cyklu uczenia miara wszystkich pojawiających się błędów jest wystarczająco mała, uczenie uznaje się za zakończone - możemy wówczas powiedzieć, że siec nauczyla sie zbióru uczącego z zadowalającą dokładnością Jeżeli nie to uczenie jest kontynuowane – rozpoczynamy kolejny cykl uczenia

Proces uczenia z nauczycielem ma trzy fazy: 1. FAZA PREZENTACJI: Przedstawianie sieci kolejnych wzorców

Proces uczenia z nauczycielem ma trzy fazy: 1. FAZA PREZENTACJI: Przedstawianie sieci kolejnych wzorców wejściowych uczących i obliczanie rzeczywistych wzorców wyjściowych sieci 2. FAZA SPRAWDZENIA: Stwierdzenie, czy wszystkie rzeczywiste wzorce wyjściowe są równe odpowiednim wzorcom wyjściowym docelowym lub jeżeli miara błędów odpowiedzi jest zadowalająco mała lub po przekroczeniu pewnej maksymalnej liczby epok 3. FAZA UCZENIA: Modyfikacja wag i stałych progowych za pomocą odpowiedniej reguły uczenia perceptronu i powrót do fazy 1

Sprawdzenie zdolności uogólniania sieci Po zakończeniu procesu uczenia możemy podawać na wejście sieci wzorce

Sprawdzenie zdolności uogólniania sieci Po zakończeniu procesu uczenia możemy podawać na wejście sieci wzorce nie pochodzące z uczącego zbioru wejściowego – w ten sposób możemy badać, czy sieć efektywnie uogólnia rozwiązywanie zadania, którego się uczyła na przykładach Jeżeli tak, to na podany na wejście wzorzec powinna odpowiedzieć wzorcem wyjściowym równym lub bliskim wzorcowi docelowemu, otrzymanym przy podobnym wejsciu Jeżeli nie, to na podany na wejście wzorzec sieć odpowie wzorcem wyjściowym odległym od wzorca docelowego, otrzymanego przy podobnym wejsciu

Reguła Hebba • “Kiedy akson komórki A jest dostatecznie blisko by pobudzić komórkę B

Reguła Hebba • “Kiedy akson komórki A jest dostatecznie blisko by pobudzić komórkę B i wielokrotnie w sposób trwały bierze udział w jej pobudzaniu, procesy wzrostu lub zmian metabolicznych zachodzą w obu komórkach tak, że sprawność neuronu A jako jednej z komórek pobudzających B, wzrasta. ” D. O. Hebb, 1949

Uczenie w neuronach liniowych • Neuron ma rzeczywiste wyjscie ktore jest wazona suma jego

Uczenie w neuronach liniowych • Neuron ma rzeczywiste wyjscie ktore jest wazona suma jego wejsc Wagi polaczen Neuronowe przyblizenie pozadanego wyjscia Wektor wejsciowy • Celem uczenia jest zminimalizowanie roznicy pomiedzy pozadanym i rzeczywistym wyjsciem – Jak mierzyc ta roznice? – Czy uaktualniac wagi po kazdym uczacym wzorcu? – Czemu nie rozwiazac tego analitycznie?

Motywujacy przyklad • Kazdego dnia jesz obiad na stolowce. – Twoje posilki skladaja sie

Motywujacy przyklad • Kazdego dnia jesz obiad na stolowce. – Twoje posilki skladaja sie z ryb, chleba i piwa. – Dostajesz po trochu z kazdego z nich • Kasjer podaje ci tylko calosc sumy do zaplacenia – Po kilku dniach powinienes sie zorientowac ile co kosztuje. • Kazda cena posilku daje ci liniowe ograniczenie cen wszystkich porcji :

Dwie metody rozwiazania rownan • Jedna metoda to rozwiazac uklad rownan liniowych, jedno rownanie

Dwie metody rozwiazania rownan • Jedna metoda to rozwiazac uklad rownan liniowych, jedno rownanie na kazdy posilek. • Ale potrzebna jest nam metoda ktora mozna uzyc w sieciach neuronowych. • Ceny porcji sa jak wagi polaczen w neuronach liniowych. • Zaczniemy od zgadniecia wag i pozniej je zmienimy zeby uzyskac lepsze dopasowanie do cen podanych przez kasjera.

Mozg kasjera Cena posilku = 850 Poszukiwane wagi polaczen Neuron liniowy 150 2 porcje

Mozg kasjera Cena posilku = 850 Poszukiwane wagi polaczen Neuron liniowy 150 2 porcje ryby 50 5 porcje chleba 100 3 porcje piwa

Model mozgu kasjera z dowolnymi wagami poczatkowymi Cena posilku = 500 50 2 porcje

Model mozgu kasjera z dowolnymi wagami poczatkowymi Cena posilku = 500 50 2 porcje ryby 50 5 porcje chleba • Blad wyjscia • Wzor uczenia: • Przy wspolczynniku =1/35, zmiany wag sa +20, +50, +30 50 • Daje to nowe wagi 70, 100, 80 3 • Zauwaz ze blad dla chleba wzrosl ale inne porcje bledy zmalaly! piwa

Zachowanie iteracyjnej procedury uczenia • Czy zmiana wag zawsze przybliza wagi do porzadanych wielkosci?

Zachowanie iteracyjnej procedury uczenia • Czy zmiana wag zawsze przybliza wagi do porzadanych wielkosci? NIE! • Czy procedura uczenia zbiega sie do poprawnego rozwiazania? Tak, jesli szybkosc uczenia stopniowo jest ograniczana w odpowiedni sposob. • Jak szybko wagi zbiegaja sie do ich poprawnych wielkosci? Zbieznosc moze byc bardzo powolna jesli dwie wielkosci wejsciowe sa wysoce skorelowane (na przyklad chleb i maslo). • Czy procedura iteracyjna moze byc uogolniona na bardziej zlozone, wielowarstwowe, nieliniowe sieci? TAK!

Obliczanie zmian wag (delta rule) • Zdefiniuj blad jako sume kwadratow odchylen wyjsc na

Obliczanie zmian wag (delta rule) • Zdefiniuj blad jako sume kwadratow odchylen wyjsc na wszystkich danych treningowych: • Oblicz pochadna bledu ze wgledu na wagi • Delta rule zmienia wagi proporcjonalnie do sumy pochodnej bledu po wszystkich przypadkach treningowych

Powierzchnia bledu • Powierzchnia bledu zawarta jest w przestrzeni ktorej wsporzednymi sa wagi i

Powierzchnia bledu • Powierzchnia bledu zawarta jest w przestrzeni ktorej wsporzednymi sa wagi i wartosc bledu. – Dla liniowego neuronu jest to funkcja kwadratowa. E Przekroje pionowe sa parabolami. w 1 w 2 Przekroje poziome sa elipsami.

Uczenie ciagle i grupowe • Uczenie grupowe (batch) postepuje w kierunku najwiekszego spadku po

Uczenie ciagle i grupowe • Uczenie grupowe (batch) postepuje w kierunku najwiekszego spadku po powierzchni bledu w 1 • Uczenie ciagle (on line) zmierza zygzakiem wokol kierunku najwiekszego spadku Ograniczenie 1 -ej danej treningowej w 1 w 2 Ograniczenie 2 -ej danej treningowej w 2

Dodanie progu (bias) • Liniowy neuron jest bardzej podatny jesli dodamy funkcje progowa. •

Dodanie progu (bias) • Liniowy neuron jest bardzej podatny jesli dodamy funkcje progowa. • Mozemy uniknac osobnej zasady uczenia z progiem jak zauwazymy ze: – Prog jest rownowazny wadze dodatkowego wejscia ktore jest zawsze rowne 1.

Neurony progowe • Mc. Culloch-Pitts (1943) – Najpierw liczymy wazona sume wejsc z innych

Neurony progowe • Mc. Culloch-Pitts (1943) – Najpierw liczymy wazona sume wejsc z innych neuronow – Nastepnie wyjscie jest 1 jesli suma ta jest wieksza od wartosci progowej (threshold). 1 1 if 0 otherwise y 0 prog z

Warstwowe sieci jednokierunkowe perceptrony Warstwowe sieci jednokierunkowe zostały nazwane perceptronami przez Franka Rosenblatta i

Warstwowe sieci jednokierunkowe perceptrony Warstwowe sieci jednokierunkowe zostały nazwane perceptronami przez Franka Rosenblatta i Charlesa Wightmana Sieci te można scharakteryzować w następujący sposób: Podstawowym elementem perceptronu jest sztuczny neuron, którego funkcją pobudzania (propagacji) jest funkcją sumy a funkcja aktywacji ma na ogół charakter nieliniowy; może to być jednak również funkcja liniowa Poszczególne neurony sieci ułożone są w warstwy. Każdy neuron należy do jednej i tylko jednej warstwy. Neurony należące do jednej warstwy nie są ze sobą połączone.

Warstwowe sieci jednokierunkowe perceptrony Warstwy ułożone są jedna za drugą. Określone jest uporządkowanie warstw.

Warstwowe sieci jednokierunkowe perceptrony Warstwy ułożone są jedna za drugą. Określone jest uporządkowanie warstw. Połączenia pomiędzy neuronami poszczególnych warstw są jednokierunkowe i skierowane zgodnie z uporządkowaniem warstw Sygnały wejściowe dostarczane są do sieci przez wejścia (warstwę wejściową), umiejscowione przed pierwszą warstwą neuronów Jednowarstwowe sieci jednokierunkowych są często nazywane perceptronami prostymi

Perceptrony proste Realizowane przetwarzanie

Perceptrony proste Realizowane przetwarzanie

Perceptron prosty progowy Pojedynczy perceptron jest najprostszą formą sieci neuronowej używanej do klasyfikacji wzorców,

Perceptron prosty progowy Pojedynczy perceptron jest najprostszą formą sieci neuronowej używanej do klasyfikacji wzorców, które posiadają własność liniowej separowalności tzn. wzorce należące do dwóch różnych klas leżą po przeciwnych stronach hiperpłaszczyzny w przestrzeni atrybutów klasyfikowanych obiektów Pojedynczy perceptron prosty progowy można nauczyć rozpoznawania wzorców należących do dwóch klas – używając większej liczby neuronów można wykorzystywać perceptron prosty progowy do klasyfikacji wzorców należących do większej liczby klas

Perceptron prosty progowy Algorytm modyfikacji wag i progu podał Rosenblatt udowodnił, że jeżeli wzorce

Perceptron prosty progowy Algorytm modyfikacji wag i progu podał Rosenblatt udowodnił, że jeżeli wzorce (wektory) używane do uczenia perceptronu prostego progowego są wybierane z dwóch liniowo separowalnych zbiorów (klas) wówczas: algorytm uczenia wykorzystujący regułę perceptronu jest zbieżny sieć można nauczyć zadania klasyfikacji wzorców do dwóch klas w skończonej liczbie epok

Proces uczenia perceptronu - uczenie zadania klasyfikacji Uczenie perceptronu prostego prowadzi się metodą z

Proces uczenia perceptronu - uczenie zadania klasyfikacji Uczenie perceptronu prostego prowadzi się metodą z nauczycielem (pod nadzorem) Argumentem funkcji aktywacji jest iloczyn skalarny dwóch wektorów w i p

Perceptron prosty progowy – istota zadania klasyfikacji Na wyjściu perceptronu progowego pojawia się ,

Perceptron prosty progowy – istota zadania klasyfikacji Na wyjściu perceptronu progowego pojawia się , , stan wysoki", jeżeli rzut wektora wzorca wejściowego na kierunek wektora wag jest równy zero lub dodatni Na wyjściu perceptronu progowego pojawia się , , stan niski", jeżeli rzut wektora wzorca wejściowego na kierunek wektora wag jest ujemny Granicą pomiędzy dodatnimi i ujemnymi rzutami wektorów p na kierunek wektora w jest hiperpłaszczyzna przechodząca przez początek układu współrzędnych i do której wektor w jest ortogonalny

Perceptron prosty progowy – istota zadania klasyfikacji Kiedy proces uczenia doprowadzi do pożądanej sytuacji?

Perceptron prosty progowy – istota zadania klasyfikacji Kiedy proces uczenia doprowadzi do pożądanej sytuacji? przypadek z progiem Wyjście perceptronu progowego zmienia swoją wartość dla wartości argumentu równej zero, czyli kiedy:

Perceptron prosty progowy – ilustracja Perceptron jest w stanie nauczyc sie klasyfikacji, jeżeli istnieje

Perceptron prosty progowy – ilustracja Perceptron jest w stanie nauczyc sie klasyfikacji, jeżeli istnieje hiperpłaszczyzna rozdzielająca wzorce wejściowe klasy 1 p 2 wzorce wejściowe klasy 2 p 1 w

Procedura zbieznosci perceptronu: Trening neuronu progowego jako klasyfikatora • Dodaj dodatkowy komponent o wartosci

Procedura zbieznosci perceptronu: Trening neuronu progowego jako klasyfikatora • Dodaj dodatkowy komponent o wartosci 1 do kazdego wektora wejsciowego. – Waga tego wejscia jest rowna ujemnej wartosci progu. – Mozemy teraz zapomniec o progu. • Wybierz wzorce treningowe tak by kazdy z nich byl wybrany kilkakrotnie – Jesli wyjscie jest poprawne, nie zmieniaj wag. – Jesli wyjscie jest blednie rowne 0, dodaj wektor wejscia do wektora wag. – Jesli wyjscie jest blednie rowne 1, odejmij wektor wejscia od wektora wag. • Procedura ta gwarantuje znalezienie poprawnych wartosci wag jesli takowe istnieja.

Czego neurony progowe nie sa w stanie zrobic? • Neurony binarne nie sa w

Czego neurony progowe nie sa w stanie zrobic? • Neurony binarne nie sa w stanie okreslic czy dwie liczby 1 -bitowe sa rowne czy nie! Rowne: (1, 1) 1; (0, 0) 1 Rozne: (1, 0) 0; (0, 1) 0 • Te 4 pary wejscie-wyjscie okreslaja 4 nierownosci ktore nie maja rozwiazania: Przestrzen wejsciowa (nie przestrzen wag) 0, 1 plasz 1, 1 czyzn 0, 0 a wa g wyjsc ie wyjsc =1 ie =0 1, 0 Przypadki pozytywne i negatywne nie moga byc rozdzielone liniowo