Download as pdf or txt
Download as pdf or txt
You are on page 1of 118

NEURONSKE MREŽE I GENETSKI

ALGORITMI
Doc. dr. sc. Nikola Lopac

Neuronske mreže i genetski algoritmi 1


Sadržaj predavanja

• P08: Povijesni razvoj dubokog učenja – 2. dio


– Povećanje veličina skupova podataka
– Povećanje veličina modela
– Povećanje točnosti i kompleksnosti te širenje primjena
– Zaključak

Neuronske mreže i genetski algoritmi 2


Povećanje veličina skupova podataka

Utjecaj veličine skupova podataka na duboko učenje

• Može se postaviti pitanje zašto je duboko učenje tek nedavno postalo prepoznato kao
ključna tehnologija iako su prvi eksperimenti s umjetnim neuronskim mrežama
provedeni 1950-ih
• Duboko učenje uspješno se koristi u komercijalnim primjenama od 1990-ih, ali se sve
do nedavno često smatralo više vještinom nego tehnologijom i nečim što samo
stručnjak može koristiti
• Istina je da je potrebna određena vještina za postizanje dobrih performansi algoritma
dubokog učenja → srećom, količina potrebnih vještina smanjuje se s povećanjem
količine podataka za treniranje
• Algoritmi učenja koji danas postižu performanse čovjeka na složenim zadatcima
gotovo su identični algoritmima učenja koji su se borili s rješavanjem jednostavnih
problema 1980-ih, iako su modeli koje treniramo s tim algoritmima prošli kroz
promjene koje pojednostavljuju treniranje vrlo dubokih arhitektura

Neuronske mreže i genetski algoritmi 3


Povećanje veličina skupova podataka

Povećanje veličina skupova podataka

• Najvažniji novi razvoj je da danas ovim algoritmima možemo osigurati resurse koji su
im potrebni za uspjeh
• Sljedeća slika pokazuje kako se veličina referentnih skupova podataka (engl.
benchmark datasets) značajno povećala tijekom vremena

Neuronske mreže i genetski algoritmi 4


Povećanje veličina skupova podataka

Povećanje veličina skupova podataka

• Početkom 1900-ih statističari su proučavali skupove podataka koristeći stotine ili


tisuće ručno izvedenih mjerenja
• Od 1950-ih do 1980-ih pioniri biološki nadahnutog strojnog učenja često su radili s
malim, sintetičkim skupovima podataka, kao što su bitmape slova niske rezolucije,
koji su bili dizajnirani za niske računalne zahtjeve i demonstriranje da neuronske
mreže mogu naučiti određene vrste funkcije
• U 1980-ima i 1990-ima strojno učenje postalo je više statističke prirode i počelo je
koristiti veće skupove podataka koji sadrže desetke tisuća primjera, kao što je MNIST
(engl. Modified National Institute of Standards and Technology) skup podataka iz
1998. koji sadrži skenove rukom pisanih brojeva
• Sljedeća slika prikazuje primjer ulaza iz MNIST skupa podataka

Neuronske mreže i genetski algoritmi 5


Povećanje veličina skupova podataka

MNIST skup podataka

Neuronske mreže i genetski algoritmi 6


Povećanje veličina skupova podataka

MNIST skup podataka

• Naziv MNIST skupa podataka potječe od agencije koja je izvorno prikupila ove
podatke, dok slovo „M” označava „modificirano” jer su podatci prethodno obrađeni
za lakšu upotrebu s algoritmima strojnog učenja
• MNIST skup podataka sastoji se od skeniranih rukom pisanih znamenki i povezanih
oznaka koje opisuju koja se znamenka 0–9 nalazi na pojedinoj slici
• Ovaj jednostavan problem klasifikacije jedan je od najjednostavnijih i najčešće
korištenih testova u istraživanju dubokog učenja
• I dalje je popularan unatoč tome što ga je modernim tehnikama prilično lako riješiti

Neuronske mreže i genetski algoritmi 7


Povećanje veličina skupova podataka

Skupovi podataka CIFAR-10 i CIFAR-100

• U prvom desetljeću 2000-ih nastavili su se proizvoditi sofisticiraniji skupovi podataka


iste ove veličine, poput poznatih skupova podataka CIFAR-10 i CIFAR-100 koje su
prikupili i 2009. javno objavili Alex Krizhevsky, Vinod Nair i Geoffrey Hinton
• CIFAR-10 i CIFAR-100 su označeni podskupovi skupa podataka od 80 milijuna malih
slika, te su jedni od najčešće korištenih skupova podataka za istraživanje strojnog
učenja gdje se koriste za treniranje algoritama strojnog učenja i računalnog vida
• CIFAR-10 skup podataka:
– Sastoji se od 60 000 slika u boji veličine 32x32 u 10 klasa, sa 6 000 slika po klasi
– Sadrži 50 000 slika za treniranje i 10 000 slika za testiranje
– Uključuje sljedećih 10 klasa: avioni, automobili, ptice, mačke, jeleni, psi, žabe, konji, brodovi i kamioni
• CIFAR-100 skup podataka:
– Ovaj skup podataka je poput CIFAR-10 skupa, osim što ima 100 klasa od kojih svaka sadrži 600 slika
– 100 klasa grupirano je u 20 superklasa → svaka slika dolazi s oznakom „fine” (klasa kojoj pripada) i
oznakom „coarse” (nadklasa kojoj pripada)

Neuronske mreže i genetski algoritmi 8


Povećanje veličina skupova podataka

Skupovi podataka CIFAR-10 i CIFAR-100

• Donja slika prikazuje po 10 slučajno odabranih primjera slika za svaku klasu iz CIFAR-
10 skupa podataka

Neuronske mreže i genetski algoritmi 9


Povećanje veličina skupova podataka

Povećanje veličina skupova podataka

• Pred kraj prvog desetljeća 2000-ih i tijekom prve polovice 2010-ih, znatno veći
skupovi podataka, koji sadrže stotine tisuća do nekoliko desetaka milijuna primjera,
potpuno su promijenili ono što je bilo moguće s dubokim učenjem
• Ovi skupovi podataka uključivali su javni Street View House Numbers (SVHN) skup
podataka (Netzer i sur., 2011.), različite verzije ImageNet skupa podataka (Fei-Fei,
Deng i sur., 2006., Russakovsky i sur., 2014.) i Sports-1M skup podataka (Karpathy i
sur., 2014.)

• Na vrhu grafikona koji prikazuje povećanje veličina skupova podataka s vremenom


može se vidjeti da su skupovi podataka prevedenih rečenica, poput IBM-ovog skupa
podataka konstruiranog iz kanadskog Hansard (Brown i sur., 1990.) i WMT 2014
skupa podataka s engleskog na francuski (Schwenk, 2014.) obično daleko iznad
veličina drugih skupova podataka

Neuronske mreže i genetski algoritmi 10


Povećanje veličina skupova podataka

Street View House Numbers (SVHN) skup podataka

• Street View House Numbers (SVHN) skup podataka je skup slikovnih podataka iz
stvarnog svijeta za razvoj algoritama strojnog učenja i algoritama za prepoznavanje
objekata s minimalnim zahtjevima za prethodnu obradu i formatiranje podataka
• Uveli su ga Netzer i sur. 2011.
• Može se smatrati sličnim MNIST skupu podataka (npr. slike su male izrezane
znamenke), ali uključuje red veličine više označenih podataka (preko 600 000 RGB
slika u boji koje sadrže znamenke) i dolazi iz znatno težeg, neriješenog problema
stvarnog svijeta (prepoznavanje znamenki i brojeva na slikama prirodnih scena)
• SVHN se dobiva iz kućnih brojeva na Google Street View slikama
• Ima 10 klasa, po jednu za svaku znamenku

Neuronske mreže i genetski algoritmi 11


Povećanje veličina skupova podataka

Street View House Numbers (SVHN) skup podataka

• Sljedeće dvije slike prikazuju primjere dviju verzija slika dostupnih unutar SVHN skupa
podataka:
– Puni brojevi – izvorne slike kućnih brojeva u boji promjenjive rezolucije s graničnim okvirima (engl.
bounding boxes) na razini znakova
– Izrezane znamenke – temeljna istina (engl. ground truth) na razini znakova u formatu sličnom MNIST-u;
veličina svih znamenki je promijenjena na fiksnu rezoluciju od 32x32 piksela; izvorni granični okviri
znakova modificirani su kako bi postali kvadratni prozori bez izobličenja omjera veličine

Neuronske mreže i genetski algoritmi 12


Povećanje veličina skupova podataka

Street View House Numbers (SVHN) skup podataka

Neuronske mreže i genetski algoritmi 13


Povećanje veličina skupova podataka

ImageNet skup podataka

• ImageNet projekt je velika baza slikovnih podataka dizajnirana za korištenje u


istraživanju algoritama za prepoznavanje objekata
• ImageNet skup podataka sadrži više od 14 milijuna označenih slika (14 197 122 slike),
pri čemu su slike ručno označene kako bi se naznačilo koji su objekti prikazani, a u
najmanje 1 milijunu slika također su postavljeni granični okviri
• ImageNet pritom sadrži više od 20 000 kategorija ili klasa (21 841 klasa), pri čemu
tipična kategorija, kao što je „balon” ili „jagoda”, sadrži nekoliko stotina slika
• Cjeloviti skup podataka poznat je i pod nazivom ImageNet-21K

Neuronske mreže i genetski algoritmi 14


Povećanje veličina skupova podataka

ImageNet skup podataka

• Od 2010. ImageNet projekt održava godišnje natjecanje „ImageNet Large Scale


Visual Recognition Challenge (ILSVRC)”, gdje se novorazvijeni računalni algoritmi
natječu u ispravnom klasificiranju i detekciji objekata i scena
• Ovo natjecanje koristi „skraćeni” skup od 1 000 klasa koje se međusobno ne
preklapaju
• Ovaj skup podataka poznat je i pod nazivom ImageNet-1K ili ILSVRC2017 te sadrži
1 281 167 slika za treniranje, 50 000 slika za validaciju i 100 000 slika za testiranje

Neuronske mreže i genetski algoritmi 15


Povećanje veličina skupova podataka

ImageNet skup podataka

Neuronske mreže i genetski algoritmi 16


Povećanje veličina skupova podataka

Povećanje veličina skupova podataka

• Opisani trend povećanja veličina skupova podataka potaknut je sve većom


