Evolutionäre und genetische Algorithmen



Ähnliche Dokumente
Grundlagen und Aufbau von neuronalen Netzen

Primzahlen und RSA-Verschlüsselung

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

1 Mathematische Grundlagen

Programmiersprachen und Übersetzer

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Neuronale Netze (I) Biologisches Neuronales Netz

Professionelle Seminare im Bereich MS-Office

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

1 topologisches Sortieren

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Lineare Gleichungssysteme

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Grundlagen der Theoretischen Informatik, SoSe 2008

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Programmierkurs Java

Lineare Gleichungssysteme

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Informationsblatt Induktionsbeweis

Guide DynDNS und Portforwarding

Grundbegriffe der Informatik

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

7 Rechnen mit Polynomen

Grundlagen und Basisalgorithmus

Codierungstheorie Rudolf Scharlau, SoSe

Formale Sprachen und Grammatiken

Einführung in. Logische Schaltungen

15 Optimales Kodieren

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Anwendungshinweise zur Anwendung der Soziometrie

Zeichen bei Zahlen entschlüsseln

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

3. Zusammenhang. 22 Andreas Gathmann

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Konzepte der Informatik

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Eine Logikschaltung zur Addition zweier Zahlen

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

Plotten von Linien ( nach Jack Bresenham, 1962 )

2.11 Kontextfreie Grammatiken und Parsebäume

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Repetitionsaufgaben Wurzelgleichungen

Excel Pivot-Tabellen 2010 effektiv

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

DIFFERENTIALGLEICHUNGEN

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Grammatiken. Einführung

3. LINEARE GLEICHUNGSSYSTEME

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Künstliches binäres Neuron

Datensicherung. Beschreibung der Datensicherung

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Kapitel 3 Frames Seite 1

Berechnungen in Access Teil I

Zahlen auf einen Blick

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Physik & Musik. Stimmgabeln. 1 Auftrag

Kapiteltests zum Leitprogramm Binäre Suchbäume

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Charakteristikenmethode im Beispiel

Wofür braucht man eine Tabellenkalkulation? Das Programm Microsoft Excel gehört in Softwarekategorie der Tabellenkalkulationen.

Binärdarstellung von Fliesskommazahlen

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Informatik-Sommercamp Mastermind mit dem Android SDK

Zwischenablage (Bilder, Texte,...)

Text-Zahlen-Formatieren

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Kapitalerhöhung - Verbuchung

Anmerkungen zur Übergangsprüfung

Einfache kryptographische Verfahren

Mathematischer Vorbereitungskurs für Ökonomen

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Wir basteln einen Jahreskalender mit MS Excel.

Die reellen Lösungen der kubischen Gleichung

Dossier: Rechnungen und Lieferscheine in Word

Einführung in die Algebra

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1

Kostenstellen verwalten. Tipps & Tricks

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

A1.7: Entropie natürlicher Texte

3.1. Die komplexen Zahlen

Kurzanleitung zu. von Daniel Jettka

Transkript:

Proseminar SS 2002: Evolutionäre und genetische Algorithmen Thema: Optimierung von neuronalen Netzen Referent: Thorsten Kaufmann 1

Inhaltsverzeichnis: 1. Grundlagen und Aufbau von neuronalen Netzen S. 3-10 2. Optimierung der KNN S. 7-25 2.1 Optimierung der Netzarchitektur mittels Formeln S. 8-21 2.2 Optimierung der Netzarchitektur mit GA S.21-25 2.2.1 Direkte Codierung S.21 2.2.2 Indirekte Codierung S.23-24 2.3 Optimierung der Netzarchitektur und Parametern S.25 3. Literaturangabe S. 26 2

! "#%$'&( Künstliche neuronale Netze (KNN) sind informationstechnische Modelle des Nervengeflechts des Gehirns. Sie bestehen aus einer Menge von Recheneinheiten (den Neuronen), welche über Informationskanäle miteinander verbunden und in der Regel in Schichten angeordnet sind. Die Informationskanäle können durch sogenannte Gewichte verstärkt oder gedämpft werden. In der Biologie entsprechen diese den Synapsen, den Verbindungsstellen zwischen den Neuronen. Sie sind bedeutsam, da durch ihre Veränderung ein Lernprozess simuliert werden kann. Des weiteren haben KNN den Vorteil, dass sie für die Lösung eines Problems nicht explizit programmiert werden müssen. Dem Netzwerk werden lediglich Beispiele des Problems präsentiert und das jeweils gewünschte Ergebnis bei einer richtigen Eingabe vorgegeben. )+*-,.0/1,!20354-*7698;:<2=>:@?BADCE,F<:<203G:E8!3'H@?!2JIKC@4L1:E,;M1:@,NO:<203H@,;MP3G:@*Q4 :@, R0M@* :%*Q,SIKC@47L1:@,;M1:EA1TUF1FB*-4 ME?1,;L L@AKH@V181* 2!698XW!:EADHE,!2!698;H@?14Q* 698!3B2<*-,;MOY Abbildung 1.1: Schematische Darstellung eines künstlichen Neurons: Aus den Eingangssignalen x i wird die gewichtete Summe net gebildet. Aus dieser Summe wird dann mit der Aktivierungsfunktion ƒ(net) der Ausgangswert berechnet. Eingangssignale x i : Diese Daten können von der Umgebung oder vom Ausgang eines anderen künstlichen Neuron stammen. Unterschiedliche Netzwerkmodelle erlauben dabei unterschiedliche Wertebereiche. Typische Wertebereiche sind die reellen Zahlen, das Intervall [0,1] oder die diskreten Werte {0,1}. Gewichte w i : Jeder Verbindung in einem Neuronalen Netz ist i.a. eine reelle Zahl als Gewicht zugeordnet. Dieses Gewicht beschreibt die Stärke der Verbindung. In diesen Verbindungsgewichten ist das Wissen des Neuronalen Netzes gespeichert. 3

