sieci neuronowe

advertisement
Naśladowanie żywego mózgu
w komputerze
Ryszard Tadeusiewicz
AGH
informatyka +
2
Naśladując w komputerze ludzki mózg staramy się
połączyć zalety komputera (dostępność i szybkość
działania) z zaletami mózgu (zdolność do uczenia się)
informatyka +
3
Badacze zbudowali wiele systemów technicznych,
naśladujących w komputerze ludzki mózg. Najbardziej
pożyteczne okazały się sieci neuronowe.
informatyka +
4
Jak doszło do zbudowania sieci neuronowych?
informatyka +
5
Co chcemy osiągnąć naśladując w komputerze
ludzki mózg?
•
•
Rozwiązać zadania, dla których nie potrafimy podać gotowych algorytmów
ich rozwiązywania.
Przykładem zadania, które jest pozornie bardzo łatwe, a dla którego nikt nie
umie podać algorytmu, jest automatyczne rozpoznawanie ludzi
Janek!
Zosia ???
informatyka +
6
Nieznajomość reguł rządzących problemem
Kiedy sieci neuronowe są lepsze od innych metod
informatycznych?
Częściowy lub całkowity
brak znajomości reguł
Duża złożoność
Modele statystyczne
Systemy ekspertowe
Metody dedukcyjne
Dokładne
algorytmy
Częściowa znajomość reguł
Mała i średnia złożoność
Sieci
neuronowe
Metody indukcyjne
Pełna znajomość reguł
Mała i średnia złożoność
Stopień złożoności problemu
informatyka +
7
Dane
reprezentujące
zadanie do
wykonania
Wiedza zdobyta w czasie uczenia
Sposób rozwiązywania problemów przy użyciu sieci neuronowej
informatyka +
Wynik
reprezentujący
rozwiązanie
zadania
8
Naśladując w komputerze ludzki mózg staramy się
wzorować na jego budowie
informatyka +
9
Naśladując w komputerze ludzki mózg budujemy sieci
neuronowe z elementów, których działanie jest wzorowane
na funkcjonowaniu biologicznych neuronów.
informatyka +
10
Budując sztuczne neurony, z których tworzyć będziemy
sieci neuronowe, staramy się w nich odwzorować elementy
biologicznych neuronów.
informatyka +
11
Sztuczne neurony posiadają jedynie najpotrzebniejsze
cechy biologicznych neuronów.
informatyka +
12
Sztuczne neurony muszą także naśladować
funkcjonowanie biologicznych neuronów.
Trzeba wprowadzić wagi
x1
x2
xn
w1
w2
...
wn
To
jest
sztuczny
s Jakg zróżnicować
wi , xi 
te sygnały?
neuron. y  f s 
i  1,, n
Jakie ma zadania ?
y
obliczenie wartości
funkcji aktywacji
agregacja danych
wejściowych
informatyka +
13
Agregacja sygnałów wejściowych jest raczej łatwa do
przeprowadzenia. Jak wspomniano wyżej, jest to zwykle po
prostu sumowanie. Funkcja aktywacji też jest łatwa do
zrozumienia, więc ograniczymy się do pokazania jej
przykładowego kształtu (poniżej).
β=0,5
β=1
β=2
1
y
0,8
0,6
0,4
0,2
S
0
-10
-5
0
informatyka +
5
10
14
Kwestia wag różnicujących wejścia do neuronu
informatyka +
15
Załóżmy, że oceniany kwiat ma ładny kolor, ale brzydki zapach.
neuron
wyśle na
wyjściu
sygnał, że
kwiat mu
się podoba
do sygnału wejściowego „zapach”
przypiszemy małą wagę
a do sygnału „kolor” wagę dużą
informatyka +
16
Przy przeciwnym rozłożeniu wag wynik jest odwrotny
informatyka +
17
Wagi mają przemożny wpływ na zachowanie neuronów!
Przy tym samym zestawie
sygnałów wejściowych
mamy dwie całkiem różne
reakcje neuronu!
informatyka +
18
Schemat zbierający razem właściwości sztucznego neuronu
informatyka +
19
Pytanie, które sobie teraz trzeba postawić, brzmi:
Jak połączyć sztuczne neurony, żeby
powstała użyteczna sieć?
informatyka +
20
W historii rozwoju modeli komputerowych
elementów systemu nerwowego tworzono
i badano wiele różnych struktur sieci.
Okazało się jednak, że struktura sieci ma mniejszy wpływ na
jakość jej działania, niż proces uczenia.
Dlatego współczesne sieci neuronowe buduje się
z reguły z neuronów układanych w warstwy, bo tak jest
najwygodniej.
informatyka +
21
Oto przykładowa sieć z jej wszystkimi ważnymi elementami
Warstwa wejściowa
Warstwa ukryta
(jedna lub dwie)
Warstwa wyjściowa
x1
y
x2
Ciekawostka: podobną budowę ma
kora mózgowa w części wzrokowej !
informatyka +
22
Teoretycznie twórca sieci może wybrać dowolnie wszystkie jej
elementy
Warstwa wejściowa
Warstwa ukryta
(jedna lub dwie)
Warstwa wyjściowa
x1
y
x2
informatyka +
W rzeczywistości jednak
swoboda twórcy sieci jest
ograniczona, bo liczba
neuronów w warstwie
wejściowej wynika z liczby
posiadanych danych, a
wielkość warstwy
wyjściowej zależy od tego,
jakie chcemy dostać wyniki.
23
Jakość działania sieci Q
Twórca sieci neuronowej może więc głównie mieć wpływ
na liczbę neuronów ukrytych n. Decyduje ona o jakości
działania sieci Q.
inteligencja
nie zależy od
wielkości sieci
sieć jest
zbyt mało
inteligentna
Liczba neuronów ukrytych n
informatyka +
24
W zasadzie można by było na tym poprzestać, popatrzmy
jednak, co się stanie, kiedy zamienimy n na m oraz Q na
IQ.
IQQ
Wykres ten przedstawia teraz znaną
z psychologii zależność miary
inteligencji człowieka (IQ to tzw.
iloraz inteligencji) w zależności od
masy jego mózgu m !
n
m
informatyka +
25
Przedstawione ogólne reguły wskazujące na niekorzystne
skutki używania zarówno za małej, jak i za dużej sieci,
potwierdzają wyniki przykładowego eksperymentu
100
Błąd 90
80
70
60
50
40
30
20
10
0
2
4
6
8
10
12
14
16
18
20
Liczba neuronów ukrytych
informatyka +
26
Mając zaprojektowaną sieć neuronową, to znaczy wiedząc,
z jakich elementów jest ona zbudowana (sztuczne
neurony), ile tych elementów trzeba zastosować i jak te
elementy są połączone pomiędzy sobą – można się
zastanowić, jak tę sieć zrealizować.
informatyka +
27
W najwcześniejszych pracach dotyczących budowy sieci
neuronowych chętnie stosowano urządzenia elektroniczne, które
modelowały sieć.
informatyka +
28
Obecnie jeśli do budowy sieci neuronowych stosowane
urządzenia elektroniczne (a są stosowane rzadko), to występują
w postaci specjalizowanych układów scalonych.
informatyka +
29
Najczęściej jednak do budowy sieci neuronowych wykorzystuje
się program komputerowy, który w zwykłym komputerze
modeluje sieć.
Mam program,
więc działam jak
sieć neuronowa
Mogę wykonywać
wszelkie obliczenia
tak jakbym miał
specjalnie zbudowaną
sieć!
informatyka +
30
Nazwy i logo przykładowych programów modelujących sieci
neuronowe
informatyka +
31
Wygląd ekranu komputera modelującego sieć neuronową
informatyka +
32
Przystąpimy teraz do omówienia procesu
uczenia sieci neuronowych.
informatyka +
33
Maksymalnie uproszczony schemat procesu uczenia.
Podstawą procesu uczenia jest zbiór przykładowych danych wraz z rozwiązaniami
To on jest podstawą uczenia sieci
W przykładzie zbiór zawiera wizerunki osób, które sieć ma się nauczyć rozpoznawać
Wizerunek rozpoznawanej osoby podawany jest na wejście sieci
Sieć na tej podstawie usiłuje podać własne rozwiązanie zadania (identyfikacje osoby)
W zbiorze uczącym są informacje o tym, jak naprawdę nazywa się osoba na zdjęciu
Porównanie odpowiedzi sieci z prawidłowym rozwiązaniem pozwala wyznaczyć błąd sieci
Uczenie prowadzone jest tak, żeby zminimalizować wartość błędu.