digitalizacijom društva
• Kako se sve više naših aktivnosti odvija na računalima, sve se više onoga što radimo
bilježi
• Kako su naša računala sve više umrežena, postaje lakše centralizirati te zapise i urediti
ih u skup podataka prikladan za primjene strojnog učenja
• Doba „velikih podataka” (engl. “Big Data”) učinilo je strojno učenje puno lakšim jer
je ključni teret statističke estimacije – dobro generaliziranje novih podataka nakon
opažanja samo male količine podataka – znatno olakšan

Neuronske mreže i genetski algoritmi 17


Povećanje veličina skupova podataka

Povećanje veličina skupova podataka

• Od 2016. grubo pravilo je da će nadzirani algoritam dubokog učenja općenito postići


prihvatljive performanse s oko 5 000 označenih primjera po kategoriji te će dostići ili
nadmašiti ljudsku izvedbu kada se trenira sa skupom podataka koji sadrži najmanje 10
milijuna označenih primjera
• Uspješan rad sa skupovima podataka manjim od ovoga važno je istraživačko područje,
s naglaskom na to kako možemo iskoristiti velike količine neoznačenih primjera, s
nenadziranim ili polunadziranim učenjem

Neuronske mreže i genetski algoritmi 18


Povećanje veličina modela

Povećanje veličina modela

• Još jedan ključni razlog zbog kojeg su neuronske mreže danas izuzetno uspješne
nakon relativno malog uspjeha od 1980-ih je to što danas imamo računalne resurse
za pokretanje puno većih modela
• Jedan od glavnih uvida konekcionizma je da životinje postaju inteligentne kad velik
broj njihovih neurona radi zajedno → pojedinačni neuron ili mali skup neurona nisu
naročito korisni
• Kao što se može vidjeti na sljedećoj slici, modeli strojnog učenja imali su broj veza po
neuronu koji je desetljećima bio unutar reda veličine čak i mozgova sisavaca

Neuronske mreže i genetski algoritmi 19


Povećanje veličina modela

Povećanje veličina modela

Neuronske mreže i genetski algoritmi 20


Povećanje veličina modela

Povećanje veličina modela

• Podatci s prethodne slike mogu se protumačiti na sljedeći način:


• U početku je broj veza između neurona u umjetnim neuronskim mrežama bio
ograničen hardverskim mogućnostima
• Danas je broj veza između neurona uglavnom stvar dizajna
• Neke umjetne neuronske mreže imaju gotovo isto toliko veza po neuronu kao mačka,
a prilično je uobičajeno da druge neuronske mreže imaju isto toliko veza po neuronu
kao manji sisavci poput miševa
• Čak ni ljudski mozak nema pretjeranu količinu veza po neuronu

Neuronske mreže i genetski algoritmi 21


Povećanje veličina modela

Povećanje veličina modela

• Što se tiče ukupnog broja neurona, neuronske mreže su donedavno bile zapanjujuće
male, kao što je prikazano na sljedećoj slici
• Od uvođenja skrivenih jedinica umjetne neuronske mreže udvostručile su se otprilike
svake 2.4 godine
• Ovaj rast potiču brža računala s većom memorijom i dostupnost većih skupova
podataka
• Veće mreže mogu postići veću točnost na složenijim zadatcima
• Čini se da će se ovaj trend nastaviti desetljećima
• Osim ako nove tehnologije ne dopuste brže skaliranje, umjetne neuronske mreže
neće imati isti broj neurona kao ljudski mozak barem do 2050-ih
• Biološki neuroni mogu predstavljati kompliciranije funkcije od sadašnjih umjetnih
neurona, tako da biološke neuronske mreže mogu biti čak i veće nego što ovaj prikaz
ilustrira

Neuronske mreže i genetski algoritmi 22


Povećanje veličina modela

Povećanje veličina modela

Neuronske mreže i genetski algoritmi 23


Povećanje veličina modela

Povećanje veličina modela

• Gledajući unatrag, nije osobito iznenađujuće da neuronske mreže s manje neurona od


pijavice nisu bile u stanju riješiti sofisticirane probleme umjetne inteligencije
• Čak su i današnje mreže, koje smatramo prilično velikima sa stajališta računalnih
sustava, manje od živčanog sustava čak i relativno primitivnih kralježnjaka poput žaba

Neuronske mreže i genetski algoritmi 24


Povećanje veličina modela

Povećanje veličina modela

• Povećanje veličina modela dubokog učenja tijekom vremena jedan je od najvažnijih


trendova u povijesti dubokog učenja
• Ovaj trend nastupio je uslijed sljedećih faktora:
– Dostupnost bržih procesora (središnja jedinica za obradbu – engl. central processing unit, CPU)
– Pojava grafičkih procesora (grafička procesorska jedinica – engl. graphical processing unit, GPU) opće
namjene
– Brže mrežno povezivanje
– Bolja softverska infrastruktura za distribuirano računarstvo
• Očekuje se da će se ovaj trend nastaviti i u budućnosti

Neuronske mreže i genetski algoritmi 25


Povećanje točnosti i kompleksnosti te širenje primjena

Povećanje točnosti i kompleksnosti te širenje primjena

• Od 1980-ih duboko učenje stalno se poboljšavalo u svojoj sposobnosti da pruži točno


prepoznavanje ili predviđanje (predikciju)
• Štoviše, duboko učenje dosljedno se uspješno primjenjuje na sve šira i šira područja
primjena
• Najraniji duboki modeli korišteni su za prepoznavanje pojedinih objekata u usko
izrezanim, iznimno malim slikama
• Od tada je došlo do postupnog povećanja veličine slika koje neuronske mreže mogu
obraditi
• Suvremene mreže za prepoznavanje objekata obrađuju bogate fotografije visoke
rezolucije i nemaju zahtjev da se fotografija izrezuje u blizini objekta koji se
prepoznaje

Neuronske mreže i genetski algoritmi 26


Povećanje točnosti i kompleksnosti te širenje primjena

Povećanje točnosti

• Slično tome, najranije mreže mogle su prepoznati samo dvije vrste objekata (ili u
nekim slučajevima, odsutnost ili prisutnost jedne vrste objekta), dok suvremene
mreže obično prepoznaju najmanje 1000 različitih kategorija objekata
• Najveće natjecanje u prepoznavanju objekata je već spomenuto godišnje natjecanje
„ImageNet Large Scale Visual Recognition Challenge (ILSVRC)”
• Dramatičan trenutak u meteorskom usponu dubokog učenja dogodio se 2012. kad je
konvolucijska mreža po prvi put pobijedila na ovom natjecanju i to s velikom
razlikom, snizivši state-of-the-art top-5 stopu pogrešaka (engl. top-5 error rate) s
26.1% na 15.3% → ovo znači da konvolucijska mreža proizvodi rangirani popis
mogućih kategorija za svaku sliku, a točna kategorija pojavila se u prvih pet unosa
ovog popisa za sve osim za 15.3% testnih primjera
• Ova konvolucijska mreža poznata je pod imenom AlexNet, a razvili su je Krizhevsky,
Sutskever i Hinton

Neuronske mreže i genetski algoritmi 27


Povećanje točnosti i kompleksnosti te širenje primjena

Povećanje točnosti

• Od tada na ovim natjecanjima dosljedno pobjeđuju duboke konvolucijske mreže, a


napredak u dubokom učenju danas je smanjio top-5 stopu pogrešaka na ImageNet
skupu podataka na 0.98% (mreža iz 2021.)

• Duboko učenje također je imalo dramatičan utjecaj na prepoznavanje govora


• Nakon poboljšanja tijekom 1990-ih stope pogrešaka za prepoznavanje govora su
stagnirale počevši od otprilike 2000. godine
• Uvođenje dubokog učenja za prepoznavanje govora rezultiralo je naglim padom stopa
pogrešaka, pri čemu su se neke stope pogrešaka prepolovile

• Duboke mreže također su postigle spektakularne uspjehe u detekciji pješaka i


segmentaciji slike i polučile su nadljudske performanse u klasifikaciji prometnih
znakova

Neuronske mreže i genetski algoritmi 28


Povećanje točnosti i kompleksnosti te širenje primjena

Povećanje kompleksnosti

• Istovremeno s povećanjem veličine i točnosti dubokih mreža narasla je i


kompleksnost (složenost) zadataka koje one mogu riješiti
• Goodfellow i sur. su 2014. pokazali da neuronske mreže mogu naučiti ispisati cijeli niz
znakova transkribiranih sa slike, umjesto samo identificiranja jednog objekta; ranije
se vjerovalo da ova vrsta učenja zahtijeva označavanje pojedinih elemenata niza
• Neuronske mreže s povratnim vezama, kao što je spomenuti LSTM model sekvenci,
danas se koriste za modeliranje odnosa između sekvenci i drugih sekvenci, a ne samo
fiksnih ulaza → ovo je dovelo do revolucije u strojnom prevođenju

Neuronske mreže i genetski algoritmi 29


Povećanje točnosti i kompleksnosti te širenje primjena

Povećanje kompleksnosti

• Ovaj trend sve veće kompleksnosti doveo je 2014. do uvođenja neuronskih Turingovih
strojeva koji uče čitati iz memorijskih stanica te pišu proizvoljan sadržaj u memorijske
stanice
• Ovakve neuronske mreže mogu naučiti jednostavne programe iz primjera željenog
ponašanja
• Na primjer, mogu naučiti sortirati popise brojeva ako im se da primjere nesortiranih i
sortiranih nizova

Neuronske mreže i genetski algoritmi 30


Povećanje točnosti i kompleksnosti te širenje primjena

Širenje primjena

• Još jedno vrhunsko postignuće dubokog učenja je njegovo proširenje na domenu


podržanog (ojačanog) učenja (engl. reinforcement learning)
• U kontekstu podržanog učenja autonomni agent mora naučiti izvršavati zadatak
metodom pokušaja i pogreške, bez ikakvog vodstva ljudskog operatera
• DeepMind je 2015. pokazao da je sustav podržanog učenja temeljen na dubokom
učenju sposoban naučiti igrati Atari videoigre, postižući performanse na ljudskoj
razini na mnogim zadatcima
• Duboko učenje također je značajno poboljšalo performanse podržanog učenja u
robotici

• Mnoge od ovih primjena dubokog učenja vrlo su isplative → duboko učenje sada
koriste mnoge vrhunske tehnološke tvrtke, uključujući Google, Microsoft, Facebook,
IBM, Apple, Adobe, Netflix, NVIDIA, i brojne druge

Neuronske mreže i genetski algoritmi 31


Povećanje točnosti i kompleksnosti te širenje primjena

Širenje primjena

• Napredak dubokog učenja također je uvelike ovisio o napretku softverske


