StealthLab KI Handbuch

Neuronale Netze

Bearbeiten

(Künstliche) neuronale Netze können bereits bekannte und auch unbekannte Datenmuster erkennen und zu Klassen zuordnen.

Grundlagen

Bearbeiten

Einführung

Bearbeiten

Anwendungsgebiete

Bearbeiten

Perzeptron

Bearbeiten

Das Perzeptron ist ein einfaches neuronales Netz.

Einführung

Bearbeiten
  • von Rosenblatt
  • hier: Photo-Perzeptron
  • Der Aufbau besteht aus drei Schichten:
  • Retina
  • Assoziationsschicht
  • Ausgabeschicht
  • Die binären Ausgaben der Neuronen der Retinaschicht werden über feste gewichtete Verbindungen in die Assoziationsschicht geleitet.
  • Im Normalfall sind nicht alle Neuronen der Retinaschicht mit denen der Assoziationsschicht verbunden, damit wichtige Merkmalsbereiche zusammengefaßt werden können.
  • Hierbei steht ein Rezeptives Feld für die Menge aller Neuronen in der Retinaschicht, welche mit einem Neuron aus der Assoziationsschicht verbunden sind.
  • Beim sogenannten einlagigen Perzeptron müssen nur die Eingaben und die zugehörigen Gewichte zu den Neuronen der Ausgabeschicht berechnet werden.
Training allgemein
Bearbeiten
  • In der Trainingsphase werden zu lernende Beispiele an das Netz angelegt. Dabei besteht jedes Trainingsbeispiel aus einem Paar (e,o) mit Eingabe (e) und der Soll-Ausgabe (o):
  • Der Eingabevektor e enspricht einem spezifischen Datenmuster.
  • Der Ausgabevektor o ist die dazugehörige Klasse.
  • Innerhalb der Lernphase müssen die internen Parameter des Perzeptrons so zu angepasst werden, dass bei Eingabe e auch die zugehörige Soll-Ausgabe erscheint.
  • Die Trainingsmenge besteht aus der Zusammenfassung aller o.g. Paare für ein bestimmtes Lernproblem.
  • Werden alle Paare korrekt zugeordnet, so hat das Netz die Trainingsmenge gelernt. Werden auch ähnliche Eingabevektoren mit der Klasse o verknüpft werden, ist das Netz in der Lage ist zu generalisieren bzw. generalisierend zu Lernen (Stichwort: Generalisierung).

Algorithmus

Bearbeiten
  • Beim Perzeptron entspricht die Ausgabefunktion der Aktivierungsfunktion, welche eine Schwellwertfunktion verwendet.
 
  • Berechnung der Ausgabe jedes Neurons der Ausgabeschicht:
  • Wenn die Summe aller Produkte von Eingabe und Gewichtung größer ist als der Schwellwert:
 
  • dann gilt:
 
  • Ansonsten gilt, wenn die Summe kleiner ist als der Schwellwert:
 


Lernregel für das einlagige Perzeptron:

 

Die Gewichte der Verbindungen werden solange geändert bis die Ist-Ausgabe mit der Soll-Ausgabe übereinstimmt.

Sollte die Ist-Ausgabe mit der Soll-Ausgabe übereinstimmen, muss keine Änderung der Gewichte durchgeführt werden. Ansonsten werden die Gewichte in Richtung der Soll-Ausgabe wie folgt verschoben:

Korrektur Gewichtung:

 

wobei:

 

Das Perzeptron-Konvergenztheorem besagt, dass in endlicher Zeit alle Lernprobleme eingepflegt werden können, sofern das Problem überhaupt mit dem Perzeptron lösbar ist, da diese stark eingeschränkt sind.

Lineare Separierbarkeit

Bearbeiten

Die AND-Funktion ist separierbar:

 

 

 

 


Die XOR-Funktion ist nicht separierbar:

 

 

 

 

In diesem Fall nicht möglich, da die Summe zweier (positive) Zahlen nicht kleiner sein darf als die einzelnen Summanden.

Überwachtes Lernen

Bearbeiten

Überwachtes Lernen ist eine der zwei Methoden zum Training von (künstlichen) neuronalen Netzen, bei der ein Netz so lange von außen verändert wird, bis die vorgegebene Eingabe die geforderte Soll-Ausgabe liefert.

