Neuronnät

Från Wikipedia
(Omdirigerad från Neurala nätverk)
Hoppa till: navigering, sök
Ett artificiellt neuralt nätverk består av flera sammankopplade noder, eventuellt i flera lager.

Ett neuronnät (rekommenderad term enligt Svenska datatermgruppen[1]) eller neuralt nätverk är en signalflödesmodell av hjärnor och andra nervsystem. Begreppet kan även åsyfta artificiella neuronnät (ANN), som är ett samlingsnamn på ett antal självlärande algoritmer för informationsbehandling som försöker efterlikna funktionen i biologiska neuronnät.

Algoritmer som emulerar neuronnät kan ofta klara problem som är svåra att lösa med konventionella datalogiska metoder. Exempel på tillämpningar är: informationsutvinning (data mining), mönsterigenkänning, signalbehandling, reglerteknik, datorspel, prognoser, självorganisering, icke-linjär optimering, optimeringsproblem med många bivillkor, exempelvis schemaläggning.

Precis som den mänskliga hjärnan måste neuronnät tränas innan de kan användas. De flesta neuronnät arbetar därför i två faser, först en inlärningsfas där nätet tränas på den uppgift som ska utföras, sedan följer en tillämpningsfas där nätet bara använder det som det har lärt sig. Det går också att låta nätet fortsätta att lära sig även när det används, men vanligen lämnas det som det är när det uppnått den precision som eftersträvades.

Uppbyggnad[redigera | redigera wikitext]

Grundelement[redigera | redigera wikitext]

Alla neuronnät har en grundbyggsten: neuronen (kallas också omväxlande nod, cell, enhet). I konstgjorda neuronnät abstraherar man neuronen till att bestå av en eller flera ingångar (dendriter), en kärna (soma) samt en utgång (axon).

På varje ingång, vj(i), sitter det en vikt wj(i). Grundidén är att en mängd neuroner sitter ihoplänkade i olika strukturer och vikterna ändras för att uppnå olika resultat. Neuronnät måste tränas upp till önskad funktion.

Kärnan[redigera | redigera wikitext]

Kärnan består av två separata delar, summationsdelen och transferfunktionen. Det finns även en specialingång v0 med vikten w0 som möjliggör justering av alla ingångsvärden (bias). Ingångarna är anslutna till summationsdelen och utgången (Y(i)) är ansluten till transferfunktionen.

Summation[redigera | redigera wikitext]

Summationsdelen summerar de värden som registrerats på alla ingångar. I denna summering multipliceras varje ingångsvärde med respektive vikt:

Y^{(i)*} = \sum_{j=1}^n v_j^{(i)}w_j^{(i)} + \Theta

Där \Theta är bias-ingången: \Theta = v_0^{(i)}w_0^{(i)}

Transferfunktion[redigera | redigera wikitext]

Transferfunktionen består av: Y^{(i)} = f\left( Y^{(i)*} \right)

Där transferfunktionen kan ha flera olika utseenden: tröskelfunktion, linjärfunktion, sigmoidfunktion, tangens hyperbolicus med flera.

Nätverk[redigera | redigera wikitext]

Ett artificiellt neuronnät består av godtycklig mängd neuroner. Nackdelen med neuronnät är att de måste tränas till önskad funktion. Det betyder att nätverket först måste matas med kända mätdata och utdata innan nätverket kan tas i bruk. Neuronnät delas in i två huvudgrupper: övervakade och oövervakade.

Övervakade nätverk[redigera | redigera wikitext]

Övervakade nätverk tränas upp genom att mata det med kända mätdata och kända svar. Om resultatet skiljer sig från det kända svaret beräknas hur stort felet är och vikterna på ingångarna i varje neuron justeras. Detta förfarande itereras och om nätet är rätt designat (där faktorer såsom val av nätverk, antal neuroner, val av träningsdata spelar en avgörande roll) så konvergerar nätet mot ett "korrekt" beteende.

Oövervakade nätverk[redigera | redigera wikitext]

Oövervakade nätverk är ett självlärande system som används till att hitta kända och okända relationer mellan data. Nätverket matas med data men operatören av nätverket tillåts inte justera vikterna efter vad som kommer ut. Efter ett tag (om det finns relationer mellan ingångsdata samt att antalet neuroner är tillräckligt) konvergerar nätet.

Tillämpningar[redigera | redigera wikitext]

Neuronnät har en mängd användningsområden, och nya användningsområden skapas hela tiden. Exempel på sådana är:

Exempel på artificiella neuronnät samt användningsområde[redigera | redigera wikitext]

Problem Nätverk Beskrivning Typ av träning
Klassifikation Learning Vector Quantization, LVQ; Counterpropagation; Självorganiserande kartor, SOM För att dela in data i bestämda klasser Kombination av övervakad och oövervakad träning
Prognosframställning Backpropagation Att kunna ge prognoser om framtida händelser med hjälp av ingångsdata övervakad
Visualisering Självorganiserande kartor, SOM; Adaptive Resonance Theory, ART Att åskådliggöra okända korrelationer mellan ingångsdata oövervakad
Association Hopfieldnät, Hammingnät Att lära sig mönster och att kunna återskapa störda varianter av dessa övervakad

Neuronnätsmodeller[redigera | redigera wikitext]

Perceptronen[redigera | redigera wikitext]

Ett viktigt och mycket enkelt neuronnät är den så kallade perceptronen. Den beskrevs redan på 1950-talet av Frank Rosenblatt.

För att perceptronen skall fungera måste datan vara linjärt separerbar.

Det upptäcktes tidigt att perceptronen har begränsad kapacitet att lösa problem. Ett exempel på ett problem som inte kan lösas är XOR.

\delta w = \nabla x

Flerlagersperceptroner[redigera | redigera wikitext]

Ett sätt att lösa dessa typer av problem är genom att kombinera flera perceptoner. För att exempelvis lösa XOR kan man kombinera två stycken perceptroner där ena kan lösa OR och den andra NAND. Sedan kombineras perceptronernas utdata för att få XOR.

ART[redigera | redigera wikitext]

Adaptive resonance theory. Bygger på att ett mönster måste resonera med ett tidigare mönster för att läras in.

Neokognitron[redigera | redigera wikitext]

Se även[redigera | redigera wikitext]

Externa Länkar[redigera | redigera wikitext]

Extern litteratur[redigera | redigera wikitext]

Referenser[redigera | redigera wikitext]

Noter[redigera | redigera wikitext]

  1. ^ Ordlista, Svenska datatermgruppen, accessdatum 2011-06-11.