infrastrukture
• Neke od trenutno najkorištenijih softverskih biblioteka za duboko učenje su:
– TensorFlow
– Pytorch
– Scikit-Learn
– Keras
– Theano
– MXNet
– Caffe
– …
• Ove softverske biblioteke podržale su važne istraživačke projekte ili komercijalne
proizvode

Neuronske mreže i genetski algoritmi 32


Povećanje točnosti i kompleksnosti te širenje primjena

Širenje primjena

• Duboko učenje također je dalo doprinos drugim znanostima


• Suvremene konvolucijske mreže za prepoznavanje objekata daju model vizualne
obrade koji neuroznanstvenici mogu proučavati
• Duboko učenje također pruža korisne alate za obradu ogromnih količina podataka i
izradu korisnih predviđanja u različitim znanstvenim područjima
• Primjerice, duboko učenje se uspješno koristilo za predviđanje interakcije molekula
kako bi se pomoglo farmaceutskim tvrtkama u dizajnu novih lijekova, za traženje
subatomskih čestica i za automatsku analizu mikroskopskih slika korištenih za
konstruiranje 3-D mape ljudskog mozga
• Očekuje se da će se duboko učenje u budućnosti pojaviti u sve više znanstvenih
područja

Neuronske mreže i genetski algoritmi 33


Zaključak

Zaključak

• Zaključno, duboko učenje pristup je strojnom učenju koji se uvelike oslanjao na naše
znanje o ljudskom mozgu, statistici i primijenjenoj matematici kako se razvijao u
posljednjih nekoliko desetljeća
• Posljednjih godina bilježi ogroman rast popularnosti i korisnosti, velikim dijelom
zahvaljujući snažnijim računalima, većim skupovima podataka i tehnikama za
treniranje dubljih mreža
• Godine koje su pred nama pune su izazova i prilika da se duboko učenje dodatno
poboljša i dovede do novih granica

Neuronske mreže i genetski algoritmi 34


Diskusija

Vaša pitanja?

Neuronske mreže i genetski algoritmi 35


NEURONSKE MREŽE I GENETSKI
ALGORITMI
Doc. dr. sc. Nikola Lopac

Neuronske mreže i genetski algoritmi 1


Sadržaj predavanja

• P09: Primjene dubokog učenja


– Uvod
– Duboko učenje velikih razmjera
– Računalni vid
– Prepoznavanje govora
– Obrada prirodnog jezika
– Sustavi za preporuku

Neuronske mreže i genetski algoritmi 2


Uvod

Uvod

• Duboko učenje koristi se za primjene u računalnom vidu, prepoznavanju govora,


obradi prirodnog jezika i drugim područjima od komercijalnog interesa
• Jedan od ciljeva dubokog učenja je dizajnirati algoritme koji su sposobni rješavati
širok raspon zadataka
• Međutim, također je potreban određen stupanj specijalizacije; primjerice:
– Zadatci vida zahtijevaju obradu velikog broja ulaznih značajki (piksela) po primjeru
– Jezični zadatci zahtijevaju modeliranje velikog broja mogućih vrijednosti (riječi u vokabularu) po ulaznoj
značajki

Neuronske mreže i genetski algoritmi 3


Duboko učenje velikih razmjera

Duboko učenje velikih razmjera

• Duboko učenje temelji se na filozofiji konekcionizma: dok pojedinačni biološki neuron


ili pojedinačna značajka u modelu strojnog učenja nije inteligentna, velika populacija
tih neurona ili značajki koje djeluju zajedno mogu pokazivati inteligentno ponašanje
• Pritom je važno naglasiti činjenicu da broj neurona mora biti velik→ duboko učenje
velikih razmjera (engl. large-scale deep learning)
• Jedan od ključnih čimbenika odgovornih za poboljšanje točnosti neuronskih mreža i
povećanje složenosti zadataka koje mogu riješiti između 1980-ih i danas je
dramatično povećanje veličine mreža koje koristimo
• Kao što smo prethodno vidjeli, veličine mreža eksponencijalno su rasle u posljednja tri
desetljeća, ali umjetne neuronske mreže i dalje su velike samo onoliko koliko su veliki
živčani sustavi insekata
• Budući da je veličina neuronskih mreža od najveće važnosti, duboko učenje zahtijeva
hardversku i softversku infrastrukturu visokih performansi

Neuronske mreže i genetski algoritmi 4


Duboko učenje velikih razmjera

Brze CPU implementacije

• Tradicionalno su se neuronske mreže trenirale pomoću CPU-a (engl. central


processing unit – središnja jedinica za obradbu) jednog računala
• Danas se ovaj pristup općenito smatra nedovoljnim → uglavnom koristimo GPU
računalstvo ili CPU-ove mnogih umreženih računala
• Prije nego što su prešli na te skupe računalne konfiguracije, istraživači su naporno
radili kako bi pokazali da se CPU-ovi ne mogu nositi s velikim računalnim
opterećenjem koje zahtijevaju neuronske mreže
• Pažljiva implementacija učinkovitog CPU koda za specifične obitelji CPU-a može
polučiti velika poboljšanja
• Primjerice, 2011. godine najbolji dostupni CPU-i mogli su brže pokretati neuronske
mreže pri korištenju aritmetike s fiksnim zarezom (engl. fixed-point arithmetic)
umjesto aritmetike s pomičnim zarezom (engl. floating-point arithmetic)

Neuronske mreže i genetski algoritmi 5


Duboko učenje velikih razmjera

Brze CPU implementacije

• Svaki novi model CPU-a ima različite performanse, tako da ponekad implementacije s
pomičnim zarezom mogu biti i brže
• Važno je načelo da pažljiva specijalizacija numeričkih računalnih rutina može donijeti
veliku dobrobit
• Druge strategije, osim odabira hoće li se koristiti fiksni ili pomični zarez, uključuju
optimizaciju struktura podataka kako bi se izbjeglo promašaje predmemorije te
korištenje vektorskih instrukcija
• Mnogi istraživači strojnog učenja zanemaruju ove detalje implementacije, ali kada
izvedba implementacije ograničava veličinu modela, točnost modela trpi

Neuronske mreže i genetski algoritmi 6


Duboko učenje velikih razmjera

GPU implementacije

• Većina suvremenih implementacija neuronskih mreža temelji se na grafičkim


procesorskim jedinicama (engl. graphics processing units, GPU)
• GPU-ovi su specijalizirane hardverske komponente koje su izvorno razvijene za
grafičke aplikacije
• Potrošačko tržište za sustave za videoigre potaknulo je razvoj GPU hardvera →
pokazalo se da su karakteristike performansi potrebne za dobre sustave videoigara
korisne i za neuronske mreže

Neuronske mreže i genetski algoritmi 7


Duboko učenje velikih razmjera

GPU implementacije

• Renderiranje videoigara zahtijeva brzo izvođenje mnogo paralelnih operacija


• Modeli likova i okruženja definirani su u smislu popisa 3-D koordinata vrhova →
grafičke kartice moraju izvoditi matrično množenje i dijeljenje na mnogo vrhova
paralelno kako bi te 3-D koordinate pretvorile u 2-D koordinate na zaslonu
• Grafička kartica zatim mora paralelno izvršiti mnoga izračunavanja na svakom pikselu
kako bi odredila boju svakog piksela
• U oba slučaja, proračuni su prilično jednostavni i ne uključuju mnogo grananja u
usporedbi s računalnim opterećenjem s kojim se CPU obično susreće
• Na primjer, svaki vrh u istom krutom objektu bit će pomnožen istom matricom →
nema potrebe za procjenom if naredbe po vrhu kako bi se odredilo kojom matricom
treba množiti
• Izračuni su također potpuno neovisni jedni o drugima i stoga se mogu lako
paralelizirati

Neuronske mreže i genetski algoritmi 8


Duboko učenje velikih razmjera

GPU implementacije

• Proračuni također uključuju obradu masivnih međuspremnika memorije, koji sadrže


bitmape koje opisuju teksturu (uzorak boja) svakog objekta koji se prikazuje

• Zajedno, ovo rezultira time da su grafičke kartice dizajnirane da imaju visok stupanj
paralelizma i visoku propusnost memorije, po cijenu niže brzine takta i manje
mogućnosti grananja u odnosu na tradicionalne CPU procesore

Neuronske mreže i genetski algoritmi 9


Duboko učenje velikih razmjera

GPU implementacije

• Algoritmi neuronskih mreža zahtijevaju iste karakteristike performansi kao gore


opisani algoritmi grafike u stvarnom vremenu (engl. real-time)
• Neuronske mreže obično uključuju velike i brojne međuspremnike parametara,
vrijednosti aktivacija i vrijednosti gradijenata, od kojih se svaki mora potpuno
ažurirati tijekom svakog koraka treninga
• Ti su međuspremnici dovoljno veliki da prerastu predmemoriju (engl. cache)
tradicionalnog stolnog računala tako da propusnost memorije sustava često postaje
faktor koji ograničava brzinu

Neuronske mreže i genetski algoritmi 10


Duboko učenje velikih razmjera

GPU implementacije

• GPU-ovi nude uvjerljivu prednost u odnosu na CPU-ove zbog svoje visoke


propusnosti memorije
• Algoritmi za treniranje neuronskih mreža obično ne uključuju mnogo grananja ili
sofisticirane kontrole, pa su prikladni za GPU hardver
• Budući da se neuronske mreže mogu podijeliti na više pojedinačnih „neurona” koji se
mogu obrađivati neovisno o drugim neuronima u istom sloju, neuronske mreže imaju
koristi od paralelizma GPU računalstva

Neuronske mreže i genetski algoritmi 11


Duboko učenje velikih razmjera

GPU implementacije

• GPU hardver je izvorno bio toliko specijaliziran da se mogao koristiti samo za grafičke
zadatke
• S vremenom je GPU hardver postao fleksibilniji → mogućnost korištenja za
znanstveno računalstvo
• Steinkrau i sur. su 2005. implementirali dvoslojnu potpuno povezanu neuronsku
mrežu na GPU-u te time postigli trostruko ubrzanje u odnosu na osnovni model
implementiran na CPU-u
• Chellapilla i sur. su 2006. pokazali da se ista tehnika može koristiti za ubrzavanje
nadziranih konvolucijskih mreža

Neuronske mreže i genetski algoritmi 12


Duboko učenje velikih razmjera

GPU implementacije

• Popularnost grafičkih kartica za treniranje neuronskih mreža eksplodirala je nakon


