Studiengang Simulation Technology

Größe: px
Ab Seite anzeigen:

Download "Studiengang Simulation Technology"

Transkript

1 1. Institut für Theoretische Physik Studiengang Simulation Technology Bachelorarbeit Selbstoptimierende Neuronale Netze zur Klassifizierung von Reaktanden und Produkten in der Reaktionsdynamik Erstprüfer Apl. Prof. Dr. Jörg Main 1. Institut für Theoretische Physik Zweitprüfer Prof. Dr. Christian Holm Institut für Computerphysik Betreuer Dr. Andrej Junginger Vorgelegt von Autor Philipp Horn Matrikel-Nr SimTech-Nr. 78 Abgabetermin 7. September 2017

2

3 Inhaltsverzeichnis 1 Einleitung Motivation Aufbau der Arbeit Grundlagen (Propaedeutikum) Theoretische Grundlagen neuronaler Netze Ursprung der verwendeten Daten Grundlegende Eigenschaften neuronaler Netze Einfügen von Neuronen Nullneuronen Zufällige Neuronen Hinzufügen durch Teilen Vergleich der unterschiedlichen Methoden Zeitpunkt des Hinzufügens der Neuronen Löschen von Neuronen Entfernen unwichtiger Neuronen Zusammenlegen ähnlicher Neuronen Folgen des Entfernens der Neuronen Einfügen von Schichten Einfügen einer Kopier-Schicht Einfügen einer Summations-Schicht Vergleich der Methoden Fazit Zusammenfassung Ausblick Literaturverzeichnis 41 Danksagung 43 3

4

5 1 Einleitung In der Physik, genauer in der Reaktionsdynamik, ist es bei einer Reaktion oft von Interesse, zwischen Reaktanden und Produkten zu unterscheiden. Um das ausschließlich an Hand von Koordinaten möglich zu machen, benötigt man eine Trennfläche im Phasenraum dieser Koordinaten. Diese Trennfläche ist eine Hyperebene und teilt den Phasenraum in Koordinaten, die Reaktanden entsprechen und solche, die Produkten entsprechen. Mittels der Transition State Theory können einzelne Punkte auf dieser Trennfläche berechnet werden. Aktuelle Forschungsergebnisse zu diesen Trennflächen finden sich zum Beispiel in [1]. Da eine Phasenraumtrajektorie während einer Reaktion die Trennfläche nicht nur durch einen vorher berechneten Punkt durchstoßen kann, ist es wichtig die ganze Trennfläche zu berechnen oder annähern zu können. Die Aufgabe, aus einzelnen Punkten auf der Hyperebene die ganze Ebene zu approximieren, erfüllt in dieser Arbeit ein künstliches neuronales Netz. Künstliche neuronale Netze sind ein Werkzeug aus dem Bereich des maschinellen Lernens bzw. der künstlichen Intelligenz. Sie modellieren den Aufbau eines biologischen neuronalen Netzes, wie zum Beispiel des menschlichen Gehirns. Künstliche neuronale Netze (im Folgenden nur neuronale Netze genannt) bestehen ebenfalls aus mehreren Neuronen, die in unterschiedlichen Schichten angeordnet sind. Warum dieses Modell verwendet wird, wird in Abschnitt 1.1 genauer erklärt. Die Funktionsweise neuronaler Netze wird in Abschnitt 2.1 erläutert. 1.1 Motivation Der erste Ansatz, um eine Funktion oder eine Ebene, die durch eine Funktion beschrieben wird, an bekannte Punkte anzupassen, ist Interpolation. Jedoch gibt es bei der Interpolation zwei entscheidende Nachteile. Erstens muss eine Funktion mit einigen freien Parametern vorgegeben werden und diese Parameter werden anschließend optimiert. Falls diese Funktion nicht passend gewählt wurde, kann die Interpolation nicht erfolgreich sein. Der zweite Nachteil ist, dass Interpolation in vielen Dimensionen sehr aufwendig wird. Da der Phasenraum bei Reaktionen jedoch oft sehr hochdimensional ist, wird versucht, dieses Ansteigen des Aufwands zu verringern, indem neuronale Netze verwendet werden. Bei neuronalen Netzen muss zudem keine Ansatzfunktion gewählt werden. Nach [2] ist es mit einem neuronalen Netz, wie es für diese Arbeit benutzt wurde, möglich, jede stetige Funktion und somit auch alle Trennflächen beliebig genau zu approximieren. Es ergibt sich bei neuronalen Netzen jedoch ein anderes Problem. Ein neuronales Netz besteht immer aus mehreren Neuronen, die in einer gewissen Struktur, auch Topologie des Netzes genannt, angeordnet sind. Der in [2] bewiesene Satz trifft jedoch keine Aussage dazu, wie viele Neuronen benötigt werden. Die Topologie eines Netzes muss 5

6 1 Einleitung normalerweise, bevor es beginnt eine Funktion zu approximieren, festgelegt werden. Die Frage, der sich diese Arbeit widmen soll, ist, ob und auf welche Weise es möglich ist, dass das neuronale Netz seine eigene Topologie optimiert. Es gibt bereits Ansätze, die versuchen, dies über evolutionäre Algorithmen zu lösen. Dabei werden mehrere Netze mit unterschiedlichen Topologien benutzt. Nach einer vorgegebenen Zeit wird das Netz mit dem besten Ergebnis leicht verändert. Aus den so entstandenen neuen Netzen wird wiederum das beste ermittelt. Durch das wiederholte Auswählen des besten Netzes wird die Topologie nach und nach optimiert. Der Nachteil dieser Vorgehensweise ist jedoch, dass der Fortschritt beim Approximieren nach jedem neuen Start der veränderten Netze verloren geht. In dieser Arbeit soll die Topologie eines einzelnen Netzes, während es eine Funktion approximiert, optimiert werden. Dabei soll nach jeder Modifikation der Topologie der Fortschritt möglichst gut erhalten bleiben. 1.2 Aufbau der Arbeit Zu Beginn dieser Arbeit werden in Kapitel 2 sowohl die theoretischen Grundlagen als auch einige grundlegende Eigenschaften neuronaler Netze erläutert. Diese sind wichtig für das Verständnis der folgenden Kapitel und auch für die Motivation dieser Kapitel. In Kapitel 3 werden verschiedene Methoden für das Hinzufügen eines Neurons beschrieben und verglichen. Es wird außerdem ein Kriterium eingeführt, nach dem das neuronale Netz selbst entscheiden kann, wann es notwendig ist, ein Neuron hinzuzufügen. Daraufhin wird in Kapitel 4 diskutiert, wie das Entfernen von Neuronen möglich ist. Als weitere Möglichkeit, die Topologie eines Netzes zu modifizieren, werden zwei verschiedene Methoden für das Hinzufügen einer Schicht in Kapitel 5 hergeleitet. Diese werden ebenfalls verglichen. Zum Schluss werden die Ergebnisse im Fazit zusammengefasst und es wird ein kurzer Ausblick auf weitere Optimierungsmöglichkeiten gegeben. Diese wurden allerdings nicht getestet, da sie den Umfang dieser Arbeit überstiegen hätten. 6

7 2 Grundlagen (Propaedeutikum) In diesem Kapitel werden zu Beginn die Aspekte der Theorie neuronaler Netze erklärt, die für das weitere Verständnis der Arbeit wichtig sind. Diese theoretischen Grundlagen stammen aus [3], [4] und [5]. Es gibt jedoch auch eine Vielzahl anderer Lehrbücher, anhand derer man sich dieses Wissen aneignen kann. Das zweite Unterkapitel beschäftigt sich mit ersten Beobachtungen, die sich durch einige Experimente mit neuronalen Netzen ergeben. Diese beziehen sich allerdings noch nicht direkt auf das Optimieren der Topologie des Netzes. Sie sind jedoch hilfreich für das Verständnis neuronaler Netze und der Motivation der später eingeführten Methoden. 2.1 Theoretische Grundlagen neuronaler Netze Neuronales Netz ist ein Oberbegriff für eine große Vielzahl an Modellen, die an den Aufbau biologischer Nervensysteme wie dem Gehirn angelehnt sind. Sie bestehen alle aus einer Vielzahl an Neuronen, die wiederum dem biologischen Neuron nachempfunden sind. Diese Neuronen haben Verbindungen untereinander, über die sie Informationen austauschen können. Für die Aufgabe des Approximierens einer Hyperebene genügen neuronale Netze, die Informationen nur in eine Richtung weitergeben können. Solche Netze nennt man Feed Forward Netze. Die Abbildung 2.1 zeigt ein Modell eines solchen Netzes. Im Folgenden werden die Grundlagen dieser Netze behandelt. Feed Forward Netze bestehen immer aus mehren Schichten (im Englischen: layer). Diese einzelnen Schichten wiederum bestehen aus mindestens einem Neuron. Ein neuronales Netz besitzt immer mindestens zwei Schichten: Eine Eingabeschicht (input layer) und eine Ausgabeschicht (output layer). Zwischen diesen beiden Schichten kann es beliebig viele weitere sogenannte versteckte Schichten (hidden layer) geben. Die Neuronen einer Schicht sind jeweils mit allen Neuronen aus der vorherigen und der folgenden Schicht verbunden, jedoch nicht untereinander. Jedes Neuron j einer Schicht bekommt die Ausgabe aller Neuronen der vorherigen Schicht geliefert und berechnet daraus folgendermaßen eine gewichtete Eingabe: Dabei sind: input j = N ω ij x i + β j. (2.1) i=1 N = Anzahl der Neuronen in der vorherigen Schicht, ω ij = Gewicht für die Ausgabe des i-ten Neurons aus der vorherigen Schicht, x i = Ausgabe des i-ten Neurons aus der vorherigen Schicht, = Bias-Wert, den jedes einzelne Neuron besitzt. β j 7

8 2 Grundlagen (Propaedeutikum) Abbildung 2.1: Skizze eines Feed Forward Netzes. Die Kreise stehen für einzelne Neuronen, die Linien für die Verbindungen zwischen den Neuronen und damit für die Gewichte. Der Punkt in den Neuronen steht für den Bias-Wert. Die so berechnete Eingabe wird als Argument für eine Aktivierungsfunktion ϕ benutzt. Der Wert dieser Funktion wird als Ausgabe an die nächste Schicht weitergegeben. Es gibt eine Vielzahl an möglichen Aktivierungsfunktionen. Alle lehnen sich an die Biologie an und versuchen den Prozess der Reizweiterleitung von Neuronen zu imitieren. Wenn eine gewisse Menge an Reizen bei einem biologischen Neuron ankommt, gibt dieses wiederum einen Reiz ab. Als Aktivierungsfunktionen sind dementsprechend Funktionen geeignet, die für ein geringes Argument einen geringen Wert haben, in einem kleinen Bereich steil ansteigen und für große Argumente wiederum gegen einen Wert konvergieren. Bekannte Beispiele sind: 1 ϕ(input) = sig(input) = 1 + exp( input) oder ϕ(input) = arctan(input). Für die Ergebnisse dieser Arbeit wurde ausschließlich die erste Funktion (Sigmoid Funktion) benutzt. Die später vorgestellten Methoden wurden allerdings für beide oben genannten Beispiel implementiert. Das neuronale Netz entspricht demnach einer Abbildung Dabei gilt: R N input R Noutput. N input = Anzahl Neuronen in der Eingabeschicht, N output = Anzahl Neuronen in der Ausgabeschicht. 8