Einführung
Bearbeiten
  • Anhand der Abweichung von der Soll-Ausgabe, wird das Netz gezielt in die Richtung verändert, was man als Lernschritt bezeichnet.
  • Die Zusammenfassung aller Lernschritte nennt man Training.
  • Im Normalfall wird bei jedem Lernschritt eine Fehlerfunktion berechnet, um zu sehen wie weit sich das Netz an den gewünschten Entzustand angenähert hat.
  • Mit dieser Information kann die benötigte Veränderung der internen Netz-Parameter ermittelt werden.


  • Lernverfahren für das mehrlagige Perzeptron:
  • Backpropagation
  • Quickprop
  • RPROP

Backpropagation

Bearbeiten

Backpropagation (BP) ist ein überwachtes Lernverfahren für das mehrlagige Perzeptron.

Einführung
Bearbeiten
  • Lernalgorithmus nach Rumelhart, Hinton und Williams
  • BP ist ein weitverbreitetes Verfahren, welches in vielen Anwendungsbereichen untersucht wurde und erfolgreich verwendet wird.


  • Erweiterungen von Backpropagation, mit denen auftretende Probleme teilweise behoben wurden:
  • Momentum-Lernregel
  • Gradient Reuse
  • Aufbau:
  • Eingabeschicht
  • innere, verdeckte Schichten (Hidden layers)
  • Ausgabeschicht
  • Die verdeckten Neuron erhalten ihre Eingaben nur von anderen Neuronen, danach werden die Ausgaben an andere Neuronen weitergegeben.
  • Der Informationsfluss verläuft von der Eingabeschicht zur Ausgabeschicht ohne Rückkopplung (Feed forward).
  • Dieses Netz kann komplexe Entscheidungsregionen ausbilden, um beliebige Klassen

von Eingabedaten voneinander zu klassifizieren.

  • Weil für die Neuronen der inneren Schichten kein Fehler zwischen Ist- und Soll-Ausgabe berechnet werden kann,

müssen die Gewichte mit dem folgenden Algorithmus angepasst werden.


  • Neuronenfunktion:

 

  (Fermi-Funktion)

  • Lernregel:

 


  Lernrate
  Ausgabe-Fehler bei Neuron  
  Eingabe   zu Neuron  
  Output von Neuron  
Für diese Ausgabe-Schicht gilt:  , wobei   über alle   Neuronen läuft.
Herleitung erweiterte Delta-Regel
Bearbeiten

Ziel ist es den geschätzten (sog. quadratischen) Fehler von den   Ist-Ausgaben   gegenüber den Soll-Ausgaben   (mit zugehörigen Eingabedaten) zu minimieren.


Fehlerfunktion:

 


Um   mit der Methode des Gradientenabstiegs zu minimieren, müssen die Gewichte   wie folgt geändert werden:

 

Mit einer kleinen Lernrate   wird ein Abstieg entlang des steilsten Gefälles von   gemacht, wobei   als Gebirge im Koordinatenraum der   anzusehen ist. Hierfür gilt annäherend:

 

Der quadratische Fehler   nimmt also ab.


Nun ist die erste Ableitungen von   nach   erforderlich, um die die Gewichte   berechnen zu können.

Folgende Indizes werden in den weiteren Berechnung verwendet:

  Ausgabe-Schicht
  zweite verdeckte Schicht
  erste verdeckte Schicht


Für ein neues Paar   kann der obere Index   bei der Fehlerfunktion weggelassen werden, sofern man davon ausgeht alle Paare (in allen Lernschritten) gleich oft zu verwenden und zusätzlich eine kleine Lernrate   verwendet. Hierbei strebt   im statistischen Mittel einem Minimum zu.


Fall 1 gilt für Gewichte  , welche zur Ausgabe-Schicht gehören:

Wobei   die erste Ableitung von   ist
 


mit  


wobei   die Eingaben für die Neuronen der Ausgabe-Schicht und auch Ausgaben der zweiten verdeckten Schicht.


  mit  

Aus o.g. Gleichung mit   erhält man die Lernregel   für die Ausgabe-Schicht.

es gilt:  ,   und  

Aufgrund der Beziehung von   zur ersten Ableitung   und weil   kann die Formel wie folgt umgeschrieben werden:

 

Dies entspricht   und  .


Fall 2 gilt für alle anderen Gewichte  , also die zu den verdeckten Schichten:


