Flerlags-perceptron

En flerlags-perceptron (MLP, eng. Multilayer Perceptron) er en stærk forsimplet matematisk model af et biologisk neuralt netværk til at approksimere (og givet en veltrænet perceptron modellere) en diskret funktion eller klassificere et diskret mønster. Faktisk er MLP en af de bedste metoder (1990-2012) til at modellere/approksimere funktionsudsnit med henblik på at forudsige funktionen i "fremtiden" - f.eks. antallet af solpletter som funktion af tiden. Flerlags-perceptronen er et eksempel på et kunstigt neuralt netværk.

MLP er et eksempel på supervised learning, der til læring som oftest (men ikke nødvendigvis) anvender backpropagation-algoritmen.

Opbygning 

MLP er opbygget af mindst 3 lag stærk forsimplede "neuroner":
 1 inputlag
 (Mindst) 1 skjult lag
 1 outputlag
Mellem hvilke der er en vægt mellem hver neuron i hvert lag til hver neuron i det efterfølgende lag. Det er ved opdatering af disse vægte, at læringen sker.

I virkeligheden er input-laget blot en "holdeplads" for en reel talværdi per input-"neuron" som anvendes af det næste "neuronlag" under en klassificeringsberegning (forward-beregning). Derfor har input-"laget" ingen input-vægte eller sigmoid-funktion, derfor er disse cirkler slet ikke neuroner eller måske kun signal fra neuroner som ikke er med i denne perceptron. Den reelle talværdi kan også være diskrete værdier som f.eks. 0 eller 1 - eller -1 og 1 osv.

De skjulte lag og output-laget beregnes på samme måde under en forward-beregning. De skjulte lag og output-laget er ægte lag og et lag omfatter lagets "neuroner" og alle dets tilhørende lokale input-vægte.

Antal neuroner i lagene 
Antallet af neuroner i inputlaget bør være det antal variable, man har i sin funktion.
Antallet af neuroner i outputlaget bør være 1, hvis man modellerer en envariabel matematisk funktion, eller antallet af ens forskellige klassifikationsklasser, hvis man træner MLP'en til at klassificere blandt ens klasser.
Antallet af skjulte neuroner der gør størrelsen på det skjulte lag optimalt er teoretisk ubestemmeligt. Dog vides det, at givet et stort nok lag, siger det universelle approksimationsteorem at enhver delmængde af Rn kan modelleres. Dette resultat er dog mere teoretisk end praktisk, da en MLP i praksis kan kræve for mange skjulte neuroner til, at den kan trænes indenfor overkommelig tid.

Aktiveringsfunktion 
Hvor en singlelayer perceptron anvender en heavisidefunktion til aktiveringsfunktion, anvender en MLP en anden funktion, der skal være både normaliserbar og differentiabel. Ofte vælges sigmoidfunktionen, men andre funktioner kan vælges i stedet.

Vægte 
Mens det optimale udgangspunkt for vægtene mellem lagene er ukendt, bør disse dog initialiseres til at være tilfældige (eller i hvert fald forskellige) tal i intervallet [-1,1].

Anvendelser 
Da MLP'er har vist sig i stand til at approksimere besværlige funktioner og klassifikationer, bruges det i blandt andet:
 Stemmegenkendelse
 Billedgenkendelse
 Data mining

Problemer 
MLP har visse problemer, der ikke umiddelbart står til at løse:
 Kan under indlæring blive fanget i et lokalt ekstremum, der ikke er det globale ekstremum. Dette ville afhjælpes ved at vælge gode startvægte, men ingen algoritme til dette er opdaget. (I modsætning til et eksempelvis et RBF netværk)
 Den optimale størrelse på de(t) skjulte lag er ubestemmeligt. Anvendes for små lag vil MLP'en glemme tidligere lærte mønstre, og bruges for store lag tager træningen af netværket unødvendigt lang tid.
 Det optimale antal skjulte lag er ubestemmeligt. Dog kan flere lag approksimere sværere funktioner, men træningen af flere lag vil ligeledes tage længere tid.

Der er forsket i disse problemer, men det ser ud til at der ikke findes en automatiseret eller simpel løsning; blot oplæg til en masse manuel arbejde.

Se også
 Deep learning

Referencer

Eksterne henvisninger 
 Weka: Open source data mining . 
 Flood: Open source C++ bibliotek til neuralnetværk . 
 Implementering i Java 

Klassifikationsalgoritmer
Kunstige neurale netværk