pojave GPU-ova opće namjene (engl. general purpose GPUs, GP-GPUs)
• Ti GP-GPU-ovi mogli su izvršavati proizvoljan kod, a ne samo potprograme
renderiranja
• NVIDIA-in programski jezik CUDA omogućio je pisanje ovog proizvoljnog koda u jeziku
sličnom C-u
• Sa svojim relativno praktičnim modelom programiranja, masivnim paralelizmom i
visokom propusnošću memorije, GP-GPU-ovi danas nude idealnu platformu za
programiranje neuronskih mreža
• Ovu su platformu prihvatili istraživači dubokog učenja ubrzo nakon što je postala
dostupna

Neuronske mreže i genetski algoritmi 13


Duboko učenje velikih razmjera

GPU implementacije

• Pisanje učinkovitog koda za GP-GPU-ove ostaje težak zadatak koji je najbolje


prepustiti stručnjacima
• Tehnike potrebne za postizanje dobrih performansi na GPU-u vrlo su različite od onih
koje se koriste na CPU-u
• Na primjer, dobar kod sna CPU-u obično je dizajniran za čitanje informacija iz
predmemorije što je više moguće → na GPU-u većina memorijskih lokacija u kojima
se može pisati nije predmemorirana, tako da zapravo može biti brže izračunati istu
vrijednost dvaput, umjesto da se izračuna jednom i ponovno pročita iz memorije
• GPU kod je također višedretven (engl. multi-threaded) i različite dretve (engl. threads)
moraju biti pažljivo usklađene jedna s drugom
• Na primjer, memorijske operacije su brže ako se mogu objediniti (engl. coalesced) →
objedinjeno čitanje ili pisanje događa se kada nekoliko dretvi može istovremeno čitati
ili pisati vrijednost koja im je potrebna, kao dio jedne memorijske transakcije

Neuronske mreže i genetski algoritmi 14


Duboko učenje velikih razmjera

GPU implementacije

• Zbog poteškoća u pisanju GPU koda visokih performansi, istraživači bi trebali


strukturirati svoj tijek rada kako bi izbjegli potrebu za pisanjem novog GPU koda kako
bi testirali nove modele ili algoritme
• Tipično, to se može učiniti izgradnjom softverske biblioteke operacija visokih
performansi poput konvolucije i množenja matrica, zatim specificiranjem modela u
smislu poziva ovoj biblioteci operacija
• Ovakav pristup također može olakšati podršku za više vrsta hardvera (isti program
može raditi na CPU-u ili GPU-u)
• Neke od najkorištenijih softverskih biblioteka uključuju TensorFlow, PyTorch i Theano

Neuronske mreže i genetski algoritmi 15


Duboko učenje velikih razmjera

Distribuirane implementacije velikih razmjera

• U mnogim slučajevima, računalni resursi dostupni na jednom računalu su nedostatni


→ želimo rasporediti radno opterećenje treninga i zaključivanja (engl. inference) na
više računala
• Distribucija zaključivanja je jednostavna jer svaki ulazni primjer koji želimo obraditi
može pokrenuti zasebno računalo → ovo je poznato kao paralelizam podataka
• Također je moguće dobiti paralelizam modela, gdje više računala radi zajedno na
jednoj podatkovnoj točki, pri čemu svako računalo pokreće različiti dio modela → ovo
je izvedivo i za zaključivanje i za trening

• Distribuirane tehnike su primarna strategija za treniranje velikih dubokih mreža te ih


koriste većina velikih grupa za duboko učenje u industriji
• Istraživači dubokog učenja u akademiji obično si ne mogu priuštiti istu razinu
distribuiranih sustava učenja, ali neka su istraživanja usmjerena na to kako izgraditi
distribuirane mreže s relativno jeftinim hardverom dostupnim u sveučilišnom
okruženju
Neuronske mreže i genetski algoritmi 16
Duboko učenje velikih razmjera

Kompresija modela

• U mnogim komercijalnim primjenama mnogo je važnije da trošak vremena i


memorije za pokretanje zaključivanja u modelu strojnog učenja bude nizak nego da
trošak vremena i memorije za treniranje bude nizak
• Za aplikacije koje ne zahtijevaju personalizaciju, moguće je jednom istrenirati model,
a zatim ga implementirati da ga koriste milijarde korisnika
• U mnogim slučajevima, krajnji korisnik je više ograničen resursima nego programer
• Na primjer, može se istrenirati mreža za prepoznavanje govora s moćnim računalnim
klasterom, a zatim je postaviti na mobilne telefone
• Ključna strategija za smanjenje zahtjeva zaključivanja je kompresija (sažimanje)
modela → osnovna ideja je zamijeniti izvorni, zahtjevni (skupi) model manjim
modelom koji zahtijeva manje memorije i vremena izvođenja za pohranu i procjenu

Neuronske mreže i genetski algoritmi 17


Duboko učenje velikih razmjera

Dinamička struktura

• Jedna od strategija za ubrzavanje sustava za obradu podataka je izgradnja sustava koji


imaju dinamičku strukturu u grafu koji opisuje izračune potrebne za obradu ulaza
• Sustavi za obradu podataka mogu dinamički odrediti koji podskup mnogih neuronskih
mreža treba pokrenuti na danom ulazu
• Pojedinačne neuronske mreže također mogu interno pokazivati dinamičku strukturu
određujući koji podskup značajki (skrivene jedinice) treba izračunati dane informacije
iz ulaza → ovaj oblik dinamičke strukture unutar neuronskih mreža naziva se i uvjetno
računanje → budući da mnoge komponente arhitekture mogu biti relevantne samo
za malu količinu mogućih ulaza, sustav može raditi brže računajući te značajke samo
kada su potrebne

Neuronske mreže i genetski algoritmi 18


Duboko učenje velikih razmjera

Specijalizirane hardverske implementacije dubokih mreža

• Od ranih dana istraživanja neuronskih mreža, dizajneri hardvera radili su na


specijaliziranim hardverskim implementacijama koje bi mogle ubrzati trening i/ili
zaključivanje algoritama neuronskih mreža
• Tijekom posljednjih desetljeća razvijeni su različiti oblici specijaliziranog hardvera,
bilo s ASIC-ovima (engl. application-specific integrated circuit – integrirani krug
specifičan za primjenu), bilo s digitalnim (temeljenim na binarnim reprezentacijama
brojeva), analognim (temeljenim na fizičkim implementacijama kontinuiranih
vrijednosti kao što su naponi ili struje) ili hibridnim izvedbama (kombinacijama
digitalnih i analognih komponenti)
• Posljednjih godina razvijene su fleksibilnije FPGA (engl. field programmable gated
array) implementacije (gdje se pojedinosti kruga mogu zapisati na čip nakon što je
izgrađen)

Neuronske mreže i genetski algoritmi 19


Duboko učenje velikih razmjera

Specijalizirane hardverske implementacije dubokih mreža

• Iako softverske implementacije na procesorskim jedinicama opće namjene (CPU i


GPU) obično koriste 32 ili 64 bita preciznosti za predstavljanje brojeva s pomičnim
zarezom, odavno je poznato da je moguće koristiti manju preciznost, barem tijekom
zaključivanja
• Ovo je postalo bitno pitanje posljednjih godina kako je duboko učenje dobilo na
popularnosti u industrijskim proizvodima i kako je veliki utjecaj bržeg hardvera
demonstriran s GPU-ovima
• Još jedan čimbenik koji motivira trenutno istraživanje specijaliziranog hardvera za
duboke mreže je da je stopa napretka jedne jezgre CPU-a ili GPU-a usporena, a
najnovija poboljšanja u brzini računanja došla su od paralelizacije između jezgri (bilo u
CPU-u ili GPU-u)
• Ovo se uvelike razlikuje od situacije iz 1990-ih (prethodno doba neuronskih mreža)
gdje hardverske implementacije neuronskih mreža (koje bi mogle trajati dvije godine
od početka do dostupnosti) nisu mogle pratiti brz napredak i niske cijene CPU-a opće
namjene

Neuronske mreže i genetski algoritmi 20


Duboko učenje velikih razmjera

Specijalizirane hardverske implementacije dubokih mreža

• Izgradnja specijaliziranog hardvera stoga je način da se postigne novi napredak u


vrijeme kada se razvijaju novi hardverski dizajni za uređaje male snage kao što su
mobiteli, s ciljem opće javne primjene dubokog učenja (npr. govorom, računalni vid ili
prirodni jezik)

Neuronske mreže i genetski algoritmi 21


Računalni vid

Računalni vid

• Računalni vid (engl. computer vision) tradicionalno je jedno od najaktivnijih


istraživačkih područja za primjene dubokog učenja jer je vid zadatak koji je
jednostavan za ljude i mnoge životinje, ali izazovan za računala
• Mnogi od najpopularnijih standardnih referentnih (engl. benchmark) zadataka za
algoritme dubokog učenja su različiti oblici prepoznavanja objekata (engl. object
recognition) ili optičkog prepoznavanja znakova (engl. optical character recognition)
• Računalni vid je vrlo široko područje koje obuhvaća široku lepezu načina obrade slika
i nevjerojatnu raznolikost primjena
• Primjene računalnog vida kreću se od reprodukcije ljudskih vizualnih sposobnosti,
primjerice prepoznavanja lica, do stvaranja potpuno novih kategorija vizualnih
sposobnosti, primjerice primjene računalnog vida za prepoznavanje zvučnih valova iz
vibracija koje stvaraju u objektima vidljivim u videu

Neuronske mreže i genetski algoritmi 22


Računalni vid

Računalni vid

• Većina istraživanja dubokog učenja za računalni vid nije usredotočena na takve


egzotične primjene koje proširuju područje onoga što je moguće pomoću slika, već na
malu jezgru AI ciljeva usmjerenih na repliciranje ljudskih sposobnosti
• Većina dubokog učenja za računalni vid koristi se za prepoznavanje objekata ili
detekciju nekog oblika, bilo da to znači izvješćivanje o tome koji je objekt prisutan na
slici, označavanje slike s graničnim okvirima oko svakog objekta, transkripciju niza
simbola sa slike ili označavanje svakog piksela na slici s identitetom objekta kojem
pripada
• Budući da je generativno modeliranje bilo vodeće načelo istraživanja dubokog učenja,
također postoji velik broj radova o sintezi slike pomoću dubokih modela
• Iako se sinteza slike iz ničega obično ne smatra pothvatom računalnog vida, modeli
sposobni za sintezu slike obično su korisni za restauraciju slike, što je zadatak
računalnog vida koji uključuje popravak nedostataka na slikama ili uklanjanje objekata
sa slika