Ewa
Jan
informatyka +
korekta
błędu
34
Skąd wiemy, w jaki sposób zmieniać
parametry sieci (wartości wag), żeby
uzyskać efekt zmniejszania błędu?
Zachowanie sieci jest wypadkową zachowania wszystkich jej
neuronów, zaś zachowanie poszczególnych neuronów można
uzależnić od wartości wag występujących w tych neuronach.
informatyka +
35
Przypomnijmy sobie: Wagi mają przemożny wpływ na
zachowanie neuronów!
Przy tym samym zestawie
sygnałów wejściowych
mamy dwie całkiem różne
reakcje neuronu!
informatyka +
36
Jeśli ustalimy wszystkie wagi we wszystkich neuronach całej sieci,
a potem pokażemy sieci wszystkie zadania ze zbioru uczącego to
wyznaczymy łączny błąd, popełniany przez sieć dla tych zadań.
Dla różnych zestawów wag – otrzymamy różne wartości błędu.
Wielkość błędu
popełnianego
sieć popełnia
taki duży błąd
przez sieć E
Gdybyśmy takie strzałki wystawiali we
wszystkich punktach granatowej
płaszczyzny podstawy – to powstałaby
powierzchnia, nazywana powierzchnią
błędu, której za
sieć popełnia
chwilę użyjemy
taki mały
do wyznaczenia
błąd
sposobu uczenia.
Drugi współczynnik wagowy w2
Pierwszy współczynnik wagowy w1
przy takim
zestawie wag
informatyka +
a przy takim
zestawie wag
37
Na rysunku pokazano przykładową powierzchnię błędu (szara)
oraz
Błąd
Istota uczenia
polega na
szukaniu miejsca
(zestawu wag
określonego jako
wideal), w którym
błąd jest
minimalny
minimum funkcji błędu
ws
waga w1
wn
wideal.
waga w2
w
informatyka +
38
Szczegółowe algorytmy uczenia
wbudowane są zwykle w programy
symulujące sieci neuronowe na
komputerze.
informatyka +
39
Sieci neuronowe mają wiele
zastosowań.
Pokażemy tylko dwa z nich.
informatyka +
40
Zastosowanie 1: Tworzenie modelu procesu
Sieci neuronowe często są używane do modelowania różnych procesów.
Przykład: Wyobraźmy sobie, że chcemy przewidzieć, jaką cenę osiągnie na
wolnym rynku określone mieszkanie.
Nie mamy gotowych reguł (bo nikt ich nie zna), ale możemy użyć jako zbioru
uczącego opisu wcześniejszych transakcji kupna-sprzedaży.
Na wejściu sieci są dane dotyczące mieszkania, a sieć ma podać jego cenę.
powierzchnia,
garaż,
wiek,
ogrzewanie,
położenie,
piętro,
....
informatyka +
Cena
rynkowa
41
Zastosowanie 2: Podejmowanie decyzji.
Sieci neuronowe często wspomagają podejmowanie decyzji.
Przykład: W banku trzeba zdecydować, czy przyznać konkretnemu
klientowi pożyczkę, czy lepiej nie?
Jak się nie pożyczy pieniędzy uczciwemu klientowi, to bank nie zarobi.
Ale jak się pożyczy nieuczciwemu, to bank poniesie stratę.
Nie wiadomo, po czym poznać nieuczciwego, ale można dać sieci jako zbiór
uczący informacje o wszystkich udzielonych pożyczkach, tych udanych i nie.
Sieć się sama nauczy rozpoznawać nieuczciwych i może nam radzić.
dochody,
zabezpieczenie,
wiek,
stan cywilny,
oszczędności,
zatrudnienie
....
?
przyznać
czy
nie przyznać
?
informatyka +
?
42
Uwagi końcowe
informatyka +
43
Sieci neuronowe powstały w wyniku procesu
twórczego przeciwnego do tego, który doprowadził
do powstania typowych komputerów.
Komputery powstały bowiem w taki sposób, że stosunkowo proste
(początkowo) urządzenia przeznaczone do mechanizacji obliczeń:
liczydła, suwaki, kalkulatory itd. poddano procesowi intensywnego
doskonalenia, dzięki czemu powstały znane nam obecnie systemy
informatyczne, o ogromnych możliwościach, ale też niezwykle
skomplikowane.
informatyka +
44
W sieciach neuronowych było przeciwnie: Za punkt wyjścia
przyjęto niesłychanie skomplikowany twór, jakim jest mózg
i podjęto próbę modelowania jego struktury i właściwości za
pomocą opisów, które w miarę ich doskonalenia stawały się
coraz prostsze.
Obecnie używane sieci neuronowe są tak bardzo uproszczone, że
każdy może zrozumieć ich budowę i działanie, a jednocześnie
zachowały one tyle właściwości oryginalnego mózgu, że potrafią
się bardzo inteligentnie zachowywać.
informatyka +
45
Na koniec jedna uwaga:
Prawdziwy mózg jest tyle razy większy (w sensie liczby
elementów) od typowej sieci neuronowej, ile razy większa
jest średnica Ziemi od główki szpilki. Warto to wiedzieć!
100 000 000 000
neuronów!
informatyka +
46
Download