9 2.1 Theoretische Grundlagen neuronaler Netze Eine Hyperebene im D-dimensionalen Raum wird von dieser Abbildung dargestellt, indem sie für einen Punkt auf der Ebene mit gegebenen D 1 Koordinaten die fehlende Koordinate berechnet. Die neuronalen Netze sind bei dieser Aufgabe folglich immer aus D 1 Neuronen in der ersten Schicht und einem Neuron in der letzten Schicht aufgebaut. Wenn es später darum geht, die Topologie des neuronalen Netzes zu ändern, gilt dies folglich nur für die versteckten Schichten. Das Anpassen der Gewichte und der Bias-Werte, so dass das neuronale Netz eine Funktion möglichst gut approximiert, erfolgt durch sogenanntes Training. Dabei berechnet das neuronale Netz die Ausgabe für Daten, bei denen die gewünschte Ausgabe bereits bekannt ist. Mit Hilfe dieser Trainingsdaten lässt sich der Fehler, der von dem neuronalen Netz berechneten Ausgaben, über folgende Kostenfunktion ausdrücken mit: E = 1 2 n k=1 z k o k 2 für d=1 = 1 2 n (z k o k ) 2, n = Anzahl der Trainingsdaten, z k = Zielausgabe für die k-te Eingabe, o k = Ausgabe des neuronalen Netzes für die k-te Eingabe, d = Dimension des Ausgabevektors / Anzahl der Neuronen in der Ausgabeschicht. Nach oder während des Verarbeitens der Trainingsdaten passt das neuronale Netz entsprechend eines Lernalgorithmus seine Gewichte und Bias-Werte an. Diese Algorithmen sind Optimierungsverfahren, die speziell auf die Aufgabe der Minimierung der oben beschriebenen Kostenfunktion angepasst sind. Der bekannteste Algorithmus dieser Art ist der Backpropagation Algorithmus. Er entspricht dem Gradientenverfahren, das auf diese Kostenfunktion angewendet wird. Die Gewichte bzw. Bias-Werte werden folglich mit einer vorgegebenen Schrittweite η entgegen der Richtung des Gradienten von E verändert. Die Änderung eines Gewichtes für einen Datenpunkt k berechnet sich dabei folgendermaßen: k=1 ω ij = η de dω ij = ηx i δ j, wobei δ j je nach Schicht wie folgt berechnet wird: { ϕ (input j )(z k o k ) für Neuronen in der Ausgabeschicht, δ j = ϕ (input j ) l δ lω jl für alle anderen Neuronen. (2.2) Alle Variablen sind hierbei weiterhin so definiert wie zuvor. Wenn man streng nach dem Gradientenverfahren vorgehen würde, würde man diese Änderungen für alle Datenpunkte aufaddieren und erst zum Schluss anwenden. Da das für eine große Anzahl an Trainingsdaten allerdings zu einer langen Trainigsphase führen würde, gibt es auch andere Ansätze. Das on-line Training wendet die Änderungen direkt nach jedem Trainingsdatenpunkt an. Das batch Training fasst eine kleine Anzahl an Trainingsdaten 9

10 2 Grundlagen (Propaedeutikum) zusammen, summiert die daraus resultierenden Änderungen auf und führt sie danach aus. Das Vermeiden des Aufsummierens aller Änderungen führt dazu, dass man die Gewichte und Bias-Werte nicht direkt in Richtung des steilsten Abstieges verändert. Ein weiterer Vorteil dieses Ansatzes ist, dass man so in manchen Fällen vermeidet, nur ein lokales Minimum der Kostenfunktion zu finden. Dieses Thema wird im Verlauf dieser Arbeit auch eine Rolle spielen. Für diese Arbeit wurde das on-line Training verwendet. Als Programmiersprache wurde C++ benutzt. Es gab jeweils eine Klasse für Neuronen, Schichten und das ganze neuronale Netz. Ein Trainingsschritt, auch Epoche genannt, läuft folgendermaßen ab. Zuerst wird für einen Datenpunkt die Ausgabe berechnet, indem bei der ersten Schicht beginnend die Ausgabe der jeweiligen Neuronen berechnet wird und diese an die nächste Schicht weitergegeben wird. Dabei speichert jedes Neuron seine Ausgabe und den Wert der Ableitung der Aktivierungsfunktion für die nach Formel (2.1) berechnete Eingabe. Als Nächstes wird von hinten beginnend für jedes Neuron nach Formel (2.2) das entsprechende Delta ausgerechnet und gespeichert. Zuletzt wird mit einer vorher gewählten Schrittweite η jedes Gewicht und jeder Bias-Wert der Neuronen verändert. Die Ausgabe des letzten Neurons kann außerdem verwendet werden, um nach und nach, während des Abarbeitens aller Daten, die Kostenfunktion zumindest annähernd zu berechnen. Sie wird dabei nicht exakt berechnet, da sich die Gewichte während des Berechnens von E verändern. Folglich wäre die Ausgabe für die ersten Daten am Ende eine andere, als sie es bei der Berechnung von E ist. Allerdings erspart man sich so die Arbeit, die Ausgabe für alle Trainigsdaten neu zu berechnen, um den exakten Wert der Kostenfunktion zu erhalten. Das würde den Aufwand pro Epoche circa auf den 1,5 fachen Wert steigern. Unabhängig von der Trainingsmethode wird allerdings meist nicht mit allen bekannten Daten trainiert. Die Daten werden unterteilt in Trainingsdaten und Testdaten. Es ist schließlich die Aufgabe eines neuronalen Netzes nicht nur bekannte Daten möglichst gut zu approximieren, sondern auch unbekannte Daten gut vorherzusagen. Deshalb überprüft man mit Testdaten in regelmäßigen Abständen zusätzlich, wie gut das neuronale Netz Daten approximieren kann, auf die es nicht trainiert wurde. 2.2 Ursprung der verwendeten Daten Wie in der Einleitung dieser Arbeit schon erwähnt, stammen die Daten, auf die die neuronalen Netze trainiert werden, aus der Reaktionsdynamik. Zwischen Reaktanden und Produkten befindet sich in der potentiellen Energie ein Sattel. Dieser Sattel führt mittels der Transition State Theory zu einer Trennfläche. Bei Reaktionen wird zwischen den Reaktionskoordinaten und den Badkoordinaten unterschieden. Die Reaktion läuft in den Reaktionskoordinaten ab. Die Badkoordinaten beeinflussen die Lage des Sattels und somit auch die der Trennfläche. Wie genau sich Koordinaten der Trennfläche bestimmen lassen ist zum Beispiel in [1] oder [6] zu sehen. Die Daten, die in dieser Arbeit verwendet wurden, stammen aus einem zeitabhängigen, zweidimensionalen System. Der Phasenraum ist somit vierdimensional und hat eine zusätzliche Zeitdimension. Die Trennfläche hat eine Dimension weniger und ist damit vier- 10

11 2.3 Grundlegende Eigenschaften neuronaler Netze dimensional. Als Eingabe für das neuronale Netz werden die Badkoordinaten (in diesem Fall: y-, v y - und t-koordinaten) verwendet. Die Ausgabe entspricht der x-koordinate, an der sich die Trennfläche befindet. Insgesamt sind 4840 bekannte Datenpunkte vorhanden, die zufällig in einem Verhältnis 4:1 in Trainings- und Testdaten aufgeteilt wurden. Um an diese zu gelangen, wurden auf einem Gitter in den Badkoordinaten die zugehörigen Reaktionskoordinaten der Trennfläche berechnet. Das Gitter nimmt äquidistant Werte zwischen 0.7 und 0.7 in der y-koordinate, zwischen 2.5 und 2.5 in der v y - Koordinate und zwischen 0 und 2 in der t-koordinate an. Die berechneten x-werte liegen zwischen und 0.459, besitzen einen Mittelwert von und eine Standardabweichung von Das ist von Interesse, um die absoluten Werte der Kostenfunktion, die im Folgenden präsentiert werden, bewerten zu können. 2.3 Grundlegende Eigenschaften neuronaler Netze Um besser zu verstehen, wie neuronale Netze funktionieren und um herauszufinden, wie sie sich in dem hier relevanten Fall verhalten, wurden zu Beginn einige grundlegende Tests durchgeführt. Alle Rechnungen wurden nicht parallelisiert auf i Prozessoren mit 3,2 GHz ausgeführt. Zuerst fällt auf, dass kleine Netze mit fünf oder weniger Neuronen in einer versteckten Schicht innerhalb einiger Minuten konvergieren. Der restliche Fehler E bleibt mit den hier verwendeten Daten in einer Größenordnung von Wenn das Netz jedoch zu viele Neuronen (50 und mehr) in einer versteckten Schicht hat, konvergiert es nur sehr langsam. Wenn man dabei den Verlauf des Fehlers über die Epochen betrachtet, fällt auf, dass der Fehler immer abwechselnd kurz stark abnimmt und danach über lange Zeit nur langsam. Diese Phasen der langsamen Änderung werden im folgenden als Plateaus bezeichnet. Vor allem zu Beginn fällt die Kostenfunktion stark ab und gegen später werden die sprunghaften Verbesserungen kleiner. Ein Beispiel für solch einen Verlauf sieht man in Abbildung 2.3, die später in diesem Abschnitt zu finden ist. Wenn das neuronale Netz statt nur einer versteckten Schicht mehrere besitzt, steigt die Dauer für eine Epoche stark an und somit sinkt die Konvergenzgeschwindigkeit. Ein Netz mit drei Eingabe-, einem Ausgabeneuron und 24 Neuronen in einer versteckten Schicht ist dabei circa doppelt so schnell wie eins mit 12 Neuronen in zwei versteckten Schichten. Der Grund dafür ist, dass für den Aufwand der Berechnung einer Ausgabe nicht die Anzahl der Neuronen entscheidend ist, sondern die Anzahl der Verbindungen zwischen allen Neuronen. Die Komplexität eines neuronalen Netzes lässt sich deshalb wie folgt berechnen: N layer O(Anzahl Verbindungen) = O N i N i 1. (2.3) Dabei sind: N layer = gesamte Anzahl der Schichten, N i = Anzahl der Neuronen in Schicht i. i=2 11

12 2 Grundlagen (Propaedeutikum) Das ergibt bei dem oben genannten Beispiel 96 Verbindungen im ersten Netz und 192 im zweiten. Wie in Abschnitt 2.1 bereits angemerkt, führt der Backpropagation Algorithmus zu einem lokalen Minimum und nicht zu einem globalen. Eine naheliegende Frage ist also, wie tief das Minimum ist, in das das neuronale Netz konvergiert und ob es ein deutlich tieferes gibt. Das Minimum, das von einem Gradientenverfahren ermittelt wird, hängt hauptsächlich vom Startpunkt ab. Man kann sich einer Antwort auf diese Frage folglich am besten nähern, indem man Netze vergleicht, die die gleiche Topologie besitzen, zu Beginn aber unterschiedliche Gewichte und Bias-Werte. Dabei fällt schon bei wenigen und kleinen Netzen auf, dass sich der restliche Fehler nach der Konvergenz stark unterscheiden kann. Das lässt sich gut in Abbildung 3.2 in Abschnitt 3.1 erkennen. Um einen genaueren Einblick zu erhalten, wie neuronale Netze lernen und was innerhalb des Netzes passiert, kann man sich den Verlauf aller Gewichte und Bias-Werte ausgeben lassen. Anschließend kann man versuchen, diese Verläufe mit dem Verlauf der Kostenfunktion in Verbindung zu bringen. Man kann zum Beispiel die Werte der Gewichte nach jeder Epoche mit der Kostenfunktion in einem Diagramm auftragen. Dabei ist zu erkennen, dass sich die meisten Gewichte kaum ändern, während die Kostenfunktion auf einem Plateau ist. In dieser Zeit nehmen nur einzelne Gewichte kontinuierlich ab oder zu. An Stellen, bei denen der Fehler stark sinkt, ändern sich nahezu alle Gewichte gleichzeitig. Tatsächlich ist die absolute Änderung der Gewichte proportional zur Änderung des Fehlers. Um Plateaus zu vermeiden oder sie schneller zu überwinden, kann man versuchen, die Schrittweite, während man sich auf einem Plateau befindet, zu erhöhen, um damit die langsame Änderung der wenigen Gewichte zu beschleunigen. Allgemein führt eine höhere Schrittweite aber zur Konvergenz gegen einen größeren Fehler, wenn auch deutlich schneller als mit geringerer Schrittweite. Ein Anwachsen der Schrittweite während eines Durchlaufs führt sogar dazu, dass keine Konvergenz eintritt, denn ein Plateau oder ein Minimum werden verlassen und der Fehler wächst wieder an. Um den Grund für diese Beobachtungen zu verstehen, muss man das Verhalten der Gewichte und Bias-Werte innerhalb einer Epoche betrachten, da diese sich durch das on-line Training auch innerhalb einer solchen verändern. Während die Kostenfunktion, die nach jeder Epoche ausgewertet wird, konvergiert, passiert das mit den Gewichten innerhalb einer Epoche nicht. Diese oszillieren immer um einen Wert. Dies wiederholt sich in jeder Epoche periodisch. Das lässt sich in den ersten 5000 Epochen in Abbildung 2.2 erkennen. Durch Beobachtung zu einem festen Zeitpunkt in jeder Epoche ergibt sich somit der Eindruck, dass das neuronale Netz sich nicht mehr verändert und der Fehler konvergiert ist. Bei einer größeren Schrittweite sind diese Oszillationen stärker und das Netz kann somit nicht gegen einen so kleinen Fehler konvergieren wie es das mit geringerer Schrittweite würde. Auch das Erhöhen der Schrittweite während der Laufzeit führt zu stärkeren Oszillationen und das wiederum dazu, dass ein bereits gefundenes Minimum wieder verlassen wird. Dieser Zusammenhang wird in Abbildung 2.2 verdeutlicht. Vor allem in der Ausgabeschicht ist ein Anwachsen der Schwankungen offensichtlich. Dies wiederum führt auch in der versteckten Schicht zu einer Änderung der Gewichte, die schon nahezu konvergiert waren. 12

13 2.3 Grundlegende Eigenschaften neuronaler Netze Verhalten der Gewichte in einer Epoche bei anwachsender Schrittweite versteckte Schicht Ausgabeschicht Wert des Gewichts Wert des Gewichts Epoche Epoche Abbildung 2.2: Verlauf der Gewichte wa hrend eines Trainingsschrittes alle 1000 Epochen. Dabei wurde die Schrittweite η zwischen der Epoche und der linear von auch 0.07 erho ht. Das verwendete Netz besaß eine versteckte Schicht mit fu nf Neuronen. Eine weitere Beobachtung, die man durch die Ausgabe der Gewichte macht, ist, dass die Gewichte von Netzen, die nur mit leicht unterschiedlichen Startwerten initialisiert wurden, gegen sehr unterschiedliche Werte konvergieren ko nnen. Selbst neuronale Netze, die gegen nahezu den gleichen Fehler konvergieren, ko nnen unterschiedliche Gewichte aufweisen. Daraus kann man schließen, dass es nicht nur viele unterschiedliche Minima gibt, sondern auch dass man aufgrund von A hnlichkeiten des Fehlers nichts u ber A hnlichkeiten der Gewichte aussagen kann und umgekehrt. Wenn man die unterschiedlichen am Ende von Abschnitt 2.1 beschriebenen Bewertungsmethoden vergleicht, fa llt Folgendes auf. Fu r die in dieser Arbeit verwendeten Trainingsdaten und Netze la sst sich ein qualitativer Unterschied zwischen dem Scha tzen der Kostenfunktion und dem wirklichen Wert der Kostenfunktion erkennen. Wa hrend die gescha tzte Kostenfunktion monoton abnimmt, kommt es bei der wirklichen Kostenfunktion vor, dass sie zum Beispiel auf Plateaus auch ansteigt. Zwischen den Kostenfunktionen der Trainingsdaten und der Testdaten la sst sich allerdings kaum ein Unterschied erkennen. Diese weisen beide nahezu den gleichen Verlauf auf. Das la sst sich in Abbildung

14 2 Grundlagen (Propaedeutikum) Analyse der unterschiedlichen Kostenfunktionen geschätzte Kostenfunktion mit Trainingsdaten exakte Kostenfunktion mit Trainingsdaten Kostenfunktion mit Testdaten Fehler e e+06 Epoche Abbildung 2.3: Vergleich der unterschiedlichen Berechnungsmethoden der Kostenfunktion. Das hierbei verwendete Netz hatte eine versteckte Schicht und 25 Neuronen in dieser. deutlich erkennen. Es kommt somit bei der hier verwendeten Anzahl an Trainingsdaten und der Größe der Netze nicht zu einer Überanpassung an die Trainingsdaten. 14

15 3 Einfügen von Neuronen Dieses Kapitel wird sich dem ersten Teil der Hauptaufgabe dieser Arbeit zuwenden. Die Aufgabe war es aus den zwei Schritten, Topologie des neuronalen Netzes festlegen und Training des Netzes, einen kombinierten Schritt zu machen. Dieser soll ohne äußeres Eingreifen funktionieren. Die erste Möglichkeit, den Aufbau des neuronalen Netzes zu modifizieren, ist das Hinzufügen neuer Neuronen in einer Schicht. Da das Hinzufügen während des Trainings passiert, sollte dabei der Fehler nicht anwachsen. Sonst wird der Fortschritt des vorhergehenden Trainings teilweise verworfen. Es passiert allerdings, wie wir später sehen werden, dass der Fehler nach dem Hinzufügen neuer Neuronen leicht ansteigt. Das liegt jedoch daran, dass der Backpropagation Algorithmus für einen kurzen Anstieg sorgt. Im Folgenden werden drei unterschiedliche Methoden vorgestellt, wie Neuronen hinzugefügt werden können. Im Anschluss werden diese verglichen und zuletzt wird das Kriterium diskutiert, mit dessen Hilfe das neuronale Netz entscheidet, wann es sinnvoll ist, ein Neuron einzufügen. 3.1 Nullneuronen Die erste Idee, wie Neuronen hinzugefügt werden können, wird in Abbildung 3.1 verdeutlicht. Bei dieser Methode wird ein neues Neuron in einer ausgewählten Schicht hinzu- Abbildung 3.1: Skizze zur Verdeutlichung des Hinzufügens eines Nullneurons. Rot ist das neue Neuron und grau steht für Gewichte und Bias-Werte, die den Wert Null haben. 15

16 3 Einfügen von Neuronen gefügt. Dabei werden alle Gewichte und der Bias-Wert mit Null initialisiert. Zusätzlich wird bei jedem Neuron in der nächsten Schicht ein neues Gewicht für das neue Neuron hinzugefügt und auf Null gesetzt. Solche neuen Neuronen werden im Folgenden Nullneuronen genannt. Das Hinzufügen dieser Nullneuronen erhöht den Fehler nicht, da es die Ausgabe gar nicht verändert. Es gewichtet die Ausgabe aller vorherigen Neuronen mit Null und wird von der folgenden Schicht auch mit Null gewichtet. Die Position des Nullneurons in einer Schicht spielt keine Rolle, solange die Gewichte der Neuronen in der nächsten Schicht weiterhin dem richtigen Neuron zugeordnet sind. In dem C++ Code für diese Arbeit besitzt eine Schicht einen Vektor an Neuronen und jedes Neuron besitzt einen Vektor mit den Gewichten. Um keine Reihenfolgen ändern zu müssen, wird das Nullneuron als letztes Element im Neuronenvektor der Schicht hinzugefügt. In jedem Gewichtevektor der Neuronen der nächsten Schicht wird am Ende eine Null hinzugefügt. Neuronale Netze, bei denen Neuronen hinzugefügt werden, können eine Hyperebene anfangs nicht in gleichem Maße approximieren, wie Netze, die von Beginn an viele Neuronen besitzen. Die neu hinzugefügten Neuronen wurden nicht mit zufälligen Parametern initialisiert. Durch einige Test lässt sich in Erfahrung bringen, ob Netze deshalb gegen ein schlechteres Minimum konvergieren und ob das Hinzufügen zu einer Verlangsamung der Lerngeschwindigkeit führt. Ein Beispiel für das Ergebnis eines solchen Tests sieht man in Abbildung 3.2. Es wurden für diesen Test mehrere Netze mit gleicher Topologie und unterschiedlichen, zufälligen Gewichten initialisiert. Dadurch sollte vermieden werden, dass eine Methode nur für eine bestimmte Initialisierung besser ist als die andere. Es lässt sich erkennen, dass die Minima, in die die mit 30 Neuronen initialisierten Netze konvergieren, sehr unterschiedlich sind. Netze, bei denen später Neuronen hinzugefügt wurden, weisen hingegen alle einen ähnlichen Verlauf auf. Bei den meisten Durchläufen lässt sich kein großer Unterschied zwischen den verschiedenen Ansätzen erkennen. Da die Netze, die von Beginn an mehr Neuronen besaßen, Ausreißer nach oben aufweisen, fällt der mittlere Fehler für Netze, bei denen Neuronen hinzugefügt werden, merklich niedriger aus. Alle Netze lernen ähnlich schnell, obwohl die Netze, bei denen Neuronen hinzugefügt werden, anfangs weniger Kapazität haben, sich zu verbessern. Das liegt daran, dass diese Netze durch das Hinzufügen zwar mehr Epochen brauchen, um unter einen gewissen Fehler zu fallen, aber gleichzeitig durch ihre geringere Komplexität weniger Zeit für eine Epoche benötigen. Das Ergebnis dieses Tests ist qualitativ das Gleiche wie das aller anderen dieser Art, die durchgeführt wurden. Ein Problem der Nullneuronen ist, dass immer das gleiche Neuron hinzugefügt wird. Falls es mit einem neuen Neuron nicht möglich ist, ein Plateau oder lokales Minimum zu überwinden, ist es sehr unwahrscheinlich, dass es mit einem weiteren gleichen Neuron gelingt. Es wäre demnach praktisch, wenn die neu hinzugefügten Neuronen nicht alle gleich initialisiert werden. Ein weiteres Problem, dieser Art Neuronen hinzuzufügen, tritt auf, falls mehrere Neuronen gleichzeitig hinzugefügt werden sollen. Diese wären komplett identisch und würden sich somit auch komplett identisch entwickeln. Da die Gewichte und Bias-Werte dadurch abhängig voneinander wären, wäre es zwar deutlich aufwendiger, die Ausgabe des Netzes zu berechnen, aber es würde nur eine geringe Anzahl an Freiheitsgraden hinzugefügt. Das neuronale Netz kann eine Ebene so folglich nicht 16

17 3.2 Zufällige Neuronen Vergleich: 30 Neuronen zu Beginn gegen 30 Neuronen per Hinzufügen Durchläufe ohne Hinzufügen Durchläufe mit Hinzufügen Mittelwert ohne Hinzufügen Mittelwert mit Hinzufügen Fehler 1e Zeit in Sekunden Abbildung 3.2: Neuronale Netze mit einer versteckten Schicht. Das eine Netz besaß konstant 30 Neuronen, während das andere 10 besaß und neue Neuronen hinzufügen konnte, bis es bei 30 angelangt war. sehr effizient approximieren. Dieses Problem würde ebenfalls mit einer Methode, die neue Neuronen unterschiedlich initialisiert, umgangen werden. Dies führt uns zu dem nächsten Abschnitt dieser Arbeit. 3.2 Zufällige Neuronen Diese Methode für das Hinzufügen neuer Neuronen besitzt keine der im letzten Abschnitt genannten Schwächen der vorherigen Methode. Alle neu hinzugefügten Neuronen sind unterschiedlich. Um das zu erreichen, muss die Methode der Nullneuronen abgeändert werden. Bei genauerer Betrachtung der Berechnung der Ausgabe fällt auf, dass es genügt, wenn ein Neuron von der kompletten folgenden Schicht mit Null gewichtet wird, damit es keinen Einfluss auf die Ausgabe hat. Dadurch wird die Ausgabe des besagten Neurons bei der Berechnung der Eingabe für jedes Neuron in der folgenden Schicht mit Null multipliziert. Folglich wird durch ein solches Neuron nicht das Argument für die Aktivierungsfunktion des folgenden Neurons verändert und somit auch nicht der Wert der Ausgabe. 17

18 3 Einfügen von Neuronen Abbildung 3.3: Skizze zur Verdeutlichung des Hinzufügens eines zufälligen Neurons. Rot steht für neue Neuronen und Parameter mit zufälligen Werten. Grau für Parameter mit Wert Null. Man kann also, wie in Abbildung 3.3 dargestellt, Neuronen hinzufügen, deren eigene Gewichte und Bias-Werte komplett zufällig sind. Wichtig ist nur, dass die neuen Gewichte der folgenden Schicht bezüglich des neuen Neurons mit Null initialisiert werden. Durch die zufällig initialisierten Gewichte und Bias-Werte lässt sich diese Methode leicht modifizieren. Es gibt unterschiedliche Möglichkeiten, wie diese Werte zufällig bestimmt werden können. Für diese Arbeit wurde untersucht, aus welchem Bereich die neuen Gewichte und Bias-Werte gezogen werden sollten. Ob aufgrund dieser Methode lokale Minima und Plateaus schneller überwunden werden als mit Nullneuronen und wie die zufälligen Neuronen gut initialisiert werden können, wird in Abschnitt 3.4 genauer untersucht. Ein Problem, das beide bisher vorgestellten Methoden besitzen, ist, dass sie nicht nur ein Kriterium benötigen, zu welchem Zeitpunkt ein neues Neuron hinzugefügt werden soll, sondern auch ein Kriterium, das entscheidet in welcher Schicht. Es wird bis Kapitel 5 davon ausgegangen, dass alle Netze nur eine versteckte Schicht besitzen, um dieses Problem zu vermeiden. Dort werden dann allerdings verschiedene Möglichkeiten eines solchen Kriteriums vorgestellt, die das kombinierte Hinzufügen der Schichten und Neuronen ermöglichen. Die nächste Methode folgt einem grundsätzlich anderen Ansatz, Neuronen hinzuzufügen. Bei dieser Methode lässt sich das eben beschriebene Problem leicht umgehen. 3.3 Hinzufügen durch Teilen Bei dieser Variante des Hinzufügens neuer Neuronen wird nicht wie bisher das Ziel verfolgt, ein neues Neuron hinzuzufügen, das keinen Einfluss auf das neuronale Netz hat. Es wird streng genommen auch kein neues Neuron im wörtlichen Sinne hinzugefügt. Es 18

19 3.3 Hinzufügen durch Teilen Abbildung 3.4: Skizze zur Verdeutlichung des Teilens eines Neurons. Rot ist das neue Neuron. Dunkelblau sind die unveränderten, bzw. die kopierten Gewichte und Bias-Werte. Hellblau die auf zwei Neuronen aufgeteilten Gewichte wird viel mehr ein altes Neuron aufgeteilt in zwei Neuronen. Dieser Vorgang wird in Abbildung 3.4 dargestellt. Es wird ein Neuron hinzugefügt, das mit den Gewichten und dem Bias-Wert eines bereits vorhanden Neurons derselben Schicht initialisiert wird. Es berechnet somit genau die gleiche Ausgabe wie das Neuron, von dem die Parameter kopiert wurden. Um nun an der gesamten Ausgabe des neuronalen Netzes nichts zu ändern, teilt jedes Neuron der folgenden Schicht sein Gewicht bezüglich des alten Neurons auf das alte und das neue auf. Dadurch berechnet jedes Neuron in dieser Schicht das gleiche Argument für die Aktivierungsfunktion wie vor dem Hinzufügen des neuen Neurons. Dies wird in folgender Gleichung verdeutlicht: input j = = N 1 i=1 N 1 i=1 ω ij x i + ω Nj x N + β j ω ij x i + αω Nj }{{} ω Nj x N + (1 α) ω Nj }{{} ω (N+1)j x N }{{} x N+1 +β j. Das neue und alte Neuron entwickeln sich unterschiedlich, obwohl sie für kurze Zeit die gleichen Gewichte besitzen. Bei der Berechnung des Deltas der beiden Neuronen nach Formel (2.2) ergibt sich ein unterschiedlicher Wert, da die Neuronen von der folgenden Schicht unterschiedlich gewichtet werden. Es muss vermieden werden, die Gewichte der folgenden Schicht bezüglich des alten Neurons jeweils zu 50% auf beide Neuronen aufzuteilen. Ansonsten wären beide Neuronen identisch und würden sich somit auch exakt gleich entwickeln. Es stellt sich folglich vorerst nicht nur die Frage, in welcher Schicht ein weiteres Neuron benötigt wird, sondern auch die Frage welches Neuron dieser Schicht aufgeteilt werden 19

20 3 Einfügen von Neuronen soll. Letztere Frage wird allerdings schon durch die Motivation für diese Methode beantwortet. Falls die Eingabe eines Neurons betragsmäßig groß ist, hat die Ableitung der Aktivierungsfunktion einen Wert nahe 0. Der Grund dafür ist, dass alle Aktivierungsfunktionen sich nur in einem kleine Bereich um die Null stark ändern. Damit ist das nach Formel (2.2) berechnete Delta für dieses Neuron sehr gering. Die Gewichte dieses Neurons ändern sich deshalb nur sehr wenig. Wie zu Beginn dieser Arbeit allerdings schon festgestellt wurde, sinkt der Fehler proportional zu der Veränderung der Gewichte. Um eine betragsmäßig große Eingabe eines Neurons durch neue Neuronen zu verhindern, gibt es mehrere Ideen. Im ersten Ansatz wird das Neuron gefunden, das für alle Daten durchschnittlich die (betragsmäßig) größte Eingabe berechnet. Dieses Neuron wird in zwei Neuronen aufgeteilt. Durch ein weiteres ähnliches Neuron wird zwar nicht direkt die Eingabe des ersten Neurons verringert, allerdings besteht die Chance, dass zwei ähnliche Neuronen die Eingabe der einzelnen über mehrere Epochen verringern. Der zweite Ansatz reduziert nicht die Eingabe eines Neurons, sondern berechnet für jedes Neuron den Einfluss auf die Eingabe der Neuronen der nächsten Schicht. Den Einfluss des i-ten Neurons in der j-ten Schicht berechnet man folgendermaßen: Dabei gilt: influence i = n k=1 N j+1 l=1 ω il x ik. n = Anzahl der Trainingsdaten, N j+1 = Anzahl der Neuronen in Schicht j + 1, ω il = Gewichte der (j + 1)-ten Schicht, x ik = Ausgabe des i-ten Neurons in der j-ten Schicht für den Datenpunkt k. Das Neuron mit dem größten Einfluss wird anschließend geteilt. Somit kann das neuronale Netz an der Stelle, die am wichtigsten für die Berechnung der endgültigen Ausgabe ist, durch zwei Neuronen genauer differenzieren. Es werden dabei auch die Gewichte der folgenden Schicht für das alte Neuron verringert und somit nach einigen Epochen vermutlich auch die Eingabe, die diese berechnen. Beide Varianten lassen sich ohne Probleme auf mehrere Schichten anwenden und es entfällt somit die Frage, in welcher Schicht ein neues Neuron hinzugefügt werden soll. Um das Problem zu hoher Eingabewerte zu verhindern, wäre eine Neuronenteilung ideal, bei der die eigenen Gewichte des Neurons auf das alte und das neue Neuron aufgeteilt würden. Durch die Nichtlinearität der Aktivierungsfunktionen ist dies allerdings nicht ohne eine Veränderung der Ausgabe und einem damit verbundenen Anwachsen der Kostenfunktion möglich. Wenn es um das Hinzufügen von ganzen Schichten in Kapitel 5 geht, sieht man weitere Probleme, die mit der Nichtlinearität der Aktivierungsfunktion zusammenhängen. An dieser Stelle werden wir uns auch genauer damit auseinandersetzen. Im nächsten Abschnitt werden die in den letzten drei Abschnitten vorgestellten Methoden verglichen. Dabei wird auch versucht, aus den verschiedenen Varianten der Methoden die beste herauszufiltern. 20

21 3.4 Vergleich der unterschiedlichen Methoden 3.4 Vergleich der unterschiedlichen Methoden Das Hinzufügen von Neuronen bedeutet keinerlei Verlangsamung der Lerngeschwindigkeit verglichen mit Netzen, die groß initialisiert wurden. Dies wurde in Abschnitt 3.1 bereits vorweggenommen. Gleichzeitig wird das Ergebnis des Trainings sogar verbessert. In diesem Abschnitt werden für alle Vergleiche neuronale Netze mit ausschließlich einer versteckten Schicht benutzt. Zu Beginn werden nun die Nullneuronen mit der Methode der zufälligen Neuronen verglichen. Das Ergebnis dieses ersten Vergleiches ist in Abbildung 3.5 zu sehen. Dabei wurden für die zufälligen Neuronen verschiedene Varianten getestet. Alle haben gemeinsam, dass die Gewichte und Bias-Werte der neuen Neuronen gleichverteilt aus einem um die Null symmetrischen Intervall gezogen wurden. Allerdings wurden sie aus unterschiedlich breiten Intervallen gezogen. Wie zu erwarten, ist das Ergebnis um so ähnlicher zu den Nullneuronen, je kleiner das Intervall der zufälligen Werte Vergleich: Nullneuronen gegen zufällige Neuronen hinzufügen Nullneuronen Zufällige Gewichte aus [-0.1;0.1] Zufällige Gewichte aus [-0.5;0.5] Zufällige Gewichte aus [-1.0;1.0] Zufällige Gewichte aus [-1.5;1.5] Fehler Zeit in Sekunden Abbildung 3.5: Alle Netze wurden mit 10 Neuronen in einer versteckten Schicht initialisiert und es wurden nach dem gleichen Kriterium Neuronen hinzugefügt. Je Methode wurden fünf unterschiedlich initialisierte Durchläufe gerechnet, wobei sie gleich initialisiert waren wie die Durchläufe der anderen Methoden. In dieser Abbildung sind die Mittelwerte der fünf Durchläufe zu sehen. 21

22 3 Einfügen von Neuronen ist. Es lässt sich außerdem beobachten, dass der Fehler der unterschiedlichen Methoden zu Beginn noch sehr ähnlich verläuft. Je länger die neuronalen Netze allerdings trainieren, desto größer wird der Unterschied. Bis zu einer Breite von 2 für das Intervall wird die Methode der zufälligen Neuronen immer besser. Ab einer Breite von 3 ist der Fehler allerdings einen Großteil der Zeit höher. Wenn man statt der in Abbildung 3.5 dargestellten Mittelwerte der Verläufe die exakten Verläufe der unterschiedlichen Durchläufe betrachtet, fällt folgendes auf. Trotz zufälliger Gewichte des neuen Neurons führt ein neues Neuron nicht immer zum Verlassen eines lokalen Minimums oder eines Plateaus. Je größer das Intervall, aus dem die Gewichte gezogen werden, desto weniger neue Neuronen benötigt es allerdings durchschnittlich um dies zu erreichen. Gleichzeitig hat das Hinzufügen von Neuronen mit großen Gewichten zur Folge, dass der Fehler nach dem Hinzufügen einen größeren Sprung nach oben macht. Dieser Effekt zusammen mit dem Problem für große Gewichte, das im vorherigen Abschnitt beschrieben wurde, führt dazu, dass das Hinzufügen zufälliger Neuronen aus einem zu breiten Intervall zu schlechteren Ergebnissen führt. Beim Teilen von Neuronen existiert zwar nur eine Methode, allerdings gibt es verschiedene Kriterien, welches Neuron geteilt werden soll. Diese unterschiedlichen Kriterien wurden auf die gleiche Art wie die Methoden zum Hinzufügen neuer Neuron getestet. Die Ergebnisse dieser Tests sind in Abbildung 3.6 zu sehen. Das Teilen von Neuronen, die die betragsmäßig größte Eingabe besitzen, führt offensichtlich zu dem Ergebnis mit dem größten Fehler. Das liegt daran, dass ein Neuron, das eine sehr große negative Eingabe berechnet, als Ausgabe einen Wert nahe Null weitergibt. Ein solches Neuron hat einen geringen Einfluss auf die Ausgabe des gesamten Netzes, da es die Eingabe der Neuronen der folgenden Schicht kaum beeinflusst. Es sollte somit kein zweites Neuron erzeugt werden, das die gleiche Eingabe berechnet. Die beiden anderen verwendeten Kriterien führen zu besseren Ergebnissen als das Hinzufügen eines Nullneurons. Man kann bei beiden Varianten jedoch starke Schwankungen in der Kostenfunktion erkennen. Das liegt daran, dass der Backpropagation Algorithmus nach dem Teilen eines Neurons zu einem stärkeren Anwachsen des Fehlers führt als nach dem Hinzufügen eines neuen Neurons. Der Grund hierfür ist, dass die Gewichte des neuen bzw. kopierten Neurons einen großen Wert besitzen. Änderungen der folgenden Gewichte bezüglich dieser Neuronen haben deshalb große Auswirkungen auf die Ausgabe des gesamten Netzes. Mit dem Kriterium, bei dem das Neuron, das den größten Einfluss auf die nächste Schicht besitzt, geteilt wird, konvergiert die Methode des Teilens von Neuronen gegen den gleichen Fehler wie die beste Variante des Hinzufügens von zufälligen Neuronen. Jedoch konvergiert die zweite Methode schneller und weist weniger Schwankungen in der Kostenfunktion auf. Aus diesem Grund wird für die restliche Arbeit die Methode der zufälligen Neuronen mit Parametern aus [ 1.0; 1.0] verwendet. Bisher wurde ausschließlich diskutiert, auf welche Weise Neuronen am besten hinzugefügt werden. Beim Teilen von Neuronen wurde auch ein Kriterium eingeführt, das entscheidet, welches Neuron geteilt werden soll. Bisher wurde jedoch noch nicht erwähnt wie ein neuronales Netz erkennen kann, dass ein weiteres Neuron benötigt wird, um die Hyperebene zu approximieren. Diesem Thema widmet sich der folgende Abschnitt. 22

23 3.5 Zeitpunkt des Hinzufügens der Neuronen Vergleich: Nullneuronen hinzufügen gegen verschiedene Neuronen aufteilen Nullneuronen hinzufügen Teilen (betragsmäßig größter Input) Teilen (größter Input) Teilen (betragsmäßig größter Einfluss) Fehler Zeit in Sekunden Abbildung 3.6: Alle Netze wurden mit 10 Neuronen in einer versteckten Schicht initialisiert und es wurde nach dem gleichen Kriterium entschieden, wann ein Neuron hinzugefügt oder geteilt werden soll. Je Variante wurden fünf unterschiedlich initialisierte Durchläufe gerechnet, wobei sie gleich initialisiert waren wie die der anderen Varianten. In dieser Abbildung sind die Mittelwerte der fünf Durchläufe zu sehen. 3.5 Zeitpunkt des Hinzufügens der Neuronen Der einfachste Ansatz eines Kriteriums, um den Zeitpunkt des Hinzufügens der Neuronen zu bestimmen, ist folgender: Falls die Änderung des Fehlers von einer Epoche zur nächsten unter einen vorgegebenen Wert fällt, wird ein Nullneuron hinzugefügt. Wenn diese Bedingung als einzige Bedingung benutzt wird, fällt beim ersten Training eines neuronalen Netzes auf, dass nach dem ersten Hinzufügen eines Neurons nahezu ohne Unterbrechung neue hinzugefügt werden. Das liegt daran, dass es mehrere Epochen dauern kann, bis das neue Neuron zu einer Verringerung des Fehlers beiträgt. Es ist folglich sinnvoll ein weiteres Kriterium einzubauen, das dafür sorgt, dass zwischen dem Hinzufügen neuer Neuronen ein gewisser Abstand gehalten wird. So hat das neuronale Netz auch mehrere Epochen Zeit, um ein Plateau zu überwinden und einen weiteren Sprung nach unten in der Kostenfunktion zu machen. Da diese Sprünge für größere Netze immer erst nach einer größeren Anzahl an Epochen auftreten, kann man zusätzlich den zeitli- 23

24 3 Einfügen von Neuronen chen Abstand zwischen dem Hinzufügen neuer Neuronen, durch Multiplikation mit der gesamten Anzahl der Neuronen, anwachsen lassen. Mit diesem Kriterium werden, je kleiner der Fehler wird, immer schneller Neuronen hinzugefügt. Das liegt daran, dass der Fehler nicht linear abnehmen kann, sondern sich nur der Null nähern kann. Die absolute Änderung des Fehlers wird somit immer kleiner und das erste Kriterium ist damit dauerhaft erfüllt. Eine erste Idee, dieses Problem zu umgehen, ist es, statt der absoluten Änderung die relative Änderung zum noch vorhandenen Fehler für das Kriterium zu verwenden. Auch mit diesem Kriterium stellt man allerdings fest, dass nach einer größeren Anzahl an Epochen Neuronen zu schnell hinzugefügt werden. Statt einer relativen Änderung kann auch die Änderung des Logarithmus des Fehlers betrachtet werden. Da der Verlauf des Fehlers mit einer logarithmischen y- Skala betrachtet wird, scheint das ein sinnvoller Ansatz zu sein. Tatsächlich führt dieses Kriterium bei den für diese Arbeit gerechneten Durchläufen erst zu einem Hinzufügen von Neuronen, falls die Kostenfunktion konvergiert. Sowohl für das Kriterium der Änderung des logarithmischen Fehlers als auch für das Kriterium des zeitlichen Abstandes zwischen dem Hinzufügen neuer Neuronen wird jeweils ein Parameter benötigt. Diese Parameter geben die Grenze an, ab der Neuronen hinzugefügt werden. Die Parameter wurden mittels einiger Probedurchläufe bestimmt. Dabei ist es nicht nur wichtig darauf zu achten, dass der Fehler möglichst schnell sinken muss, sondern auch, dass mit einer festen Anzahl Neuronen ein möglichst geringer Fehler erreicht wird. Eine mögliche Problematik könnte sein, dass, wenn Neuronen zu schnell hinzugefügt werden, das Netz zwar die Ebene gut approximiert, allerdings nicht sehr effizient. Dadurch würde das Netz sehr langsam werden. Bei den Probedurchläufen wurden 60 verschieden Kombinationen der beiden Parameter getestet. Je Kombination wurden fünf unterschiedlich initialisierte Durchläufe gerechnet und anschließend der Mittelwert dieser gebildet. Die neuronalen Netze besaßen zu Beginn jedoch immer die gleiche Topologie. Jeder einzelne Durchlauf hatte eine Dauer von einer Stunde. In Tabelle 3.1 sind die Mittelwerte der Kostenfunktion am Ende der Durchläufe zu erkennen. Grün steht für kleine Werte der Kostenfunktion und rot für große Werte. In Tabelle 3.2 lässt sich die Komplexität der Netze, nach einer Stunde ablesen. Diese wurde nach Formel (2.3) berechnet. In dieser Tabelle steht grün für eine geringe Komplexität und rot für eine hohe Komplexität. Optimal wären Parameter, für die der Fehler klein ist und die Komplexität möglichst gering. Also beide Werte im grünen Bereich liegen. Wie zu erwarten war, führt sowohl ein großer Abstand zwischen dem Hinzufügen der Neuronen als auch eine hohe Grenze für die logarithmische Fehleränderung zu einem vergleichsweise hohen Fehler. Der Fehler nach einer Stunde ist am geringsten für einen zeitlichen Abstand der neuen Neuronen von 250 Epochen multipliziert mit der Anzahl der Neuronen in der versteckten Schicht und eine Grenze für die Fehleränderung, die beträgt. Mit diesen Parametern ergeben sich jedoch 180 Verbindungen. Mit dem gleichen zeitlichen Abstand beim Hinzufügen der Neuronen und einer Fehlergrenze mit dem Wert ergibt sich ein kaum höherer Fehler. Es werden allerdings nur durchschnittlich 124 Verbindungen benötigt. Wie gut die an dieser Stelle ermittelten 24

25 3.5 Zeitpunkt des Hinzufügens der Neuronen Abstand Fehleränderung Tabelle 3.1: Dargestellt sind die Werte der Kostenfunktion, multipliziert mit Die Werte sind die Ergebnisse eines Mittelwertes von fünf Durchläufen. Jeder Durchlauf dauerte eine Stunde. Abstand Fehleränderung Tabelle 3.2: Dargestellt ist die Anzahl der Verbindungen eines neuronalen Netzes. Diese Anzahl wurden jeweils am Ende eines Durchlaufes berechnet. Die Werte sind die Ergebnisse eines Mittelwertes von fünf Durchläufen. Jeder Durchlauf dauerte eine Stunde. 25

Hannah Wester Juan Jose Gonzalez

Hannah Wester Juan Jose Gonzalez Neuronale Netze Supervised Learning Proseminar Kognitive Robotik (SS12) Hannah Wester Juan Jose Gonzalez Kurze Einführung Warum braucht man Neuronale Netze und insbesondere Supervised Learning? Das Perzeptron

Mehr

Wir haben in den vorherigen Kapiteln verschiedene Verfahren zur Regression und Klassifikation kennengelernt (z.b. lineare Regression, SVMs)

Wir haben in den vorherigen Kapiteln verschiedene Verfahren zur Regression und Klassifikation kennengelernt (z.b. lineare Regression, SVMs) 6. Neuronale Netze Motivation Wir haben in den vorherigen Kapiteln verschiedene Verfahren zur Regression und Klassifikation kennengelernt (z.b. lineare Regression, SVMs) Abstrakt betrachtet sind alle diese

Mehr

Konvergenz von Hopfield-Netzen

Konvergenz von Hopfield-Netzen Matthias Jauernig 1. August 2006 Zusammenfassung Die nachfolgende Betrachtung bezieht sich auf das diskrete Hopfield-Netz und hat das Ziel, die Konvergenz des Verfahrens zu zeigen. Leider wird dieser Beweis

Mehr

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Maschinelles Lernen: Neuronale Netze Ideen der Informatik Kurt Mehlhorn Adrian Neumann 16. Januar 2014 Übersicht Biologische Inspiration Stand der Kunst in Objekterkennung auf Bildern Künstliche Neuronale

Mehr

Neuronale Netze in der Phonetik: Feed-Forward Netze. Pfitzinger, Reichel IPSK, LMU München {hpt 14.

Neuronale Netze in der Phonetik: Feed-Forward Netze. Pfitzinger, Reichel IPSK, LMU München {hpt 14. Neuronale Netze in der Phonetik: Feed-Forward Netze Pfitzinger, Reichel IPSK, LMU München {hpt reichelu}@phonetik.uni-muenchen.de 14. Juli 2006 Inhalt Typisierung nach Aktivierungsfunktion Lernen in einschichtigen

Mehr

Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren. 2013 Thomas Brox, Fabian Kuhn

Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren. 2013 Thomas Brox, Fabian Kuhn Optimierung Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren 1 Minimierung ohne Nebenbedingung Ein Optimierungsproblem besteht aus einer zulässigen Menge und einer Zielfunktion Minimum

Mehr

Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik. 8. Aufgabenblatt

Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik. 8. Aufgabenblatt Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Künstliche Intelligenz: Grundlagen und Anwendungen Albayrak, Fricke (AOT) Oer, Thiel (KI) Wintersemester 2014 / 2015 8. Aufgabenblatt

Mehr

Konzepte der AI Neuronale Netze

Konzepte der AI Neuronale Netze Konzepte der AI Neuronale Netze Franz Wotawa Institut für Informationssysteme, Database and Artificial Intelligence Group, Technische Universität Wien Email: wotawa@dbai.tuwien.ac.at Was sind Neuronale

Mehr

Optimierung für Nichtmathematiker

Optimierung für Nichtmathematiker Optimierung für Nichtmathematiker Prof. Dr. R. Herzog WS2/ / Inhaltsübersicht 3Einführung in die freie Optimierung 4Orakel und Modellfunktionen 5Optimalitätsbedingungen der freien Optimierung 6Das Newton-Verfahren

Mehr

Computational Intelligence 1 / 20. Computational Intelligence Künstliche Neuronale Netze Perzeptron 3 / 20

Computational Intelligence 1 / 20. Computational Intelligence Künstliche Neuronale Netze Perzeptron 3 / 20 Gliederung / Künstliche Neuronale Netze Perzeptron Einschränkungen Netze von Perzeptonen Perzeptron-Lernen Perzeptron Künstliche Neuronale Netze Perzeptron 3 / Der Psychologe und Informatiker Frank Rosenblatt

Mehr

Einfaches Framework für Neuronale Netze

Einfaches Framework für Neuronale Netze Einfaches Framework für Neuronale Netze Christian Silberbauer, IW7, 2007-01-23 Inhaltsverzeichnis 1. Einführung...1 2. Funktionsumfang...1 3. Implementierung...2 4. Erweiterbarkeit des Frameworks...2 5.

Mehr

Künstliche Neuronale Netze

Künstliche Neuronale Netze Inhalt (Biologische) Neuronale Netze Schwellenwertelemente Allgemein Neuronale Netze Mehrschichtiges Perzeptron Weitere Arten Neuronaler Netze 2 Neuronale Netze Bestehend aus vielen Neuronen(menschliches

Mehr

( ) ( ) < b k, 1 k n} (2) < x k

( ) ( ) < b k, 1 k n} (2) < x k Technische Universität Dortmund Fakultät für Mathematik Proseminar Analysis Prof. Dr. Röger Benjamin Czyszczon Satz von Heine Borel Gliederung 1. Zellen und offene Überdeckungen 2. Satz von Heine Borel

Mehr

Thema 3: Radiale Basisfunktionen und RBF- Netze

Thema 3: Radiale Basisfunktionen und RBF- Netze Proseminar: Machine Learning 10 Juli 2006 Thema 3: Radiale Basisfunktionen und RBF- Netze Barbara Rakitsch Zusammenfassung: Aufgabe dieses Vortrags war es, die Grundlagen der RBF-Netze darzustellen 1 Einführung

Mehr

6.4 Neuronale Netze zur Verarbeitung von Zeitreihen

6.4 Neuronale Netze zur Verarbeitung von Zeitreihen 6.4 Neuronale Netze zur Verarbeitung von Zeitreihen Aufgabe: Erlernen einer Zeitreihe x(t + 1) = f(x(t), x(t 1), x(t 2),...) Idee: Verzögerungskette am Eingang eines neuronalen Netzwerks, z.b. eines m-h-1

Mehr

Mustererkennung: Neuronale Netze. D. Schlesinger ()Mustererkennung: Neuronale Netze 1 / 12

Mustererkennung: Neuronale Netze. D. Schlesinger ()Mustererkennung: Neuronale Netze 1 / 12 Mustererkennung: Neuronale Netze D. Schlesinger ()Mustererkennung: Neuronale Netze 1 / 12 Feed-Forward Netze y 1 y 2 y m...... x 1 x 2 x n Output Schicht i max... Zwischenschicht i... Zwischenschicht 1

Mehr

Mathematische Grundlagen der dynamischen Simulation

Mathematische Grundlagen der dynamischen Simulation Mathematische Grundlagen der dynamischen Simulation Dynamische Systeme sind Systeme, die sich verändern. Es geht dabei um eine zeitliche Entwicklung und wie immer in der Informatik betrachten wir dabei

Mehr

Ausgleichsproblem. Definition (1.0.3)

Ausgleichsproblem. Definition (1.0.3) Ausgleichsproblem Definition (1.0.3) Gegeben sind n Wertepaare (x i, y i ), i = 1,..., n mit x i x j für i j. Gesucht ist eine stetige Funktion f, die die Wertepaare bestmöglich annähert, d.h. dass möglichst

Mehr

Nichtlineare Klassifikatoren

Nichtlineare Klassifikatoren Nichtlineare Klassifikatoren Mustererkennung und Klassifikation, Vorlesung No. 11 1 M. O. Franz 12.01.2008 1 falls nicht anders vermerkt, sind die Abbildungen entnommen aus Duda et al., 2001. Übersicht

Mehr

Der Backpropagation-Algorithmus als Beispiel für Lernalgorithmen künstlicher neuronaler Netze Reinhard Eck 1

Der Backpropagation-Algorithmus als Beispiel für Lernalgorithmen künstlicher neuronaler Netze Reinhard Eck 1 Der Backpropagation-Algorithmus als Beispiel für Lernalgorithmen künstlicher neuronaler Netze 2.04.2006 Reinhard Eck Was reizt Informatiker an neuronalen Netzen? Wie funktionieren Gehirne höherer Lebewesen?

Mehr

Kapitel 10. Maschinelles Lernen Lineare Regression. Welche Gerade? Problemstellung. Th. Jahn. Sommersemester 2017

Kapitel 10. Maschinelles Lernen Lineare Regression. Welche Gerade? Problemstellung. Th. Jahn. Sommersemester 2017 10.1 Sommersemester 2017 Problemstellung Welche Gerade? Gegeben sind folgende Messungen: Masse (kg) 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 Kraft (N) 1.6 2.2 3.2 3.0 4.9 5.7 7.1 7.3 8.1 Annahme: Es gibt eine Funktion

Mehr

Künstliche neuronale Netze

Künstliche neuronale Netze Künstliche neuronale Netze Eigenschaften neuronaler Netze: hohe Arbeitsgeschwindigkeit durch Parallelität, Funktionsfähigkeit auch nach Ausfall von Teilen des Netzes, Lernfähigkeit, Möglichkeit zur Generalisierung

Mehr

Schwellenwertelemente. Rudolf Kruse Neuronale Netze 8

Schwellenwertelemente. Rudolf Kruse Neuronale Netze 8 Schwellenwertelemente Rudolf Kruse Neuronale Netze 8 Schwellenwertelemente Ein Schwellenwertelement (Threshold Logic Unit, TLU) ist eine Verarbeitungseinheit für Zahlen mitneingängenx,...,x n und einem

Mehr

Wissensentdeckung in Datenbanken

Wissensentdeckung in Datenbanken Wissensentdeckung in Datenbanken Deep Learning (II) Nico Piatkowski und Uwe Ligges Informatik Künstliche Intelligenz 25.07.2017 1 von 14 Überblick Faltungsnetze Dropout Autoencoder Generative Adversarial

Mehr

Weitere Untersuchungen hinsichtlich der Anwendung von KNN für Solvency 2. Tom Schelthoff

Weitere Untersuchungen hinsichtlich der Anwendung von KNN für Solvency 2. Tom Schelthoff Weitere Untersuchungen hinsichtlich der Anwendung von KNN für Solvency 2 Tom Schelthoff 30.11.2018 Inhaltsverzeichnis Deep Learning Seed-Stabilität Regularisierung Early Stopping Dropout Batch Normalization

Mehr

Technische Universität. Fakultät für Informatik

Technische Universität. Fakultät für Informatik Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik VI Neuronale Netze - Supervised Learning Probleme des Backpropagation-Algorithmus und Alternativen Seminar

Mehr

Künstliche Neuronale Netze

Künstliche Neuronale Netze Künstliche Neuronale Netze als Möglichkeit, einer Maschine das Lesen beizubringen Anja Bachmann 18.12.2008 Gliederung 1. Motivation 2. Grundlagen 2.1 Biologischer Hintergrund 2.2 Künstliche neuronale Netze

Mehr

Grundlagen zu neuronalen Netzen. Kristina Tesch

Grundlagen zu neuronalen Netzen. Kristina Tesch Grundlagen zu neuronalen Netzen Kristina Tesch 03.05.2018 Gliederung 1. Funktionsprinzip von neuronalen Netzen 2. Das XOR-Beispiel 3. Training des neuronalen Netzes 4. Weitere Aspekte Kristina Tesch Grundlagen

Mehr

Adaptive Systeme. Mehrere Neuronen, Assoziative Speicher und Mustererkennung. Prof. Dr. rer. nat. Nikolaus Wulff

Adaptive Systeme. Mehrere Neuronen, Assoziative Speicher und Mustererkennung. Prof. Dr. rer. nat. Nikolaus Wulff Adaptive Systeme Mehrere Neuronen, Assoziative Speicher und Mustererkennung Prof. Dr. rer. nat. Nikolaus Wulff Modell eines Neuron x x 2 x 3. y y= k = n w k x k x n Die n binären Eingangssignale x k {,}

Mehr

Linear nichtseparable Probleme

Linear nichtseparable Probleme Linear nichtseparable Probleme Mustererkennung und Klassifikation, Vorlesung No. 10 1 M. O. Franz 20.12.2007 1 falls nicht anders vermerkt, sind die Abbildungen entnommen aus Duda et al., 2001. Übersicht

Mehr

Das Trust-Region-Verfahren

Das Trust-Region-Verfahren Das Trust-Region-Verfahren Nadine Erath 13. Mai 2013... ist eine Methode der Nichtlinearen Optimierung Ziel ist es, das Minimum der Funktion f : R n R zu bestimmen. 1 Prinzip 1. Ersetzen f(x) durch ein

Mehr

(a), für i = 1,..., n.

(a), für i = 1,..., n. .4 Extremwerte Definition Sei M R n eine Teilmenge, f : M R stetig, a M ein Punkt. f hat in a auf M ein relatives (oder lokales) Maximum bzw. ein relatives (oder lokales) Minimum, wenn es eine offene Umgebung

Mehr

1 Umkehrfunktionen und implizite Funktionen

1 Umkehrfunktionen und implizite Funktionen Mathematik für Physiker III WS 2012/2013 Freitag 211 $Id: implizittexv 18 2012/11/01 20:18:36 hk Exp $ $Id: lagrangetexv 13 2012/11/01 1:24:3 hk Exp hk $ 1 Umkehrfunktionen und implizite Funktionen 13

Mehr

Lineare Funktion. Wolfgang Kippels 3. November Inhaltsverzeichnis

Lineare Funktion. Wolfgang Kippels 3. November Inhaltsverzeichnis Lineare Funktion Wolfgang Kippels. November 0 Inhaltsverzeichnis Grundlegende Zusammenhänge. Aufbau der Linearen Funktion......................... Nullstellenbestimmung............................. Schnittpunktbestimmung............................

Mehr

TD-Gammon. Michael Zilske

TD-Gammon. Michael Zilske TD-Gammon Michael Zilske zilske@inf.fu-berlin.de TD-Gammon Ein Backgammon-Spieler von Gerald Tesauro (Erste Version: 1991) TD-Gammon Ein Neuronales Netz, das immer wieder gegen sich selbst spielt und dadurch

Mehr

( ) Dann gilt f(x) g(x) in der Nähe von x 0, das heisst. Für den Fehler r(h) dieser Näherung erhält man unter Verwendung von ( )

( ) Dann gilt f(x) g(x) in der Nähe von x 0, das heisst. Für den Fehler r(h) dieser Näherung erhält man unter Verwendung von ( ) 64 Die Tangente in x 0 eignet sich also als lokale (lineare) Näherung der Funktion in der Nähe des Punktes P. Oder gibt es eine noch besser approximierende Gerade? Satz 4.9 Unter allen Geraden durch den

Mehr

Neuronale Netze. Anna Wallner. 15. Mai 2007

Neuronale Netze. Anna Wallner. 15. Mai 2007 5. Mai 2007 Inhalt : Motivation Grundlagen Beispiel: XOR Netze mit einer verdeckten Schicht Anpassung des Netzes mit Backpropagation Probleme Beispiel: Klassifikation handgeschriebener Ziffern Rekurrente

Mehr

Interpolation und Approximation von Funktionen

Interpolation und Approximation von Funktionen Kapitel 6 Interpolation und Approximation von Funktionen Bei ökonomischen Anwendungen tritt oft das Problem auf, dass eine analytisch nicht verwendbare (oder auch unbekannte) Funktion f durch eine numerisch

Mehr

HM I Tutorien 6 und 7

HM I Tutorien 6 und 7 HM I Tutorien 6 und 7 Lucas Kunz. Dezember 207 und 8. Dezember 207 Inhaltsverzeichnis Vorwort 2 2 Theorie 2 2. Definition einer Reihe.............................. 2 2.2 Absolute Konvergenz..............................

Mehr

Numerische Ableitung

Numerische Ableitung Numerische Ableitung Die Ableitung kann angenähert werden durch den Differentenquotient: f (x) f(x + h) f(x) h oder f(x + h) f(x h) 2h für h > 0, aber h 0. Beim numerischen Rechnen ist folgendes zu beachten:

Mehr

Finite Elemente Methoden (aus der Sicht des Mathematikers) Alfred Schmidt

Finite Elemente Methoden (aus der Sicht des Mathematikers) Alfred Schmidt Finite Elemente Methoden (aus der Sicht des Mathematikers) Alfred Schmidt Übersicht Partielle Differentialgleichungen, Approximation der Lösung Finite Elemente, lineare und höhere Ansatzfunktionen Dünn

Mehr

Wissensentdeckung in Datenbanken

Wissensentdeckung in Datenbanken Wissensentdeckung in Datenbanken Deep Learning Nico Piatkowski und Uwe Ligges Informatik Künstliche Intelligenz 20.07.2017 1 von 11 Überblick Künstliche Neuronale Netze Motivation Formales Modell Aktivierungsfunktionen

Mehr

6.2 Feed-Forward Netze

6.2 Feed-Forward Netze 6.2 Feed-Forward Netze Wir haben gesehen, dass wir mit neuronalen Netzen bestehend aus einer oder mehreren Schichten von Perzeptren beispielsweise logische Funktionen darstellen können Nun betrachten wir

Mehr

Perzeptronen. Katrin Dust, Felix Oppermann Universität Oldenburg, FK II - Department für Informatik Vortrag im Rahmen des Proseminars 2004

Perzeptronen. Katrin Dust, Felix Oppermann Universität Oldenburg, FK II - Department für Informatik Vortrag im Rahmen des Proseminars 2004 Perzeptronen Katrin Dust, Felix Oppermann Universität Oldenburg, FK II - Department für Informatik Vortrag im Rahmen des Proseminars 2004 1/25 Gliederung Vorbilder Neuron McCulloch-Pitts-Netze Perzeptron

Mehr

2 - Konvergenz und Limes

2 - Konvergenz und Limes Kapitel 2 - Folgen Reihen Seite 1 2 - Konvergenz Limes Definition 2.1 (Folgenkonvergenz) Eine Folge komplexer Zahlen heißt konvergent gegen, wenn es zu jeder positiven Zahl ein gibt, so dass gilt: Die

Mehr

Allgemeine Chemie Computer Praktikum Frühjahrssemester Regressions-Tutorial Lineare und nicht-lineare Regression

Allgemeine Chemie Computer Praktikum Frühjahrssemester Regressions-Tutorial Lineare und nicht-lineare Regression 1 Einführung Allgemeine Chemie Computer Praktikum Frühjahrssemester Regressions-Tutorial Lineare und nicht-lineare Regression Datenauswertung In einem naturwissenschaftlichen Experiment werden Sie meist

Mehr

Lineare Regression. Volker Tresp

Lineare Regression. Volker Tresp Lineare Regression Volker Tresp 1 Die Lernmaschine: Das lineare Modell / ADALINE Wie beim Perzeptron wird zunächst die Aktivierungsfunktion gewichtete Summe der Eingangsgrößen x i berechnet zu h i = M

Mehr

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn Maschinelles Lernen: Neuronale Netze Ideen der Informatik Kurt Mehlhorn 16. Januar 2014, überarbeitet am 20. Januar 2017 Übersicht Stand der Kunst: Bilderverstehen, Go spielen Was ist ein Bild in Rohform?

Mehr

Optimale Steuerung 1

Optimale Steuerung 1 Optimale Steuerung 1 Kapitel 6: Nichtlineare Optimierung unbeschränkter Probleme Prof. Dr.-Ing. Pu Li Fachgebiet Simulation und Optimale Prozesse (SOP) Beispiel: Parameteranpassung für Phasengleichgewicht

Mehr

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 5. Juni 2016 Definition 5.21 Ist a R, a > 0 und a 1, so bezeichnet man die Umkehrfunktion der Exponentialfunktion x a x als

Mehr

Automatische Spracherkennung

Automatische Spracherkennung Automatische Spracherkennung 3 Vertiefung: Drei wichtige Algorithmen Teil 3 Soweit vorhanden ist der jeweils englische Fachbegriff, so wie er in der Fachliteratur verwendet wird, in Klammern angegeben.

Mehr

12. Potentialflächen und Optimierung

12. Potentialflächen und Optimierung Dr. Jens Döbler Computeranwendung in der Chemie Informatik für Chemiker(innen) 12. Potentialflächen und Optimierung Jens Döbler 2004 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL12 Folie

Mehr

kurze Wiederholung der letzten Stunde: Neuronale Netze Dipl.-Inform. Martin Lösch (0721) Dipl.-Inform.

kurze Wiederholung der letzten Stunde: Neuronale Netze Dipl.-Inform. Martin Lösch (0721) Dipl.-Inform. kurze Wiederholung der letzten Stunde: Neuronale Netze martin.loesch@kit.edu (0721) 608 45944 Labor Wissensrepräsentation Aufgaben der letzten Stunde Übersicht Neuronale Netze Motivation Perzeptron Multilayer

Mehr

Statistical Learning

Statistical Learning Statistical Learning M. Gruber KW 42 Rev.1 1 Neuronale Netze Wir folgen [1], Lec 10. Beginnen wir mit einem Beispiel. Beispiel 1 Wir konstruieren einen Klassifikator auf der Menge, dessen Wirkung man in

Mehr

Mathematik für Anwender II

Mathematik für Anwender II Prof. Dr. H. Brenner Osnabrück SS 2012 Mathematik für Anwender II Vorlesung 49 Zu einer reellwertigen Funktion Extrema auf einer offenen Menge G R n interessieren wir uns, wie schon bei einem eindimensionalen

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und

Mehr

Ablauf. 1 Imitationsdynamik. 2 Monotone Auszahlung. 3 Entscheidung gegen iterativ dominierte Strategien. 4 Beste-Antwort-Dynamik 2 / 26

Ablauf. 1 Imitationsdynamik. 2 Monotone Auszahlung. 3 Entscheidung gegen iterativ dominierte Strategien. 4 Beste-Antwort-Dynamik 2 / 26 Spieldynamik Josef Hofbauer and Karl Sigmund: Evolutionary Games and Population Dynamics, Cambridge, Kap. 8 Simon Maurer Saarbrücken, den 13.12.2011 1 / 26 Ablauf 1 Imitationsdynamik 2 Monotone Auszahlung

Mehr

Grundlegende Eigenschaften von Punktschätzern

Grundlegende Eigenschaften von Punktschätzern Grundlegende Eigenschaften von Punktschätzern Worum geht es in diesem Modul? Schätzer als Zufallsvariablen Vorbereitung einer Simulation Verteilung von P-Dach Empirische Lage- und Streuungsparameter zur

Mehr

Local Search Algorithmen 1

Local Search Algorithmen 1 Local Search Algorithmen 1 Seminar über Algorithmen Manuel Gellfart 18.05.2012 Fachbereich Mathematik und Informatik 18.05.2012 2 Gliederung 1. Einleitung 2. Theorie 3. Beispiel: Vertex Cover 4. Beispiel:

Mehr

Das Gradientenverfahren

Das Gradientenverfahren Das Gradientenverfahren - Proseminar: Algorithmen der Nichtlinearen Optimierung - David Beisel December 10, 2012 David Beisel Das Gradientenverfahren December 10, 2012 1 / 28 Gliederung 0 Einführung 1

Mehr

k-nächste-nachbarn-schätzung

k-nächste-nachbarn-schätzung k-nächste-nachbarn-schätzung Mustererkennung und Klassifikation, Vorlesung No. 7 1 M. O. Franz 29.11.2007 1 falls nicht anders vermerkt, sind die Abbildungen entnommen aus Duda et al., 2001. Übersicht

Mehr

Heron-Verfahren. Inhaltsverzeichnis. Beispiel. aus Wikipedia, der freien Enzyklopädie

Heron-Verfahren. Inhaltsverzeichnis. Beispiel. aus Wikipedia, der freien Enzyklopädie 1 of 7 28.05.2010 20:16 Heron-Verfahren aus Wikipedia, der freien Enzyklopädie Das Heron-Verfahren oder babylonische Wurzelziehen ist ein Rechenverfahren zur Berechnung einer Näherung der Quadratwurzel

Mehr

Statistisches Testen

Statistisches Testen Statistisches Testen Grundlegendes Prinzip Erwartungswert Bekannte Varianz Unbekannte Varianz Differenzen Anteilswert Chi-Quadrat Tests Gleichheit von Varianzen Prinzip des Statistischen Tests Konfidenzintervall

Mehr

D-MAVT/D-MATL Analysis I HS 2017 Dr. Andreas Steiger. Lösung - Serie 6. (n+1)!. Daraus folgt, dass e 1/x < (n+

D-MAVT/D-MATL Analysis I HS 2017 Dr. Andreas Steiger. Lösung - Serie 6. (n+1)!. Daraus folgt, dass e 1/x < (n+ D-MAVT/D-MATL Analysis I HS 2017 Dr. Andreas Steiger Lösung - Serie 6 1. MC-Aufgaben (Online-Abgabe) 1. Für alle ganzen Zahlen n 1 gilt... (a) e 1/x = o(x n ) für x 0 + (b) e 1/x = o(x n ) für x 0 + (c)

Mehr

Integraldarstellung des Restgliedes; Lagrangesche Restgliedformel;

Integraldarstellung des Restgliedes; Lagrangesche Restgliedformel; Kapitel Der Satz von Taylor. Taylor-Formel und Taylor-Reihe (Taylor-Polynom; Restglied; Integraldarstellung des Restgliedes; Lagrangesche Restgliedformel; die Klasse C ; reell analytische Funktionen) In

Mehr

Praktische Optimierung

Praktische Optimierung Wintersemester 27/8 Praktische Optimierung (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl für Algorithm Engineering Metamodellierung Inhalt Multilayer-Perceptron (MLP) Radiale Basisfunktionsnetze

Mehr

Übungen zu Splines Lösungen zu Übung 20

Übungen zu Splines Lösungen zu Übung 20 Übungen zu Splines Lösungen zu Übung 20 20.1 Gegeben seien in der (x, y)-ebene die 1 Punkte: x i 6 5 4 2 1 0 1 2 4 5 6 y i 1 1 1 1 1 + 5 1 + 8 4 1 + 8 1 + 5 1 1 1 1 (a) Skizzieren Sie diese Punkte. (b)

Mehr

Aufgabe 1 Probabilistische Inferenz

Aufgabe 1 Probabilistische Inferenz Seite 1 von 8 Aufgabe 1 Probabilistische Inferenz (32 Punkte) In einer medizinischen Studie werden zwei Tests zur Diagnose von Leberschäden verglichen. Dabei wurde folgendes festgestellt: Test 1 erkennt

Mehr

Modellierung von Straßenverkehr. 1 Schwerpunkte der Vorlesung. 2 Übung: Implementierung von Modell 2

Modellierung von Straßenverkehr. 1 Schwerpunkte der Vorlesung. 2 Übung: Implementierung von Modell 2 Institut für Geometrie und Praktische Mathematik Modellierung und Simulation WS 2008/9 Prof. Dr. Sebastian Noelle Dipl. Math. Vitaliy Pasyuga Dipl. Math. Roland Schäfer Übung 3 Modellierung von Straßenverkehr

Mehr

5.3.5 Abstiegs & Gradientenverfahren

5.3.5 Abstiegs & Gradientenverfahren 5.3 Iterative Lösungsverfahren für lineare Gleichungssysteme 5.3.5 Abstiegs & Gradientenverfahren Die bisher kennengelernten Iterationsverfahren zur Approximation von linearen Gleichungssystemen haben

Mehr

4. Übungsblatt zur Mathematik II für Inf, WInf

4. Übungsblatt zur Mathematik II für Inf, WInf Fachbereich Mathematik Prof Dr Streicher Dr Sergiy Nesenenko Pavol Safarik SS 010 11 15 Mai 4 Übungsblatt zur Mathematik II für Inf, WInf Gruppenübung Aufgabe G13 (Basistransformation) ( ) 15 05 Die lineare

Mehr

$Id: reihen.tex,v /06/12 10:59:50 hk Exp $ unendliche Summe. a 1 + a 2 + a 3 +.

$Id: reihen.tex,v /06/12 10:59:50 hk Exp $ unendliche Summe. a 1 + a 2 + a 3 +. Mathematik für Informatiker B, SS 202 Dienstag 2.6 $Id: reihen.tex,v.8 202/06/2 0:59:50 hk Exp $ 7 Reihen Eine Reihe ist eine unendliche Summe a + a 2 + a 3 +. Die Summanden a i können dabei reell oder

Mehr

Reinforcement Learning

Reinforcement Learning Reinforcement Learning 1. Allgemein Reinforcement Learning 2. Neuronales Netz als Bewertungsfunktion 3. Neuronales Netz als Reinforcement Learning Nils-Olaf Bösch 1 Allgemein Reinforcement Learning Unterschied

Mehr

Lineare Funktion. Wolfgang Kippels 21. März 2011

Lineare Funktion. Wolfgang Kippels 21. März 2011 Lineare Funktion Wolfgang Kippels. März 0 Inhaltsverzeichnis Grundlegende Zusammenhänge. Aufbau der Linearen Funktion......................... Nullstellenbestimmung............................. Schnittpunktbestimmung............................

Mehr

Polynome. Ein Term der Form. mit n und a 0 heißt Polynom. Die Zahlen a, a, a,... heißen Koeffizienten des Polynoms.

Polynome. Ein Term der Form. mit n und a 0 heißt Polynom. Die Zahlen a, a, a,... heißen Koeffizienten des Polynoms. Polynome Ein Term der Form a x + a x + a x + a x +... + a x + a x + a n n 1 n 2 n 3 2 1 2 3 4 n 2 n 1 n mit n und a 0 heißt Polynom. 1 Die Zahlen a, a, a,... heißen Koeffizienten des Polynoms. 1 2 3 Als

Mehr

Entwicklung einer hp-fast-multipole-

Entwicklung einer hp-fast-multipole- Entwicklung einer hp-fast-multipole- Boundary-Elemente-Methode Übersicht: 1. Motivation 2. Theoretische Grundlagen a) Boundary-Elemente-Methode b) Fast-Multipole-Methode 3. Erweiterungen a) Elementordnung

Mehr

Kapitel 2. Mittelwerte

Kapitel 2. Mittelwerte Kapitel 2. Mittelwerte Im Zusammenhang mit dem Begriff der Verteilung, der im ersten Kapitel eingeführt wurde, taucht häufig die Frage auf, wie man die vorliegenden Daten durch eine geeignete Größe repräsentieren

Mehr

Wenn man den Kreis mit Radius 1 um (0, 0) beschreiben möchte, dann ist. (x, y) ; x 2 + y 2 = 1 }

Wenn man den Kreis mit Radius 1 um (0, 0) beschreiben möchte, dann ist. (x, y) ; x 2 + y 2 = 1 } A Analsis, Woche Implizite Funktionen A Implizite Funktionen in D A3 Wenn man den Kreis mit Radius um, beschreiben möchte, dann ist { x, ; x + = } eine Möglichkeit Oft ist es bequemer, so eine Figur oder