Neuronske mreže i genetski algoritmi 23


Računalni vid

Predobrada podataka

• Mnoga područja primjene zahtijevaju sofisticiranu predobradu (engl. preprocessing)


jer izvorni ulaz dolazi u obliku koji je mnogim arhitekturama dubokog učenja teško
prikazati
• Računalni vid obično zahtijeva relativno malo ove vrste predobrade
• Slike bi trebale biti standardizirane tako da svi njihovi pikseli leže u istom, razumnom
rasponu, poput [0,1] ili [-1, 1] → miješanje slika koje leže u rasponu [0,1] sa slikama
koje leže u rasponu [0, 255] obično će rezultirati neuspjehom
• Formatiranje slika tako da imaju istu skalu jedina je vrsta predobrade koja je strogo
neophodna

Neuronske mreže i genetski algoritmi 24


Računalni vid

Predobrada podataka

• Mnoge arhitekture računalnog vida zahtijevaju slike standardne veličine, pa se slike


moraju izrezati (engl. crop) ili skalirati kako bi odgovarale toj veličini
• Čak ni ovo ponovno skaliranje nije uvijek nužno:
– Neki konvolucijski modeli prihvaćaju ulaze promjenjive veličine i dinamički prilagođavaju veličinu svojih
područja sažimanja (engl. pooling regions) kako bi veličina izlaza bila konstantna
– Drugi konvolucijski modeli imaju izlaz promjenjive veličine koji se automatski mijenja u veličini s ulazom,
kao što su modeli koji uklanjaju šum ili označavaju svaki piksel na slici

Neuronske mreže i genetski algoritmi 25


Računalni vid

Predobrada podataka

• Augmentacija (povećanje) skupa podataka može se smatrati samo načinom


predobrade skupa za treniranje
• Augmentacija skupa podataka izvrstan je način za smanjenje pogreške generalizacije
većine modela računalnog vida
• Povezana ideja primjenjiva u vrijeme testiranja je pokazati modelu mnogo različitih
verzija istog ulaza (na primjer, ista slika izrezana na neznatno različitim lokacijama) i
imati različite instance glasanja modela za određivanje izlaza → ova posljednja ideja
može se tumačiti kao ansamblski (engl. ensemble) pristup i pomaže smanjiti pogrešku
generalizacije

Neuronske mreže i genetski algoritmi 26


Računalni vid

Predobrada podataka

• Druge vrste predobrade primjenjuju se i na skup za treniranje i na skup za testiranje s


ciljem stavljanja svakog primjera u oblik koji je više kanonski kako bi se smanjila
količina varijacija koju model treba uzeti u obzir
• Smanjenje količine varijacija u podacima može smanjiti pogrešku generalizacije i
smanjiti veličinu modela potrebnog da obuhvati skup za treniranje
• Jednostavniji zadatci mogu se riješiti manjim modelima, a jednostavnija rješenja
vjerojatnije će dobro generalizirati
• Predobrada ove vrste obično je osmišljena da ukloni neku vrstu varijabilnosti u
ulaznim podatcima koje je lako opisati ljudskom dizajneru i za koje je ljudski dizajner
uvjeren da nemaju nikakve važnosti za zadatak

Neuronske mreže i genetski algoritmi 27


Računalni vid

Predobrada podataka

• Pri treniranju s velikim skupovima podataka i velikim modelima, ova vrsta


predobrade često je nepotrebna te je najbolje samo pustiti model da nauči na koje
vrste varijabilnosti bi trebao postati invarijantan
• Na primjer, AlexNet sustav za klasifikaciju ImageNet ima samo jedan korak
predobrade: oduzimanje srednje vrijednosti kroz trening primjere svakog piksela

Neuronske mreže i genetski algoritmi 28


Računalni vid

Predobrada podataka

• Jedan od najočitijih izvora varijacija koji se može sigurno ukloniti za mnoge zadatke je
količina kontrasta na slici
• Kontrast se odnosi na veličinu razlike između svijetlih i tamnih piksela na slici
• Postoji mnogo načina kvantificiranja kontrasta slike → u kontekstu dubokog učenja,
kontrast se obično odnosi na standardnu devijaciju piksela na slici ili području slike

Neuronske mreže i genetski algoritmi 29


Računalni vid

Predobrada podataka

• Augmentacija (povećanje) skupa podataka – jednostavno je poboljšati generalizaciju


klasifikatora povećanjem veličine skupa za treniranje dodavanjem dodatnih kopija
primjera za treniranje koji su modificirani transformacijama koje ne mijenjaju klasu
• Prepoznavanje objekata je zadatak klasifikacije koji je posebno podložan ovom obliku
augmentacije skupa podataka jer je klasa nepromjenjiva za toliko mnogo
transformacija i ulaz se može lako transformirati s mnogo geometrijskih operacija
• Klasifikatori mogu imati koristi od nasumičnih translacija, rotacija i, u nekim
slučajevima, okretanja (engl. flip) ulaza s ciljem povećanja skupa podataka
• U specijaliziranim primjenama računalnog vida obično se koriste naprednije
transformacije za povećanje skupa podataka:
– Nasumični poremećaji boja na slici
– Nelinearne geometrijske distorzije ulaza

Neuronske mreže i genetski algoritmi 30


Prepoznavanje govora

Prepoznavanje govora

• Zadatak prepoznavanja govora (engl. speech recognition) je preslikati (mapirati)


zvučni (akustični) signal koji sadrži izgovoreni govor prirodnog jezika u odgovarajući
niz riječi koje je govornik zamislio
• Većina sustava za prepoznavanje govora prethodno obrađuje ulaz pomoću
specijaliziranih ručno dizajniranih značajki, ali neki sustavi dubokog učenja uče
značajke iz sirovog (neobrađenog) ulaza
• Ciljani izlazni niz obično je niz riječi ili znakova
• Zadatak automatskog prepoznavanja govora (engl. automatic speech recognition,
ASR) sastoji se od stvaranja funkcije koja izračunava najvjerojatniji jezični niz s
obzirom na zvučni (akustički) niz

Neuronske mreže i genetski algoritmi 31


Prepoznavanje govora

Prepoznavanje govora

• Od 1980-ih pa sve do otprilike 2009.-2012. najbolji sustavi za prepoznavanje govora


prvenstveno su kombinirali skrivene Markovljeve modele (engl. hidden Markov
models, HMM) i Gaussove modele mješavine (engl. Gaussian mixture models, GMM)
• GMM modeliraju povezanost između akustičkih značajki i fonema, dok HMM
modeliraju slijed fonema
• Iako su GMM-HMM sustavi sve donedavno dominirali ASR-om, prepoznavanje
govora zapravo je bilo jedno od prvih područja u kojima su primijenjene neuronske
mreže, a brojni ASR sustavi s kraja 1980-ih i ranih 1990-ih koristili su neuronske mreže
• U to vrijeme, performanse ASR-a temeljene na neuronskim mrežama približno su
odgovarale performansama GMM-HMM sustava
• Međutim, zbog složenog inženjeringa uključenog u softverske sustave za
prepoznavanje govora i truda koji je uložen u izgradnju tih sustava na temelju GMM-
HMM-ova, industrija nije vidjela uvjerljiv argument za prelazak na neuronske mreže

Neuronske mreže i genetski algoritmi 32


Prepoznavanje govora

Prepoznavanje govora

• Kao posljedica toga, sve do kasnih 2000-ih, i akademska i industrijska istraživanja u


korištenju neuronskih mreža za prepoznavanje govora uglavnom su bila usmjerena na
korištenje neuronskih mreža za učenje dodatnih značajki za GMM-HMM sustave
• Kasnije, s puno većim i dubljim modelima i puno većim skupovima podataka, točnost
prepoznavanja dramatično je poboljšana upotrebom neuronskih mreža za zamjenu
GMM-ova za zadatak povezivanja akustičnih značajki s fonemima
• Počevši od 2009. godine, istraživači govora primijenili su duboko učenje na
prepoznavanje govora
• Treniranje tako dubokih mreža pomogla je značajnom poboljšanju stope
prepoznavanja govora
• U vrlo kratkom vremenu većina industrijskih proizvoda za prepoznavanje govora
uključivala je duboke neuronske mreže i ovaj je uspjeh potaknuo novi val istraživanja
algoritama dubokog učenja i arhitektura za ASR, a koji još uvijek traje

Neuronske mreže i genetski algoritmi 33


Prepoznavanje govora

Prepoznavanje govora

• Jedna od tih inovacija bila je upotreba konvolucijskih mreža koje repliciraju težine
kroz vrijeme i frekvenciju, poboljšavajući se u odnosu na ranije neuronske mreže s
vremenskom odgodom koje su replicirale težine samo kroz vrijeme
• Novi dvodimenzionalni konvolucijski modeli ne smatraju ulazni spektrogram jednim
dugim vektorom već slikom, pri čemu jedna os odgovara vremenu, a druga frekvenciji
spektralnih komponenti

Neuronske mreže i genetski algoritmi 34


Obrada prirodnog jezika

Obrada prirodnog jezika

• Obrada prirodnog jezika (engl. natural language processing, NLP) je korištenje


ljudskih jezika, poput engleskog ili francuskog, pomoću računala
• Računalni programi obično čitaju i emitiraju specijalizirane jezike dizajnirane da
omoguće učinkovito i nedvosmisleno analiziranje jednostavnim programima
• Prirodni jezici često su dvosmisleni i prkose formalnom opisu
• Obrada prirodnog jezika uključuje primjene kao što je strojno prevođenje, u kojem
učenik mora pročitati rečenicu na jednom ljudskom jeziku i emitirati ekvivalentnu
rečenicu na drugom ljudskom jeziku
• Mnoge NLP aplikacije temelje se na jezičnim modelima koji definiraju distribuciju
vjerojatnosti nizova riječi, znakova ili bajtova u prirodnom jeziku

Neuronske mreže i genetski algoritmi 35


Obrada prirodnog jezika

Obrada prirodnog jezika

• Vrlo generičke tehnike neuronskih mreža mogu se uspješno primijeniti na obradu


prirodnog jezika
• Međutim, da bi se postigla izvrsne performanse i dobro prilagodilo velikim
aplikacijama, neke strategije specifične za domenu postaju važne
• Da bismo izgradili učinkovit model prirodnog jezika, obično moramo koristiti tehnike
koje su specijalizirane za obradu sekvencijalnih podataka
• U mnogim slučajevima prirodni jezik odlučujemo smatrati nizom riječi, a ne nizom
pojedinačnih znakova ili bajtova
• Budući da je ukupan broj mogućih riječi tako velik, jezični modeli temeljeni na
riječima moraju djelovati na izrazito visokodimenzionalnom i rijetkom diskretnom
prostoru
• Razvijeno je nekoliko strategija kako bi se modeli takvog prostora učinili učinkovitima,
kako u računskom tako i u statističkom smislu

