Introduktion til læring
I denne del af gennemføringen vil vi gennemgå det der ligger til grund for de neurale netværks
effektivitet, nemlig deres evne til at lære. De neurale netværk der indtil nu er snakket om beskrev kun den strukturelle organisation der er
i et neuralt netværk. Det er imidlertid ikke nok at have en netværk der ser flot ud, i starten vil ethvert neuralt netværk med
uordnede synapsestyrker give nogle fuldstændigt ubrugelige resultater da synapsestyrkerne på ingen måde er tilpasset noget som helst.
Hvis man satte dette netværk til at genkende et bogstav, ville det være det samme som at prøve at få en baby til at udtale
Tirkondyrokien (Tir kån dyr råkin). Dette er fordi at hverken babyens eller netværkets synapser er blevet tilpasset til det
omkringliggende miljø. Ligesom babyens hjerne må det kunstige neurale netværk først blive trænet til den opgave den/det
skal løse.
Oplæringen af babyen vil vi imidlertid være nød til at overlade til pædagoger, da vi har et
kunstigt neuralt netværk at opfostre.
Læring af neurale netværk er i Simon Haykins bog defineret på
følgende måde:
|
|
Learning is a process by which the free parameters of a neural network are adapted through a process of stimulation by the environment in
which the network is embedded. The type of learning is determined by the manner in which the parameter change takes plan.
|
|
Meningen med denne noget kryptiske, og engelske, tekst er at
-
Det neurale netværk bliver modificeret af miljøet
-
Synapsestyrkerne ændres som et resultat af modificeringen
-
Netværket giver et andet, og helst bedre, svar på input
Ændringen af synapsestyrker bliver gjort på et væld af forskellige måder, den ene bedre end den
anden, og alle tilpasset lige netop én slags netværk. En sådan måde at opdatere synapsestyrkerne på kaldes en
træningsalgoritme, da den trin for trin beskriver hvordan netværket skal opdateres. Idéen med de mange træningsalgoritmer er at
man gerne ville være i stand til på den bedste og mest tidsbesparende måde at tilpasse netværket dets optimale tilstand.
Træningsalgoritmer er en af de ting der bliver forsket allermest i indenfor neurale netværk, nutidens algoritmer
er dog stadigvæk for klodsede og tager al for lang tid hvis der er tale om et større netværk. Vi vil dog også kun
beskæftige os med netværk på et par få hundrede neuroner her.
Læring af neurale netværk kan inddeles i to områder, overvåget (supervised) og uovervåget
(unsupervised). Indenfor disse to kategorier findes et utal af forskellige læremetoder, men vi vælger bare at beskrive de mest simple af
dem. Til sidst vil vi vise hvordan man kan lave et bogstavgenkendingsprogram der bruger begge læringsmetoder.
Indenfor overvåget læring beskriver vi error-correction mens vi i uovervåget beskæftiger os med to
former, nemlig Hebbian og Competetive læring.
|