Mehr

Wahrscheinlichkeitsverteilungen

Wahrscheinlichkeitsverteilungen Universität Bielefeld 3. Mai 2005 Wahrscheinlichkeitsrechnung Wahrscheinlichkeitsrechnung Das Ziehen einer Stichprobe ist die Realisierung eines Zufallsexperimentes. Die Wahrscheinlichkeitsrechnung betrachtet

Mehr

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl Westfälische Wilhelms-Universität Münster Mathematik Sommersemester 2017 Seminar: Verschlüsselungs- und Codierungstheorie Leitung: Thomas Timmermann 1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

Mehr

x, y 2 f(x)g(x) dµ(x). Es ist leicht nachzuprüfen, dass die x 2 setzen. Dann liefert (5.1) n=1 x ny n bzw. f, g = Ω

x, y 2 f(x)g(x) dµ(x). Es ist leicht nachzuprüfen, dass die x 2 setzen. Dann liefert (5.1) n=1 x ny n bzw. f, g = Ω 5. Hilberträume Definition 5.1. Sei H ein komplexer Vektorraum. Eine Abbildung, : H H C heißt Skalarprodukt (oder inneres Produkt) auf H, wenn für alle x, y, z H, α C 1) x, x 0 und x, x = 0 x = 0; ) x,