Neuronske mreže i genetski algoritmi 36


Sustavi za preporuku

Sustavi za preporuku

• Jedno od glavnih područja primjene strojnog učenja u sektoru informacijske


tehnologije (IT sektoru) je mogućnost davanja preporuka za artikle (engl. items)
potencijalnim korisnicima ili kupcima
• Mogu se razlikovati dvije glavne vrste primjena: online oglašavanje i preporuke
artikala (često su te preporuke i dalje u svrhu prodaje proizvoda)
• Obje se oslanjaju na predviđanje povezanosti između korisnika i artikla, bilo da bi se
predvidjela vjerojatnost neke radnje (korisnik kupuje proizvod ili neka zamjena za tu
radnju) ili očekivani dobitak (koji može ovisiti o vrijednosti proizvoda) ako je korisniku
prikazan oglas ili preporuka u vezi s tim proizvodom
• Internet se trenutno velikim dijelom financira raznim oblicima online oglašavanja
• Postoje veliki dijelovi gospodarstva koji se oslanjaju na online kupnju
• Brojne tvrtke, uključujući Amazon i eBay, koriste strojno učenje, uključujući duboko
učenje, za svoje preporuke proizvoda

Neuronske mreže i genetski algoritmi 37


Sustavi za preporuku

Sustavi za preporuku

• Ponekad artikli nisu proizvodi koji su zapravo na prodaju


• Primjeri uključuju:
– Odabir objava za prikaz na feedovima vijesti na društvenim mrežama
– Preporuku filmova za gledanje
– Preporuku viceva
– Preporuku savjeta stručnjaka
– Uparivanje igrača za video igre
– Uparivanje ljudi u servisima za upoznavanje
– …

Neuronske mreže i genetski algoritmi 38


Sustavi za preporuku

Sustavi za preporuku

• Često se ovaj problem povezivanja rješava kao problem nadziranog učenja: s obzirom
na neke informacije o artiklu i korisniku, predvidite akciju od interesa (korisnik klikne
na oglas, korisnik unese ocjenu, korisnik klikne na gumb „sviđa mi se”, korisnik kupuje
proizvod, korisnik troši određeni iznos novca na proizvod, korisnik provodi vrijeme
posjećujući stranicu za proizvod, itd.)
• To često završi kao problem regresije (predviđanje neke uvjetne očekivane
vrijednosti) ili problem vjerojatnosne klasifikacije (predviđanje uvjetne vjerojatnosti
nekog diskretnog događaja)

Neuronske mreže i genetski algoritmi 39


Diskusija

Vaša pitanja?

Neuronske mreže i genetski algoritmi 40


NEURONSKE MREŽE I GENETSKI
ALGORITMI
Doc. dr. sc. Nikola Lopac

Neuronske mreže i genetski algoritmi 1


Sadržaj predavanja

• P10: Proces učenja


– Učenje
– Učenje korekcijom pogreške
– Hebbovo učenje
– Kompetitivno učenje
– Boltzmannovo učenje
– Problem nagrađivanja
– Učenje pod nadzorom
– Učenje bez učitelja
– Učenje podrškom
– Učenje bez nadzora

Neuronske mreže i genetski algoritmi 2


Učenje

Uvod

• Jedna od najvažnijih karakteristika neuronskih mreža je sposobnost učenja od okoline


i poboljšanja njihovih performansi kroz učenje
• Poboljšanje performansi događa se tijekom vremena u skladu s nekom propisanom
mjerom
• Neuronska mreža uči o okolini kroz iterativni proces promjena (podešavanja)
sinaptičkih težina i pragova
• Nakon svake iteracije procesa učenja mreža bi trebala imati više znanja o okolini

Neuronske mreže i genetski algoritmi 3


Učenje

Definicija učenja

• Postoji mnogo definicija učenja


• Definicija učenja u kontekstu neuronskih mreža (Mendel i McClaren, 1970.):
– Učenje je proces kojim se slobodni parametri neuronske mreže adaptiraju kroz kontinuirani proces
stimulacije od okoline u kojoj se mreža nalazi
– Vrsta učenja je određena načinom kako se odvija promjena parametara
• Gornja definicija implicira ovaj slijed događaja:
– Okolina stimulira neuronsku mrežu
– Neuronska mreža prolazi kroz promjenu svojih slobodnih parametara kao rezultat stimulacije
– Zbog nastalih promjena u svojoj internoj strukturi neuronska mreža drugačije reagira na okolinu

Neuronske mreže i genetski algoritmi 4


Učenje

Algoritmi i paradigme učenja

• Propisani skup dobro definiranih pravila za rješenje problema učenja zove se


algoritam učenja
• Ne postoji jedinstveni algoritam učenja za dizajn neuronskih mreža nego mnogo
različitih algoritama od kojih svaki ima svoje prednosti i nedostatke
• Algoritmi učenja razlikuju se međusobno po načinu na koji izračunavaju podešavanje
(promjenu) sinaptičkih težina neurona
• Paradigme učenja određuju odnos neuronske mreže prema okolini u kojoj radi

Neuronske mreže i genetski algoritmi 5


Učenje

Algoritmi učenja

• Metode učenja mogu se podijeliti prema algoritmu učenja na:


– Učenje korekcijom pogreške
– Hebbovo učenje
– Kompetitivno učenje
– Boltzmannovo učenje
– Thorndikeovo učenje

Neuronske mreže i genetski algoritmi 6


Učenje

Paradigme učenja

• Metode učenja mogu se podijeliti prema paradigmi učenja na:


– Učenje pod nadzorom (nadzor vanjskog učitelja)
– Učenje podrškom (pokušaji i pogreške uz ocjenu suca)
– Učenje bez nadzora (samoorganizirano – nije potreban učitelj)

Neuronske mreže i genetski algoritmi 7


Učenje korekcijom pogreške

Učenje korekcijom pogreške

• Učenje korekcijom pogreške (engl. error-correction learning) pripada paradigmi


učenja pod nadzorom
• Za ilustraciju ovog tipa učenja razmotrit ćemo jednostavan slučaj neurona 𝑘 koji čini
jedini računski čvor u izlaznom sloju neuronske mreže bez povratnih veza, kao što je
prikazano na donjoj slici

Neuronske mreže i genetski algoritmi 8


Učenje korekcijom pogreške

Učenje korekcijom pogreške

• Ulaz u neuron 𝑘 je vektor signala (engl. signal vector) 𝐱(𝑛) koji je dobiven iz jednog ili
više slojeva skrivenih neurona, a pri čemu su skriveni neuroni pobuđeni ulaznim
vektorom (engl. input vector) primijenjenim na izvorne čvorove (tj. ulazni sloj)
neuronske mreže
• Argument 𝑛 označava diskretno vrijeme, tj. vremenski korak iterativnog procesa
podešavanja sinaptičkih veza neurona 𝑘
• Izlazni signal (engl. output signal), tj. dobiveni odziv neurona 𝑘, označen je sa 𝑦𝑘 (𝑛)
• Ovaj izlazni signal, koji predstavlja jedini izlaz mreže, uspoređuje se sa željenim
(ciljanim) odzivom (engl. desired (target) response) neurona 𝑘 koji je označen sa
𝑑𝑘 (𝑛)
• Ulazni vektor 𝐱(𝑛) i željeni odziv 𝑑𝑘 (𝑛) predstavljaju jedan primjer koji je
predstavljen mreži u trenutku 𝑛

Neuronske mreže i genetski algoritmi 9


Učenje korekcijom pogreške

Funkcija pogreške

• Pogreška (engl. error signal), označena sa 𝑒𝑘 (𝑛), je razlika između željenog i


dobivenog odziva neurona 𝑘 u trenutku 𝑛:
𝑒𝑘 (𝑛) = 𝑑𝑘 (𝑛) − 𝑦𝑘 (𝑛)

• Cilj učenja korekcijom pogreške je da se primjenom niza korektivnih podešenja


(promjena) sinaptičkih težina neurona dobiveni odziv svih neurona korak po korak
približava željenom odzivu u nekom statističkom smislu
• Ovaj cilj postiže se minimizacijom funkcije pogreške (engl. cost function) temeljene
na pogreškama 𝑒𝑘 (𝑛)

Neuronske mreže i genetski algoritmi 10


Učenje korekcijom pogreške

Funkcija pogreške

• Najčešće se koristi srednja kvadratna pogreška (engl. mean squared error, MSE) kao
funkcija pogreške:

• gdje je 𝐸[∙] statistički operator očekivanja, a sumacija se provodi za sve neurone u


izlaznom sloju mreže

Neuronske mreže i genetski algoritmi 11


Učenje korekcijom pogreške

Funkcija pogreške

• Problem s minimizacijom funkcije 𝐽 je da je potrebno znati statistička svojstva


slučajnog procesa 𝑒𝑘 (𝑛)
• Zbog toga se kao procjena pogreške koristi trenutna vrijednost pogreške u nekom
koraku 𝑛 kao funkcija koja se minimizira:

• Ovakav pristup daje približno rješenje


• Podešavanje sinaptičkih težina neurona nastavlja se korak po korak dok sustav ne
poprimi stacionarno stanje, tj. sinaptičke težine su u osnovi stabilizirane
• U ovom trenutku prekida se proces učenja

Neuronske mreže i genetski algoritmi 12


Učenje korekcijom pogreške

Delta pravilo učenja

• Opisani proces učenja naziva se učenje korekcijom pogreške


• Konkretno, minimizacija funkcije pogreške 𝐽 s obzirom na težine 𝑤𝑘𝑗 (𝑛) daje zakon
učenja nazvan delta pravilo ili Widrow-Hoff pravilo
• Oznaka 𝑤𝑘𝑗 (𝑛) odnosi se na vrijednost sinaptičke težine neurona 𝑘 pobuđenog
elementom 𝑥𝑗 (𝑛) vektora signala 𝐱(𝑛) u vremenskom koraku 𝑛
• Prema delta pravilu, podešenje (promjena) Δ𝑤𝑘𝑗 (𝑛) primijenjeno na sinaptičku
težinu 𝑤𝑘𝑗 u vremenskom koraku 𝑛 definirano je kao:
Δ𝑤𝑘𝑗 𝑛 = 𝜂 𝑒𝑘 𝑛 𝑥𝑗 (𝑛)
• gdje je 𝜂 pozitivna konstanta koja određuje brzinu učenja kako napredujemo iz jednog
koraka procesa učenja u drugi te se stoga naziva parametar brzine učenja (engl.
learning-rate parameter)

