You are on page 1of 94

Sztuczna inteligencja cz.

3
dr inż. Piotr Grobelny

piotr.grobelny@edukacja.wroc.pl Wrocław
2022/
2023
Idea sieci neuronowych

● Ludzki system nerwowy zbudowany jest z komórek zwanych neuronami


● Ich liczba w ludzkim mózgu to ok. 100 miliardów
● Działanie pojedynczego neuronu polega na przepływie impulsów nerwowych
● Impuls wytworzony przez określony bodziec, trafiając na neuron powoduje rozprzestrzenianie
się go wzdłuż wszystkich wypustek.
● Skutkuje to np. skurczem mięśnia lub pobudzeniem kolejnego neuronu

Idea: połączone sztuczne neurony mogłyby sterować pracą urządzenia lub rozwiązywać problemy
wymagające inteligencji

2
Neuron

● Podstawowym elementem systemu nerwowego jest komórka nerwowa nazwana neuronem


● W neuronie można wyróżnić ciało komórki (some)
● Otaczające ciało 2 rodzaje wypustek:
○ wypustki wprowadzające informację do neuronu (dendryty)
○ wypustki wyprowadzające informacje z neuronu (aksony)
● Każdy neuron ma dokładnie jedną wypustkę wyprowadzającą, przez którą może wysyłać
impulsy do wielu innych neuronów
● Pojedynczy neuron przyjmuje pobudzenie od ogromnej liczby neuronów dochodzącej do
tysiąca ciało komórki
dendryty synapsy

akson Uproszczony model neuronu 3


Neuron

● W mózgu człowieka jest ok. 100 miliardów neuronów, które oddziałują na siebie poprzez
ogromną liczbę połączeń
● Jeden neuron przekazuje pobudzenie innym neuronom przez złącza nerwowe nazywane
synapsami - transmisja sygnałów odbywa się na drodze procesów chemiczno-elektrycznych
● Synapsy pełnią rolę przekaźników informacji, a w wyniku ich działania pobudzenie może
być wzmocnione lub osłabione
● W efekcie do neuronu dochodzą sygnały, z których część wywiera wpływ pobudzający, a
część hamujący
● Neuron sumuje impulsy pobudzające i hamujące.
● Jeżeli ich suma algebraiczna przekracza pewną wartość progową, to sygnał na wyjściu
neuronu jest przesyłany poprzez akson do innych neuronów

4
Sieci neuronowe

Uczenie głębokie
Uczenie głębokie jest jedna z metod uczenia się maszyn, w których szereg „warstw” prostych
jednostek obliczeniowych łączy się w sieć w taki sposób, aby dane wprowadzane do systemu
przechodziły przez każdą z nich po kolei.

Dzięki tej głębi sieć może uczyć się (tak jak mózg) bardziej złożonych struktur bez konieczności
dostarczenia danych w nierealistycznie wielkich ilościach.

5
Sieci neuronowe

Sieci neuronowe
● sieci neuronowe (ang. neural network) to system połączonych ze sobą sztucznych neuronów
przeznaczony do przetwarzania informacji
● jego budowa oraz zasada działania są w pewnym stopniu inspirowane funkcjonowaniem
biologicznego systemu nerwowego.
● w przeciwieństwie do organicznego układu sztuczne neurony są jednak wybierane w sposób
arbitralny i nie są modelem rzeczywistych struktur spotykanych w przyrodzie

Uproszczony schemat jednowarstwowej sieci


neuronowej 6
Sieci neuronowe

Sieci neuronowe
● struktury jakimi są sieci neuronowe wyróżniają się spośród innych narzędzi informatycznych
tym, że przy ich pomocy można rozwiązać praktyczne problemy bez uprzedniej matematycznej
formalizacji
● zaletą korzystania ze struktur tego typu jest brak konieczności odwoływania się do
jakichkolwiek teoretycznych założeń dotyczących tematu rozwiązywanego problemu
○ dotyczy to nawet założeń o przyczynowo-skutkowych zależnościach pomiędzy wejściem,
a wyjściem
○ najbardziej charakterystyczną cechą sieci neuronowych jest zdolność do uczenia się na
podstawie przykładowych danych i możliwość automatycznego uogólniania
(generalizacji) zdobywanej wiedzy

7
Sieci neuronowe

Schemat budowy sztucznego neuronu (źródło: Wstęp do sieci neuronowych http://galaxy.uci.agh.edu.pl/~vlsi/AI/wstep/)

Sztuczny neuron
● w modelu sztucznego neuronu znajduje się wiele wejść oraz jedno wyjście
● to wartości wag decydują natomiast o tym, jaki sygnał zostanie przepuszczony dalej, do
kolejnych warstw sieci
● W neuronie wykonywane są zazwyczaj dwie podstawowe czynności przetwarzania danych
○ pierwszą z nich stanowi agregacja danych wejściowych, gdzie swoją rolę arbitrażową
odgrywają ustawione wagi
○ drugą czynnością jest generacja sygnału wyjściowego, czyli określenie tego, co wynikowo
opuści neuron
● w zależności od sposobu agregacji oraz formy funkcji aktywacyjnej możemy podzielić sztuczne
neurony na: liniowe, sigmoidalne, tangesoidalne oraz radialne

8
Sieci neuronowe

Schemat działania agregacji liniowej i radialnej (źródło: leksykon sieci neuronowych Tadeusiewicz R., Szaleniec M.:
Leksykon Sieci Neuronowych. Wydawnictwo Fundacji "Projekt Nauka" Wrocław 2015)

Sztuczny neuron
● pierwszą czynnością wykonywaną przez sztuczny neuron, natychmiast po uzyskaniu sygnałów
na wejściu, jest ich sumowanie, nazywane również agregacją danych wejściowych
○ model posiada wiele wejść i tylko jedno wyjście, więc musi przekształcić wiele
otrzymanych danych wejściowych
○ wynikiem jest pojedynczy, wypadkowy sygnał sumarycznego pobudzenia, który przy
pomocy wybranych funkcji aktywacyjnych kształtuje efekt wyjściowy całego neuronu
● w modelach można zastosować wiele różnych formuł agregacji danych wejściowych, jednak do
najczęściej używanych zalicza się przede wszystkim agregacje liniową oraz agregację radialną

9
Neuron
x0=1
Sformalizowany model neuronu

n - liczba wejść w neuronie


w0
T
x1, …, xn - sygnały wejściowe x = [x1, …, xn]
wo,..., wn wagi synaptyczne, w=[w0, …, wn]T
y - wartość wyjściowa neuronu x1
w1
w0 - wartość progowa
f - funkcja aktywacji x2
w2
Formuła opisująca działanie neuronu wyraża się
s y
zależnością . f
.
y = f(s) .
x3
w której
w3

10
Neuron

● Funkcja aktywacji f może przybierać różną postać w zależności od konkretnego modelu neuronu
● W pierwszej kolejności sygnały wejściowe x0, x1, …, xn zostają pomnożone przez odpowiadające
im wagi w0, w1, …, wn
● Otrzymane w ten sposób wartości są następnie sumowane
● W wyniku sumowania powstaje sygnał s odzwierciedlający działanie części liniowej neuronu
● Sygnał ten jest poddawany funkcji aktywacji, najczęściej nieliniowej
● Zakładamy, że wartość sygnału x0 jest równa 1, a wagę w0 nazywa się progiem (ang. bias)

WIEDZA ZAPISANA JEST W WAGACH

W prosty sposób za pomocą algorytmów uczących można neurony uczyć, czyli odpowiednio
dobierać wagi.
11
Neuron

x0=1

w0
Podobnie jak w mózgu komórki nerwowe
łączą się ze sobą.
x1
w1
Podobnie w przypadku modeli
x2 matematycznych sztuczne neurony łączą
w2
s y się ze sobą tworząc wielowarstwowe sieci
. f
neuronowe
.
.
x3
w3
12
Perceptron
x0=1

Działanie Perceptronu można opisać


zależnością
w0

X1
w1
Gdy bias θ = w0 model ten odpowiada
modelowi neuronu

X2 Funkcja f może być nieciągła funkcją


w2
s y
1 skokową
.
. ● bipolarną przyjmuje wartość -1 lub 1
-1
.
● unipolarną przyjmuje wartość 0 lub 1
X3
w3
13
Perceptron
x0=1

Działanie biasu (θ = w0) można wyjaśnić na


podstawie interpretacji geometrycznej dla
w0 neuronu o pojedynczym wejściu
y y

X1 w0

w1
x1
x1

X2
w2
s y
1 ● w przypadku neuronu jednowejściowego
.
zastosowanie biasu umożliwia przesunięcie
. progu aktywacji wzdłuż osi x
-1
. ● gdy bias jest ujemny przesuwamy próg aktywacji
X3 w prawo, gdy dodatni to w lewo
w3 ● dodanie dodatkowej wagi kosztem zwiększenia
ilości koniecznych obliczeń powoduje poprawę
własności neuronu 14
Perceptron

Do dalszych rozważań przyjmujemy, że funkcja aktywacji jest bipolarna

Perceptron ze względu na swą funkcję aktywacji przyjmuje tylko dwie różne wartości
wyjściowe, może więc klasyfikować sygnały podane na jego wejście w postaci wektora
x=[x1,...,xn]T do jednej z dwóch klas.

● Na przykład perceptron z jednym wejściem może oceniać, czy sygnał wejściowy jest
dodatni, czy ujemny

● W przypadku dwóch wejść x1 i x2 perceptron dzieli płaszczyznę na dwie części

Podział ten wyznacza prosta o równaniu

15
Perceptron

x2
W ogólnym przypadku, gdy perceptron ma n
wejść, wówczas dzieli n-wymiarową przestrzeń
wektorów wejściowych x na dwie półprzestrzenie
w1
Półprzestrzenie są rozdzielone n-1 wymiarową
w2
hiperpłaszczyzną zwaną granica decyzyjną
określoną wzorem

x1

Na rysunku przedstawiono granice decyzyjną dla


n=2
Można zauważyć, że prosta wyznaczająca
podział przestrzeni jest zawsze prostopadła do
wektora wag w = [w1, w2]T
16
Uczenie perceptronu

Perceptron może być poddany procesowi nauczania

W czasie tego procesu wagi są modyfikowane

Metoda uczenia perceptronu należy do grupy algorytmów zwanych uczeniem z nauczycielem lub
uczeniem nadzorowanym

Uczenie tego typu polega na tym, że na wejście perceptronu podaje się sygnały
x(t) = [x0(t), x1(t),..., xn(t))]T, t=1,2,....
dla których znamy prawidłowe wartości sygnałów wyjściowych d(t), t=1,2,.... zwanych sygnałami
wzorcowymi