Mehr

Klassifikationsverfahren und Neuronale Netze

Klassifikationsverfahren und Neuronale Netze Klassifikationsverfahren und Neuronale Netze Hauptseminar - Methoden der experimentellen Teilchenphysik Thomas Keck 9.12.2011 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Vorbemerkungen. Die Programmieroberfläche des ClassPad

Vorbemerkungen. Die Programmieroberfläche des ClassPad Vorbemerkungen Erfahrungen zeigen, dass die Programmiermöglichkeiten des ClassPad im Unterricht kaum genutzt werden. Dabei bieten aus unserer Sicht viele Situationen die Gelegenheit, die Programmieroberfläche

Mehr

Polynomiale Regression lässt sich mittels einer Transformation der Merkmale auf multiple lineare Regression zurückführen

Polynomiale Regression lässt sich mittels einer Transformation der Merkmale auf multiple lineare Regression zurückführen Rückblick Polynomiale Regression lässt sich mittels einer Transformation der Merkmale auf multiple lineare Regression zurückführen Ridge Regression vermeidet Überanpassung, indem einfachere Modelle mit

Mehr

Neural Networks: Architectures and Applications for NLP

Neural Networks: Architectures and Applications for NLP Neural Networks: Architectures and Applications for NLP Session 02 Julia Kreutzer 8. November 2016 Institut für Computerlinguistik, Heidelberg 1 Overview 1. Recap 2. Backpropagation 3. Ausblick 2 Recap

