400 likes | 702 Views
Fakultät für Wirtschaftswissenschaften. Wissensextraktion mittels künstlicher neuronaler Netze Einführung. Uwe Lämmel. www.wi.hs-wismar.de/~laemmel Uwe.Laemmel@hs-wismar.de. Künstliche Neuronale Netze Idee und Umsetzung Vorwärts gerichtete neuronale Netze Einsatz Wettbewerbslernen
E N D
Fakultät fürWirtschaftswissenschaften Wissensextraktion mittelskünstlicher neuronaler NetzeEinführung Uwe Lämmel www.wi.hs-wismar.de/~laemmel Uwe.Laemmel@hs-wismar.de
Künstliche Neuronale NetzeIdee und Umsetzung Vorwärts gerichtete neuronale Netze Einsatz Wettbewerbslernen Zusammenfassung Inhalt
Literatur & Software • Lämmel, Cleve: Künstliche Intelligenz, 4. Aufl., Hanser 2012. • Zell: Simulation neuronaler Netze, Oldenbourg, 1997. • Robert Callan: The Essence of Neural Networks, Pearson Education, 2002. • Kruse,H.; u.a.: Programmierung Neuronaler Netze – Eine Turbo PASCAL-Toolbox. Addison-Wesley,1991. • Scherer, A.: Neuronale Netze- Grundlagen und Anwendungen. Braunschweig: Vieweg, 1997 • CBT Program on Neural Nets ,Springer 1998. • Stuttgart Neural Network Simulator (SNNS) www-ra.informatik.uni-tuebingen.de/SNNS/ • JavaNNS: www-ra.informatik.unituebingen.de/forschung/JavaNNS/welcome_e.html
Wissensverarbeitung • Logisches Schließen • sequentiell • bewusst • Symbolverarbeitung, Regelverarbeitung • exakt • ingenieurmäßig • "klassische" KI • Erkennen, Wahrnehmen • parallel • unbewusst • Neuronale Netze • unscharf • kognitiv ausgerichtet • Konnektionismus
Idee • Der Mensch lernt durch Beispiele “learning by doing” • Sehen(Erkennen), Gehen, Sprechen,… • Kann eine Maschine das auch? • Der Mensch nutzt sein Gehirn • Gehirn = Millionen einzelne Zellen • Zelle mit Zehntausenden von anderen Zellen verbunden • Ähnliche Struktur im Rechner?
Idee Künstliches Neuronales Netz: • Informationsverarbeitung in Analogie zur Arbeitsweise von Säugetiergehirnen • massiv parallele, lernfähige Systeme • große Anzahl einfach strukturierter Zellen ? Nachmachen der Natur erfolgreich? • Rad, Flugzeug, ...
Idee Ein künstliches neuronales Netz arbeitet auf ähnlicher Art und Weise wie ein natürliches neuronales Netz. Wir benötigen: • Software Neuronen • Software Verbindungen zwischen Neuronen • Software Lernalgorithmen
Abstraktion • Dendriten: gewichtete Verbindungen Gewicht: reelle Zahl (real) • Axon: Ausgabe: reelle Zahl • Synapse: --- (Identität: Ausgabe direkt weitergeleitet) • Zellkern: Einheit mit einfachen Funktionen Eingabe = (viele) reelle Zahlen Verarbeitung = Berechnung der Aktivierung Ausgabe: reelle Zahl (~Aktivierung)
w1i w2i ... wji Dendriten Zelle mit Zellkern Axon oi (Neurit) Synapsen Natürliches / künstliches Neuron
w1i w2i wji ... oi Künstliches Neuron net : Netzeingabe w : Verbindungsgewicht act : Aktivierung fact : Aktivierungsfunktion :Schwellwert (bias) fout : Ausgabefunktion (meist ID) o : Ausgabe
Übung: UND – LTU • "Male ein Netz", das wie eine UND-Funktion arbeitet! LTU – Linear Threshold Unit • Erzeuge ein ODER-Netz • Versuche ein XOR-Netz zu bauen
a1=__ a2=__ w1=__ w2=__ net= o1w1+o2 w2 a = 1, falls net> = 0, sonst o = a o=__ Übung: Ein einfacher Schalter • Parameter gemäß Funktion festlegen: • Eingabe-Neuronen 1,2 mit:a1,a2 Eingabe-Muster,auch hier: oi=ai • Verbindungsgewichtew1, w2 • Schwellwert • Dann wird Ausgabe o berechnet
Aufgaben • Legen Sie die Parameter so fest, dass folgende Funktionen simuliert werden: • Logisches UND • Logisches ODER • Logisches exklusives ODER • Identität • Wie müssen die Parameter gewählt werden, falls mehr als zwei Eingaben logisch verknüpft werden? • Logisches UND bei 3 (4) Eingaben • Analog ODER bzw. XOR, z.B. genau 2 aus 4
Neuronales Netz - Definition Ein neuronales Netz entsteht durch • Verknüpfung mehrere (vieler) simpler Einheiten (Neuronen), • die über Verbindungen Signale austauschen. Ein neuronales Netz ist: • zusammenhängender, gerichteter Graph, • gewichtete Kanten • Knoten (Neuronen, Units ) mit Werten (Aktivität) versehen
Netzaufbau Man unterscheidet: • Eingabe-Schicht (input layer)Eingabe-Neuron • Ausgabe-Schicht (output layer)Ausgabe-Neuron • verdeckte Schicht (hidden layer)verdecktes Neuron Ein n-stufiges Netz besitztn trainierbare Verbindungen • d.h. von n+1 Schichten sind n–1 verdeckt.
Bestandteile von NN • Verbindungen der Zellen • gerichteter, gewichteter Graph • Gewicht: wij (von Zelle i nach Zelle j) • Gewichtsmatrix • Propagierungsfunktion • Netzeingabe Neuron i berechnen aus: Ausgaben anderer Neuronen und Verbindungsgewichten:neti = ojwji • Aktivierungsfunktion ( und Ausgabefunktion) • Lernregel
XOR-Netz Eingabe Ausgabe • Gewichte gesetzt ! • fact = 1, net > = 0, sonst • = 1.0
Beispiel xor • Standard-Propagierungsfunktion verwendet:neti(t) = oj(t)wji (hier mit Zeitpunkt t ) • Aktivierungsfunktion: Schwellwertfunktion • ai = 1, falls neti(t)> i hier = 1.0 0, sonst • Ausgabefunktion: Identität: oj = aj • Kein Lernalgorithmus • Bauen Sie das Beispiel in EXCEL nach!!
Schwellwertfunktion 1,0 0,5 0,0 -4,0 -2,0 0,0 2,0 4,0 -0,5 Identität -1,0 4,0 2,0 0,0 -4,0 -2,5 -1,0 0,5 2,0 3,5 -2,0 -4,0 Aktivierungsfunktionen Aktivierungsfunktionen sind sigmoide Funktionen
y = tanh(c·x) c=3 1,0 c=2 c=1 0,5 y = 1/(1+exp(-c·x)) -0,6 0,6 1,0 -1,0 c=10 1,0 -0,5 c=3 c=1 -1,0 0,5 1,0 0,0 -1,0 Aktivierungsfunktion Logistische Funktion: Aktivierungsfunktionen sind sigmoide Funktionen
Verbindungsnetzwerke • Matrixschreibweise W=[wij] : • wij = 0 keine Verbindung zwischen Neuronen i und j • wij < 0 Neuron i hemmt Nachfolger j mit |wij| • wij > 0 Neuron i regt Nachfolger j mit Stärke |wij| an • Implementation als: • schwachbesetzte Matrix (ansonsten Kosten O(n2)) • verkettete, dynamische Struktur
Typische Topologien von NN vorwärts gerichtetes Netz • feed forward network • ebenenweise verbunden • nur Verbindungen zwischen benachbarten Schichten vorwärts gerichtet mit Abkürzungen • feed forward + shortcut connections • Verbindungen zwischen nicht benachbarten Schichten,d.h. wij0, mit i Ebenek und j Ebenem und |k-m|>1
Typische Topologien von NN direkte Rückkopplung • direct feedback • ermöglicht die eigene Stärkung oder Hemmung eines Neurons, diese nehmen hier oft ihre Grenzzustände an indirekte Rückkopplung • indirect feedback • Rückkopplung über mehrere Ebenen, • Aufmerksamkeit wird dabei auf bestimmte Bereiche gelenkt
Typische Topologien von NN laterale Rückkopplung • ohne direkte Rückkopplung innerhalb einer Schicht • Anwendung, falls nur ein Neuron einer Schicht aktiv sein soll • winner-takes-all-Netz vollständig verbunden • ohne direkte Rückkopplung • Hopfield-Netze: symmetrische Verbindungsmatrix
Lernen Lernen erfolgt aus Beispielen Netz Lern- Berechnung beispiele des Netzfehlers Veränderung der Netzparameter
Lernen – Mögliche Anpassungen • Modifikation der Stärke von Verbindungen • am häufigsten • Entwicklung neuer Verbindungen • Löschen existierender Verbindungen • (2) und (3) mittels (1) realisierbar: w=0 w0 • Modifikation der Schwellwerte von Neuronen • mit zusätzlichem Neuron (On-Neuron) und Verbindungen mit (1) machbar • Modifikation der Funktionen(Aktivierungs-, Propagierungs-, Ausgabe-) • Entwicklung neuer Zellen • Löschen von Zellen
Arten des Lernens • Überwachtes Lernen (supervised learning) • “Lehrer” gibt Ein- und Ausgabemuster vor, • Lernverfahren trainiert Gewichte entsprechend, • biologisch nicht plausibel • Bestärkendes Lernen (reinforcement learning) • “Lehrer” gibt nur richtig oder falsch an, • Lernverfahren muss selbst Ausgabewerte finden, • langsamer als das überwachte Lernen • Unüberwachtes Lernen (unsupervised ) • Netz lernt selbständig, • biologisch plausibel • praktisch nicht immer geeignet
Wichtige Lernregeln • Hebbsche Lernregel • “Wenn Zelle j eine Eingabe von Zelle i erhält und beide gleichzeitig stark aktiviert sind, dann erhöhe das Verbindungsgewicht wij.” • Delta-Regel • Gewichtsänderung proportional zur Differenz aus erwarteter und tatsächlicher Aktivierung • Backpropagation-Regel • Verallgemeinerung der Delta-Regel für Netze mit mehr als einer trainierbaren Schicht
Entwicklung neuronaler Netze Vergleich mit Trainingsausgabe Ausgabe des Netzes berechnen gewünschte Qualität erreicht Netzarchitektur aufbauen Fehler zu groß Test-Datenanlegen Trainingsmuster anlegen Gewichte anpassen Ausgabe des Netzes berechnen Netzparameter ändern Fehler zu hoch Vergleich mit erwarteter Ausgabe gewünschte Qualität erreicht Klassifikator
Anwendungen • Klassifikation • Clusterung • Prognose • Mustererkennung • Nutzung bekannter Sachverhalte zum Trainieren eines Verhaltens: Lernen aus Beispielen, Verallgemeinerung • Erkennung unbekannter Strukturen in den Eingaben
Anwendungen • Bilderkennung, Mustererkennung (Schrift, Zahlen, auch Gesichter): Erkennung von Autonummern, Zugangskontrolle bei Geldautomaten, • Ähnlichkeiten zwischen Molekülen • Qualitätskontrolle von Natursteinplatten • Kreditkontenüberwachung • Steuerung autonomer Fahrzeuge
Anwendungen • Data Mining • Börsenvoraussagen • Verbrauchsprognosen • Klassifikation von Galaxien • Warendisposition (Supermarkt) • Sprach- und Gesichtserkennung • Prothesen für Behinderte (Blinde, Querschnittsgelähmte) • Robotersteuerung
Ende • Aufgaben • JavaNNS installieren • XOR-Beispiel durchspielen • ID-Funktion realisieren • 3 Eingaben, von denen mind. 2 aktiviert sein müssen, damit Ausgabe-Neuron aktiv ist