Zbiór takich próbek wejściowych wraz z odpowiadającymi im wartościami sygnałów wzorcowych


nazywa się ciągiem uczącym

W metodach tych po podaniu wartości wejściowych oblicza się sygnał wyjściowy neuronu. Następnie
modyfikuje się wagi tak, aby zminimalizować błąd między sygnałem wzorcowym a wyjściem
perceptronu (nauczyciel określa jaka powinna być wartość wzorcowa).
17
Uczenie perceptronu

Algorytm uczenia perceptronu:

1. Wybieramy w sposób losowy wagi początkowe perceptronu


2. Na wejścia neuronu podajemy wektor uczący x, prz czym x = x(t) = [x0(t), X1(t),....xn(t)]T, t = 1,2,....
3. Obliczamy wartość wyjściową perceptronu y zgodnie ze wzorem
4. Porównujemy wartość wyjściową y(t) z wartością wzorcową d = d(x(t)) znajdującą się w ciągu
uczącym
5. Dokonujemy modyfikacji wag według zależności jeżeli:
a. y(x(t))≠d(x(t)), to wi(t+1) = wi(t) + d(x(t))xi(t);
b. y(x(t))=d(x(t)), to wi(t+1) = wi(t) czyli waga pozostaje bez zmian
6. wracamy do punktu 2
Algorytm powtarza się tak długo, aż do wszystkich wektorów wejściowych wchodzących w skład ciągu
uczącego błąd na wyjściu będzie mniejszy od założonej tolerancji. 18
Sieć neuronowa

Sieć neuronowa

● w sieciach neuronowych system składa się z bardzo wielu neuronów, z których każdy jest w stanie samodzielnie
przetwarzać informacje, więc podczas gdy procesor po kolei przetwarza każdą porcję informacji, neurony
przetwarzają olbrzymie ich ilości jednocześnie
● w sieciach neuronowych przechowywanie danych (pamięć) i przetwarzanie danych nie są od siebie oddzielone
jak w klasycznych komputerach
● neurony zarówno przechowują, jak i przetwarzają informacje, więc przetwarzanie danych nie wymaga pobrania
ich z pamięci

19
Sieć neuronowa

Sieć neuronowa

● sieci neuronowe i klasyczne komputery nadają się do wykonywania stosunkowo odmiennych


zadań
● symulowanie sieci neuronowych w klasycznych komputerach jest całkowicie możliwe, ale ich pełen
potencjał można osiągnąć dopiero dzięki wykorzystaniu specjalnego sprzętu (urządzeń
komputerowych), który może przetwarzać wiele porcji informacji jednocześnie tzw. przetwarzanie
równoległe
● procesory graficzne (lub graficzne jednostki obliczeniowe) mają takie możliwości i stały się
stosunkowo niedrogim narzędziem stosowanym w masowych metodach uczenia głębokiego

20
Sieć neuronowa

Sieć neuronowa

● zbiór połączonych ze sobą jednostek wejściwo-wyjściowych

● z każdym połączeniem skojarzona jest waga, która może zostać zmieniona w trakcie uczenia

● dowolna sztuczna sieć neuronowa może być zdefiniowana poprzez określenie:


○ modelu sztucznego neuronu,
○ topologii,
○ reguł uczenia sieci

21
Sieć neuronowa

Połączenia w sieciach neuronowych (źródło:


Leksykon sieci neuronowych)
Sieć neuronowa

● drugim najważniejszym elementem modelu sztucznej sieci są


połączenia międzyneuralne
● tworzy się je pomiędzy wyjściami jednych neuronów, a wejściami
innych
● służą do jednokierunkowego przesyłania sygnałów (danych)
wewnątrz sieci
● istnieje kilka różnych rodzajów połączeń, choć w większości
… schemat zawiera pozostałe typy połączeń,
praktycznie używanych modeli występują jedynie połączenia
które należy wyróżnić i są to kolejno: połączenia
międzywarstwowe korzystające z zasady „każdy z każdym”
międzywarstwowe (m), połączenia wewnątrz
warstwowe (w), połączenia nadwarstwowe (n),
połączenia rekurencyjne (r) oraz samosprzężenia
(s) …

22
Sieć neuronowa

Warstwy

● pojedynczy neuron jest zbyt prosty, by mógł podejmować wiarygodne decyzje i tworzyć
wiarygodne przewidywania w większości rzeczywistych zastosowań.

● w celu wykorzystania pełnego potencjału sieci neuronowych, możemy wykorzystać wyjście


jednego neuronu jako wejście innych neuronów, których wyjścia mogą zostać wprowadzone do
jeszcze innych neuronów i tak dalej

● wyjście całej sieci otrzymujemy w postaci wyjścia określonego podzbioru neuronów, który
nazywamy warstwą wyjściową

23
Sieć neuronowa

Warstwy

● modele sztucznych sieci neuronowych są zazwyczaj organizowane w sieć połączonych ze sobą neuronów
● na każdym poziomie łączą się one tylko z innymi neuronami na poziomie położonym bezpośrednio niżej lub
wyżej w hierarchii struktury
● siła połączeń pomiędzy neuronami opisywana jest przy pomocy wag - nazywamy tak wartości, które pozwalają
modelowi sieci na ocenianie znaczenia sygnału dla zadanego problemu
● wartości wag ustalane są zazwyczaj przez algorytm uczenia - najczęściej zmieniają się w trakcie procesu nauki,
gdy model ustala coraz dokładniejsze zależności w przedstawianych mu danych, a dodatkowo przekształca je w
celu optymalizacji modelu dla otrzymywanego rodzaju informacji
● wagi determinują więc „wiedzę”, jaką posiada model neuronowy
● neurony położone na wyższym poziomie warstw ukrytych odbierają dane wejściowe tylko z warstwy
bezpośrednio pod nimi

24
Sieć neuronowa

Warstwy

● gotowej strukturze prezentuje się przygotowane zestawy danych uczących


● następnie modyfikuje się wartości wag w hierarchii modelu, dopóki nie jest on odpowiednio skalibrowany - o
poprawnym doborze wag świadczą odpalenia konkretnych neuronów lub ich układów, które zazwyczaj znajdują
się na najwyższym poziomie hierarchii modelu
● zachowanie sieci neuronowej jest silnie uzależnione od rodzaju zastosowanej funkcji aktywacji, czyli algorytmu
wykorzystywanego do transformacji poziomu pobudzenia neuronu w sygnał wyjściowy
● modele sztucznych sieci neuronowych pozwalają na stosowanie szerokiego zakresu, a nawet na tworzenie
własnych funkcji aktywacji neuronów - zazwyczaj jednak przy większości zadań wystarcza wykorzystanie
podstawowych algorytmów, które są zazwyczaj wbudowane w środowiska obsługujące uczenie maszynowe

25
Sieć neuronowa

Warstwy - podsumowanie

● architektura sieci składa się z warstw

● warstwa wejściowa składa się z neuronów, które otrzymują sygnały wejściowe bezpośrednio z danych (np. w
przypadku rozpoznawania obrazów warstwa wejściowa wykorzystałaby wartości pikseli obrazu wejściowego)

● sieć zazwyczaj posiada również ukryte warstwy, które wykorzystują dane wyjściowe z innych neuronów jako
dane wejściowe i których dane wyjściowe wykorzystuje się jako dane wejściowe dla innych warstw neuronów