Mehr

3.1 Sukzessive Minima und reduzierte Basen: Resultate

3.1 Sukzessive Minima und reduzierte Basen: Resultate Gitter und Codes c Rudolf Scharlau 4. Juni 2009 202 3.1 Sukzessive Minima und reduzierte Basen: Resultate In diesem Abschnitt behandeln wir die Existenz von kurzen Basen, das sind Basen eines Gitters,

Mehr

Ein selbstmodellierendes System für die Wasserwirtschaft

Ein selbstmodellierendes System für die Wasserwirtschaft Ein selbstmodellierendes System für die Wasserwirtschaft Dipl.-Ing. Dr. ANDRADE-LEAL Wien, im Juli 2001 1 Einleitung, Motivation und Voraussetzungen Künstliche Intelligenz Neuronale Netze Experte Systeme

Mehr

TP2: Elektrodynamik WS Arbeitsblatt 10 21/ Dipole und Multipole in stationären Feldern

TP2: Elektrodynamik WS Arbeitsblatt 10 21/ Dipole und Multipole in stationären Feldern TP2: Elektrodynamik WS 2017-2018 Arbeitsblatt 10 21/22.12. 2017 Dipole und Multipole in stationären Feldern Die Multipolentwicklung ist eine hilfreiche Näherung zur Lösung der Poisson Gleichung, wenn eine

