Download - Naśladowanie żywego mózgu w komputerze
Naśladowanie żywego mózgu w komputerze
Ryszard TadeusiewiczAGH
2informatyka +
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
informatyka + 6
Janek! Zosia ???
Kiedy sieci neuronowe są lepsze od innych metod informatycznych?
informatyka + 7
Nie
znaj
om
ość
reg
uł r
ządz
ącyc
h pr
oble
mem
Stopień złożoności problemu
Pełna znajomość regułMała i średnia złożoność
Częściowa znajomość regułMała i średnia złożoność
Częściowy lub całkowitybrak znajomości reguł
Duża złożoność
Dokładnealgorytmy
Modele statystyczneSystemy ekspertoweMetody dedukcyjne
Sieci Sieci neuronoweneuronoweMetody indukcyjne
Sposób rozwiązywania problemów przy użyciu sieci neuronowej
informatyka + 8
Danereprezentujące
zadanie do wykonania
Wynikreprezentujący
rozwiązanie zadania
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.
informatyka + 13
x1
x2
xn
w1
w2
wn
ni
xwgs ii
,,1
,
sfy
y
agregacja danych wejściowych
obliczenie wartości funkcji aktywacji
To jest sztuczny neuron.
Jakie ma zadania ?
Jak zróżnicować te sygnały?...
Trzeba wprowadzić wagi
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).
informatyka + 14
0
0,2
0,4
0,6
0,8
1
-10 -5 0 5 10
S
y
β=0,5
β=1
β=2
Kwestia wag różnicujących wejścia do neuronu
informatyka + 15
Załóżmy, że oceniany kwiat ma ładny kolor, ale brzydki zapach.
informatyka + 16
do sygnału wejściowego „zapach” przypiszemy małą wagęa do sygnału „kolor” wagę dużą
neuron wyśle na wyjściu sygnał, że kwiat mu się podoba
Przy przeciwnym rozłożeniu wag wynik jest odwrotny
informatyka + 17
Wagi mają przemożny wpływ na zachowanie neuronów!
informatyka + 18
Przy tym samym zestawie sygnałów wejściowych mamy dwie całkiem różne reakcje neuronu!
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.
informatyka + 21
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.
Oto przykładowa sieć z jej wszystkimi ważnymi elementami
informatyka + 22
x 1
x 2
y
Warstwa wejściowa Warstwa ukryta(jedna lub dwie)
Warstwa wyjściowa
Ciekawostka: podobną budowę ma kora mózgowa w części wzrokowej !
Teoretycznie twórca sieci może wybrać dowolnie wszystkie jej elementy
informatyka + 23
x 1
x 2
y
Warstwa wejściowa Warstwa ukryta(jedna lub dwie)
Warstwa wyjściowa
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.
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.
informatyka + 24
Liczba neuronów ukrytych n
Jako
ść d
ział
ania
sie
ci Q
sieć jest zbyt mało
inteligentna
W zasadzie można by było na tym poprzestać, popatrzmy jednak, co się stanie, kiedy zamienimy n na m oraz Q na
IQ.
informatyka + 25
Q
n
IQ
m
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 !
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
informatyka + 26
0102030405060708090
100Błąd
2 4 6 8 10 12 14 16 18 20
Liczba neuronów ukrytych
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ć.
informatyka + 30
Mam program,więc działam jaksieć neuronowa
Mogę wykonywać wszelkie obliczenia
tak jakbym miałspecjalnie zbudowaną
sieć!
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.
informatyka + 34
korekta
błędu
Ew
a Jan
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.
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!
informatyka + 36
Przy tym samym zestawie sygnałów wejściowych mamy dwie całkiem różne reakcje neuronu!
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.
informatyka + 37
Pierwszy współczynnik wagowy w1
Drugi współczynnik wagowy w2
Wielkość błędu popełnianego
przez sieć E
przy takim zestawie wag
sieć popełniataki duży błąd
sieć popełniataki mały
błąd
a przy takim zestawie wag
Gdybyśmy takie strzałki wystawiali we wszystkich punktach granatowej
płaszczyzny podstawy – to powstałaby powierzchnia, nazywana powierzchnią
błędu, której za chwilę użyjemy
do wyznaczenia sposobu uczenia.
Na rysunku pokazano przykładową powierzchnię błędu (szara) oraz
informatyka + 38
Istota uczenia polega na szukaniu miejsca (zestawu wag określonego jako wideal), w którym błąd jest minimalny
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
informatyka + 41
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,....
Cenarynkowa
Zastosowanie 2: Podejmowanie decyzji.
informatyka + 42
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ć
? ?
?
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ć!
informatyka + 46
100 000 000 000neuronów!