Neuronske mreže i genetski algoritmi 13


Učenje korekcijom pogreške

Delta pravilo učenja

• Dakle, delta pravilo može se definirati:


– Promjena (podešenje) težine neurona proporcionalna je umnošku pogreške na izlazu i iznosa pripadnog
ulaza

• Nakon izračuna promjene težine Δ𝑤𝑘𝑗 (𝑛), ažurirana vrijednost težine 𝑤𝑘𝑗 određuje
se kao:
𝑤𝑘𝑗 𝑛 + 1 = 𝑤𝑘𝑗 𝑛 + Δ𝑤𝑘𝑗 (𝑛)

• Vrijednosti 𝑤𝑘𝑗 𝑛 i 𝑤𝑘𝑗 𝑛 + 1 predstavljaju stare, odnosno nove vrijednosti težina


𝑤𝑘𝑗

Neuronske mreže i genetski algoritmi 14


Učenje korekcijom pogreške

Parametar brzine učenja

• Odabir konstante 𝜼 ima snažan utjecaj na točnost i druge aspekte procesa učenja
• Konstanta 𝜂 mora se stoga pažljivo odabrati:
– Mali 𝜼 daje stabilnost, ali je učenje sporo
– Veliki 𝜼 ubrzava učenje, ali donosi rizik nestabilnosti

Neuronske mreže i genetski algoritmi 15


Učenje korekcijom pogreške

Ploha pogreške

• Ako nacrtamo ovisnost pogreške 𝐽 o sinaptičkim težinama u mreži dobivamo


višedimenzionalnu plohu pogreške (engl. error surface)
• Problem učenja sastoji se u nalaženju točke na plohi pogreške koja daje najmanju
pogrešku
• S obzirom na vrstu neurona postoje dvije mogućnosti:
– Mreža se sastoji od linearnih neurona i u tom slučaju je ploha pogreške kvadratična funkcija koja ima
jedan minimum
– Mreža ima nelinearne neurone i u tom slučaju ploha pogreške ima jedan (ili više) globalnih minimuma i
više lokalnih minimuma
• Učenje počinje iz proizvoljne točke na plohi i minimizacijom korak po korak se:
• U prvom slučaju približava se globalnom minimumu
• U drugom slučaju može se završiti i u lokalnom minimumu

Neuronske mreže i genetski algoritmi 16


Učenje korekcijom pogreške

Ploha pogreške

• Pomicanje prema minimumu plohe pogreške moguće je zahvaljujući informacijama o


gradijentu (nagibu) plohe pogreške koji odgovara trenutnom ponašanju sustava
• Gradijent plohe pogreške u bilo kojoj točki je vektor koji pokazuje u smjeru
najstrmijeg spusta (engl. steepest descent)
• Zapravo, sustav može koristiti trenutnu procjenu (estimaciju) vektora gradijenta
• Upotreba takve procjene rezultira kretanjem radne točke po površini pogreške koje je
obično u obliku „slučajnog hoda” (engl. random walk)
• Unatoč tome, uz algoritam namijenjen za minimizaciju funkcije pogreške, adekvatan
skup ulazno-izlaznih primjera i dovoljno vremena za treniranje, sustav učenja obično
može dobro aproksimirati nepoznato ulazno-izlazno mapiranje, tj. izvoditi zadatke
kao što je klasifikacija uzoraka i aproksimacija funkcija

Neuronske mreže i genetski algoritmi 17


Hebbovo učenje

Hebbovo učenje

• Hebbovo učenje (engl. Hebbian learning) je najstariji i najpoznatiji princip učenja te


kaže (Hebb, The Organization of Behavior, 1949.):
– Kad je akson neurona A dovoljno blizu da aktivira neuron B i to ponavlja veći broj puta dolazi do
metaboličkih promjena tako da se povećava efikasnost neurona A u aktiviranju neurona B
• Ekstenzija ovog principa (Stent, 1973.; Changeux i Danchin, 1976.) kaže:
– Ako se dva neurona s obje strane sinapse (veze) aktiviraju istovremeno (tj. sinkrono), tada se snaga te
sinapse povećava
– Ako jedan neuron ne utječe na drugog (tj. neuroni se aktiviraju asinkrono), tada sinapsa među njima
postaje slabija ili se potpuno eliminira
• Takva se sinapsa naziva Hebbova sinapsa
• Hebbova sinapsa definira se kao sinapsa koja koristi vremenski ovisan, visoko lokalni i
snažno interaktivan mehanizam za povećanje sinaptičke učinkovitosti kao funkcije
korelacije između presinaptičkih i postsinaptičkih aktivnosti

Neuronske mreže i genetski algoritmi 18


Hebbovo učenje

Pravilo produkta aktivnosti

• Prema Hebbovu principu učenja težine se mijenjaju na slijedeći način:


Δ𝑤𝑘𝑗 (𝑛) = 𝐹(𝑦𝑘 (𝑛), 𝑥𝑗 (𝑛))
• gdje su 𝑦𝑘 (𝑛) i 𝑥𝑗 (𝑛) izlaz i 𝑗-ti ulaz 𝑘-tog neurona, a 𝐹(∙) funkcija i izlaznog i ulaznog
signala

• Jedan specijalni (najjednostavniji) slučaj ovog principa je:


Δ𝑤𝑘𝑗 (𝑛) = 𝜂 𝑦𝑘 𝑛 𝑥𝑗 (𝑛)
• gdje pozitivna konstanta 𝜂 određuje brzinu učenja
• U ovom slučaju promjena težine proporcionalna je produktu ulaza i izlaza iz neurona
→ ovo pravilo zove se pravilo produkta aktivnosti (engl. activity product rule)

Neuronske mreže i genetski algoritmi 19


Hebbovo učenje

Pravilo produkta aktivnosti

• Promjena težine proporcionalna je ulaznom signalu:


Δ𝑤𝑘𝑗 (𝑛) = 𝜂 𝑦𝑘 𝑛 𝑥𝑗 (𝑛)
• Nedostatak je da uzastopno ponavljanje ulazne pobude 𝑥𝑗 dovodi do povećanja izlaza
𝑦𝑘 , a time do eksponencijalnog rasta težine 𝑤𝑘𝑗 i konačno zasićenja
• Pri zasićenju nove informacije neće biti pohranjene u sinapsi te se gubi selektivnost

Neuronske mreže i genetski algoritmi 20


Hebbovo učenje

Generalizirano pravilo produkta

• Zbog problema zasićenja težine 𝑤𝑘𝑗 predložene su modifikacije koje ograničavaju rast
težine 𝑤𝑘𝑗
• Ovaj cilj može se postići npr. uvođenjem nelinearnog faktora zaboravljanja (Kohonen,
1988.):
Δ𝑤𝑘𝑗 𝑛 = 𝜂 𝑦𝑘 𝑛 𝑥𝑗 𝑛 − 𝛼 𝑦𝑘 𝑛 𝑤𝑘𝑗 𝑛
• gdje je 𝛼 pozitivna konstanta

• Gornji izraz može se pisati i kao:


Δ𝑤𝑘𝑗 𝑛 = 𝛼 𝑦𝑘 𝑛 𝑐 𝑥𝑗 𝑛 − 𝑤𝑘𝑗 𝑛
• gdje je 𝑐 = 𝜂/𝛼
• Ovo pravilo zove se generalizirano pravilo produkta

Neuronske mreže i genetski algoritmi 21


Hebbovo učenje

Generalizirano pravilo produkta

• Kod generaliziranog Hebbovog pravila svi ulazi koji imaju iznos 𝑥𝑗 (𝑛) < 𝑤𝑘𝑗 (𝑛)/𝑐
uzrokuju smanjenje težine 𝑤𝑘𝑗
• S druge strane, ulazi za koje vrijedi 𝑥𝑗 𝑛 > 𝑤𝑘𝑗 (𝑛)/𝑐 povećavaju težinu 𝑤𝑘𝑗

Neuronske mreže i genetski algoritmi 22


Kompetitivno učenje

Kompetitivno učenje

• Kompetitivno učenje (engl. competitive learning) pripada paradigmi učenja bez


nadzora
• Neuroni se natječu za priliku da se aktiviraju
• Samo jedan neuron može biti aktivan u bilo kojem trenutku
• Dolazi do natjecanja među sinapsama jednog neurona ili skupa neurona, s rezultatom
da se najsnažnije rastuće (tj. najspremnije) sinapse ili neuroni odabiru na račun
ostalih
• Da bi se određeni neuron stabilizirao, mora postojati natjecanje među njegovim
sinapsama za ograničene resurse na način da se povećanje jačine nekih sinapsi u
neuronu kompenzira smanjenjem jačine u drugima → samo „uspješne” sinapse mogu
ojačati, dok manje uspješne sinapse imaju tendenciju slabljenja i na kraju mogu
potpuno nestati

Neuronske mreže i genetski algoritmi 23


Kompetitivno učenje

Kompetitivno učenje

• Ovaj tip učenja pogodan je za probleme klasifikacije


• Tri osnovna elementa kompetitivnog učenja su:
– Skup jednakih neurona koji imaju slučajno raspoređene težine i zbog toga reagiraju različito na dani skup
ulaza
– Ograničenje „jačine” svakog neurona u mreži
– Mehanizam koji omogućava natjecanje neurona za pravo na odziv na danu pobudu, tako da je samo
jedan neuron (ili jedan po grupi) aktivan u jednom trenutku (engl. winner-takes-all neuron)

Neuronske mreže i genetski algoritmi 24


Kompetitivno učenje

Kompetitivno učenje

• Kroz ovaj proces kompetitivnog učenja pojedini neuroni mreže preuzimaju ulogu
detektora značajki za različite klase ulaznih obrazaca
• Dok u Hebbovom učenju nekoliko izlaznih neurona neuronske mreže može biti
aktivno istovremeno, u kompetitivnom učenju samo je jedan izlazni neuron ili jedan
izlazni neuron po skupini aktivan u bilo kojem trenutku
• Upravo ova karakteristika kompetitivnog učenja čini ga vrlo prikladnim za otkrivanje
statistički istaknutih značajki koje se mogu koristiti za klasificiranje skupa ulaznih
obrazaca

Neuronske mreže i genetski algoritmi 25


Kompetitivno učenje