Mehr

Schleifeninvarianten. Dezimal zu Binär

Schleifeninvarianten. Dezimal zu Binär Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann

Mehr

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn Maschinelles Lernen: Neuronale Netze Ideen der Informatik Kurt Mehlhorn 16. Januar 2014, überarbeitet am 20. Januar 2017 Übersicht Stand der Kunst: Bilderverstehen, Go spielen Was ist ein Bild in Rohform?

Mehr

2.4.4 Die Fraktale Dimension

2.4.4 Die Fraktale Dimension 2.4.4 Die Fraktale Dimension Ausgehend vom euklidischen Dimensionsbegriff (Punkt = 0, Linie = 1, Fläche = 2...) lässt sich einem fraktalen Gebilde eine fraktale Dimension d f zuordnen. Wir verwenden die

Mehr

Hypothesen: Fehler 1. und 2. Art, Power eines statistischen Tests

Hypothesen: Fehler 1. und 2. Art, Power eines statistischen Tests ue biostatistik: hypothesen, fehler 1. und. art, power 1/8 h. lettner / physik Hypothesen: Fehler 1. und. Art, Power eines statistischen Tests Die äußerst wichtige Tabelle über die Zusammenhänge zwischen

Mehr

Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff

Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff Adaptive Systeme Evolutionäre Algorithmen: Überlebenskampf und Evolutionäre Strategien Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff Überblick Einleitung Adaptive Filter Künstliche

Mehr

Partialbruchzerlegung

Partialbruchzerlegung Partialbruchzerlegung Lucas Kunz 27. Januar 207 Inhaltsverzeichnis Theorie 2. Definition.................................... 2.2 Nullstellen höheren Grades........................... 2.3 Residuen-Formel................................

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte

Mehr

5 Interpolation und Approximation

5 Interpolation und Approximation 5 Interpolation und Approximation Problemstellung: Es soll eine Funktion f(x) approximiert werden, von der die Funktionswerte nur an diskreten Stellen bekannt sind. 5. Das Interpolationspolynom y y = P(x)

Mehr

19.2 Mittelwertsatz der Differentialrechnung

19.2 Mittelwertsatz der Differentialrechnung 19 Mittelwertsätze der Differentialrechnung mit Anwendungen 19.1 Satz von Rolle 19.2 Mittelwertsatz der Differentialrechnung 19.4 Globaler Wachstumssatz 19.6 Verallgemeinerter Mittelwertsatz der Differentialrechnung

Mehr