• Nie Znaleziono Wyników

Nasladowanie zywego mozgu w komputerze

N/A
N/A
Protected

Academic year: 2021

Share "Nasladowanie zywego mozgu w komputerze"

Copied!
45
0
0

Pełen tekst

(1)

Naśladowanie żywego mózgu

w komputerze

Ryszard Tadeusiewicz AGH 1

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ę)

(3)

Badacze zbudowali wiele systemów technicznych, naśladujących w komputerze ludzki mózg. Najbardziej

pożyteczne okazały się sieci neuronowe.

(4)

Jak doszło do zbudowania sieci neuronowych?

(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 +

5

Jane

(6)

Kiedy sieci neuronowe są lepsze od innych metod

informatycznych?

informatyka +

6 N ie zn aj o m o ść r eg uł r zą dz ąc yc h pr ob le m em

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łkowity brak znajomości reguł

Duża złożoność Dokładne algorytmy Modele statystyczne Systemy ekspertowe Metody dedukcyjne

Sieci

Sieci

neuronowe

neuronowe

Metody indukcyjne

(7)

Sposób rozwiązywania problemów przy użyciu sieci neuronowej

informatyka +

7

Dane

reprezentujące zadanie do wykonania

Wynik

reprezentujący rozwiązanie zadania

(8)

Naśladując w komputerze ludzki mózg staramy się wzorować na jego budowie

(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.

(10)

Budując sztuczne neurony, z których tworzyć będziemy sieci neuronowe, staramy się w nich odwzorować elementy

biologicznych neuronów.

(11)

Sztuczne neurony posiadają jedynie najpotrzebniejsze cechy biologicznych neuronów.

(12)

Sztuczne neurony muszą także naśladować funkcjonowanie biologicznych neuronów.

informatyka +

12 x1 x2 xn w1 w2 wn

 

n

i

x

w

g

s

i i

,

,1

,

 

s

f

y

y agregacja danych wejściowych obliczenie wartości funkcji aktywacji

To jest sztuczny

neuron.

Jakie ma zadania ?

Jak zróżnicować te sygnały?

...

(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).

informatyka +

13 0 0,2 0,4 0,6 0,8 1 -10 -5 0 5 10 S y

β=0,5

β=1

β=2

(14)

Kwestia wag różnicujących wejścia do neuronu

(15)

Załóżmy, że oceniany kwiat ma ładny kolor, ale brzydki zapach.

informatyka +

15

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

(16)

Przy przeciwnym rozłożeniu wag wynik jest odwrotny

(17)

Wagi mają przemożny wpływ na zachowanie neuronów!

informatyka +

17

Przy tym samym zestawie sygnałów wejściowych mamy dwie całkiem różne reakcje neuronu!

(18)

Schemat zbierający razem właściwości sztucznego neuronu

(19)

Pytanie, które sobie teraz trzeba postawić, brzmi:

Jak połączyć sztuczne neurony, żeby

powstała użyteczna sieć?

(20)

W historii rozwoju modeli komputerowych

elementów systemu nerwowego tworzono

i badano wiele różnych struktur sieci.

informatyka +

20

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.

(21)

Oto przykładowa sieć z jej wszystkimi ważnymi elementami

informatyka +

21

x 1

x 2

y

Warstwa wejściowa Warstwa ukryta (jedna lub dwie)

Warstwa wyjściowa

Ciekawostka: podobną budowę ma

(22)

Teoretycznie twórca sieci może wybrać dowolnie wszystkie jej elementy

informatyka +

22 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.

(23)

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 +

23

Liczba neuronów ukrytych n

Ja ko ść d zi ał an ia s ie ci Q

sieć jest zbyt

mało

(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.

informatyka +

24 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

(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

informatyka +

25 0 10 20 30 40 50 60 70 80 90 100 Błąd 2 4 6 8 10 12 14 16 18 20 Liczba neuronów ukrytych

(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ć.

(27)

W najwcześniejszych pracach dotyczących budowy sieci

neuronowych chętnie stosowano urządzenia elektroniczne, które modelowały sieć.

(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.

(29)

Najczęściej jednak do budowy sieci neuronowych wykorzystuje się program komputerowy, który w zwykłym komputerze

modeluje sieć.

informatyka +

29

Mam program, więc działam jak

sieć neuronowa

Mogę wykonywać wszelkie obliczenia

tak jakbym miał specjalnie zbudowaną

(30)

Nazwy i logo przykładowych programów modelujących sieci neuronowe

(31)

Wygląd ekranu komputera modelującego sieć neuronową

(32)

Przystąpimy teraz do omówienia procesu

uczenia sieci neuronowych.

(33)

Maksymalnie uproszczony schemat procesu uczenia.

informatyka +

33

korekta błędu E w 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.

(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.

(35)

Przypomnijmy sobie: Wagi mają przemożny wpływ na zachowanie neuronów!

informatyka +

35

Przy tym samym zestawie sygnałów wejściowych mamy dwie całkiem różne reakcje neuronu!

(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.

informatyka +

36

Pierwszy współczynnik wagowy w1

Drugi współczynnik wagowy w2 Wielkość błędu popełnianego przez sieć E przy takim zestawie wag sieć popełnia taki duży błąd sieć popełnia taki 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.

(37)

Na rysunku pokazano przykładową powierzchnię błędu (szara) oraz

informatyka +

37 Istota uczenia polega na szukaniu miejsca (zestawu wag określonego jako wideal), w którym błąd jest minimalny

(38)

Szczegółowe algorytmy uczenia

wbudowane są zwykle w programy

symulujące sieci neuronowe na

komputerze.

(39)

Sieci neuronowe mają wiele

zastosowań.

Pokażemy tylko dwa z nich.

(40)

Zastosowanie 1: Tworzenie modelu procesu

informatyka +

40

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, .... Cena rynkowa

(41)

Zastosowanie 2: Podejmowanie decyzji.

informatyka +

41

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ć

?

?

?

(42)

Uwagi końcowe

(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.

(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ć.

(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 +

45

100 000 000 000 neuronów!

Cytaty

Powiązane dokumenty

AOS poradni POZ szpitali uniwersyteckich szpitali będących własnością województw szpitali będących własnością powiatów lub miast na prawach powiatów szpitali

I to są kierunki działań, którymi posłowie Komisji Zdrowia będą się w najbliższym czasie zajmować.. Po zakończeniu prac nad ustawą koszykową, którymi obecnie kieruję,

szczególnie dobrze sprzedające się publikacje szybko przestają być jedynie książką, towarem, stają się narzędziami (nie)porozumienia, łączą, dzielą, zbliżają do

1 W jaki sposób dokonuje się wyboru rady uczestników scalenia, w jaki sposób prowadzone jest postępowanie scaleniowe w przypadku, gdy uczestnicy nie

Poszczególne węzły reprezentują stwierdzenia proste o stanach tak, nie. Na rysunku 9.1b) pokazano strukturę ogólnej sieci stwierdzeń opisującej ten sam

 długotrwała niewłaściwa postawa, podczas siedzenia przy komputerze, może przyczynić się do zmęczenia mięśni, bólu kręgosłupa, stawów, szyi, barku i dłoni.. Korzystanie

Na obecnym etapie rozwoju głębokich sieci neuronowych często stosuje się liniowo odcinkowe funkcje aktywacji zdefiniowane jako maksimum dwóch wielkości (1) oraz funkcji

• Składową błędu dla każdego j-tego połączenia określamy jako pochodną cząstkową błędu względem j-tej wagi. • Składowych tych będziemy mogli użyć do