Durch Ableiten von   nach den Gewichten   zwischen zweiter und dritter Schicht (also zwischen erster und zweiter verdeckter Schicht) errechnet sich wegen  :


 
 

wird Bezeichnungen aus dem 1. Fall aus der vorhergehenden Schicht verwendet, also   mit  , so erhält man:

 

der Fehler für die Neurone der verdeckten Schicht  :

 

dann erhält man:

 


  • Damit die Formeln der zweiten Schicht funktioniert muss   durch  ,   durch   und   durch   ersetzen werden.


  • Dies wird von Schicht zu Schicht durchlaufen gelassen und durch das Anwenden der Kettenregel kommt immer eine zusätzliche Summation (die Fehler der darüberliegenden Schicht) in der Ableitung dazu.


  • Durch vollständige Induktion nach der Anzahl der Schichten erhält man den Beweis für die Regularität in der Fortpflanzung der Fehler.
Algorithmus
Bearbeiten

Die erweiterten Delta-Regel werden in zwei Phasen verwendet:


  • Der an das Netz angelegte Eingabevektor wird schichtenweise weiterberechnet aus der Aktivierungs- und Ausgabefunktionen und aus dem diesem erreichnet sich letztlich die Ist-Ausgabe an der Ausgabeschicht.


  • Die Ist-Ausgabe (aus Phase 1) wird mit der Soll-Ausgabe verglichen, durch den Fehler hieraus lässt sich der Gesamtfehler für alle Neurone berechnen:


  • Erst wird der Fehler für die Neuronen der Ausgabeschicht berechnet mittels der o.g. Gleichung   mit  
  • Nun kann der Fehler für die Neuronen der vorletzten Schicht berechnet werden mittels der ebenfalls o.g. Gleichung  .
  • In rückwärtiger Richtung wird dies bis zur Eingabeschicht wiederholt.


Übersicht
Bearbeiten
  • Gewichte   erhalten kleine Zufallszahlen im Bereich von -0,1 bis 0,1.
  • Konvergenzkriterium (z.B. Gesamtlernfehler  ) wird festgelegt.
  • maximal verfügbaren Zeit   wird festgelegt.
  • Anfangszeit wird auf   gesetzt.


  • Erhöhen der Zeit:  
  • Gesamtfehler initialisieren:  
Wiederholung für alle Trainingsmuster  :
a)
Mustereingaben   anlegen
Ist-Ausgaben   feststellen
Differenzen zwischen Soll- und Ist-Ausgabe ermitteln:  
Hierbei werden die Ausgaben der Neuronen des Netzes erfasst (ausser die der Ausgabe-Schicht) im sog. Feed-Forward-Schritt.
b)
I.
Fehler   für die Neuronen der Ausgabe-Schicht berechnen:
 
II.

In rückwärtiger Richtung werden die Fehler für die Neurone berechnet, die in den Schichten näher Richtung Eingang liegen:  

  ist über alle Neuronen in der darüber liegenden Schicht Richtung Ausgabe.

Für die Formeln zum Berechnung der inneren Schichten muss   durch  ,   durch   ersetzt werden. Im nachfolgenden Schritt müsste   durch   und   durch   usw. fort. ausgetauscht werden.

c) Fehler   für das Muster   berechnen und mit dem Gesamtfehler   summieren:
 
 
d) Gewichte ändern anhand   und :  mit  
3) Ab Schritt 2 wiederholen bis zur Konvergenz oder  .


Die Trainingsmenge soll mit minimalem Fehler zu reproduzieren werden, was ein Optimierungsproblem darstellt. Eine wichtige Rolle spielt auch der Gesamtfehler   beim Trainieren.


Backpropagation kann man als ein Gradientenabstiegsverfahren bezeichnen, bei dem die Parameter (die Gewichte  ) in Richtung des steilsten Gefälles optimiert werden.


Die Überanpassung (Overfitting) kann zu falschen Ergebnissen bei unbekannten Daten führen, daher sollten diese Trainingsalgorithmen sorgfältig abgepasst werden.

Verhalten von Backpropagation bei der Optimierung von multidimensionalen Problemen:


