Flerlags-perceptron

Fra Wikipedia, den frie encyklopædi
Spring til navigation Spring til søgning
Disambig bordered fade.svg For alternative betydninger, se MLP.

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.[1]

Opbygning[redigér | redigér wikikode]

Et eksempel på en MLP med 3 inputneuroner, 4 skjule neuroner (fordel på et enkelt lag) og 2 outputneuroner.

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[redigér | redigér wikikode]

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[redigér | redigér wikikode]

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[redigér | redigér wikikode]

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[redigér | redigér wikikode]

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

Problemer[redigér | redigér wikikode]

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.[2][3][4][5]

Se også[redigér | redigér wikikode]

Referencer[redigér | redigér wikikode]

  1. ^ Rosenblatt, Frank. x. Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms. Spartan Books, Washington DC, 1961
  2. ^ 26. okt 2017, ing.dk: Ny testmetode viser, hvad der får kunstig intellligens (læs: deep learning; KNN-variant) til at tage fejl. Amerikanske forskere har udviklet en testmetode, der kan afsløre, hvornår kunstig intelligens i eksempelvis selvkørende biler foretager potentielt fatale fejlslutninger Arkiveret 12. juli 2018 hos Wayback Machine: Citat: "...For begge testmetoder gælder imidlertid, at man ikke kan være sikker på at have testet alle neuroner i den kunstige intelligens. Og begge metoder kræver desuden en stor manuel indsats...Forskernes værktøj, kaldet DeepXplore, kan selv finde frem til den type data, der samtidig aktiverer så mange neuroner som muligt og udløser så mange fejlslutninger som muligt...", github.com: deepxplore Arkiveret 31. maj 2019 hos Wayback Machine
  3. ^ kdnuggets.com: Does Deep Learning Have Deep Flaws? Arkiveret 12. juli 2018 hos Wayback Machine Citat: "...A recent study by researchers from Google, New York University and University of Montreal has found this flaw in almost every deep neural network. Two counter intuitive properties of deep neural networks are presented. 1. It is the space, rather than the individual units, that contains the semantic information in the high layer of neural networks. This means that random distortion of the originals can also be correctly classified...2. The network may misclassify an image after the researchers applied a certain imperceptible perturbation. The perturbations are found by adjusting the pixel values to maximize the prediction error..."
  4. ^ beta.slashdot.org: The Flaw Lurking In Every Deep Neural Net Citat: "...Every deep neural network has 'blind spots' in the sense that there are inputs that are very close to correctly classified examples that are misclassified. To quote the paper: 'For all the networks we studied, for each sample, we always manage to generate very close, visually indistinguishable, adversarial examples that are misclassified by the original network.'..."
  5. ^ 16. okt 2016, ing.dk: Kamprobotternes akilleshæl er uforudsigelighed. Mens udviklingen af våbensystemer med kunstig intelligens fortsætter med uformindsket styrke, forstår vi stadig ikke til fulde maskinernes tænkning. Det kan blive afgørende for, at mennesker aldrig kommer til at overlade aftrækkeren til en maskine Arkiveret 12. juli 2018 hos Wayback Machine: Citat: "...»Udfordringen med neurale netværk [incl. deep learning] er generelt, at det er meget svært at gennemskue, hvad de egentlig har lært. Vi kan ikke verificere, at systemer, som bygger på neurale netværk, virker efter hensigten i alle tilfælde. Derfor er det problematisk at anvende den slags teknologier militært,« siger Thomas Vestskov Terney, konsulent inden for digital strategi og ph.d. i kunstig intelligens..."

Eksterne henvisninger[redigér | redigér wikikode]