Kompetitivno učenje

• U najjednostavnijem obliku kompetitivnog učenja, kao što je primjer na donjoj slici,


mreža ima jedan sloj izlaznih neurona koji su potpuno vezani na sve ulaze

Neuronske mreže i genetski algoritmi 26


Kompetitivno učenje

Kompetitivno učenje

• Da bi neuron pobijedio, njegova unutarnja aktivnost 𝑣𝑗 za neki ulazni vektor 𝐱 mora


biti najveća od svih neurona u mreži
• Izlaz 𝑦𝑗 pobjedničkog neurona 𝑗 postavlja se na vrijednost 1, a izlazi svih ostalih
neurona koje su izgubili natjecanje postavljaju se na vrijednost 0
• Zakon kompetitivnog učenja dan je izrazom:

• Ovo pravilo učenja ima efekt pomicanja vektora težine 𝐰𝑗 pobjedničkog neurona 𝑗
prema ulaznom vektoru 𝐱

Neuronske mreže i genetski algoritmi 27


Kompetitivno učenje

Primjer kompetitivnog učenja

• Pretpostavimo da svaki ulazni vektor ima normu (duljinu) jednaku 1 tako da se može
prikazati kao točka na N-dimenzionalnoj jediničnoj sferi
• Isto tako pretpostavimo da vektori težina imaju normu jednaku 1 tako da se mogu
prikazati kao točke na istoj N-dimenzionalnoj sferi
• U procesu treniranja ulazni vektori dovode se na ulaz mreže i težina pobjedničkog
neurona mijenja se u skladu sa zakonom učenja
• Proces treniranja može se prikazati kao kretanje križića po jediničnoj sferi:

Neuronske mreže i genetski algoritmi 28


Boltzmannovo učenje

Boltzmannovo učenje

• Boltzmannovo pravilo učenja (engl. Boltzmann learning rule) je stohastički algoritam


učenja temeljen na teoriji informacija i termodinamici
• Koristi se kod Boltzmannovog stroja (engl. Boltzmann machine)
• Boltzmannov stroj je neuronska mreža koja se sastoji od stohastičkih neurona koji
rade binarno, odnosno mogu poprimiti jedno od dvaju stanja: -1 („off”) ili +1 („on”)
• Neuroni su međusobno povezani i postoje povratne veze

Neuronske mreže i genetski algoritmi 29


Problem nagrađivanja

Problem nagrađivanja

• Kod proučavanja algoritama učenja za distribuirane sustave važan je problem


nagrađivanja (engl. credit-assignment problem) (Minsky, 1961.)
• Problem nagrađivanja sastoji se u davanju zasluga ili krivice za ukupne ishode učenja
svakoj od internih odluka koje donose skrivene računalne jedinice distribuiranog
sustava učenja, prepoznajući da su te odluke odgovorne za ukupne ishode

Neuronske mreže i genetski algoritmi 30


Učenje pod nadzorom

Učenje pod nadzorom

• Glavna karakteristika učenja pod nadzorom (engl. supervised learning) ili učenja s
učiteljem (engl. learning with a teacher) je prisutnost vanjskog učitelja
• Učitelj ima znanje o okolini u obliku primjera, tj. parova ulaz-izlaz
• Međutim, okolina je nepoznata neuronskoj mreži
• I učitelj i neuronska mreža su izloženi vektoru za treniranje (tj. ulaznom primjeru)
izvučenom iz iste okoline

Neuronske mreže i genetski algoritmi 31


Učenje pod nadzorom

Učenje pod nadzorom

• Na temelju ugrađenog znanja učitelj može dati neuronskoj mreži željeni odziv za taj
ulazni vektor → željeni odziv predstavlja „optimalnu” radnju koju treba izvesti
neuronska mreža
• Pogreška je razlika između željenog i dobivenog odziva mreže za neki ulazni vektor
• Parametri mreže mijenjaju se pod utjecajem ulaznih vektora i signala pogreške
• Proces se iterativno ponavlja sve dok mreža ne nauči imitirati učitelja
• Na taj se način znanje o okolini koje je dostupno učitelju prenosi u neuronsku mrežu
kroz treniranje i pohranjuje u obliku „fiksnih” sinaptičkih težina
• Nakon što je učenje završilo, učitelj više nije potreban i mreža može raditi bez
nadzora

Neuronske mreže i genetski algoritmi 32


Učenje pod nadzorom

Učenje pod nadzorom

• Oblik upravo opisanog učenja pod nadzorom je već obrađeno učenje korekcijom
pogreške
• Funkcija pogreške može biti srednja kvadratna pogreška u ovisnosti od slobodnih
parametara mreže
• Funkcija pogreške može se promatrati kao višedimenzionalna ploha pogreške (engl.
error surface)
• Bilo koja konfiguracija mreže definirana je parametrima i njoj je pridružena točka na
plohi pogreške
• Iterativni proces učenja sastoji se od pomicanja točke prema dolje niz plohu
pogreške, tj. prema globalnom minimumu funkcije pogreške
• Točka na plohi pogreške kreće se prema minimumu na temelju znanja o gradijentu
(zapravo ocjene gradijenta)
• Gradijent u nekoj točki plohe je vektor koji pokazuje smjer najbržeg spusta

Neuronske mreže i genetski algoritmi 33


Učenje pod nadzorom

Učenje pod nadzorom

• Primjeri algoritama za učenje pod nadzorom su:


– Algoritam najmanjih kvadrata (engl. least-mean-square, LMS)
– Algoritam s povratnom propagacijom pogreške (engl. back-propagation, BP)

• Nedostatak učenja pod nadzorom je da bez učitelja mreža ne može naučiti nove
strategije koje nisu pokrivene primjerima koji su korišteni za učenje

Neuronske mreže i genetski algoritmi 34


Učenje pod nadzorom

Učenje pod nadzorom

• Učenje pod nadzorom može se izvoditi u off-line ili on-line načinu rada
• U off-line načinu učenja:
– Sustav prvo uči
– Kad je učenje gotovo, konfiguracija sustava više se ne mijenja i mreža zatim radi na statički način (bez
promjena)
• U on-line načinu učenja:
– Sustav za vrijeme rada uči i mijenja svoju konfiguraciju u skladu s novim znanjem
– Učenje se odvija u stvarnom vremenu, odnosno mreža je dinamička

Neuronske mreže i genetski algoritmi 35


Učenje bez učitelja

Učenje bez učitelja

• U učenju pod nadzorom (učenju s učiteljem) proces učenja odvija se pod nadzorom
učitelja
• Međutim, u paradigmi poznatoj kao učenje bez učitelja (engl. learning without a
teacher), kao što naziv implicira, ne postoji učitelj koji bi nadgledao proces učenja
• Drugim riječima, nema označenih primjera funkcije koju mreža treba naučiti
• Paradigma učenja bez učitelja obuhvaća dvije potkategorije:
– Učenje podrškom
– Učenje bez nadzora

Neuronske mreže i genetski algoritmi 36


Učenje podrškom

Učenje podrškom

• Učenje podrškom ili ojačano (podržano) učenje (engl. reinforcement learning) je on-
line karaktera
• Uči se ulazno-izlazno preslikavanje kroz proces pokušaja i pogrešaka gdje se
maksimizira indeks kojim se mjeri kvaliteta učenja
• Učenje podrškom rješava problem učenja pod nadzorom:
– Da bez učitelja mreža ne može naučiti nove strategije koje nisu pokrivene primjerima koji su korišteni za
učenje

Neuronske mreže i genetski algoritmi 37


Učenje podrškom

Učenje podrškom

• Kod učenja podrškom ne postoji učitelj koji određuje kolika je pogreška za određeni
par ulaz-izlaz, nego učitelj (sudac) samo kaže koliko je određeni korak u učenju dobar
(daje ocjenu ili podršku)
• Ocjena je skalarna vrijednost
• Kod učenja podrškom funkcija pogreške nije poznata
• Sustav za učenje mora sam ustanoviti „smjer” gibanja kroz prostor učenja metodom
pokušaja i pogrešaka (nije poznata informacija o gradijentu kao kod učenja pod
nadzorom)

Neuronske mreže i genetski algoritmi 38


Učenje podrškom

Thorndikeov zakon

• Thorndikeov zakon (engl. Thorndike’s law of effect) definira princip učenja podrškom:
• Ako akcije sustava za učenje izazivaju pozitivni efekt, tada je veća vjerojatnost da će sustav i ubuduće
poduzimati iste akcije
• Inače se vjerojatnost da sustav poduzme te akcije smanjuje

Neuronske mreže i genetski algoritmi 39


Učenje bez nadzora

Učenje bez nadzora

• Kod učenja bez nadzora (engl. unsupervised learning) ili samoorganiziranog učenja
(engl. self-organized learning) nema vanjskog učitelja koji upravlja procesom učenja
niti suca koji taj proces nadgleda
• Koristi se mjera kvalitete znanja kojeg mreža mora naučiti i slobodni parametri mreže
se optimiziraju s obzirom na tu mjeru
• Pritom je mjera neovisna o zadatku
• Za određenu mjeru neovisnu o zadatku, nakon što se mreža prilagodi statističkim
pravilnostima ulaznih podataka, mreža razvija sposobnost formiranja internih
reprezentacija za kodiranje značajki ulaza te time automatski stvara nove klase

Neuronske mreže i genetski algoritmi 40


Učenje bez nadzora

Učenje bez nadzora

• Za učenje bez nadzora može se koristiti pravilo kompetitivnog učenja


• Kompetitivni sloj sastoji se od neurona koji se međusobno natječu za priliku da
odgovore na značajke koje sadrži ulazni vektor
• U najjednostavnijem pristupu koristi se „winner-takes-all” strategija u kojoj neuron s
najvećim ukupnim ulazom „pobjeđuje” i uključuje se („on”), a svi ostali neuroni u
mreži se isključuju („off”)

Neuronske mreže i genetski algoritmi 41


Učenje bez nadzora

Usporedba učenja sa i bez nadzora

• Najpopularniji algoritam za učenje pod nadzorom je povratna propagacija pogreške


• Nedostatak ovog algoritma je problem skaliranja koji se sastoji u tome da s
povećanjem broja slojeva mreže i broja neurona vrijeme učenja eksponencijalno
raste
• Jedno moguće rješenje ovog problema je da se koristi mreža s više slojeva gdje svaki
sloj neovisno uči bez nadzora

Neuronske mreže i genetski algoritmi 42


Diskusija

Vaša pitanja?

Neuronske mreže i genetski algoritmi 43

You might also like