● warstwa wyjściowa zwraca dane wyjściowe całej sieci - wszystkie neurony w danej warstwie otrzymują dane
wejściowe z neuronów z poprzedniej warstwy i przekazują swoje dane wyjściowe do następnej

● algorytmem uczenia głębokiego w przypadku perceptronu wielowarstwowego jest algorytm wstecznej


propagacji błędów

26
Sieć neuronowa

Ułożenie warstw w sieci neuronowej (źródło:


Leksykon sieci neuronowych

Ułożenie warstw w sieci neuronowej

● umownie warstwa stanowi wyobrażenie sposobu ułożenia neuronów pełniących w sieci konkretną funkcję
● zazwyczaj w strukturze sieci zakłada się istnienie co najmniej kilku warstw neuronów, ale może ich być
znacznie więcej
● sieci wielkoskalowalne wykorzystywane w uczeniu głębokim posiadają wiele warstw i osiągają zawrotne ilości
setek, a nawet tysięcy połączonych ze sobą neuronów
● w standardowym modelu sieci wyróżnić można warstwę wejściową, warstwę wyjściową oraz warstwy ukryte,
których ilość uzależnia się od wykorzystywanych algorytmów i rodzaju rozwiązywanego problemu
● sposób, w jaki przebiega podział warstw jest zdeterminowany, między innymi, poprzez połączenia neuronów
● najczęściej łączy się tylko neurony należące do sąsiadujących ze sobą warstw
.

27
Sieć neuronowa

Rodzaje sieci neuronowych

● sztuczne sieci neuronowe są bardzo szeroko pojętą kategorią uczenia maszynowego


● poszukiwania odpowiedniego modelu dla stawianego przed siecią problemu są bardzo często
problematyczne i czasochłonne
● w związku z tym, pojawiły się próby uporządkowania ich na pewne kategorie
● podział bazuje na sposobie połączenia neuronów oraz kierunkach przepływu sygnałów wewnątrz modelu sieci
● każdy z typów sklasyfikowanych w ten sposób nadaje się do rozwiązywania problemów innego rodzaju i
posiada swoje własne metody doboru wag
● istnieje wiele rodzajów klasyfikacji sieci, jednak te uznawane za najbardziej podstawowe, obrazujące budowę i
sposób działania to
○ sieci jednokierunkowe (jednowarstwowe oraz wielowarstwowe)
○ sieci rekurencyjne
.

28
Architektura sieci neuronowej

Sieci jednokierunkowe

Sieci jednokierunkowe których typowym przykładem jest perceptron jednowarstwowy składają się
z neuronów ułożonych w warstwach o jednym kierunku przepływu sygnałów i połączeniach
międzywarstwowych jedynie między kolejnymi warstwami. Sieć tego typu posiada warstwę
wejściową, wyjściową i warstwy ukryte. Z funkcjonalnego punktu widzenia układ taki można
traktować jako układ funkcji nieliniowej wielu zmiennych y = f(u)

… Typowym przedstawicielem sieci jednokierunkowych, a zarazem


najpopularniejszym przedstawicielem uczenia maszynowego, jest
perceptron wielowarstwowy. Model ten składa się z neuronów
ułożonych w warstwach o jednym kierunku przepływu sygnałów.
Połączenia międzywarstwowe znajdują się jedynie między
kolejnymi, sąsiadującymi ze sobą strukturami. Sieć tego typu
posiada zazwyczaj warstwę wejściową, wyjściową i kilka warstw
ukrytych …
29
Architektura sieci neuronowej

Sieci jednokierunkowe - podsumowanie

● proste modele sieci neuronowych mają zwykle strukturę jednokierunkową (ang. feedforward)
● w ich przypadku sygnał przepływa tylko w jednym kierunku, od warstwy wejściowej poprzez
neurony ukryte, aż do osiągnięcia warstwy wyjściowej
● strukturę taką charakteryzuje przede wszystkim stabilne zachowanie - możliwy do
przewidzenia sposób działania jest często pożądanym aspektem w pracy z danymi
● w przypadku potrzeby prowadzenia bardziej skomplikowanych obliczeń, w szczególności
takich, które mają charakter rekurencyjny, należy wbudować w sieć sprzężenie zwrotne -
połączenia powrotne w hierarchii, od późniejszych do wcześniejszych warstw neuronów -
modele takie są jednak o wiele bardziej skomplikowanymi strukturami i nie gwarantują
użytkownikowi stabilnego i określonego działania

30
Architektura sieci neuronowej

Sieci rekurencyjne

sieć w której połączenia między neuronami stanowią graf z cyklami.

Wśród różnorodności modeli rekurencyjnych sztucznych sieci neuronowych wyróżnić można


sieć Hopfielda – układ gęsto połączonych ze sobą neuronów (każdy z każdym, ale bez połączeń
zwrotnych) realizującą dynamikę gwarantującą zbieżność do preferowanych wzorców.

… Sieci rekurencyjne charakteryzują się


występowaniem przynajmniej jednego
wbudowanego sprzężenia zwrotnego.
Oznacza to, że sygnały wyjściowe
opuszczające warstwy kierowane są z
powrotem na jej wejścia, w celu
rozwiązywania problemów rekurencyjnych.
Sygnały wejściowe w takiej sieci zależą
zarówno od aktualnego stanu wejścia, jak i
od sygnałów wyjściowych …

31
Architektura sieci neuronowej

Sieci komórkowe

W tych sieciach sprzężenia wzajemne między elementami przetwarzającymi dotyczą jedynie


najbliższego sąsiedztwa. Połączenia te są w ogólności nieliniowe i opisane poprzez układ równań
różniczkowych. Podstawową trudność w stosowaniu tego typu sieci stanowi opracowanie
skutecznej, efektywnej i uniwersalnej metody projektowania. Typowym przykładem sieci
komórkowej może być sieć typu mapa Kohonena

32
Architektura sieci neuronowej

Topologia

Począwszy od prostych sieci z małą liczbą warstw przekazujących informacje w jednym kierunku
aż do wielowarstwowych sieci ze sprzężeniem zwrotnym można stwierdzić, że:
● sieć szersza (z większą liczbą neuronów w warstwie wejściowej) może obserwować
więcej danych
● głębsza sieć (z większą liczbą warstw) ma większy potencjał wykrywania
wysokopoziomowych zależności i abstrakcji w danych wejściowych

33
Architektura sieci neuronowej

Metody uczenia

Sieci mogą być uczone pod nadzorem (dążyć do żądanego wyniku) lub bez nadzoru (dążyć do
wykrycia nieznanych zależności).

Oprócz tego różnią się tym, czy w trakcie uczenia sieci była wykorzystywana rekurencja, jak długo
sieć dążyła do optymalnego wyniku albo jak bardzo jest dopasowana do konkretnego zestawu
danych wejściowych.

34
Architektura sieci neuronowej

Rozwiązanie zagadnienia klasyfikacji

W zagadnieniach klasyfikacyjnych celem stawianym sieci jest przypisanie każdego


przypadku reprezentowanego przez odpowiedni zestaw danych wejściowych do jednej z
wybranych klas.
Zadaniem sieci jest estymacja prawdopodobieństwa przynależności przypadku do danej klasy.

Klasyfikacja jest realizowana poprzez użycie nominalnej zmiennej wyjściowej, której wartości
(będące nazwami wybieranymi z pewnego z góry ustalonego zbioru wartości) odpowiadają
różnym klasom, do których można zaliczać wejściowe dane.

35
Architektura sieci neuronowej

Rozwiązanie zagadnienia klasyfikacji

Zmienne nominalne są zwykle reprezentowane w sieciach za pomocą jednej z dwóch technik:


techniki dwustanowej i techniki jeden-z-N .

W reprezentacji dwustanowej zmiennej nominalnej odpowiada pojedynczy neuron, którego sygnał


wyjściowy determinuje wartość rozważanej zmiennej. Zasada jest bardzo prosta: wartość sygnału
wyjściowego neuronu wynosząca 0 jest interpretowana jako jeden stan,
i wartość 1 jako drugi wyróżniony stan.

W kodowaniu jeden-z-N, jeden neuron odpowiada tylko jednej z N możliwych wartości


rozpatrywanej zmiennej. Konkretny stan zmiennej nominalnej reprezentowany jest przez wartość
sygnału wynoszącą 1, pojawiającą się na odpowiadającym temu stanowi neuronie, podczas gdy
wartości na wszystkich pozostałych neuronach wynoszą 0.

36
Algorytmy ewolucyjne

Algorytmy ewolucyjne

● naśladowanie natury

● wszystkie organizmy posiadają specyficzny materiał genetyczny, zawierający informacje o nich

samych, który pozwala na przekazywanie zapisanych w nim cech kolejnym pokoleniom

● w czasie reprodukcji powstaje nowy organizm, który dziedziczy pewne cechy po swoich

rodzicach

● cechy zapisane są w genach, a te przechowywane są w chromosomach, które składają się na

materiał genetyczny - genotyp

37
Algorytmy ewolucyjne

● Podczas przekazywania cech dochodzi do modyfikowania genów - następuje krzyżowanie się

różniących się chromosomów obojga rodziców, często dochodzi też do mutacji czyli zamiany

pojedynczych genów w chromosomie.

● Powstaje organizm różniący się od swoich rodziców, który zawiera geny swoich poprzedników,

ale posiada także cechy charakterystyczne dla siebie.

38
Algorytmy ewolucyjne

● Organizm zaczyna żyć we własnym środowisku


○ jeżeli będzie do niego dobrze przystosowany (kombinacja genów korzystna)
będzie przekazywał swój materiał potomstwu
○ osobnikowi źle przystosowanemu trudno będzie życ w tym środowisku i
przekazywać swoje geny następnym pokoleniom

Przedstawiona idea została wykorzystana do rozwiązywania zadań optymalizacji.

Analogiczne podejście można wykorzystać do obliczeń numerycznych stosując


algorytmy ewolucyjne.

39
Algorytmy ewolucyjne

Środowisko definiujemy na podstawie rozwiązywanego problemu.


● żyje w nim populacja osobników stanowiących potencjalne rozwiązania danego zagadnienia
● za pomocą odpowiednio zdefiniowanej funkcji przystosowania sprawdzamy w jakim stopniu są
one przystosowane do środowiska
● osobniki wymieniają między sobą materiał genetyczny - wprowadza się operatory krzyżowania i
mutacji, aby generować nowe rozwiązania
● spośród potencjalnych rozwiązań “przeżywają” tylko te, które są najbardziej przystosowane

Do rodziny algorytmów ewolucyjnych należą:


● klasyczny algorytm genetyczny
● strategie ewolucyjne
● programowanie ewolucyjne
● programowanie genetyczne
40
Algorytmy ewolucyjne

Problemy optymalizacji
● metody analityczne
○ pośrednie - polegające na poszukiwaniu lokalnych ekstremów funkcji poprzez
rozwiązywanie układu równań nieliniowych,
○ bezpośrednie - polegające na poszukiwaniu lokalnego minimum przez
“skakanie” po wykresie funkcji w kierunku określonym gradientem

1. obydwie są niezwykle wolne,


2. mają zakres lokalny ponieważ poszukują optymalnego rozwiązania w sąsiedztwie
danego punktu,
3. mają ograniczony zakres zastosowań,
4. ich zastosowanie uzależnione jest od istnienia pochodnych funkcji
41
Algorytmy ewolucyjne

Problemy optymalizacji

● metody przeglądowe
○ przy skończonej przestrzeni poszukiwań polegają na obliczeniu wartości funkcji
celu i przeglądaniu wszystkich punktów przestrzeni po kolei
○ mimo prostoty i podobieństwa do ludzkiego rozumowania mają podstawową
wadę - są nieefektywne
○ wiele problemów charakteryzuje się tak ogromną przestrzenią poszukiwań, że
nie jest możliwe przeszukanie wszystkich punktów w rozsądnym czasie

42
Algorytmy ewolucyjne

Problemy optymalizacji
● metoda losowa
○ zaczęła być używana, gdy uzmysłowiono sobie słabości metod analitycznych i
przeglądowych
○ algorytm przeszukiwania losowego, polega na losowym przeszukiwaniu
przestrzeni i zapamiętywaniu najlepszego rozwiązania
○ techniki oparte o liczby pseudolosowe również okazały się nieefektywne

Algorytmy ewolucyjne są przykładem podejścia, w którym losowy wybór jest tylko


narzędziem do wspomagania przeszukiwania w zakodowanej przestrzeni rozwiązań
● stanowi wzorowaną na naturalnej ewolucji metodę rozwiązywania problemów
(zagadnień optymalizacyjnych)
● są procedurami przeszukiwania opartymi na mechanizmach doboru
naturalnego i dziedziczenia
● korzystają z ewolucyjnej zasady przeżycia osobników najbardziej
przystosowanych
43
Algorytmy ewolucyjne

Różnica pomiędzy tradycyjnymi metodami optymalizacji a algorytmami ewolucyjnymi:

● algorytmy ewolucyjne nie przetwarzają bezpośrednio parametrów zadania, lecz ich


zakodowaną postać
● algorytmy ewolucyjne prowadzą przeszukiwanie, wychodząc nie z pojedynczego punktu,
lecz z pewnej ich populacji
● algorytmy ewolucyjne korzystają tylko z funkcji celu, nie zaś z jej pochodnych lub innych
pomocniczych informacji
● algorytmy ewolucyjne stosują probabilistyczne, a nie deterministyczne reguły wyboru

44
Algorytmy ewolucyjne

4 cechy algorytmów ewolucyjnych:


● kodowanie parametrów
● działanie na populacjach
● korzystanie z minimum informacji
● zrandomizowane operacje

Cechy te wpływają na odporność algorytmu ewolucyjnego i dają mu przewagę na innymi wcześniej


wymienionymi technikami.

45
Algorytmy ewolucyjne

Algorytmy ewolucyjne korzystają z określeń zapożyczonych z genetyki


● populacja osobników
● gen
● chromosom
● genotyp
● fenotyp
● allel

Populacja - zbiór osobników o określonej liczebności

Osobnikami populacji - są zakodowane w postaci chromosomów zbiory parametrów


zadania, czyli rozwiązania, określane również jako punkty przestrzeni poszukiwań (search
points) nazywane również organizmami

Chromosomy - inaczej łańcuchy lub ciągi kodowe - to uporządkowane ciągi genów

Gen - nazywany też cechą, znakiem, detektorem - stanowi pojedynczy element genotypu, w
szczególności chromosomu 46
Algorytmy ewolucyjne

Genotyp - czyli struktura - to zespół chromosomów danego osobnika. Osobnikami populacji mogą być
genotypy lub pojedyncze chromosomy (jeżeli genotyp składa się z jednego chromosomu - często tak
się przyjmuje)

Fenotyp - jest zestawem wartości odpowiadających danemu genotypowi, czyli zdekodowaną


strukturą, a więc zbiorem parametrów zadania (rozwiązaniem, punktem przestrzeni poszukiwań)

Allel - to wartość danego genu, określana też jako wartość cechy lub wariant cechy

Locus - to pozycja wskazująca miejsce położenia danego genu w łańcuchu czyli chromosomie

47
Algorytmy ewolucyjne

Bardzo ważnym zagadnieniem w algorytmach genetycznych jest funkcja przystosowania


(fitness function) inaczej funkcja dopasowania, funkcja oceny

Stanowi ona miarę przystosowania (dopasowania) danego osobnika do populacji

Pozwala ocenić stopień przystosowania poszczególnych osobników w populacji i na tej


podstawie wybrać osobniki najlepiej przystosowane (o największej wartości funkcji
przystosowania), zgodnie z ewolucyjną zasadą przetrwania “najsilniejszych” (najlepiej
przystosowanych)

48
Algorytmy ewolucyjne

Funkcja przystosowania (nazwa przejęta z genetyki) musi być odpowiednio zdefiniowana.

● W zagadnieniach optymalizacji funkcją przystosowania jest zwykle optymalizowana funkcja


(maksymalizowana funkcja) nazywana funkcją celu

● W zagadnieniach minimalizacji przekształca się funkcję celu, sprowadzając problem do


zagadnienia maksymalizacji

● W teorii sterowania funkcją przystosowania może być funkcja błędu, a teorii gier funkcja kosztu

● W algorytmie ewolucyjnym, w każdej jego iteracji, ocenia się przystosowanie każdego osobnika
danej populacji za pomocą funkcji przystosowania i na tej podstawie tworzy się nową populację
osobników, stanowiących zbiór potencjalnych rozwiązań problemu (zadania optymalizacji)

● Kolejną iterację w algorytmie ewolucyjnym nazywa się generacją, a o nowo utworzonej populacji
osobników mówi się jako o nowym pokoleniu lub pokoleniu potomków

49
Klasyczny algorytm genetyczny

Kroki składające się na podstawowy


(klasyczny, elementarny, prosty) algorytm
genetyczny
1. inicjacja - wybór początkowej populacji
chromosomów
2. ocena przystosowania chromosomów
w populacji
3. sprawdzenie warunku zatrzymania
4. selekcja chromosomów
5. zastosowanie operatorów
genetycznych
6. utworzenie nowej populacji
7. wyprowadzenie “najlepszego”
chromosomu

50
Klasyczny algorytm genetyczny

Inicjacja

● utworzenie populacji początkowej - polega na losowym wyborze żądanej liczby chromosomów


(osobników) reprezentowanych przez ciągi binarne o określonej długości

Ocena przystosowania chromosomów w populacji

● polega na obliczeniu wartości funkcji przystosowania dla każdego chromosomu z tej populacji.
Im większa jest wartość tej funkcji, tym lepsza “jakość” chromosomu

● postać funkcji przystosowania zależy od rodzaju rozwiązywanego problemu, zakłada się, że


funkcja przystosowania przyjmuje zawsze wartości nieujemne oraz że rozwiązywany problem
optymalizacji jest problemem poszukiwania maksimum tej funkcji

● jeżeli pierwotna postać funkcji przystosowania nie spełnia tych założeń, to dokonuje się
odpowiedniej transformacji (problem poszukiwania minimum funkcji można sprowadzić do
problemu poszukiwania maksimum)
51
Klasyczny algorytm genetyczny

Sprawdzenie warunku zatrzymania

● określenie warunku zatrzymania algorytmu genetycznego zależy od konkretnego zastosowania tego


algorytmu

● w zagadnieniach optymalizacji, jeżeli znana jest wartość maksymalna (lub minimalna) funkcji
przystosowania, zatrzymanie algorytmu może nastąpić po uzyskaniu żądanej wartości optymalnej,
ewentualnie z określoną dokładnością

● zatrzymanie algorytmu może również nastąpić jeśli dalsze jego działanie nie poprawia już uzyskanej
najlepszej wartości

● algorytm może zostać zatrzymany po upływie określonego czasu działania lub po określonej liczbie
generacji

● jeżeli warunek zatrzymania jest spełniony, następuje przejście do ostatniego kroku, czyli
wyprowadzenia “najlepszego” chromosomu, jeżeli nie to następnym krokiem jest selekcja
chromosomów
52
Klasyczny algorytm genetyczny

Selekcja chromosomów

● polega na wybraniu, na podstawie obliczonych wartości funkcji przystosowania tych


chromosomów, które będą brały udział w tworzeniu potomków do następnego pokolenia
(następnej generacji)

● wybór ten odbywa się zgodnie z zasadą naturalnej selekcji tzn. największe szanse na udział w
tworzeniu nowych osobników mają chromosomy o największej wartości funkcji przystosowania

● istnieje wiele metod selekcji


○ najbardziej popularna metoda ruletki (roulette-wheel selection) - analogia do losowania za
pomocą koła ruletki.
○ każdemu chromosomowi można przydzielić wycinek koła ruletki o wielkości
proporcjonalnej do wartości funkcji przystosowania danego chromosomu
○ im większa wartość funkcji przystosowania, tym większy jest wycinek (sektor) na kole
ruletki
53
Klasyczny algorytm genetyczny

Selekcja chromosomów c.d.

Całe koło ruletki odpowiada sumie wartości funkcji przystosowania wszystkich chromosomów
rozważanej populacji.

Każdemu chromosomowi oznaczonemu przez chi dla i=1,2,..., K gdzie K jest liczebnością populacji,
odpowiada wycinek koła v(chi) stanowiący część całego koła, wyrażony w procentach

F(chi ) oznacza wartość funkcji przystosowania chromosomu chi


ps(chi ) jest prawdopodobieństwem selekcji chromosomu chi

Selekcja chromosomu może być widziana jako obrót kołem ruletki, w wyniku czego “wygrywa” (zostaje
wybrany) chromosom należący do wylosowanego w ten sposób wycinka ruletki
54
Klasyczny algorytm genetyczny

Selekcja chromosomów c.d.

● Im większy jest wycinek koła, tym większe jest prawdopodobieństwo “zwycięstwa”


odpowiedniego chromosomu

● Wniosek: prawdopodobieństwo wybrania danego chromosomu jest tym większe, im większa


wartość funkcji przystosowania

● Jeżeli cały okrąg ruletki potraktujemy jako przedział liczbowy [0,100] to wylosowanie
chromosomu można potraktować jako wylosowanie liczby z zakresu [a,b] gdzie 0 ≤ a <b ≤ 100
(a - początek okręgu, b - koniec okręgu)

● Wówczas losowanie za pomocą koła ruletki sprowadza się do wylosowania liczby z przedziału
[0,100], która odpowiada konkretnemu punktowi na okręgu koła ruletki

● W wyniku procesu selekcji zostaje utworzona populacja rodzicielska, nazywana też pulą
rodzicielską (mating pool) o liczebności równej K tzn. takiej samej jak liczebność bieżącej
populacji
55
Klasyczny algorytm genetyczny

Zastosowanie operatorów genetycznych

● Zastosowanie operatorów genetycznych do chromosomów wybranych metodą selekcji prowadzi do


wytworzenia nowej populacji, stanowiącej populację potomków otrzymaną z populacji rodziców.

● W klasycznym, algorytmie genetycznym stosuje się dwa podstawowe operatory genetyczne


○ operator krzyżowania (crossover)
○ operator mutacji (mutation)

● Operator mutacji odgrywa zdecydowanie drugoplanową rolę w stosunku do operatora krzyżowania

● Oznacza to, że krzyżowanie w klasycznym algorytmie genetycznym występuje prawie zawsze,


podczas gdy mutacja dosyć rzadko

Prawdopodobieństwo wystąpienia krzyżowania przyjmuje się zwykle duże (0,5 ≤ pk ≤ 1), natomiast zakłada
się bardzo małe prawdopodobieństwo wystąpienia mutacji (często 0 ≤ pm ≤ 0,1).
Wynika to z analogii do świata organizmów żywych, gdzie mutacja zachodzi niezwykle rzadko
W algorytmie genetycznym, mutacja chromosomu może być dokonywana na populacji rodziców przed
operacją krzyżowania lub na populacji potomków utworzonych w wyniku krzyżowania
56
Klasyczny algorytm genetyczny

Operator krzyżowania

● Pierwszym etapem krzyżowania jest wybór par chromosomów populacji rodzicielskiej (puli
rodzicielskiej)

● Jest to tymczasowa populacja złożona z chromosomów wybranych metoda selekcji i


przeznaczonych do dalszego przetwarzania za pomocą operatorów krzyżowania i mutacji w
celu utworzenia nowej populacji potomków

● Na tym etapie chromosomy z populacji rodzicielskiej kojarzone są w pary - dokonuje się tego w
sposób losowy, zgodnie z prawdopodobieństwem krzyżowania pk

● Następnie dla każdej pary wybranych w ten sposób rodziców losuje się pozycję genu (locus) w
chromosomie określająca tzw. punkt krzyżowania

57
Klasyczny algorytm genetyczny

Operator krzyżowania c.d.

Jeżeli chromosom każdego z rodziców składa się z L genów, to punkt krzyżowania lk jest liczbą naturalną
mniejsza od L

Wybór punktu krzyżowania sprowadza się do wylosowania liczby z przedziału [1, L-1]

W wyniku krzyżowania pary chromosomów rodzicielskich otrzymuje się następująca pary potomków:

1. potomek, którego chromosom składa się z genów na pozycjach od 1 do lk , pochodzących od


pierwszego rodzica, i następnych genów od pozycji lk +1 do L pochodzących od drugiego rodzica

2. potomek, którego chromosom składa się z genów na pozycjach od 1 do lk, pochodzących od


drugiego rodzica i następnych genów od pozycji lk+1 do L pochodzących od pierwszego rodzica

58
Klasyczny algorytm genetyczny

Operator krzyżowania c.d.

Rozważmy 2 chromosomy ch1 = [1001001110] oraz ch2 =[1001111110]

Poddajemy je operacji krzyżowania

W tym przypadku chromosomy składają się z 10 genów (L=10) - losujemy więc liczbę całkowitą z
przedziału [1,9]. Załóżmy, że wylosowano liczbę 5.

Przebieg krzyżowania przedstawia się następująco

Para rodziców: Para potomków;


krzyżowanie
ch1 = [10010 |01110] [10010|11110]
ch2 = [10011 |11110] [10011|01110]

Symbolem | oznaczono miejsce krzyżowania, pogrubioną czcionką zaznaczono zmienione geny 59


Klasyczny algorytm genetyczny

Operator mutacji

zgodnie z prawdopodobieństwem mutacji pm, dokonujemy zmiany wartości genu w chromosomie na przeciwną (tzn. z 0 na 1
lub z 1 na 0)

prawdopodobieństwo zaistnienia mutacji jest zwykle bardzo małe i od niego zależy czy dany gen w chromosomie podlega
mutacji lub nie

Dokonanie mutacji zgodnie z prawdopodobieństwem pm polega np. na losowaniu liczby z przedziału [0,1] dla każdego genu i
wybraniu do mutacji tych genów dla których wylosowana liczba jest równa prawdopodobieństwu pm lub mniejsza

Dokonujemy operacji mutacji na chromosomie [1001101010]


Wartość pm wynosi 0,02
Losujemy liczby z przedziału [0,1]
0,23 0,76 0,54 0,10 0,28 0,68 0,01 0,30 0,95 0,12

Mutacji podlega gen na 7 pozycji ponieważ wylosowana liczba losowa 0,01 jest mniejsza niż wartość prawdopodobieństwa
mutacji pm.

Wartosć genu zmienia się z 1 na 0 i otrzymujemy chromosom [1001100010]

60
Klasyczny algorytm genetyczny

Utworzenie nowej populacji

● Chromosomy otrzymane w wyniku działania operatorów genetycznych wchodzą w skład nowej


populacji

● Populacja ta staje się populacją bieżącą dla danej generacji algorytmu genetycznego

● W każdej kolejnej generacji oblicza się wartości funkcji przystosowania każdego z


chromosomów tej populacji

● Następnie sprawdza się warunek zatrzymania algorytmu i albo wyprowadza się wynik w postaci
chromosomu o największej wartości przystosowania, albo przechodzi się do kolejnego kroku
algorytmu genetycznego tzw. selekcji.

● W klasycznym algorytmie genetycznym cała poprzednia populacja chromosomów zastępowana


jest przez tak samo liczną nową populację potomków.

61
Klasyczny algorytm genetyczny

Wyprowadzanie “najlepszego” chromosomu

● Jeżeli spełniony jest warunek zatrzymania algorytmu genetycznego, należy wyprowadzić wynik
działania algorytmu, czyli podac rozwiązanie problemu.

● Najlepszym rozwiązaniem jest chromosom o największej wartości funkcji przystosowania

Praktyczne działanie algorytmu genetycznego: znaleźć maksimum funkcji y = 2x + 1

zakładając że x przyjmuje wartości całkowite w przedziale [0,31]

● w tym przypadku parametrem zadania jest x

● zbiór {0, 1, ... ,31} stanowi przestrzeń poszukiwań

Każda z 32 liczb należących do tego zbioru nazywa się punktem poszukiwań, rozwiązaniem, wartością
parametru

Rozwiązanie optymalizujące funkcję nazywa się rozwiązaniem najlepszym lub optymalnym


62
Klasyczny algorytm genetyczny

Rozwiązanie zadania kodujemy binarnie (systemem dwójkowym) za pomocą 5 bitów

Powstałe ciągi kodowe nazywane są też łańcuchami lub chromosomami, w tym przykładzie to również
genotypy

Wartość genu na określonej pozycji nazywa się allelem, są to wartości 0 lub 1

Zadanie optymalizacji polega na przeszukiwaniu przestrzeni złożonej z 32 punktów i znalezieniu tego


spośród nich, dla którego funkcja przyjmuje największą wartość

Zgodnie z algorytmem, rozpoczynamy od wylosowania populacji początkowej, operujemy na małej


populacji liczącej 8 osobników
63
Klasyczny algorytm genetyczny

Rozpoczynamy główną pętlę algorytmu genetycznego,


obliczamy przystosowanie poszczególnych osobników.
W wyniku losowania otrzymujemy:
Dekodujemy informacje z chromosomów i otrzymujemy
ch1 = [00110]
następujące fenotypy
ch2 = [00101]
ch1* = 6
ch3 = [01101]
ch2* = 5
ch4 = [10101]
ch3* = 13
ch5 = [11010]
ch4* = 21
ch6 = [10010]
ch5* = 26
ch7 = [01000]
ch6* = 18
ch8 = [00101]
ch7* = 8
ch8* = 5

64
Klasyczny algorytm genetyczny

Obliczamy przystosowanie za pomocą funkcji, która jest taka sama jak funkcja przez nas
optymalizowana. W miejsce parametru x podstawiamy wartość fenotypu:

np. F(ch1 ) = 2 ・ ch1* + 1 = 13

F(ch2 ) = 11
F(ch3 ) = 27
F(ch4 ) = 43
F(ch5 ) = 53
F(ch6 ) = 37
F(ch7 ) = 17
F(ch8 ) = 11

Szukamy maksimum - za najlepiej przystosowane osobniki uważa się te, które mają największą
wartość funkcji przystosowania.

65
Klasyczny algorytm genetyczny

Możemy teraz w populacji wyróżnić osobniki najlepiej i najgorzej przystosowane

Chromosom ch5 ma największą wartość funkcji przystosowania,

w przeciwieństwie do chromosomów ch2 i ch8 które mają identyczne, najmniejsze przystosowanie

Kolejnym krokiem jest selekcja chromosomów - wykorzystanie metody koła ruletki

66
Klasyczny algorytm genetyczny

Otrzymujemy wycinki koła ruletki wyrażone w procentach

v(ch1 ) = 6,13
v(ch2 ) = 5,19
v(ch3 ) = 12,74
v(ch4 ) = 20,28
v(ch5 ) = 25
v(ch6 ) = 17,45
v(ch7 ) = 8,02
v(ch8 ) = 5,19

Źródło: L. Rutkowski “Metody i techniki sztucznej inteligencji” 67


Klasyczny algorytm genetyczny

Losowanie za pomocą koła ruletki sprowadza się do losowego wyboru liczby z przedziału [0,100]
wskazującej odpowiedni wycinek na kole (wskazującej konkretny chromosom)

Założenie: wylosowano 8 następujących liczb

79 44 9 74 45 86 48 23

Oznacza to wybór następujących chromosomów

ch6, ch4, ch2, ch6, ch5, ch6, ch5, ch3

● chromosom ch5 został wylosowany dwukrotnie - jest to chromosom o największej wartości


funkcji przystosowania

● trzykrotnie wylosowano chromosom ch6 o dość dużej wartości funkcji przystosowania

● wylosowano chromosom ch2 o najmniejszej wartości puli przystosowania

Wszystkie wybrane w ten sposób chromosomy zaliczamy do puli rodzicielskiej


68
Klasyczny algorytm genetyczny

Zakładamy, że żaden z chromosomów wybranych podczas selekcji nie podlega mutacji


(prawdopodobieństwo pm= 0)

Przeprowadzamy tylko krzyżowanie, przyjmując prawdopodobieństwo krzyżowania pk=0,75

Kojarzymy osobniki w pary tak jak są poukładane w puli rodzicielskiej

Losujemy dla każdej z nich liczbę z przedziału [0,1]

0,12 0,73 0,65 0,33

Wszystkie wylosowane liczby są mniejsze od prawdopodobieństwa krzyżowania pk, więc krzyżowanie


zachodzi dla każdej z par.

Następnie znajdujemy dla każdej pary punkty krzyżowania przez wylosowanie liczb całkowitych z
przedziału [1,4]

69
Klasyczny algorytm genetyczny

Otrzymujemy

Pierwsza para rodziców Pierwsza para potomków


ch6 = [10010] krzyżowanie
[10001]
ch4 = [10101] [10110]
lk=3

Druga para rodziców Druga para potomków


ch2 = [00101] [00100]
krzyżowanie
ch6 = [10010] [10011]
lk=4

Trzecia para rodziców Trzecia para potomków


ch5 = [11010] [11010]
krzyżowanie [10010]
ch6 = [10010]
lk=3

Czwarta para rodziców Czwarta para potomków


ch5 = [11010] krzyżowanie
[11101]
ch3 = [01101] [01010]
lk = 2
70
Klasyczny algorytm genetyczny

W wyniku operacji krzyżowania otrzymujemy następującą populację potomków:

Ch1 = [10001] Ch1* = 17


Ch2 = [10110] Ch2* = 22
Ch3 = [00100] Ch3* = 4
Ch4 = [10011] Ch4* = 19
Ch5 = [11010] Ch5* = 26
Ch6 = [10010] Ch6* = 18
Ch7 = [11101] Ch7* = 29
Ch8 = [01010] Ch8* = 10
Chromosomy nowej populacji oznaczamy dużą literą. Następuje przejście do kroku 2 algorytmu -
oceny funkcji przystosowania chromosomów nowej populacji, która stanie się populacją bieżącą.

Dekodując informację z nowej populacji chromosomów otrzymujemy wartości fenotypów


71
Klasyczny algorytm genetyczny

Następnie wyznaczamy wartości samej funkcji przystosowania

F(Ch1 ) = 2 ・ Ch1* + 1 = 35

F(Ch2 ) = 45
F(Ch3 ) = 9
F(Ch4 ) = 39
F(Ch5 ) = 53
F(Ch6 ) = 37
F(Ch7 ) = 59
F(Ch8 ) = 21

72
Klasyczny algorytm genetyczny

Wnioski:

● Populacja potomków charakteryzuje się o wiele większą średnią wartością funkcji


przystosowania niż populacja rodziców.
● W wyniku krzyżowania uzyskano chromosom Ch7 o największej wartości funkcji
przystosowania, jakiej nie miał żaden z chromosomów rodzicielskich
● Może się jednak zdarzyć odwrotnie - po pierwszej generacji, w wyniku operacji krzyżowania
może zostać utracony chromosom, który w populacji rodziców charakteryzował się największa
wartości funkcji przystosowania,
○ mimo to średnie przystosowanie nowej populacji byłoby lepsze niż poprzedniej,
○ a chromosomy o większej wartości funkcji przystosowania miałyby szansę pojawić się w
następnych generacjach

73
Uczenie maszynowe

● W pracy nad sztuczną inteligencją można wyróżnić dwie główne filozofie jej rozwoju. Pierwszą z
nich jest podejście symboliczne, często nazywane inaczej słabą sztuczną inteligencją (ang.
weak AI). Opiera się ona na tworzeniu modeli matematyczno-logicznych dla problemów
poddawanych analizie i implementowaniu ich jako programy komputerowe. Mają one
realizować konkretne funkcje, które są powszechnie uważane za części składowe inteligencji.
Przykładami mogą być algorytmy genetyczne i stosowanie logiki rozmytej.
● Drugą wyróżniającą się filozofią pracy ze sztuczną inteligencją jest tak zwane podejście
subsymboliczne, nazywane również silną sztuczną inteligencją (ang. strong AI). Polega ona na
tworzeniu programów oraz struktur, które starają się samodzielnie „uczyć”. Wykorzystuje się
tutaj modele sieci neuronowych oraz sieci asocjacyjnych. Nauka ta polega na przygotowaniu
odpowiednich metod analizowania danych, procedur rozwiązywania przedstawionych im zadań i
sposobów poszukiwania odpowiedzi na zadane pytania.
74
Uczenie maszynowe

● Przełomowym wydarzeniem w historii samych badań nad inteligencją maszyn był test,
zaproponowany w 1950 roku przez Alana Turinga.
● We wspomnianym doświadczeniu zadaniem maszyny było udawanie istoty ludzkiej podczas
zdalnej rozmowy. Maszyna miała prowadzić dialog w taki sposób, aby człowiek będący sędzią
testu nie mógł wskazać jej spośród wszystkich uczestników dyskusji.

75
Uczenie maszynowe

● Przez długi czas uważano, że stworzenie sztucznej inteligencji na poziomie porównywalnym do


ludzkiego umysłu można uzyskać przy pomocy zdefiniowania odpowiednio dużej liczby reguł
przetwarzających informacje (podejście symboliczne).
● Symboliczna sztuczna inteligencja nie sprawdzała się jednak w określaniu jasnych reguł
rozwiązywania bardziej złożonych problemów. Zadania takie jak rozpoznawanie mowy czy też
klasyfikacja obrazów były dla takiego podejścia zbyt skomplikowane. W związku z tym zostało
ono wyparte przez podejście subsymboliczne (uczenie maszynowe)

76
Uczenie maszynowe

● Uczeniem maszynowym (ang. machine learning) nazywamy obszar sztucznej inteligencji


skupiający się na algorytmach, które mają za zadanie doskonalić się w sposób automatyczny,
poprzez naukę (doświadczenie) w celu zdobywania nowej wiedzy.
● W przypadku uczenia maszynowego, termin „nauka”, odnosi się do procesu automatycznego
poszukiwania lepszej reprezentacji danych. Jest to interdyscyplinarna dziedzina, która do
osiągnięcia zamierzonych celów wykorzystuje informatykę i statystykę.
● Połączenie tych dziedzin nauki sprawia, że uczenie maszynowe dysponuje ogromnymi
możliwościami.
● Sprawdza się w szczególności przy rozwiązywaniu bardziej złożonych problemów, takich jak:
rozpoznawanie mowy, tłumaczenie i prowadzenie pojazdów autonomicznych.

77
Uczenie maszynowe

● Opisywana technologia nie jest jednolita, a sposób jej działania jest w pełni uzależniony od
wykorzystywanych algorytmów i przyjmowanych danych.
● Aktualnie można wyróżnić cztery najpopularniejsze rodzaje uczenia maszynowego: uczenie
nadzorowane (ang. supervised learning), uczenie nienadzorowane (ang. unsupervised learning),
uczenie częściowo nadzorowane (ang. semi-supervised learning) oraz uczenie przez
wzmacnianie (ang. reinforcement learning).
● Wymienione podejścia różnią się od siebie przede wszystkim informacjami, jakie są zawierane
w zestawach danych uczących

78
Uczenie maszynowe

● Technicznie rzecz ujmując, wszystkie algorytmy uczenia maszynowego zawierają zdefiniowane


wcześniej zbiory operacji nazywane przestrzeniami hipotez.
● Mechanizmy te umożliwiają zautomatyzowane poszukiwanie praktycznej reprezentacji danych
w ramach przestrzeni możliwości na podstawie informacji zwrotnej.

79
Uczenie maszynowe

● Główną poddziedziną uczenia maszynowego jest uczenie głębokie (ang. deep


learning).
● Najważniejszym czynnikiem wyróżniającym ten obszar sztucznej inteligencji
spośród innych, jest fakt, że proces nauki przeprowadzany jest tu w większości
bez żadnego nadzoru.
● Prowadzi to do powstawania wielkoskalowych sieci neuronowych, które pozwalają
maszynie na pracę bez potrzeby bezpośredniego udziału człowieka.
● Uczenie głębokie pozwala na uzyskiwanie bardzo dokładnych wyników kosztem
zapotrzebowania na większą, względem uczenia maszynowego, ilość danych
uczących.
● Precyzję osiąganych wyników uzyskuje się poprzez rozszerzanie „głębokości”
modelu.
● Głębokością określamy ilość warstw ukrytych używanych w sztucznych sieciach
neuronowych. 80
Uczenie maszynowe

● Techniki wykorzystujące jedynie jedno lub dwuwarstwowe struktury określa


się mianem uczenia płytkiego (ang. shallow learning).
● Często jednak takie modele nazywa się po prostu uczeniem maszynowym.
● Warto pamiętać, że wraz ze skalą wielkości modelu sieci i ilością warstw,
rośnie zapotrzebowanie na zasoby sprzętowe.
● Natomiast … elastyczność oraz wielka różnorodność algorytmów uczenia
głębokiego sprawia, że posiada ono najszersze spektrum zastosowań ze
wszystkich technik uczenia maszynowego i powoduje, że technologia ta
staje się coraz bardziej popularna.

81
Uczenie maszynowe

Uczenie maszynowe wywodzi się ze statystyki i polega na wydobywaniu wiedzy z danych.

Uczenie nadzorowane:
● uczenie maszynowe, które zakłada obecność ludzkiego nadzoru nad tworzeniem funkcji
odwzorowującej wejście systemu na jego wyjście
● nadzór polega na stworzeniu zestawu danych uczących, czyli par:
○ wejściowy obiekt uczący (np. wektor);
○ pożądana przez nadzorcę (nauczyciela) odpowiedź (np. jakaś konkretna wartość
liczbowa)
● Zadaniem systemu jest nauczenie się przewidywania prawidłowej odpowiedzi na zadane
pobudzenie oraz generalizacja przypadków wyuczonych na przypadki, z którymi system jeszcze
się nie zetknął. Do modelowania procesów technicznych zwykle wykorzystuje się uczenie
nadzorowane

… zadanie do rozwiązania polega na przewidywaniu poprawnego wyniku wyjściowego, w najprostszych


przypadkach odpowiedzi przyjmują formę tak/nie (problem klasyfikacji binarnej)...
82
Uczenie maszynowe

Uczenie maszynowe wywodzi się ze statystyki i polega na wydobywaniu wiedzy z danych.

Uczenie nienadzorowane:
● rodzaj uczenia maszynowego, którego zadaniem jest odkrywanie w zbiorze danych wzorców
bez wcześniej istniejących etykiet i przy minimalnej ingerencji człowieka
● uczenie nienadzorowane zakłada brak obecności oczekiwanego wyjścia w danych uczących
● w przeciwieństwie do uczenia nadzorowanego, które zwykle wykorzystuje dane oznaczone
przez człowieka, uczenie nienadzorowane umożliwia modelowanie gęstości
prawdopodobieństwa danych wejściowych

83
Uczenie maszynowe

Uczenie nienadzorowane:
● dwie główne metody stosowane w uczeniu nienadzorowanym to analiza składowych głównych
oraz analiza skupień
○ analiza składowych głównych jest wykorzystywana do zmniejszania wymiarowości
danych poprzez odkrywanie i odrzucanie cech które niosą ze sobą najmniej informacji
○ analiza skupień jest wykorzystywana w celu grupowania lub segmentowania zestawów
danych ze wspólnymi atrybutami w celu ekstrapolacji występujących w nich zależności
○ analiza skupień identyfikuje podobieństwa w danych i pozwala na grupowanie danych,
które nie zostały oznaczone, sklasyfikowane ani skategoryzowane
○ ponieważ analiza skupień bazuje na obecności lub braku takich podobieństw w nowej
danych, może być wykorzystana aby wykryć nietypowe dane, które nie pasują do żadnej
grupy

… zadanie polega na ustaleniu struktury danych np. na pogrupowaniu podobnych elementów na “zbitki”
lub zredukowaniu danych do niewielkiej liczby istotnych “wymiarów” ...

84
Uczenie maszynowe

Uczenie przez wzmacnianie


● (ang. reinforcement learning, RL) jego zadaniem jest interakcja ze środowiskiem za pomocą polityki na
podstawie zebranych przez nią informacji
● w przeciwieństwie do uczenia nadzorowanego i nienadzorowanego w uczeniu maszynowym nie
przygotowuje się zestawu danych uczących, tylko środowisko (ang. environment), z którego model
będzie zbierał dane automatycznie; jego celem jest zmaksymalizowanie zwracanej przez nie nagrody
● większość algorytmów uczenia przez wzmacnianie polega na przygotowaniu polityki, zebraniu za jej
pomocą danych o środowisku do bufora, wytrenowaniu jej na ich podstawie i powtarzania tego
procesu do osiągnięcia zamierzonego skutku
● środowiskiem może być zależnie od celu nauki gra w przypadku programu uczącego się grać w gry, lub
prawdziwy świat, w przypadku programu uczącego się sterować samochodem autonomicznym, z tego
powodu uczenie przez wzmacnianie jest powszechnie stosowane do uczenia sztucznej inteligencji
grania w gry oraz inwestowania na giełdzie

… powszechnie stosowane w sytuacjach, w których inteligentny agent (np. samochód autonomiczny) musi
działać w środowisku, w którym informacja zwrotna na temat dobrych lub złych wyborów jest dostępna z
pewnym opóźnieniem ...
85
Uczenie maszynowe

Uczenie nadzorowane

● w przeciwieństwie do ręcznego ustalania precyzyjnych zasad klasyfikacji, nadzorowane


uczenie maszynowe polega na wzięciu szeregu przykładów, prawidłowym oznaczeniu każdego
z nich i wykorzystaniu ich do „nauczenia” metody sztucznej inteligencji automatycznego
rozpoznawania prawidłowego oznaczenia
● wymaga to wprowadzenia poprawnych oznaczeń stąd nazwa nauczanie nadzorowane
● użytkownik, który wprowadza poprawne oznaczenia, to nadzorca, który nakierowuje uczący się
algorytm na prawidłowe odpowiedzi, aby ostatecznie algorytm mógł je zwracać samodzielnie

86
Uczenie maszynowe

Uczenie nadzorowane

● jednym ze sposobów wykorzystania uczenia nadzorowanego jest zagadnienie klasyfikacji, które


polega na tym, że zapoznajemy się z danymi wejściowymi i próbujemy wnioskować do jakiej “klasy”
należy np. rodzaj znaku drogowego, rozpoznawanie fałszywych kont w serwisie np. na podstawie
szybkości dołączania znajomych oraz obserwujących, rozpoznawanie odręcznie pisanych znaków
alfanumerycznych → problemy te mogą być rozwiązane przez sztuczne sieci neuronowe
● można je również wykorzystać w sytuacjach w których przewidywany wynik jest liczbą np.
przewidywanie listy osób, które klikną na reklamę w oparciu o treści i dane dotyczące
dotychczasowego zachowania użytkownika, przewidywanie liczby wypadków w oparciu o warunki na
drodze i ograniczenie prędkości, przewidywanie ceny sprzedaży nieruchomości w oparciu o jej
lokalizację, wielkość i stan → problemy te określamy jako regresję i mogą być rozwiązane za pomocą
techniki regresji liniowej
87
Uczenie maszynowe

Uczenie nadzorowane

● obliczenia mogą nie być tak dokładne jak oczekujemy


● należy podzielić zbiór danych na dwie części
○ dane uczące
○ dane testowe
● w pierwszej kolejności trenujemy algorytm wyłącznie za pomocą danych uczących → otrzymamy
wtedy model lub regułę, która przewiduje wynik wyjściowy w oparciu o zmienne wejściowe
● należy zweryfikować ten model czy można go zastosować szerzej do innych danych → dane testowe
służą do weryfikacji czy wytrenowany model przewiduje prawidłowo wyniki wyjściowe i porównania
przewidywań z faktycznymi wynikami wyjściowymi

88
Uczenie maszynowe

Uczenie nadzorowane

● funkcja przewidywania może mieć stosunkowo zróżnicowaną dokładność w przypadku danych


uczących i odrębnych danych testowych → jest to tzw. przetrenowanie
● metody uczenia się maszyn sa podatne na przetrenowanie, poniewaz mogą sprawdzac dużą liczbę
reguł, dopóki nie znajdą takiej, która idealnie pasuje do danych uczących, zamiast klasyfikować dane
spełniające funkcję wyjścia z akceptowalną dokładnością
● w celu uniknięcia dostosowania się metod uczenia do prawie każdego układu danych należy
zastosować “ogromne ilości” danych uczących
○ zanim sieci neuronowe wygenerują wiarygodne przewidywanie mogą wymagać właśnie takich
“ogromnych ilości” danych uczących

… rozpoznanie jak uniknąć przetrenowania i wybranie modelu, który nie jest ani zbyt ograniczony, ani zbyt
89
elastyczny, stanowi najbardziej pożądaną umiejętnością specjalisty w dziedzinie nauk o danych …
Uczenie maszynowe

Uczenie nienadzorowane

● w modelu nienadzorowanym prawidłowe odpowiedzi nie są znane


● nie możemy stworzyć modelu poprzez dopasowanie prawidłowych odpowiedzi do danych uczących
● ocena skuteczności metody jest utrudniona, ponieważ nie można sprawdzić czy wytrenowany model
działa poprawnie, czy nie
● typowe metody nienadzorowane obejmują próbę dostrzeżenia “struktury” danych
○ poprzez wizualizację, w której podobne elementy znajdują się blisko siebie, a niepodobne dalej
○ poprzez grupowanie, w której na podstawie danych wskazuje się grupy (“zbitki”) elementów
podobnych do siebie, ale różnych w innych grupach

… przykład sieci sklepów: gromadzą dane o zachowania grupowych klientów (karty lojalnościowe), klienci którzy
zazwyczaj kupują te same produkty są bliżej siebie niż klienci, którzy kupują różne produkty, metoda uczenia
maszynowego grupuje klientów w zbitki, natomiast nadawanie oznaczeń zbitkom pozostawione jest użytkownikowi … 90
Ustalenie wag umożliwiających optymalne dopasowanie wyniku przewidywanego i faktycznego w danych
Uczenie maszynowe uczących to klasyczny problem statystyczny (klasyczna metoda najmniejszych kwadratów,)

Regresja

● jest to przykład prostej techniki uczenia nadzorowanego


● polega na sumowaniu efektów poszczególnych zmiennych wyrażających cechy, aby uzyskać
przewidywaną wartość
● matematycznym określeniem tego sumowania jest tzw. kombinacja liniowa
● oznacza to, że gdy jedna z cech wejściowych wzrasta o jakąś stałą wartość, wynik wzrasta zawsze
tak samo
● wartości poszczególnych zmiennych nazywamy współczynnikami lub wagami

… przykład użycia regresji liniowej do przewidywania szacunkowej długości życia gdzie zarówno
wagi, jak i cechy wejściowe są znane.
● waga pelenia papierosów wynosi minus pół roku
● waga jedzienia warzyw wynosi plus 1 rok
A zatem jeżeli mamy dane wartości wejściowe i wagę, możemy otrzymać przewidziany wynik 91
Uczenie maszynowe

Regresja

● Jeżeli mamy dane wartości wejściowe i wyniki dotyczące określonej liczby elementów, możemy ustalić
takie wagi, aby przewidywany wynik jak najlepiej pasował do wyniku faktycznego. To jest właśnie
zadanie, które rozwiązuje uczenie maszynowe.
● W rzeczywistości faktyczny rezultat nie zawsze w pełni wynika z danych wejściowych, ponieważ różne
czynniki wprowadzają do procesu niepewność lub „szum” wtedy stosujemy jako punkt wyjścia wyraz
wolny (ang. intercept)

Kombinację liniową obliczamy w następujący sposób:

kombinacja liniowa = wyraz wolny + waga1 × wejście1 + ... + wagai × wejściei

… przykład użycia regresji liniowej do przewidywania szacunkowej długości życia: gdy wartość kombinacji
liniowej oznacza oczekiwaną długość życia możemy wyznaczyć ile papierosów możemy spalić i ile warzyw
musimy jeść żeby dożyć do tego wieku (gdy wcześniej ustalimy wagi w procesie uczenia maszynowego) … 92
Uczenie maszynowe

Regresja

Regresja liniowa to podstawowe narzędzie wykorzystywane w wielu zastosowaniach sztucznej inteligencji i nauki o danych. Ma swoje

ograniczenia, ale zazwyczaj jest to zrekompensowane jej prostotą, łatwością w interpretacji i efektywnością. Regresję liniową skutecznie

zastosowano między innymi do rozwiązania następujących problemów:

● przewidywanie klikalności reklam internetowych

● przewidywanie zapotrzebowania na produkty w handlu detalicznym

● przewidywanie przychodów ze sprzedaży biletów na filmy hollywoodzkie

● przewidywanie kosztu oprogramowania

● przewidywanie kosztu ubezpieczenia

● przewidywanie poziomu przestępczości

● przewidywanie cen nieruchomości

93
Uczenie maszynowe

Regresja

● oprócz takich czynników jak posiadanie wystarczającej ilości danych i wyeliminowanie zagrożenia

związanego z przetrenowaniem, innym równie istotnym czynnikiem jest jakość danych

● w celu przygotowania modelu, który można wykorzystać bardziej ogólnie, do innych danych niż dane

uczące, dane uczące muszą zawierać wystarczająco dużo informacji, które mają znaczenie dla danego

problemu

● zazwyczaj nie jesteśmy w stanie całkowicie wyeliminować błędów, ale może nas zadowalać poziom
błędów np. niższy niż 5%

… ten aspekt zależy jednak od danego zastosowania – nie chcielibyśmy, żeby samochody autonomiczne
jeżdżące po ulicach były bezpieczne tylko w 95 %, ale przewidywanie z taką dokładnością, czy
użytkownik zobaczy film na Netflixie jest wystarczające … 94

You might also like