Lokale und globale Optimierung
Bearbeiten
Es gibt keine garantierte globale Optimierung (üblich bei Gradientenverfahren).
Abhängig vom Startpunkt (im Fehlergebirge) kann man in einem lokalen Minimum stecken bleiben.
Dies ist problematisch, wenn das Netz noch nicht fähig ist ausreichend Reproduktionsleistung zu zeigen.
Damit ein lokales Minimum verlassen werden kann um ein möglicherweise noch tiefer gelegenes Minimum (globales Minimum) zu erreichen, wird empfohlen eine zufällige Änderung der Gewichte und erneute Optimierung (Simulated Annealing bei Hopfield-Netzen) durchzuführen.


Verhalten bei Plateaus
Bearbeiten
Befinden sich auf dem Plateau keine Unterschiede, dann bleiben die Gewichte gleich und es findet keine Änderung statt.
Bei geringem Unterschied werden noch kleine Änderungen der Gewichte angewandt.
Man bewegt sich kriechend über das Plateau hinweg, sofern man nicht durch zufällige Änderungen der Gewichte das Plateau verlässt.


Verhalten in Schluchten
Bearbeiten
Schluchten (im Fehlergebirge) können zu Oszillationen führen.
Das Fehlergebirge kann man sich als Bergkessel vorstellen, bei dem der tiefste Punkt des Tales gesucht wird.
Wenn die gegenüberliegenden Bergwände nahe genug, springt man auf die gegenüberliegende Wand aufgrund der Gewichtsänderung.
Es kann aber auch passieren, dass die Schlucht verlassen wird und man sich in unvorteilhaften Tälern befindet.


Problematisch können auch Konfigurationsparameter werden:


Lernrate
Bearbeiten
Größe beinflusst das Verhalten stark:
  • Bei einem zu hohen Wert der Lernrate können schmale Täler übersprungen werden oder bereits gefundene Minima werden wieder verassen. Auch besteht das Problem der Oszillation.
  • Mit einer sehr großen Lernrate kann man schnell zum gewünschten Ziel gelangen durch große Schritte talabwärts. Hierbei können schmale Schluchten übersprungen werden. Des Weiteren können häufiger Oszillationen auftreten und ein Verlassen von zusagenden Bereichen ist wahrscheinlicher.
  • Eine zu kleine Lernrate vermindert die Geschwindigkeit (sog. Konvergenzgeschwindigkeit) des Lernverfahrens.
Topologie
Bearbeiten
Wichtig ist die Wahl der Topologie.
Es gibt keine allgemein gültigen Regeln, jedoch sind die nachfolgenden Konfigurationen kritisch:
  • Anzahl der Schichten
  • Anzahl der Neuronen pro Schicht
  • Netzwerkgraph
Für die praktische Anwendung empfiehlt es sich mehrere Topologien systematisch auszuprobieren.
Fehlerrate
Bearbeiten
Wichtig ist auch die Wahl der Fehlerrate, die den Reproduktionsfehler auf den Trainingsdaten angibt.

Quickprop

Bearbeiten

Hopfield-Netze

Bearbeiten

Hopfield-Netze sind neuronale Netze, die verrauschte oder auch nur teilweise vorhandene Datenmuster rekonstruieren können.

Einführung

Bearbeiten

Ergänzungen

Bearbeiten

Algorithmus

Bearbeiten

Boltzmann-Maschine

Bearbeiten

Die Boltzmannmaschine ist eine Erweiterung des Hopfield-Netzes, die mittels Zufallskomponente versucht falsche Klassifikationen zu verhindern und zusätzlich nimmt im Verlauf die Möglichkeit ab Korrekturen der Klassifikation durchzuführen.

Einführung

Bearbeiten

Stochastische Erweiterung

Bearbeiten

Algorithmus

Bearbeiten

Fuzzy-Logik

Bearbeiten

ART-Netze

Bearbeiten

Adaptive Resonance Theory (ART) sind unüberwacht lernende neuronale Netze bei denen leicht neue Muster hinzugefügt werden können und bereits vorhanden Muster, weder zerstört, noch vergessen werden.

Einführung

Bearbeiten
  • Adaptive Resonanztheorie (kurz: ART, zu deutsch: anpassungsfähige Resonanz-Theorie).
  • Architekturkonzept für neuronale Netze
  • von Stephen Grossberg und Gail A. Carpenter
  • nicht überwacht lernende Algorithmen

ART-1 Netze

Bearbeiten

Fuzzy-ART

Bearbeiten
  • Fuzzy-ART basiert auf ART-1 und wird mit der Fuzzy-Logik erweitert.
  • Verarbeitung auch von nicht-binäre Eingaben.
  • Zuordnung zu verschiedenen Klassen gleichzeitig möglich.
  • Verhinderung des unnötigen Anwachsens von Klassen.

