Benutzer:StealthLab/KI

Aus Wikibooks
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
Aufbau[Bearbeiten]
  • 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[Bearbeiten]

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[Bearbeiten]

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:


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


Phase 2[Bearbeiten]
  • 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.

Kritik[Bearbeiten]

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]

RPROP[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[Bearbeiten]
  • ART-2 entstammt ART-1 mit einer veränderten Architektur und kann auch nicht-binäre Eingaben verarbeiten.
ART-2a[Bearbeiten]
  • 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[Bearbeiten]
  • 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.
ARTMAP[Bearbeiten]
  • 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]

Aufbau[Bearbeiten]

Kohonen-Schicht[Bearbeiten]
Grossberg-Schicht[Bearbeiten]

PNN[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]

Aufbau[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]

Aufbau[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.