Benutzer:StealthLab/KI
Neuronale Netze
Bearbeiten(Künstliche) neuronale Netze können bereits bekannte und auch unbekannte Datenmuster erkennen und zu Klassen zuordnen.
Grundlagen
BearbeitenEinführung
BearbeitenAnwendungsgebiete
BearbeitenPerzeptron
BearbeitenDas 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
BearbeitenDie 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
BearbeitenBackpropagation (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
BearbeitenZiel 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
BearbeitenFall 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
BearbeitenFall 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
BearbeitenDie 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
BearbeitenVerhalten 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
BearbeitenRPROP
BearbeitenHopfield-Netze
BearbeitenHopfield-Netze sind neuronale Netze, die verrauschte oder auch nur teilweise vorhandene Datenmuster rekonstruieren können.
Einführung
BearbeitenErgänzungen
BearbeitenAlgorithmus
BearbeitenBoltzmann-Maschine
BearbeitenDie 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
BearbeitenStochastische Erweiterung
BearbeitenAlgorithmus
BearbeitenFuzzy-Logik
BearbeitenART-Netze
BearbeitenAdaptive 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
BearbeitenFuzzy-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
BearbeitenART-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
BearbeitenKohonennetze sind neuronale Netze, die unüberwacht lernen und auf der biologischen Erkenntnis aufbauen, dass benachbarte Neuronen im Gehirn teilweise ähnliche Signale ausgeben.
Einführung
BearbeitenTopologische Karten
BearbeitenNeurophysiologische Motivation
BearbeitenKohonen-Modell
BearbeitenNachbarschaftsfunktion
BearbeitenAlgorithmus
BearbeitenAusbildung von Kohonen-Karten
BearbeitenCounterpropagation
BearbeitenCounterpropagation ist ein hybrides Lernverfahren, welches Elemente der Kohonen-Netze mit denen von ART verbindet.
Einführung
BearbeitenAufbau
BearbeitenKohonen-Schicht
BearbeitenGrossberg-Schicht
BearbeitenPNN
BearbeitenProbabilistische Neuronale Netze (PNN) verwenden exponentielle Funktionen zur Aktivierung arbeiten mit Wahrscheinlichkeitsdichtefunktionen für jede Klasse.
Einführung
BearbeitenBayessche Klassifikatoren
BearbeitenParzen-Fenster
BearbeitenRisiken und Kosten
BearbeitenMehrere Klassen
BearbeitenAufbau
BearbeitenRBF-Netze
BearbeitenRBF-Netze (von Radial-Basisfunktion) sind neuronale Netze, die Punkte nur klassifizieren, welche sich nahe den Zentren der radialen Aktivierungsfunktionen befinden.
Einführung
BearbeitenAufbau
BearbeitenAlgorithmus
BearbeitenGenetische Algorithmen
BearbeitenGenetische Algorithmen suchen mit einem zufälligen Suchverfahren Schritt für Schritt die optimale Lösung.
Cascade-Correlation-Netze
BearbeitenCascade-Correlation-Netze sind neuronale Netze, die sich in ihrer Größe an die Problemstellung anpassen.
Einführung
BearbeitenAlgorithmus
BearbeitenWissensbasierte Systeme
BearbeitenAbgebildetes Wissen wird in intelligenten Informationssystemen nutzbar gemacht.
Methoden der Wissensrepräsentation und -verarbeitung
BearbeitenMethoden für vernünftige Ergebnisse, auch wenn das zu verarbeitende Wissen oft unsicher bzw. unvollständig ist.
Deduktions- und Inferenzsysteme
BearbeitenElement mit der Fähigkeit zum Ziehen logischer Schlussfolgerungen.
weitere Bereiche
BearbeitenInteraktive Systeme
Bearbeiten
Kollektive Intelligenz
BearbeitenIm Verbund von Individuen können Eigenschaften entwickeln werden, die für ein einzelnes Individuum nicht möglich gewesen wären.
Grundlagen
BearbeitenEinführung
BearbeitenPartikelschwarm und kollektive Intelligenz
BearbeitenKybernetik
BearbeitenSteuerung und Regelung von Maschinen, sowie lebenden Organismen.