Netto-Input : Der Netto-Input entspricht i.a. der Summe der gewichteten Eingangssignale. Aktivierungsfunktion oder Transferfunktion ƒ(net): Die Aktivierungsfunktion bestimmt, abhängig vom Netto-Input, den Output des Neurons. Dieser Output kann das Eingangssignal für ein anderes Neuron sein oder das Ausgangssignal des Neuronalen Netzes. Als Aktivierungsfunktion wird meist eine der nachfolgenden Grundtypen verwendet: Schwellwertfunktion: Abbildung 1.2: Schwellwertfunktion als Aktivierungsfunktion. Der Funktionsverlauf ist in Abbildung 1.2 graphisch dargestellt. Neuronen, die diese Aktivierungsfunktion verwenden, nennt man Schwellwertneurone. Sigmoide Funktion: Abbildung 1.3: Sigmoide Funktion als Aktivierungsfunktion. 4

Der Funktionsverlauf ist in Abbildung 1.3 graphisch dargestellt. Der Unterschied der Sigmoiden Funktion zur Schwellwertfunktion ist, dass diese ein kontinuierliches Ausgangssignal liefert und differenzierbar ist. Erst dadurch werden Lernverfahren wie das Backpropagation-Learning möglich. Neuronen, die diese Aktivierungsfunktion verwenden, nennt man Sigmoide-NeuronenZ Lineare Funktion: Abbildung 1.4: Lineare Funktion als Aktivierungsfunktion. Der Funktionsverlauf ist in Abbildung 1.4 graphisch dargestellt. Die lineare Funktion stellt die einfachste und am wenigsten mächtige Aktivierungsfunktion dar. Neuronen, die diese Aktivierungsfunktion verwenden, nennt man Lineareneuronen. Bei der linearen Aktivierungsfunktion ist zu beachten, dass eine Hintereinanderschaltung mehrerer linearer Neuronen nur die selbe Funktion berechnen kann, wie ein einzelnes Neuron. Der Grund dafür ist, dass eine Hintereinanderschaltung von linearen Funktionen wieder linear ist. Mittels Lernalgorithmen (z.b. Backpropagation-Algorithmus {Ein Java-Programm zur Mustererkennung mit einem KNN, welches den Backpropation-Algorithmus verwendet, ist auf folgender Seite zu finden: http://rfhs8012.fh-regensburg.de/~saj39122/meile/demos/tigufi }) ist das Netz in der Lage, die Gewichte so anzupassen, dass das Netzwerk auf eine gegebene Eingabe mit der gewünschten Ausgabe zu antworten. Das Netzwerk lernt somit ohne eine entsprechende Zuordnungsfunktion zu kennen, die Eingabesignale korrekt den gewünschten Ausgabesignalen zuzuordnen. Nachteil ist jedoch, dass das Lernverhalten des Netzwerks von seiner Topologie abhängt. Ein Netzwerk mit einer Schicht von Neuronen verhält sich grundlegend anders als ein Netz mit zwei oder drei hintereinandergeschalteten Schichten von Neuronen. Zusätzlich spielt auch die Verschaltung der Neuronen untereinander eine entscheidende Rolle. Die Neuronen können nicht einfach irgendwie verschaltet werden, sondern müssen nach einem bestimmten Schema verknüpft werden, um ein Problem korrekt lösen zu können. Das Finden einer geeigneten oder gar optimalen Topologie ist sehr schwierig. Bis jetzt existiert noch keine Theorie, die bei der Suche nach guten Netzwerken hilfreich sein könnte. 5

Die Netztopologie eines mehrstufigen Netzes Mehrstufige (mehrschichtige) Netze sind Netze, bei denen die Ausgabeschicht als Eingabe für eine weitere Neuronenschicht dient. Legt man solche Schichten mehrmals hintereinander, entstehen mehrstufige Netze. Diese Netztypen können alle möglichen Funktionen darstellen und seit 1985 gibt es einen geeigneten Lernalgorithmus, den Backpropagation-Algorithmus. Ein zweistufiges neuronales Netz Die mittlere Neuronenschicht ist Eingabe für die darüberliegende Schicht von Neuronen, die den Output des gesamten Netzes bereitstellt In diesem Netz sind e1 und e2 die Eingabewerte (untere Schicht),aus denen die Werte h1 und h2 berechnet werden. Diese wiederum sind Eingabewerte für die obere Stufe des Netzes. Ausgabewerte sind hier a1 und a2. Die Zwischenneuronen h1 und h2 bezeichnet man als versteckte Neuronen (hidden neurons) und die gesamte mittlere Schicht als versteckte Schicht (hidden layer). Die Quadrate sind die Schwellwerte. Ist das Gewicht und der Eingabewert eines Neurons größer oder gleich diesem Schwellwert, findet eine Erregung des darüberliegenden Neurons statt, welches daraufhin aktiviert wird. Im anderen Fall tritt keine Erregung auf. Die Kanten, bezeichnen die Gewichte, also die Stärke der Verbindungen zwischen den Neuronen. Ein zweistufiges Netz lässt sich i.a. durch folgende Gleichungen beschreiben: (2) h j = ƒ [ w jk * e k ) (1) a j = ƒ v w jk * h k ) \'] ^`_1a+bc\ed fhghijblkmbon!prqhijboǹ bsqlt<ì phujb \'] ^Dw!a+bh\ed fxghijblkmbonzyo{hbon boqlt<ì phujb Dieses Spiel kann fortgesetzt werden, indem man auf die obere Stufe eine weitere Stufe aufsetzt und somit ein dreistufiges Netz erhält. So lassen sich mehrstufige Netzte mit beliebig vielen Stufen konstruieren. Bemerkung: Bereits zweistufige Netze sind so komplex, dass alle möglichen logischen Funktionen, die einem binärwertigen Eingangsvektor einen binärwertigen Ausgangsvektor zuordnen, dargestellt werden können. Aus diesem Grund können diese Netztypen vielseitig eingesetzt werden. 6

Anwendung Neuronaler Netze Abbildung 1.5 : Anwendungsgebiete für den Einsatz von KNN Neuronale Netze haben schon seit langem Einzug in die Forschung der KI, Robotik, Sprach- und Bildverarbeitung gehalten. Zusätzlich zu diesen klassischen Anwendungsfeldern werden in letzter Zeit immer mehr neuronale Ansätze in Bereichen verfolgt, die bisher mit analytischen oder regelbasierten Methoden angegangen wurden (siehe Abbildung 1.5). Diese häufig sehr unterschiedlichen Aufgabenstellungen haben gemeinsam, dass sie analytisch schwer beschreibbar sind und aufgrund ihrer Komplexität mit herkömmlichen Verfahren nur unzureichend gelöst werden können. Die Zusammenstellungen der Anwendungsfelder verdeutlicht die Vielschichtigkeit der Einsatzmöglichkeiten von KNN. Aktuelle Forschungen weisen darauf hin, dass sich bei konsequenter Umsetzung in Zukunft viele weitere Bereiche für den Einsatz von KNN erschließen lassen. Um jedoch KNN gewinnbringend einsetzen zu können, ist eine Reihe von Vorüberlegungen nötig. Für jeden Einzelfall sollte sorgfältig untersucht werden, inwieweit traditionelle Verfahren einsetzbar sind und welche Vor- und Nachteile diese mit sich bringen. 7

} ~ ƒ ƒg ˆ Š Œ ˆ Ž Ž Das Gebiet der Kombination neuronaler Netze mit genetischen Algorithmen teilt sich auf in drei Klassen von Ansätzen: 1. Ansätze, die versuchen die Topologie eines neuronalen Netzes zu optimieren 2. Ansätze, die die Gewichte eines neuronalen Netzes optimieren 3. Ansätze, die gleichzeitig eine optimale Netztopologie und optimale Gewichte des neuronalen Netzes finden wollen S 0š š`œ( sž(ÿl (œ( œ c ( h (šj mœ( 0ž( šj h mœ( `ª «+ J o œ( Ÿ 0 U l±jÿ²œ(³(ž( h µ Die Idee für die Lösung dieses Problems ist nicht nach geeigneten To pologien und Netzwerkstrukturen im Raum der Netzwerktopologien zu suchen, sondern in einem Raum formaler Repräsentationen von Netzwerk-Topologien. Dieser Trick wird in der KI häufig angewandt, wenn die Suche im Raum der Standardrepräsentationen zu schwieri g oder zu aufwendig ist. Man beschreibt die Netzwerktopologie mit mathematischen Formeln und optimiert diese um geeignete Topologien zu erhalten. Der Lösungsansatz sieht wie folgt aus: Wir haben ein neuronales Netz und seine Lerndaten sind gegeben durch eine Paarmenge < x i, y i >, wobei jedes xi ein bestimmter Eingabe-Vektor und y i der dazugehörige Ausgabe-Vektor des Netzes für die gegebene Eingabe x i ist. Benötigt wird nun ein Algorithmus, der automatisch mathematische Formeln erzeugt, die die Topologie der neuronalen Netze repräsentieren. Dabei wird als Optimierungskriterium, der mittlere quadratische Fehler des Netzes (bzw. der Formel) auf dem Trainingsdatensatz verwendet. Die durch den Algorithmus erzeugten Formeln können als Beschreibungen von neuronalen Netzen verstanden werden, die auf dem gegebenen Trainingssatz trainiert wurden. Daher wird ein zweiter Algorithmus benötigt, der eine Rückübersetzung der Formeln in Neuronale Netzwerktopologien bewerkstelligt. Weiterhin muss festgelegt werden, was eine akzeptable Formel ist. Dies ist nötig, da bei einer zufälligen Erzeugung von Formeln diejenigen Formeln, die keine sinnvolle Netzwerktopologie darstellen, erheblich in der Überzahl sein werden. Anschließend werden die Formeln in ein binäres Format übersetzt, welches leicht durch einen genetischen Algorithmus erreicht werden kann. Bei wiederholter Anwendung genetischer Vorgänge auf die binär verschlüsselten Formeln, wird dann versucht, sukzessive gute und immer besser werdende Formeln zu erzeugen, d.h. die Formeln entsprechend zu optimieren. Diese guten Formeln haben wichtige Eigenschaften, wie z.b. eine minimale Anzahl von Termen (entspricht dann einer minimalen Anzahl von Neuronen im Netz). Dadurch können die Netze auch hinsichtlich ihrer Größe optimiert, d.h. minimiert werden. Der Herstellungsprozess dieser guten Formeln wird durch die Fitnessfunktion gesteuert, welche gute Formeln aus der Population der Formeln aussortiert, indem ihr mittlerer quadratischer Fehler und die Erfüllung weiterer Optimierungskriterien (Anzahl Formelterme, Schachtelungstiefe, usw.) gemessen wird. 8

µ ¹»ºµ¼½ ¾À(Á(²ÃÅÄ( S¼Æ (Ç ÈÊÉË ¼hÌeÇÎÍ ÏlÍSÐ`Í(à ¾` ¾ÂÒÑÓÍ ¼hÔ Ð Beispiel XOR-Problem: Angenommen, ein Backpropagation-Netzwerk (Netzwerk welches mittels Backpropagation- Algorithmus trainiert wurde) wurde erfolgreich trainiert, um das berühmte XOR-Problem zu lösen. Weiter angenommen, die gewählte Topologie war 2-2-1 (also ein Ausgabe-Neuron, zwei Eingabe- Neuronen und zwei Zwischenschicht-Neuronen) mit einer kompletten Verbindung zwischen den Neuronen der übereinanderliegenden Schichten. Das Netzwerk hat damit fünf Neuronen und sechs Gwichte w 31, w 41, w 32, w 42, w53 und w 54, wobei w ij die Verbindung von Neuron j zu Neuron i darstellen soll. Abbildung 2.1: Trainiertes Netzwerk, welches XOR-Problem löst Sei als Transferfunktion die Sigmoidfunktion T F und die Outputfunktion jeweils T I. X=(x 1,x 2 ) sei ein Eingabevektor, dann lässt sich der Output o(x) folgendermaßen direkt berechnen, wenn die Netzparameter w ij konkret gegeben sind : o( x) = o( x1, x2 ) = TF ( w54tf ( w41x1 + w42 x2 ) + w53tf ( w31x1 + w32 x2 )) Die Topologie eines Netzes lässt sich also durch eine Formel darstellen. Der nächste Schritt ist der Entwurf einer Grammatik, die beschreibt, welche Formeln in der Lage sind, NN-Topologien zu repräsentieren. Alphabet von Operatoren (Funktionen) : α 1,..., α 2 9

Variablen, die in diesen Operatoren vorkommen können (Inputvariablen) : x 1,..., x m ft i (x) : zugelassene Transferfunktionen, z.b. ft(x) = x = T I Abbildung 2.2: Durch Einsetzen der Sigmoid-Funktion erhält man den exakten formalen Ausdruck, den Formelterm, der das aktuelle Netzwerk mit seinen Gewichten repräsentiert. Die Formel kann dazu genutzt werden, für jeden beliebigen Input den entsprechenden Output direkt auszurechnen. Wie man an dem Formelterm für das XOR-Netz erkennt, kann dieser schnell äußerst komplex und unübersichtlich werden. Der obere Teil des Bildes zeigt die formale Darstellung der Formel; im unteren Teil wurde dann die Sigmoid-Funktion für den Funktionsterm f im oberen Bildteil eingesetzt. Als zweiten Schritt muss eine Grammatik definiert werden, um nur solche Formeln zu produzieren, die auch wieder als neuronale Netzwerktopologien interpretiert werden können. Zunächst die Definition eines Alphabets von Operatoren (Funktionen) und Variablen, die in den Formeln erscheinen dürfen: Alphabet: α 1,..., α n (Variable für die Gewichtung) Õ1Ö,..., Õ; (Eingabevariable) ƒøeù (x) (jede Menge von Transferfunktionen, die für den speziellen Netzwerktyp erlaubt sind, einschließlich der identischen Transferfunktion ƒø Ù (x)=x). 10

Die folgende Grammatik bestimmt die akzeptablen Formeln: 1. Seien w i Gewichtungsvariable, x j Inputvariable, dann nennt man w i x j +... + w k x m basic expression 2. Sei Φ ein basic expression, dann heißt ft i (Φ) neuronaler Term 3. Wenn Φ ein basic expression ist und β 1,..., β n neuronale Terme, dann heißt ft i ( Φ + α 1 β 1 +... + α n β n ) terminaler Ausdruck 4. Wenn Φ ein basic expression ist, β 1,..., β n neuronale Terme und Ω 1,..., Ω k terminale Ausdrücke, dann ist ft i (Φ + α 1 β 1 +... + α n β n + α j Ω 1 +... + α 1 Ω k ) ebenfalls terminaler Ausdruck. 5. DEFINITION: Eine Folge von Termen < Ω 1,..., Ω k > ist eine akzeptable Formel, wenn alle Ω i terminale Ausdrücke sind und jedes x j mindestens einmal in einem der Ω i auftritt. Jeder Bestandteil ΩÙ einer akzeptablen Formel wird interpretiert als Repräsentant der Ausgabe Ú1Ù des Ausgabe Neurons Û Ù der Ausgabeschicht des Netzwerkes. Somit verschlüsselt jede akzeptable Formel als Array die komplette Ausgabeschicht eines Netzes mit der ihr zugrundeliegenden Verarbeitung der Netzeingabe über die Neuronen, die direkt oder indirekt mit der Ausgabeschicht verbunden sind. Ü!Ý>Þmß(àsá(àxß Þmâ Þ0ã`äÓÝß(ãÝlß(à å+äjàoæ ß(çÎè Die Deutung einer akzeptablen Formel ist relativ einfach und funktioniert wie folgt: Gegeben seien alle Werte für die Eingabevariablen, welche in der Formel vorkommen (é1ê und é0ë im obengenannten Beispiel). Zunächst werden die innersten Funktionsausdrücke in der Formel, die auf die Eingabevariablen angewandt werden können, interpretiert. Das Ergebnis der Funktionsanwendung auf die Eingabewerte wird als Interpretation zurückgeliefert und die nächstinneren Funktionen werden auf diese Interpretation angewandt. Dies wird solange wiederholt, bis der äußerste Funktionsausdruck erreicht ist. Die Abarbeitung der Terme verläuft demnach für die Interpretation von den ineinandergesetzten Ausdrücken in Richtung des äußersten Funktionsausdruckes. Wenn man die Ausgabe eines Netzes, das durch eine akzeptable Formel verschlüsselt ist, berechnen möchte, ersetzt man einfach die Eingabevariablen durch die aktuelle Eingabe und deutet jeden Formelausdruck Ωì (wie beschrieben), indem die jeweilige Funktion iterativ auf die Eingabewerte angewandt wird. Falls bei der Interpretation einer Formel ein Funktionsausdruck nicht auf seine Argumente anwendbar ist (z.b. Division durch Null), wird zwischen folgenden Alternativen gewählt: 1) Man überspringt die nicht anwendbare Funktion und wendet die nächste anwendbare Funktion innerhalb des Formelausdrucks an. 11

2) Man wählt eine Alternativfunktion aus dem Alphabet oder durch einen beliebigen Algorithmus und verwendet diese Funktion anstelle der nicht anwendbaren Funktion 3) Sind freie Parameter in den Argumenten vorhanden (z.b. Gewichtungen), so ändert man diese Parameter so lange willkürlich oder durch einen Algorithmus, bis die Transferfunktion anwendbar ist. Durch Erfahrung mit Hunderten von Simulationen, wird vermutet das Alternative 2 in den meisten Fällen die besten Ergebnisse liefert. íîµç`ß(ãjþ0ï(ýlð ß(ãÝlß(à ñß Þmò@ó#ß(àoô ÞmäJá²äJç`äUð ã`ßâ(ïlõöß(ãý²ß(à å+äjàoæ ß(ç Wie bereits besprochen kann jede vorgegebene Netzwerktopologie leicht in eine Formel übersetzt werden. Die umgekehrte Richtung ist jedoch nicht so trivial. Jede akzeptable Formel kann in eine Netzwerktopologie übersetzt werden, indem ihre Struktur mit Hilfe folgendem Verfahren grammatikalisch analysiert wird: Sei Ω=<Ωì,..., Ω > eine akzeptable Formel. Man übersetzt nun diese Formel in einen Graphen, der ein neuronales Netz darstellt. Schritt 1: Man zeichne eine Linie. Auf diese Linie zeichne man für jeden Term der Formel, der für eine Transferfunktion steht, einen Knoten (Kreis). In jeden Knoten zeichne man das entsprechende Symbol der Transferfunktion (die Reihenfolge des Auftragens der Knoten auf der Linie ist im Prinzip gleichgültig)+ Schritt 2: Man zeichne eine zweite Linie von Knoten unterhalb der ersten, wobei jeder Knoten dieser Linie für ein Eingabe-Symbol (Eingabe Variable) steht (die Reihenfolge ist gleichgültig) Wiederhole für alle Ωø = ùú ì (Ω) Schritt 3: analysiere das Argument Ωì Da Ωì die Form Ωì = Φ û αê βêoû üýüþü9û α β û αø ΩêOû üýüþü!û αê Ωÿ hat, ist jeder Teilausdruck Φ von Ωì in dieser Summe nach Definition entweder ein basic expression, ein neuronaler Term oder ein terminaler Ausdruck. Arbeite nun Ωì von links nach rechts ab. Das weitere Vorgehen hängt davon ab, welcher Art der jeweils betrachtete Teilausdruck von Ωì ist. Schritt 3.1: Angenommen Φ ist ein nicht leerer basic expression. Er hat dann nach Definition die Form: Φ=αì*é ø +...+αÿ *é1ê. In diesem Fall zeichnet man für jeden Teilausdruck α * α 12

von Φ eine Verbindung von dem Knoten der unteren Linie, der die Eingabe-Variable é repräsentiert, zu dem Knoten der darüber liegenden Schicht, der die Transferfunktion ùúeì repräsentiert. Beschrifte diese Verbindung mit αm, da αm die Gewichtung dieser Verbindung darstellt. Schritt 3.2: Wenn Φ von der Form αÿ * ùgú ø (β ) ist und βn ein basic expression, so zeichnet man eine Verbindung von dem Knoten, der ùú ø repräsentiert zum Knoten ùúeì und beschriftet diese Verbindung mit αÿ. Dann fahre man mit dem Argument β rekursiv wie in 3.1 fort. Schritt 3.3: Wenn Φ von der Gestalt αê * ùú ø (Ωÿ ) und Ωÿ ein terminaler Ausdruck ist, zeichnet man eine Verbindung von dem Knoten, der ùú ø repräsentiert zu dem Knoten, der ùúeì repräsentiert und beschriftet diese Verbindung mit dem Gewicht αê. Man beginnt den Aufbauprozess rekursiv mit ùgú ø (Ωÿ ) wie bei Schritt 3, indem ùgú+ì durch ùú ø und Ωì durch Ωÿ ersetzt wird. Beispiel: Übersetzung folgender akzeptablen Formel in eine Netzwerk-Topologie: Abbildung 2.3: Verdeutlichung der Grammatik anhand deiner Netztopologie 13

Abbildung 2.4 + 2.5: Die Topologie, die mit dem Algorithmus erzeugt wird. Abbildung 2.4 ist die platte, zweilagige Darstellung, welche leicht in die hierarchische Repräsentation (Abbildung 2.5) transformiert werden kann. 14

ã`ß å ãjþ0ýlßlõ õ#ß(ãýlß(à å+äóàsæ ß(ç Die Bestimmung der Tauglichkeit einer Formel ist nicht sonderlich schwierig. Angenommen wir haben einen Trainingssatz von Beispielen für ein neuronales Netz oder einen gültigen Datensatz für die Validierung des Netzwerks vorgegeben. Dieser Datensatz s wird aus einer Menge von Tupeln <é;ì,!ì > bestehen, wobei é;ì die Eingabe und!ì die jeweils dazu erwartete Ausgabe des Netzes ist. Somit ist C sei ein Chromosom, d.h. eine verschlüsselte Formel und int(c, é ì) die Interpretation von c für das Argument é;ì. Die Tauglichkeit von c, fit(c), wird durch ein Fehlermaß über dem Datensatz s bestimmt. Wenn das Fehlermaß der mittlere quadratische Fehler ist, so wird z.b. fit(c) berechnet, indem die Interpretation von c hintereinander auf alle é;ì als Argumente angewandt wird: Je kleiner der quadratische Fehler der Interpretation der Formel auf dem Trainingssatz ist, desto größer, ist die Tauglichkeit der Formel. Dies macht Sinn, da sich eine Formel mit einer sehr hohen Tauglichkeit der gewünschten Funktion des Netzwerkes annähert, denn der quadratische Fehler wird für alle relevanten Eingaben des Netzes minimiert. Dies ist jedoch in den meisten Fällen noch nicht die endgültige Fitnessfunktion. Wenn wir zugleich auch eine kürzeste Formel erzeugen wollen, benötigen zusätzlich wir eine Art Belohnungsoder Bestrafungsterm für die Fitnessfunktion. Es ist sinnvoll, die Identitätsfunktion f(x) = x in das Formelalphabet miteinzubeziehen. Wir benutzen nun diese Funktion, um die Länge der durch den genetischen Algorithmus erzeugten Formel gleich mitzuoptimieren (dies verläuft analog). Alle Formeln werden als bit-ketten einer bestimmten, festen Länge verschlüsselt. Wenn man diese Einschränkung nicht einhält, muss man einen Crossover-Algorithmus benutzen, der auf Chromosomen variabler Länge arbeitet. Dies ist schwierig und meist rechenintensiv. 15

Um dennoch Formeln variabler Länge zu erhalten, benutzen wir die Identitätsfunktion. Wenn die Identitätsfunktion in dem verschlüsselten Formelausdruck erscheint, wird sie bei der Interpretation einfach übersprungen, da sie den aktuellen Wert ja nicht verändert. Die Identitätsfunktion kann also aus dem Formelterm gestrichen werden, wodurch sich dieser verkürzt. Somit gilt: je öfter die Identitätsfunktion in der Formel erscheint, desto kürzer wird die endgültige Formel sein. Wir fügen deshalb einen Belohnungsterm zur Fitnessfunktion für jedes Auftreten der Identitätsfunktion in den Formeln hinzu. Wenn die Anzahl dieser Vorkommen k ist, dann hat die neue, erweiterte Fitnessfunktion die Gestalt: Die Funktion h kann im Prinzip jede sinnvolle Funktion von k sein, z.b. eine lineare oder exponentielle Funktion, wie z.b. h(k) = α*k oder h(k)= 2^k Man sollte in der Praxis jedoch eine kleine konstante Zahl β (2^-10 oder ähnlich) dem mittleren quadratischen Fehlerausdruck hinzufügen, um eine potentielle Division durch 0 zu vermeiden. Dies tritt beispielsweise ein, falls der Annäherungsfehler 0 ist, d.h. wenn die erzeugte Funktion genau die Zielausgabe des Netzes trifft. Die endgültige Version der Fitnessfunktion sieht dann etwa folgendermaßen aus: Wenn h eine exponentielle Funktion ist, bevorzugt der Algorithmus kurze Formeln. Somit kann h dazu benutzt werden, um Netzwerke zu minimieren, da sich die Komplexität des erzeugten Netzwerkes in der Regel in der Formelkomplexität wiederspiegelt. Je einfacher die Formel, desto einfacher ist auch das erzeugte Netzwerk. Die Formeln können mit der Fitnessfunktion auch noch auf andere Art und Weise optimiert werden. Es könnte z.b. von Nutzen sein, die Komplexität der Formeln zu reduzieren, indem das Einbetten von Funktionen minimiert wird. Falls man flache Netzwerke, d.h. Netzwerke mit einer niedrigen Anzahl von verdeckten Schichten erzeugen will, muss man nur die iterative Anwendung der Transferfunktion über die Fitness der Fo rmel bestrafen. Falls man nur wenige Neurone im Netzwerk haben will, muss man das Aufkommen der Gewichtsausdrücke in den Formel bestrafen usw. Auf diese Weise kann fast jeder Optimierungspunkt berücksichtigt werden. 16

ã`ßâ(ï ÞmäÓæ â Þ0ã`õ ²ß (àhò ß(ï²ð ï(ýlð Ýlß(ï(àxäJݲâ(ç`ß(à ñß Þmò@ó#ß(àsôOß Die automatische Erzeugung Neuronaler Netzwerke läuft nun letztlich wie folgt ab: 1. Erzeuge zufällig die anfängliche Population der Formeln (d.h. einen Satz binär verschlüsselter, akzeptabler Formel) 2. Wiederhole bis die Abbruchbedingung erreicht ist (d.h. bis die Zeit abgelaufen ist oder bis kein weiterer Fortschritt in der Population errecht wurde) 2.1 interpretiere jedes Chromosom und berechne seine Tauglichkeit; wenn die Tauglichkeit zufriedenstellend ist, stoppe den Algorithmus und liefere die Formel mit der höchsten Tauglichkeit als Ergebnis zurück 2.2 ansonsten wähle Formeln durch passendes Hochzeitsschema und gebe den Formeln eine Möglichkeit im Verhältnis zu ihrer Tauglichkeit Kinder zu erzeugen. 2.3 rekombiniere die ausgewählten Formeln neu durch Crossover 2.4 nehme an den Formeln der neuen Generation entsprechende Mutationen vor 2.5 gehe zu 2. ã`ß ä ã`ß(àsï(ý²ð îµãý(àhßß(àhõ (çlõ õ ß(çï(ݲðµß(à å+äjàoæ ß(çÝâ(ç`õ µàhäóæ äuõ äjæ ß Das Verschlüsseln relevanter Topologien in akzeptable Formeln und die Interpretation akzeptabler Formeln als Repräsentation einer Topologie wurden erläutert. Damit ist die Voraussetzung für die Anwendung genetischer Algorithmen geschaffen. Nun kann auf binären Repräsentationen der Formelterme gearbeitet und alle relevanten genetischen Operationen ausgeführt werden. Um neue Formeln herzustellen, benötigt man noch ein geeignetes binäres Verschlüsselungsschema für die Formeln. Die Codierung der Netzstruktur erfolgt auf einem Chromosom, dessen Alphabet aus 256 verschiedenen Buchstaben besteht. Das Chromosom ist in Abschnitte aufgeteilt, deren Anzahl, der Anzahl der Ausgabe-Neuronen des zu erstellenden Netzes entspricht. Innerhalb eines Abschnittes ist der Graph mit gewichteten Kanten (Baumstruktur), der zu dem zugehörigen Ausgabe-Neuron führt, codiert. Der GA arbeitet auf solchen Chromosomen mit Crossover auf den Abschnitten oder den Genen. Mittels Mutationen an den Genen können auch die Parameter simultan mitoptimiert werden. Bei der Fitnessbestimmung eines Chromosom muss dieses zuvor vollständig in ein KNN transformiert werden, auf welches dann die Fitnessfunktion angewandt werden kann. 17

Abbildung 2.6: Schematische Darstellung der internen Codierung der Formeln. Ein Abschnitt enthält strukturierte Unterabschnitte, die aus drei Buchstaben bestehen. Der erste Buchstabe gibt die Verknüpfungsfunktion an, der zweite und der dritte deren Parameter (siehe auch Abbildung 2.7). Ein L (Link) ist ein Zeiger und gibt die Verknüpfung mit zu dem dazugehörigen Gen an. Die Distanz kann z.b. leicht als Integer codiert werden. Da es nicht immer 256 verschiedene Verknüpfungsfunktionen geben muss, wird mit großer Redundanz codiert, z.b. existieren 3 verschiedene Verknüpfungsfunktionen, so entsprechen sowohl die Buchstaben 1 bis 3 als auch die Buchstaben 4 bis 6 usw. diesen Funktionen. Reelle Parameter werden durch Diskkretisierung in einem vorgegebenen Intervall durch Buchstaben ersetzt. 18

Abbildung 2.7: Darstellung der Codierung in einem Abschnitt eines Chromosoms 19

Mit dieser Implementierung des Algorithmus wurde das folgende dargestellte Netz erzeugt. Dieses Netz erreicht einen mittleren quadratischen Fehler von 8% und wird durch folgende automatisch generierte Formeln beschrieben: Abbildung 2.8: Bestes Ausgangsnetzwerk Nach weiteren 141 Generationen Optimierung erreicht das Netz [Abbildung 2.8] einen mittleren Fehler von nur 0,2%. Die das Netz codierende, automatisch generierte Formel lautete (i[x] steht hier für die Eingabeneuronen, die Transferfunktion ist hier die Sigmoidfunktion f): 20

Abbildung 2.9: automatisch generiertes und optimiertes Netz nach 141 Generationen iterativer, genetischer Optimierung Vorteile des Algorithmus: 1. Die vollständig optimierte Topologie eines neuronalen Netzes kann durch einfaches Füttern des Algorithmus mit dem Trainingssatz erzeugt werden. 2. Struktur, Gewichte und eventuell zusätzliche Parameter eines Netzwerkes können simultan mit dem gleichen Verfahren optimiert werden. 3. Durch Benutzung der Fitnessfunktion ist beinahe jede Art von Optimierung eines Netzwerkes möglich. 4. Da die Fitnessfunktion die Generierung der Formeln und somit die Generierung der Netzwerke kontrolliert, ist mit Hilfe des Algorithmus eine neuartige, allgemeine überwachende Lerntechnik für neuronale Netze verfügbar. 5. Es müssen keine Einschränkungen, wie z.b. die Differenzierbarkeit der internen Transferfunktion, berücksichtigt werden. 6. Der Generierungs-Algorithmus kann zudem noch hochgradig parallelisiert werden. 21

! "$#&% '(*),+.-,/021,),+43)56,+879,:),; '-,+<(>=@? Bei den Ansätzen zur Optimierung der Netzarchitektur mit GA kann man unterscheiden zwischen direkter und indirekter Lösungscodierung. A BCA BEDGF!H*IKJLNMOJQPRS5HTJIVUXW Y Bei der direkten Codierung wird unmittelbar angegeben, zwischen welchen Neuronen des Netzes eine Verbindung besteht oder nicht besteht. Diese Informationen wird bei n Neuronen in einer n x n Matrix gespeichert (Konnektionsmatrix). Die Einträge der Matrix bestehen aus Einsen und Nullen, wobei eine Eins für eine Verbindung und eine Null für keine Verbindung steht. Die Aneinanderreihung von Zeilen und Spalten der Matrix liefert die Architekturinformation als String, auf den nun Crossover oder Mutation angewandt werden kann. Abbildung 2.9: Darstellung eines KNN in einer Konnektionsmatrix und als String Die direkte Codierung besitzt allerdings 2 Nachteile: 1. Der Benutzer muss die maximale Netzgröße anhand der Anzahl von Neuronen vorab definieren. Das beschränkt zwar den Suchraum für EA, kann aber auch dazu führen, dass gute Architekturen unabsichtlich ausgeschlossen werden. 2. Die Stringlänge wächst mit der Netzgröße überproportional. Daher eignet sich die direkte Codierung vor allem für kleine KNN. 22

A BCA BCA[Z6W S5H*IKJLNMOJQPRS\H]JI^UW Y Kitano entwickelte eine grammatische Codierung für Mehrschichten-Netze. Er generiert die Konnektionsmatrix eines KNN, indem er auf ein vordefiniertes Anfangselement (Axiom) rekursiv die Regeln einer deterministischen, kontextfreien Grammatik anwendet. Diese Regeln optimiert er dann mittels eines GA. Anstatt die Verbindungen des Netzes direkt zu ändern, optimiert er die Konstruktionsregeln. Die dadurch entstehenden KNN sind im allgemeinen regelmäßiger strukturiert und zeigen bessere Generalisierungsfähigkeiten als bei direkter Codierung. Die Regeln können als Wenndann-Regeln aufgefasst werden. Ihre linke Seite besteht aus einem Non-Terminal und ihre rechte Seite aus einer 2x2-Matrix von entweder Terminals oder Non- Terminals. Terminals sind nicht weiter zu transformierende Endelemente, die das Bestehen oder Fehlen einer Neuronenverbindung anzeigen. Auf Non-terminals werden dagegen die grammatischen Regeln rekursiv erneut angewendet, also weiter transformiert. Eine Grammatik ist repräsentiert als String variabler Länge, auf dem eine Regelmenge codiert ist. Der GA optimiert dann diese Regeln. Strings müssen bei der Fitnessermittlung interpretiert und jeweils in ein KNN transformiert werden. Dabei entsteht aus dem vordefinierten Anfangselement eine Konnektionsmatrix, welche dann in ein neuronales Netz umgesetzt wird. Die Anzahl der Schritte der Transformation ist begrenzt, um die Konnektionsmatrix in ihrer Größe zu beschränken. Eventuell verbliebene Non-Terminals werden als 0 interpretiert. Das Ziel besteht darin, über die GA-basierte Optimierung der grammatischen Regeln gute Netzarchitekturen zu identifizieren. Jeder String enthält einen konstanten sowie einen variablen Teil. Nur der variable Teil wird durch Crossover und Mutation verändert. Kitano codiert eine grammatische Regeln dabei als jeweils als Fünftupel (siehe Abbildung 2.10). Im Rahmen der Fitnessermittlung wird der Grammatikstring zunächst in ein KNN transformiert. Dabei verwendet man nur die obere rechte Dreiecksmatrix des Endzustandes als Konnektionsmatrix, um reine vorwärtsbetriebene Netze zu erzeugen. Verbindungsgewichte und Schwellwerte werden stochastisch initialisiert im Intervall 1,0 bis +1,0 und anschließend mit BP trainiert. Über eine Reihe von Testdaten ermittelt Kitano dann die Summe der quadrierten Fehler E. Als Fitnessmaß verwendet er 1/E, so dass höhere Fitness, besserer Netzleistung entspricht. Nachteilig an solchen indirekten Codierungsschemata ist, dass sie nicht geeignet sind, um Einzelheiten der Netzarchitektur zu optimieren. 23