Weitere ART-Netze

Bearbeiten
  • ART-2 entstammt ART-1 mit einer veränderten Architektur und kann auch nicht-binäre Eingaben verarbeiten.
  • ART-2a ist eine schnellere Weiterentwicklung von ART-2 mit nur selten schlechteren Ergebnissen.
  • Durch die erheblich gesteigerte Konvergenzgeschwindigket ist es für komplexere Aufgaben zu empfehlen.
  • ART-3 basiert auf ART-2 und modelliert chemische Vorgänge biologischer neuronaler Netze nach.
  • Vorrangig beim Ähnlichkeitsvergleich von Vektoren, werden spezifische Auswirkungen bei der synaptischen Informationsübertragung und -verarbeitung nachgestellt.
  • Leichterer Einsatz in kaskadierten Netzhierarchien.
  • auch Predictive ART (vorhersagendes ART)
  • Elemente aus nicht-überwachten Lernen werden mit denen vom überwachtem Lernen vereint.
  • Zwei ART-Netze werden miteinander kombiniert.
Fuzzy ARTMAP
Bearbeiten
  • Ein ARTMAP aus zwei Fuzzy ART Modulen.

Kohonen-Netze

Bearbeiten

Kohonennetze sind neuronale Netze, die unüberwacht lernen und auf der biologischen Erkenntnis aufbauen, dass benachbarte Neuronen im Gehirn teilweise ähnliche Signale ausgeben.

Einführung

Bearbeiten

Topologische Karten

Bearbeiten

Neurophysiologische Motivation

Bearbeiten

Kohonen-Modell

Bearbeiten
Nachbarschaftsfunktion
Bearbeiten

Algorithmus

Bearbeiten

Ausbildung von Kohonen-Karten

Bearbeiten

Counterpropagation

Bearbeiten

Counterpropagation ist ein hybrides Lernverfahren, welches Elemente der Kohonen-Netze mit denen von ART verbindet.

Einführung

Bearbeiten
Kohonen-Schicht
Bearbeiten
Grossberg-Schicht
Bearbeiten

Probabilistische Neuronale Netze (PNN) verwenden exponentielle Funktionen zur Aktivierung arbeiten mit Wahrscheinlichkeitsdichtefunktionen für jede Klasse.

Einführung

Bearbeiten

Bayessche Klassifikatoren

Bearbeiten
Parzen-Fenster
Bearbeiten
Risiken und Kosten
Bearbeiten
Mehrere Klassen
Bearbeiten

RBF-Netze

Bearbeiten

RBF-Netze (von Radial-Basisfunktion) sind neuronale Netze, die Punkte nur klassifizieren, welche sich nahe den Zentren der radialen Aktivierungsfunktionen befinden.

Einführung

Bearbeiten

Algorithmus

Bearbeiten

Genetische Algorithmen

Bearbeiten

Genetische Algorithmen suchen mit einem zufälligen Suchverfahren Schritt für Schritt die optimale Lösung.

Cascade-Correlation-Netze

Bearbeiten

Cascade-Correlation-Netze sind neuronale Netze, die sich in ihrer Größe an die Problemstellung anpassen.

Einführung

Bearbeiten

Algorithmus

Bearbeiten

Wissensbasierte Systeme

Bearbeiten

Abgebildetes Wissen wird in intelligenten Informationssystemen nutzbar gemacht.

Methoden der Wissensrepräsentation und -verarbeitung

Bearbeiten

Methoden für vernünftige Ergebnisse, auch wenn das zu verarbeitende Wissen oft unsicher bzw. unvollständig ist.

Deduktions- und Inferenzsysteme

Bearbeiten

Element mit der Fähigkeit zum Ziehen logischer Schlussfolgerungen.

weitere Bereiche

Bearbeiten

Interaktive Systeme

Bearbeiten

Kollektive Intelligenz

Bearbeiten

Im Verbund von Individuen können Eigenschaften entwickeln werden, die für ein einzelnes Individuum nicht möglich gewesen wären.

Grundlagen

Bearbeiten
Einführung
Bearbeiten

Partikelschwarm und kollektive Intelligenz

Bearbeiten

Kybernetik

Bearbeiten

Steuerung und Regelung von Maschinen, sowie lebenden Organismen.