Inhaltsverzeichnis

Werbung
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Fallstudienarbeit
Hochschule für Oekonomie & Management
Münsterwarning.png?Münster? gehört nicht zu den möglichen Werten dieses Attributs
Standort:
(München, Marl, Köln, Hamburg, Frankfurt a. M., Essen, Düsseldorf, Duisburg,
Dortmund, Bonn, Bremen, Berlin, Neuss, Nürnberg, Siegen, Stuttgart).
Studiengang:
Bachelor Wirtschaftsinformatik
Veranstaltung:
Fallstudie / Wissenschaftliches Arbeiten
Betreuer:
Prof._Dr._Uwe_Kern
Typ:
Fallstudienarbeit
Themengebiet:
Machine Learning
Autor(en):
Felix Klostermann, Kristoffer Mills, Jörg Hunnekuhl, Eva-Maria Schwarzmeier
Studienzeitmodell:
Abendstudium
Semesterbezeichnung: SS16
Studiensemester:
2
Bearbeitungsstatus:
begutachtet
Prüfungstermin:
11.6.2016
Abgabetermin:
5.6.2016
Hochschule:
Inhaltsverzeichnis
• 1 Einleitung
♦ 1.1 Einführung in die Thematik
♦ 1.2 Zielsetzung der Arbeit
♦ 1.3 Methodischer Aufbau
• 2 Grundlagen
♦ 2.1 Maschinelles Lernen
♦ 2.2 Einordnung des überwachten Lernens in das
maschinelle Lernen
♦ 2.3 Abgrenzung überwachtes und teil-überwachtes
Lernen
♦ 2.4 Konzepte des überwachten Lernens
◊ 2.4.1 Klassifikation
◊ 2.4.2 Regression
• 3 Klassifikation mit künstlichen neuronalen Netzen
♦ 3.1 Grundlagen künstlicher neuronaler Netze
♦ 3.2 Aktivierungsfunktionen
♦ 3.3 Topologien neuronaler Netze
◊ 3.3.1 Feedforward-Netze (Pattern
Association)
◊ 3.3.2 Rekurrente Netze
♦ 3.4 Lernregeln
◊ 3.4.1 Hebbsche-Regel
◊ 3.4.2 Delta-Regel
◊ 3.4.3 Backpropagation-Regel
• 4 Anwendungsbeispiel
♦ 4.1 Neuronale Netze zur Erkennung
handgeschriebener Zahlen
♦ 4.2 MNIST Datenbank für handgeschriebene Zahlen
♦ 4.3 Implementierung des neuronalen Netzes
Inhaltsverzeichnis
1
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
• 5 Schlussbetrachtung
♦ 5.1 Zusammenfassung
♦ 5.2 Ausblick
• 6 Anhang
♦ 6.1 Fußnoten
♦ 6.2 Literatur und Quellenverzeichnis
♦ 6.3 Abbildungsverzeichnis
♦ 6.4 Abkürzungsverzeichnis
1 Einleitung
Die nachfolgende Arbeit behandelt die Grundlagen des Maschinellen Lernens und belegt diese anhand
beispielhafter Erörterung eines praxisbezogenen Anwendungsbeispiels.
1.1 Einführung in die Thematik
Die Computertechnologie erreicht einen Level an Anforderungen, welcher über das reguläre Abarbeiten von
simplen Rechen- Operationen und Aufgaben übersteigt. Die Technologie, die dem Anwender oder der Industrie
zur Verfügung gestellt wird, darf nicht mehr nur das tun, was kleinschrittig definiert wird, sondern muss
mittlerweile in der Lage sein, Lösungswege selbstständig zu erarbeiten oder gar effizienter zu gestalten. Ein
Computer war jedoch bisher nur ein Werkzeug, welches dazu konzipiert wurde um genau dies, also das
schrittwiese Abarbeiten vordefinierter Prozess- und Rechenschritte, auszuführen. Der Mensch hingegen ist dazu
in der Lage komplexe Zusammenhänge zu verstehen und zu analysieren. Das erlernte Wissen über den
verstandenen, komplexen Zusammenhang kann nahezu problemlos auf neue Situationen transferiert werden. Was
unterscheidet die Art und Weise, wie ein Mensch diese Zusammenhänge herstellt, adaptiert und auf neue
Situationen überträgt, von der Grundsätzlichen Methodik, die von Computersysteme verwendet wird? Wie kann
also einem Computersystem die Fähigkeit vermittelt werden, zu lernen wie ein richtiger Mensch? Diese Fragen
sind nicht neu oder revolutionär. Denn mit dieser Thematik haben sich bereits viele Wissenschaftler
auseinandergesetzt und haben diese Technologien bereits so weit entwickelt, dass diese bereits für den
gewöhnlichen User zur Verfügung stehen.
Es haben sich in der Vergangenheit verschiedenste Methoden hervorgetan, die es Computersystemen ermöglichen
komplexe Zusammenhänge zu verstehen und auf neue, unbekannte Situationen zu übertragen. Der Begriff unter
welchem diese Methoden zusammengefasst werden heißt ?Machine Learning? und ist ein fester Bestandteil der
Künstlichen Intelligenz. Machine Learning umfasst im weitesten Sinne nicht nur das Lernen bestimmter
Situationen, sondern bietet zudem die Möglichkeit das Wissen über den Umgang mit dieser bestimmten Situation
auf weitere, noch unbekannte Situation zu Übertragen. Dies wird im folgenden auch Generalisierung von Wissen
genannt. Wie kann jedoch dieses Wissen von den Computersystemen generalisiert werden? Wie werden die
Methoden des Überwachten Lernens in die Praxis überführt und angewandt?
1.2 Zielsetzung der Arbeit
Das Ziel dieser Arbeit ist es die obig gestellten Fragen zu beantworten, indem die Zusammenhänge des
Maschinellen Lernens, respektive des Überwachten Lernens definiert werden und von anderen Methoden unter
der Künstlichen Intelligenz abzugrenzen. Die Frage, wie Computersysteme Wissen generalisieren können und
somit die Fähigkeit erlangen dieses Wissen auf neue Situationen zu adaptieren, wird im weiteren Verlaufe dieser
Facharbeit erörtert. Das Überwachte lernen wird gegenüber dem unüberwachten- oder gar dem halb überwachten
1 Einleitung
2
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Lernen abgegrenzt. Diese werden jedoch nur zu Zwecken der Abgrenzung kurz erläutert, jedoch nicht vertieft.
Die Methoden des Überwachten Lernens werden folglich in einem Anwendungsbeispiel, der Erkennung von
Handschriftlichen Zeichen, aufgenommen und anhand der praktischen Umsetzung erläutert.
1.3 Methodischer Aufbau
Zunächst werden die theoretischen Grundlagen des Maschinellen Lernens erläutert und dessen Bestandteile
untereinander abgegrenzt. Jedes Kapitel baut semantisch aufeinander auf und vertieft die jeweiligen Theoremen.
So werden beispielsweise die Grundlagen des überwachten Lernens erläutert. Darauf aufbauend werden die
Neuronalen Netze vertieft, indem sämtliche Bestandteile und Regularien erklärt und zu Alternativen abgegrenzt
werden. Erklärungen der Theorie erfüllen den Zweck, das vorgestellte Anwendungsbeispiel ohne Hinzunahme
weiterer Fachlektüre zu verstehen.
2 Grundlagen
2.1 Maschinelles Lernen
Das maschinelle Lernen ist die computergestützte Modellierung und Realisierung von Lernphänomenen. Sie
beschäftigt sich mit der Gewinnung von Wissen durch die Analyse von großen Datenmengen.[1] Das maschinelle
Lernen findet Anwendung in zwei großen Feldern der Informatik:
Ein großes Teilgebiet ist das Data Mining. Der Begriff Data Mining hängt mit dem Bergbau zusammen. Im
Bergbau sind große Mengen Steine und Erde aus den Minen befördert worden, um nach der Verarbeitung an die
geringen Mengen des wertvollen Materials zu gelangen. Beim Data Mining werden große Mengen an Daten
gesammelt. Diese Daten werden analysiert und mithilfe des maschinellen Lernens auf Muster und
Regelmäßigkeiten untersucht. Die daraus entstehenden Muster sollen helfen, Prozesse oder Aktionen zu verstehen
und Vorhersagen zu treffen. Data Mining wird besonders häufig im Bereich des Online- und Versandhandels
eingesetzt. Bei dem wird davon ausgegangen, dass sich das Kaufverhalten eines Kunden nach der Datenerhebung
nicht wesentlich verändern wird. Mithilfe dieser Daten und dieser Annahme werden dem Kunden folglich Artikel
vorgeschlagen, die von anderen Kunden angesehen oder gekauft wurden, die sich ebenfalls für die gleichen
Artikel interessiert haben, wie der Kunde selbst. Die Verbindung zwischen diesen Kunden besteht nur darin, dass
im Verlaufe des Einkaufs ähnliche Artikel angeklickt worden sind.[2]
Das Anwendungsgebiet, um das es hauptsächlich in dieser Arbeit gehen wird, ist das maschinelle Lernen als Teil
der künstlichen Intelligenz. Hierzu formuliert Alpaydin Um von Intelligenz sprechen zu können, muss ein System
in einer sich verändernden Umwelt in der Lage sein, zu lernen. Wenn das System lernen und sich an derlei
Veränderungen anpassen kann, muss der Systementwickler nicht jede erdenkliche Situation vorhersehen und eine
jeweils angemessene Lösung bereitstellen.[3]
In Programmen, die ohne die Fähigkeiten des maschinellen Lernens arbeiten, können falsche Eingaben oder nicht
vorhergesehene Aktionen diese im schlimmsten Fall zum Absturz bringen. Das System kann nicht selbstständig
auf diese Fehler reagieren. Die Programmierer müssen aktiv werden und aufgetretene Probleme aufwändig
analysieren und Lösungen schaffen. Programme können nicht wie die Programmierer auf gesammelte
Erfahrungen zurückgreifen, um anhand dieser zu experimentieren um eine Lösung zu finden. Im Gegensatz zu
diesen Computerprogrammen bringt die menschliche Intelligenz die benötigten Eigenschaften mit. Die natürliche
Intelligenz gibt dem Menschen die Möglichkeit zu lernen. Dies klingt zunächst noch nicht anspruchsvoll. Es fällt
schwer, das selbstverständliche und intuitive Verständnis des Lernens kurz und präzise in Worte zu fassen. Eine
1.2 Zielsetzung der Arbeit
3
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
klassische Definition des Lernens stammt von Herbert Simon: Lernen ist jeder Vorgang, der ein System in die
Lage versetzt, bei der zukünftigen Bearbeitung derselben oder einer ähnlichen Aufgabe diese besser zu
erledigen.[4]
Diese Definition wird von Ryszard S. Michalski als unvollständig kritisiert, da es unbewusstes Lernen ohne ein
vordefiniertes Ziel geben kann. Es kann zum Beispiel sein, dass man bei einem Spaziergang an einer Bibliothek
vorbeikommt und später noch weiß wo sich diese befindet, obwohl nie das Vorhaben darin bestand diese zu
besuchen. Michalski umschreibt es wie folgt:
[Lernen ist] Wissen [und Erfahrungen] aufzunehmen, daraus neue Fähigkeiten zu entwickeln oder bereits
erlernte Fähigkeiten anhand des neuen Wissens zu optimieren und diese in der Praxis anzuwenden.[5]
Wie bereits erwähnt, funktioniert das maschinelle Lernen anders als das menschliche. Wolfgang Ertel stellt dies
anhand eines Beispiels verständlich dar. (Er beschreibt den Unterschied des Lernens von Mensch und Maschine.)
Während dem Menschen das Lernen von Vokabeln einer Fremdsprache oder das Auswendiglernen eines
Gedichtes schwer fallen, ist dies für den Computer unproblematisch. Die Vokabeln oder das Gedicht werden in
einer Datei oder Datenbank abgelegt und können so immer wieder abgerufen werden. Schwierig für den
Computer wird dieses Verhalten, wenn es um mathematische Fertigkeiten geht. Dies fängt schon beim Addieren
zweier natürlicher Zahlen an. Würde das System versuchen, dies über das Auswendiglernen zu lösen, würde das
bedeuten, dass für jede Berechnung die beiden Summanden und die Summe gespeichert werden müssten. Es
müssten für jede mögliche Zahlenkombination die drei Werte gespeichert werden. Allein bei den natürlichen
Zahlen würde es zu einer unendlichen Anzahl an Werten kommen.
Es ist zu bedenken, dass es sich hierbei nur um natürliche Zahlen und eine der Grundrechenarten handelt. In der
Realität erklärt der Lehrer, wie die Addition funktioniert und lässt es die Schüler mit Hilfe von Beispielen so
lange üben, bis diese in der Lage sind, das Gelernte auf unbekannte Beispiele anzuwenden ohne dabei Fehler zu
machen. Nach der Lerneinheit sollen die Schüler in der Lage sein, ihr Wissen auf jedes ähnliche unbekannte
Beispiel anzuwenden. Diesen Prozess der Anwendung von Wissen und Erfahrungen auf unbekannte Beispiele
bezeichnet man als Generalisierung.[6]
Die Generalisierung oder Klassifizierung ist der Hauptprozess des maschinellen Lernens. Im Bereich des
maschinellen Lernens werden die Schüler als Agenten bezeichnet. Es sind Algorithmen, welche Eingaben
verarbeiten, die Generalisierungen vornehmen und entsprechende Ausgaben liefern. Es gibt verschiedene Agenten
wie beispielsweise Software und Hardware Agenten, kosten- oder zielorientierte Agenten und lernfähige Agenten.
Schwerpunkt dieser Arbeit sind lernfähige Softwareagenten. Softwareagenten bestehen aus Programmen, die aus
Eingaben Ergebnisse berechnen und diese wieder ausgeben.[7] Als lernfähige Agenten werden Agenten
bezeichnet, die anhand von Trainingsbeispielen erfolgreicher Aktionen oder durch positives oder negatives
Feedback auf die Aktionen in der Lage sind, sich selbst so zu verändern, dass der mittlere Nutzen ihrer Aktionen
im Laufe der Zeit wächst.[8] Es gibt verschiedene Techniken um einem Agenten etwas beizubringen und ihn zu
verbessern. Welche Technik genutzt wird hängt davon ab, welche Komponente verbessert werden soll, welches
Wissen der Agent bereits besitzt, in welcher Form die Daten und Komponenten zur Verfügung stehen und
welches Feedback verfügbar ist, von dem gelernt werden kann. Das Feedback wird in drei Typen unterschieden.
Es gibt das überwachte Lernen, bei dem als Feedback die korrekte Antwort auf die Beispieleingaben bereitgestellt
wird. Beim unüberwachten Lernen sucht der Agent nach Mustern in den Eingabedaten, gibt aber kein explizites
Feedback. Beim verstärkenden Lernen bekommt der Agent als Feedback eine Verstärkung in Form einer
Belohnung oder Bestrafung. Die Grenze zwischen den drei Typen ist in der Praxis schwer zu ziehen, deshalb wird
eine Mischung der Typen als halb überwachtes Lernen bezeichnet.[9]
Das Lernen der Agenten ist die Erarbeitung eines Klassifikationsmodells anhand einer klassifizierten
(überwachtes Lernen) oder unklassifizierten (unüberwachtes Lernen) Stichprobe. Die Zuordnung der Attribute
aus der Stichprobe zu Klassen wird Klassifikation genannt. Die Objekte der klassifizierten Stichproben liefern
2.1 Maschinelles Lernen
4
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
dem Agenten neben den Attributswerten auch Kennzeichen welcher Klasse diese zuzuordnen sind. Im Gegensatz
dazu liefert die unklassifizierte Stichprobe nur die Attributswerte mit und der Agent soll Häufungen von gleichen
bzw. ähnlichen Daten finden um eine Strukturierung vorzunehmen. Die Erarbeitung der Struktur nennt sich
Clustering.[10]
Der Agent muss anhand des bereits Gelernten eine Klassifikation der Attributswerte vornehmen. Das Lernen ist
ein kontinuierlicher, iterativer Prozess und soll nach der Trainings- und Testphase die Performanz des Agenten
verbessern und zur Optimierung der Erledigung von Aufgaben beitragen.
2.2 Einordnung des überwachten Lernens in das maschinelle Lernen
Abbildung 2.2.-1: Prozess der Klassifikation
Das überwachte Lernen (supervised learning) ist unbestritten die populärste, am häufigsten betrachtete und auch
am häufigsten genutzte Lernaufgabe des Maschinellen Lernens[11] Das Ziel des überwachten Lernens ist es,
mithilfe eines vorher gelehrten Klassifizierungsmodells die Klassen neuer unbekannter Daten vorhersagen zu
können. Damit dieses Ziel erreicht werden kann, muss der Algorithmus aus Trainings- und Testwerten die
Klassen bilden und so ein Klassifikationsmodell erstellen. Bei dieser Lernaufgabe wird vor dem Training eine
Trainingsmenge zum Lernen und eine Testmenge zum Prüfen festgelegt. Bei beiden Mengen ist es wichtig, dass
sie eine angemessene Stichprobe in qualitativer und quantitativer Hinsicht für die zu lernende Aufgabe darstellen.
Die Trainings- und Testmenge besteht aus einer Anzahl n Datenpaaren von Eingabe- und Ausgabewerten:
(x1,y1),(x2,y2),?(xn,yn)
Dabei handelt es sich um Attribute und Vorhersageattribute. Für Training und Test sind x und y bekannt und
werden zum Trainieren und Evaluieren benötigt. Die Trainingsmenge besteht aus (Erfahrungs-)Daten, die vom
Lehrenden ausgewählt werden und das Wissen, von dem der Agent lernen soll.[12] Aus den Trainingsobjekten
wird ein Klassifikationsmodell gebildet, mit dessen Hilfe zukünftige unbekannte Daten automatisch klassifiziert
werden sollen. Damit ein effektives Klassifikationsmodell entstehen kann, müssen passende Attribute gesucht und
deren Fähigkeit zur Klassifizierung bewertet werden. Anschließend wird die gewünschte Anzahl der am besten
bewerteten Attribute als Trainings- bzw. Testmenge ausgewählt.[13] Der y-Wert, also der Ergebniswert, ist in den
Trainings- und Testdaten bereits bekannt, die Datenpaare werden in den Lernalgorithmus gegeben und Die
Eingabewerte mithilfe der Ausgabewerte klassifiziert. Jedes y, welches in den Lernalgorithmus gegeben wird,
wird vom Lehrer vorgegeben. Für den Algorithmus ist h aus einer unbekannten Funktion f generiert worden y =
f(x). Da die Funktion f(x) dem System völlig unbekannt ist, versucht es, eine Funktion h zu finden, die sich der
Funktion f so weit wie möglich annähert. Die Funktion h wird als Hypothese bezeichnet. Um prüfen und bewerten
2.2 Einordnung des überwachten Lernens in das maschinelle Lernen
5
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
zu können, wie gut die gefundenen Hypothesen sind, also wie gut der Agent gelernt hat und mithilfe des
Klassifizierungsmodells die neuen Daten generalisieren kann, werden in den Agenten nun die Trainingsdaten
eingegeben. Die Beispiele der Testdaten müssen sich dabei von denen der Trainingsdaten unterscheiden. Somit
kann geprüft werden, ob die ermittelte Hypothese gut verallgemeinert. Das bedeutet, es existieren x und y Werte.
In der Testphase werden die y Werte nicht in den Algorithmus gegeben, sondern sie werden zum Vergleichen des
gelieferten Ergebnisses verwendet. Über das eingegebene x sucht der Algorithmus, in dem während des Tests
gebildeten Klassifizierungsmodell nach möglichen Hypothesen, um ein zufriedenstellendes Ergebnis
zurückzuliefern. Der Lehrer des Algorithmus gibt nach Ausgabe des Ergebnisses unmittelbar Feedback, ob dieses
richtig oder falsch war. Der Algorithmus hat eine Hypothese gut verallgemeinert, wenn das Ergebnis y eines
unbekannten Beispiels richtig vorhergesagt worden ist. Starke Abweichungen hingegen ergeben eine geringe
Klassifikationsgenauigkeit. [14] Dieser Prozess der Klassifizierung ist in Abbildung 2.2-1 grafisch dargestellt.
Abhängig von der Zugehörigkeit der Ausgabe y zu einer Wertemenge wird das Lernproblem als Klassifizierung
oder Regression bezeichnet. Auf diese wird in einem folgenden Teil dieser Arbeit näher eingegangen. Bekannte
Anwendungsgebiete sind die Spracherkennung, die maschinelle Übersetzung oder die Klassifizierung von
E-Mails in Spam und Nicht-Spam.
Die Techniken des überwachten Lernens sind beispielsweise Entscheidungsbäume, Nearest Neighbour-Methoden
und neuronale Netze.
Die Nearest Neighbour Methode, im folgenden auch NN-Methode genannt, Klassifiziert Daten nach dem
nächsten gefundenen Wert. Es handelt sich dabei um eine Methode des Eager Learnings, also des faulen Lernens.
Da die Daten beim Eager Learning anhand vorgegebener Trainingsdaten lernt, die gespeichert werden um
anlehnend an diese Daten Entscheidungen zu treffen, wird dieses vorgehen Memory based Learning bezeichnet.
Betrachtet wird beispielhaft einen Arzt, welcher bei einem schwerwiegenden Fall eine Diagnose treffen muss. Der
Arzt stellt eine Vermutung an, die auf Grundlage bereits bekannter Fälle basiert, die ein ähnliches Muster
abzeichnen. Dies entspricht nahezu exakt der Vorgehensweise der Nearest Neighbour Methode. Das System baut
durch Trainingsdaten einen Wissensstand auf und kann gleiche Fälle problemlos und effizient genau nach dem
trainierten Muster abbilden. Werden nun neue Daten hinzugefügt, die klassifiziert werden müssen, wird
betrachtet, welchem Wert dieser am nähesten ist. Der neue Wert übernimmt die Klasse des Vergleichswerts. In
manchen Fällen werden neue Daten allerdings falsch klassifiziert, wenn beispielsweise als Vergleichswert ein
Statistischer Ausreißer zugrunde liegt. Siehe Abbildung 2.2.-2.
Abbildung 2.2.-2: Nearest Neighbour Methode - Fehler durch Ausreißer
Der Rot markierte Punkt sollte eindeutig negativ bewertet werden. Durch die nähe zu dem Ausreißer wird jedoch
fälschlicherweise ein positiver wert angenommen. Die NN-Methode ist besonders für die Klassifizierung von
Daten geeignet, die ein hohes Maß an Approximation erfordern. Jedoch sollte diese Methode nicht angewandt
werden, wenn die Daten in hohen Frequenzen abgefragt werden, da der Rechenvorgang mit zunehmender Menge
an Trainingsdaten ebenfalls zunimmt. [15]
2.2 Einordnung des überwachten Lernens in das maschinelle Lernen
6
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Es gibt immer noch viele für den Menschen triviale Prozesse, insbesondere Lernprozesse, die für Computer sehr
schwer oder gar nicht lösbar sind. Mit den neuronalen Netzen wird in der Informatik versucht die Arbeitsweise
des menschlichen Gehirns nachzustellen. Das menschliche Gehirn mit seinen Millionen zusammengeschalteten
Nervenzellen ist in der Lage, Gelerntes auf neue Situationen anzuwenden und Steuerungsaufgaben zu
übernehmen. Die neuronalen Netze sollen auch wie das menschliche Gehirn trainierbar sein. Auf die neuronalen
Netze wird im dritten Kapitel detailliert eingegangen.[16]
Abbildung 2.2.-2: Entscheidungsbaum[17]
Die Gliederung in Entscheidungsbäumen ist eine einfache Darstellungsweise der Trainingsdaten aus dem Bereich
des Überwachten Lernens. Es ist ein Verfahren, welches gewonnenes Wissen und die Entscheidungsfindung
visualisieren kann, damit es leichter verständlich, interpretierbar und kontrollierbar ist.[18] Entscheidungsbäume
nehmen Eingaben auf und liefern am Ende einen Wert als Entscheidung zurück. Jede Astgabelung bzw. jeder
Knoten steht für ein Attribut. Die einzelnen Zweige sind die Attributswerte. Für jeden Wert bzw. jede
Wertegruppe steht ein Zweig zur Verfügung. Die Entscheidungsbäume versuchen Schritt für Schritt zu einer
Entscheidung, abhängig von den eingegebenen Werten, zu gelangen. Mit jedem Schritt wird ein neuer Test
durchgeführt. [19] Auf Abbildung 2.2.-3 ist ein einfacher Entscheidungsbaum zu sehen. Der Baum soll bei der
Entscheidung helfen Ski fahren zu gehen oder nicht. Die Variablen die der Entscheidungsfindung dienen sollen
sind die Nähe zum Skigebiet, ob Wochenende ist und ob die Sonne scheint.
Ein bekannter negativer Effekt des Lernens ist die Überanpassung (overfitting). Bezogen wird sich unter anderem
auf die Methode der Entscheidungsbäume. Es wird von einer monoton sinkenden Fehlerrate der Trainingsdaten
und steigender Größe des Baumes ausgegangen. Bis zu einer Größe von 55 Knoten nimmt der Fehler auf den
Testdaten ab[20] Es folgt eine kurze Sättigungsphase. Wächst nach der Sättigungsphase der Baum weiter, steigt
auch die Fehlerrate wieder. Der Algorithmus hat sich zu sehr an die Testdaten angepasst und so das ursprünglich
Gelernte modifiziert.[21] Dementsprechend können Klassifikationsmodelle, die nach der Trainings- und Testphase
nicht weiter lernen, dem Effekt der Überanpassung nicht unterliegen.
2.3 Abgrenzung überwachtes und teil-überwachtes Lernen
Abbildung 2.3.-1: Prozess des Clustering
2.3 Abgrenzung überwachtes und teil-überwachtes Lernen
7
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Das unüberwachte Lernen (unsupervised learning) versucht eingegebene Lerndaten ohne die Hilfe von
Vorhersageattributen zu klassifizieren. Das Klassifizieren wird beim unüberwachten Lernen auch als Clustering
bezeichnet. Die Hypothesen in diesem Kapitel sind der Wahrscheinlichkeit nach Theorien, wie die Domäne
funktioniert, einschließlich logischer Theorien als Spezialfall.[22] Das bedeutet, es wird ein Clusterverfahren
entwickelt, dass die Struktur der Daten angemessen auf Cluster abbildet. Der Agent lernt Cluster in den
eingegebenen Daten zu erkennen. Im Gegensatz zum überwachten Lernen sind die Vorhersageattribute und
Klassenzuordnungen der Lerndatensätzen unbekannt. Der Algorithmus versucht aus den Werten und
Beobachtungen der eingegebenen Datensätze eine Clustereinteilung zu finden, wie in Abbildung 2.3.-1 grafisch
dargestellt wird. Der Algorithmus bildet aus den Daten die Klassen bzw. Cluster. Die beim Clustern gefundenen
Gruppen nicht hinsichtlich ihrer Eigenschaften in Bezug auf ausgewählte Zielmerkmale identifiziert werden,
sondern ausschließlich durch die Forderung nach einer maximalen Ähnlichkeit der Instanzen innerhalb eines
Clusters. Die Ähnlichkeits- bzw. Abstandsfunktion nimmt dementsprechend einen wichtigen Platz in der präzisen
Definition der Lernaufgabe ein.[23] Es gibt keinen Lehrer, der dem Agenten Feedback gibt. Anhand der
identifizierten Cluster können Vorhersagen getroffen oder Muster ermittelt werden.
Die Clusterbildung wird in der Ähnlichkeitsanalyse von beispielsweise Musiksammlungen eingesetzt. Zu einem
beliebigen Musikstück können weitere ähnliche Musikstücke ermittelt werden. Der Agent analysiert und
charakterisiert verschiedene Merkmale der Musikdateien und ordnet sie den Clustern zu. Die Musikstücke, die
mit dem Ausgangsstück am häufigsten im selben Cluster liegen, sind die, die dem Ausgangsstück am ähnlichsten
sind. Diese Clusterbildung bildet die Grundlage für contentbasierte Musikempfehlungssysteme und für
automatische Playlistgenerierung. In der Praxis lassen sich das überwachte und unüberwachte Lernen schwer
voneinander abgrenzen. Oft wird eine Mischung aus beiden Lernarten angewandt, um einen Lernalgorithmus zu
trainieren, da es zeitaufwändig und oft auch eine manuelle Arbeit ist, die Beispieldaten für das überwachte Lernen
zu erstellen. Um dieses zu umgehen, wird eine kleine Menge an klassifizierten Beispielen erstellt. Dazu ist eine
große Sammlung unklassifizierter Beispieldatensätze vorhanden. In diesem Fall wird von teilüberwachtem Lernen
(semi-supervised learning) gesprochen. Es gibt Programme, die das Alter von Personen auf Fotos zu bestimmen
versuchen. Dafür werden Fotos als Beispieldaten von Personen, deren Alter bekannt ist zusammengetragen und
der Algorithmus damit trainiert. Dieses Verfahren entstammt dem überwachten Lernen. In der Realität aber gibt
nicht jede Person sein wahres Alter an. Genauso kann es auch zufällige Ungenauigkeiten in den Daten geben.
Diese Ungenauigkeiten unterliegen gewissen Mustern. Diese Muster in den Daten aus Bildern, genannten
Altersangaben und ggf. dem wahren Alter zu erkennen und in die Vorhersage einzubeziehen, ist Teil des
unüberwachten Lernens.[24]
2.4 Konzepte des überwachten Lernens
2.4.1 Klassifikation
Im Kapitel 2.2. ist bereits beschrieben worden, dass das Lernen eine Suche im Raum möglicher Hypothesen ist.
Es wird nach der Hypothese gesucht, die auch für neue unbekannte Datenpaare gute Ergebnisse liefert. Die
Ausgabe y kann je nach Eingabe verschiedenste Formen annehmen. Gehört das y zu einer endlichen nominalen
Wertmenge, wird das Lernproblem als Klassifizierung bezeichnet. Der tendenzielle Ausgang eines Fußballspiels
mit den Werten Sieg, Niederlage oder Unentschieden ist ein Beispiel für eine diskrete Wertmenge der
Klassifizierung. Über die Eingabewerte, wie beispielsweise Anzahl Spiele, Anzahl Siege, Anzahl Unentschieden,
Tabellenplatz und Gegner, wird die Klasse ermittelt und der wahrscheinlichste Wert zum Ausgang des Spiels
ausgegeben. Besteht die Wertemenge aus genau zwei Werten, wird die Klassifikation als boolsche oder binäre
Klassifizierung bezeichnet. Ein bekanntes Beispiel ist die Klassifikation von E-Mails in Spam oder
Nicht-Spam.[25]
2.4 Konzepte des überwachten Lernens
8
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
2.4.2 Regression
Als Regression wird die Ausgabe y bezeichnet, wenn der Zielwert eine Zahl ist. Es kann beispielsweise die
Vorhersage der zukünftigen Temperatur sein. Der Wertebereich der Regression des Zielattributes ist ordinal. Die
nummerischen Zielattribute der Regression sind Vorhersagen zur Schwellenwertsetzung. Hierfür wird eine stetige
Funktion gelernt. Da es unwahrscheinlich ist, den genauen Wert für y vorherzusagen, wird nach einem bedingten
Erwartungswert oder Durchschnittswert von y gesucht. Temperaturvorhersagen sind beispielsweise in den
seltensten Fällen exakte Ergebnisse, sondern es sind Vorhersagen aus Werten des Lernalgorithmus. Nicht nur die
Temperaturvorhersagen werden mittels der Regression getätigt, sondern auch das Kundenverhalten oder Kosten,
Bedarf und Auftragszahlen in Unternehmen.[26]
3 Klassifikation mit künstlichen neuronalen Netzen
3.1 Grundlagen künstlicher neuronaler Netze
Im Alltag wird man stetig vor eine Vielzahl von Aufgaben gestellt die eine kurze Reaktionszeit ohne großes
Nachdenken erfordern. Bei diesen Aufgaben denkt man nicht direkt darüber nach wie man sie bewältigten könnte,
vielmehr ist es ein antrainierter Prozess. Beispielhaft ist dies zu sehen beim Gleichgewicht halten beim Gehen.
Man denkt nicht darüber nach wie der nächsten Schritt platziert werden könnte, wie die Hüfte das Gewicht
verlagert, wie der Arm beim ausbalancieren hilft. Vielmehr ist das Gleichgewicht halten beim Gehen ein bereits
erlernter Prozess. Der menschliche Verstand basiert nicht auf eine WENN-DANN Regelung. Sollten kurzfristige
Entscheidungen getroffen werden, beispielhaft am oben genannten, würde die Reaktionszeit nicht ausreichen und
man würde der Schwerkraft zum Opfer fallen. Man kann hier auch von antrainierten Fähigkeiten sprechen die ein
Nachdenken nicht mehr erfordern.
Unter dem Begriff ?Nachdenken? sei verstanden, dass Aussagen unter Nutzung von Schlussfolgerungen zu neuen
Gedanken, neuen Aussagen verknüpft werden.[27]
Erlernte Fähigkeiten sind ein Resultat von Erfahrung und Training. Das besondere an den erlernten Fähigkeiten
ist, dass sich diese relativ problemlos auf neue Aufgaben übertragen lassen. Sehen kann man dieses Verhalten
anhand von Mathematischen Aufgabenstellungen. Aufgabe A und B konnten anhand des vorliegenden
Regelwerks ohne Probleme gelöst werden. Aufgabe C, eine Verkettung von beiden, erfordert Nachdenken zum
Finden der Lösung.
In Anlehnung an Liebich (2009),Seite 113. Abbildung 3.1.-1: Darstellung einer Nervenzelle
Eben diese Lernprozesse versucht man heute in künstlichen Neuronalen Netzten darzustellen. Ausgehend von dem
Wissen über die Funktion natürlicher neuronaler Netze versucht man, diese zu modellieren, zu simulieren oder
sogar in Hardware nachzubauen. Hierbei stellt sich jedem Forscher die faszinierende und spannende
Herausforderung, die Ergebnisse mit der Leistungsfähigkeit von uns Menschen zu vergleichen.[28]
2.4.2 Regression
9
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Das künstliche neuronale Netz hat zum Vorbild die in der Natur vorkommenden Netzwerke aus Nervenzellen. Ein
menschliches Gehirn besitzt etwa 10 bis 100 Milliarden Nervenzellen. Das komplexe Nervenzellen-System sorgt
dafür, dass der Verstand die ankommenden Informationen verarbeitet und zu einem Resultat gelangt. Eine
einzelne Nervenzelle nimmt Informationen aus der Umwelt durch ihre Dendride auf. Die Dendride sind
untereinander mit anderen Nervenzellen verknüpft. Die ankommenden Informationen werden im Zellkern
gespeichert. Der Zellkern als solches stellt einen Speicher, vergleichbar mit einem Akku, dar. Der Speicher nährt
sich von den vielen kleinen Aufladungen die ihm die Dendride zuspielen. Daher wird die Spannung im Zellkern
höher. Sobald nun der Zellkern eine gewisse Spannung erreicht hat, leitet er diesen Impuls über das Axon und die
Synapsen an die anderen mit ihm verbundenen Neuronen weiter.[29]
Das "lernen" als solches im neuronalen Netz geschieht nun nicht wie vermeintlich angenommen im Zellkern,
sondern in den Leitungen zwischen den Neuronen, den Synapsen. Synapsen stellen die Verbindungen zwischen
den Neuronen her. Leitungen die häufiger frequentiert werden erhalten eine erhöhte Leitfähigkeit. Die
Gewichtung der ankommenden Impulse wird daher stärker. Bei Leitungen die weniger bis gar nicht benutzt
werden ist die Leitfähigkeit geringer und es kann bis zum Absterben der Synapse kommen.[30] Eben dieses
Verhalten, der häufigen Frequentierung und dem daraus resultierenden stärkerem Impuls, bezeichnet man als
lernen. Je häufiger man eine Sache übt desto schneller kann Sie vollzogen werden.
Nach diesem Sender und Empfänger Prinzip arbeitet das künstliche neuronale Netz. Die Ersten die große
wissenschaftliche Erfolge hierzu veröffentlichen, waren im Jahr 1943 die Herren Pitts und McCulloch. Sie teilten
die Aussage, dass die Nervenzellen im Gehirn die Schaltzentrale darstellen. Dies geschah auf der Basis eines
mathematischen Modells.[31] Dieser erste große Grundgedanke im Bereich der neuronalen Netze auf dem Gebiet
der künstlichen Intelligenz gilt als Grundpfeiler der weiteren Forschungen.
In Anlehnung an Rey und Wender (2010)[32] Abbildung 3.1.-2: Neuronalen Netzes mit 3 Schichten
Das künstliche neuronale Netz besitzt, wie in Abbildung 3.1.-2 vereinfacht dargestellt, drei Schichten. Eine
Schicht besteht aus Neuronen die untereinander dargestellt werden. Die erste Schicht beinhaltet die
ankommenden Informationen, welche verarbeitet werden müssen und in das System eingespeist werden. Diese
Schicht wird im weiteren Verlauf Eingabeschicht genannt. Diese Informationen stehen in nummerischen Werten
zur Verfügung. Der Wert den ein Neuron besitzt definiert dessen Output. Hat ein Neuron also einen Wert von 18,
so ist sein Output 18.
Nach der Eingabeschicht folgt die zweite, die versteckte Schicht. Jedes Element aus der versteckten Schicht ist
mit jedem Element aus der Eingabeschicht verbunden. Der Input für ein Neuron aus der 2. Schicht errechnet sich
aus dem Output des Neurons der vorherigen Schicht. Dieser Wert muss mit der Gewichtung der Verbindung der
beiden Neuronen multipliziert werden. Der Input für ein Neuron der zweiten Schicht lässt sich also mathematisch
wie folgt berechnen:
3.1 Grundlagen künstlicher neuronaler Netze
10
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Ein Ergebnis kann positiv, negativ oder auch neutral sein.
Ist der Output 3 und die Gewichtung zwischen Sender und Empfänger 2, so ist der Input für den Empfänger 6.
Abbildung 3.1.-3: Neuron dargestellt im 4-Schichtenmodell
Die Neuronen in der versteckten Schicht sind für die Auswertung dieser Daten verantwortlich. Hierzu muss man
wissen wie ein Neuron im einzelnen funktioniert und aufgebaut ist.
Ein Neuron besteht aus vier Schichten, dem Input, dem Netzinput, dem Aktivitätslevel und dem Output. Die
Inputschicht nimmt die Werte aus der rückliegenden Schicht auf, die mit dem Neuron verbunden sind. Der Input
wird wie oben berechnet aufgenommen. Die Summe aller anliegenden Inputs bildet den Netzinput, mathematisch
wie folgt dargestellt:
Die 3. Schicht eines Neurons beinhaltet den Aktivitätslevel. Hier wird geregelt ab wann ein Neuron aktiv wird.
Der Aktivitätslevel wird durch die Aktivierungsfunktionen definiert. Dies wird im folgenden Abschnitt 3.2
genauer erörtert. Grob ausgedrückt wird ein Wert definiert ab dem das Neuron aktiv wird, auch Schwellenwert
genannt. Beispielsweise ist der Netzinput 10 und der Schwellenwert 12 bleibt das Neuron inaktiv. Ist der Fall
andersherum, der Netzinput 12 und der Schwellenwert 10, so wird das Neuron aktiv. Ist das Neuron aktiv wird
eine Ausgabe an der 4. Schicht eines Neurons angelegt.
3.2 Aktivierungsfunktionen
3.2 Aktivierungsfunktionen
11
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Abbildung 3.2.-1: Lineare Aktivitätsfunktion
In Abschnitt 3.1. wird, um ein Neuron im Aufbau zu beschreiben, der Aktivitätslevel genannt. Der Aktivitätslevel
ist der Oberbegriff der Aktivierungsfunktionen. Die Aktivierungsfunktionen geben an, wie der Aktivierungslevel
arbeitet bzw. die ankommenden Daten aus dem Netzinput verarbeitet werden. Es gibt mehrere
Aktivierungsfunktionen. Die vier gängigsten werden in diesem Abschnitt vorgestellt und erklärt. Die
Aktivitätsfunktionen stellen sich in Graphen dar, wobei die Y-Achse den Aktivitätslevel darstellt und die X-Achse
den Netzinput.
Lineare Aktivierungsfunktion
Siehe hierzu Abbildung 3.2.-1. Bei der Linearen Aktivierungsfunktion steigt der Aktivitätslevel proportional zum
Netzinput an. Man spricht von einer linearen Steigung. Ist der Netzinput 2, so ist der Aktivitätslevel auch 2. Das
Problem bei der Linearen Aktivierungsfunktion liegt darin, dass der Aktivitätslevel von Schicht zu Schicht schnell
ein hohes Maß annehmen kann, da der Posten je Schicht weiter Multipliziert wird.
Abbildung 3.2.-2: Lineare Aktivitätsfunktion mit Schwelle
Lineare Aktivierungsfunktion mit Schwelle
Ähnlich wie die Lineare Aktivierungsfunktion ist die Lineare Aktivierungsfunktion mit einer Schwelle aufgebaut.
Der Unterschied liegt hierin, dass erst ein Wert vom Netzinput überschritten werden muss, bevor ein
Aktivitätslevel ausgegeben wird.
Abbildung 3.2.-3; Binäre Aktivierungsfunktion
Binäre Aktivierungsfunktion
Diese Funktion kennt nur zwei Zustände, null und eins. Ist der Netzinput <0 wird der Aktivitätslevel null
weitergegeben. Ist der Netzinput >0 ist der Aktivitätslevel eins.
Abbildung 3.2.-4 Sigmoide Aktiverungsfunktion
3.2 Aktivierungsfunktionen
12
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Sigmoide Aktiverungsfunktion
Diese Aktivierungsfunktion beinhaltet die drei zuvor Genannten und vereinigt sie. Das Aktivitätslevel ist wie in
der Binären Schwellenfunktion begrenzt. Hierdurch wird der nachteilige Effekt von hoch multiplizierten Werten
der Linearen Aktivierungsfunktion Einhalt geboten. Die Sigmoide Aktivierungsfunktion kann je nach Bedarf auf
zwei Formeln differenziert werden. Die logische oder die Erweiterung um die tanh Funktion.
Mit dem Faktor c kann das Gefälle zwischen 0 auf 1 gesteuert werden. Siehe hierzu Abb. 3.2.-4. Sofern man f(x)
um tanh erweitert, wird die Funktion in einem Wertebereich von -1 bis +1 dargestellt. Hier liegt auch die
Anlehnung an die Binäre Aktivierungsfunktion.
3.3 Topologien neuronaler Netze
3.3.1 Feedforward-Netze (Pattern Association)
Der Name Feedforward steht für vorwärtsgerichtete neuronale Netze. Diese Netze bestehen mindestens aus einer
Ein-und Ausgabeschicht. Zwischen liegend ist eine variable Menge n an versteckten Schichten. Bei einem
Feedforward-Netz liegt der Unterschied zu einem Rekurrenten Netz darin, dass die Verbindungen zwischen den
Schichten ausschließlich vorwärts gerichtet sind. Das bedeutet, dass Informationen ausschließlich von der
Eingabeschicht in Richtung der Ausgabeschicht propagiert werden. Rekursionen sind nicht möglich. In
Abbildung 3.3.-2 ist ein Feedforward-Netz bereits aufgeführt. Dieses Netz besitzt eine Ein-und Ausgabeschicht
sowie eine versteckte Schicht. Als Vorlage zur Entwicklung dieses Netzes dient die Aufnahme von Informationen
durch das menschliche Auge und die direkte Weiterleitung an das Gehirn. Dieser Algorithmus wurde durch Herrn
Frank Rosenblatt 1958 erstmalig der Weltöffentlichkeit vorgestellt[33]. Diese Netze werden auch Perzeptron
genannt.
Eine besondere Art der Feedforward-Netze stellt das Pattern Association Netz dar. Es besitzt keine versteckten
Schichten, arbeitet also nur mittels einer Eingabe- und Ausgabeschicht. Dieser Netztyp ist in der Lage Muster zu
erkennen, die er zuvor gelernt hat. Dieser Netztyp wird mittels der Delta-oder der Hebbsche-Lernregel trainiert.
Unter dem Abschnitt 3.4 werden diese im Detail erklärt. Die Eigenschaften eines Pattern Association Netz sind
im speziellen die Generalisierung, also die Differenzierung der aufgenommenen Informationen. Eine
Differenzierung kann ausschließlich nur in Kategorien erfolgen. So ist dieses Netz beispielhaft nur im Stande
Vögel als Gattung der Vögel zu erkennen jedoch nicht in die einzelnen Arten zu unterteilen. Man spricht hier
auch von einer Übergeneralisierung, sollte versucht werden eine Kategorie weiter aufzuteilen.
Dieser Netztyp ist zudem sehr robust gegenüber inneren als auch äußeren Schäden. Es ist trotz Schäden im Stande
eine richtig Ausgabe zu generieren. Von Schäden wird gesprochen, wenn ein Neuron nicht mehr korrekt
funktioniert oder aber auch die vorliegenden Informationen fehlerhaft sind.
Die klassischen Anwendungsbereiche für Feedforward-Netze liegen in der Zeichenerkennung, Klassifikation aber
auch in der Prognose, beispielsweise von Wetter- oder Lawinenkarten. Mittels der Zeichenerkennung ist es heute
möglich handgeschriebene Informationen dem Computer zugänglich zu machen und ihm diese auswerten zu
lassen. Hierauf wird speziell in Abschnitt 4, im Anwendungsbeispiel eingegangen. Über die Zeichenerkennung
hinaus ist es einem Feedforward-Netz möglich, mittels der Klassifikation, vorliegende Daten nach Mustern zu
3.3 Topologien neuronaler Netze
13
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
untersuchen. So können im Praxisfall Kunden in Kategorien einzuordnen. Dies ist eine grundlegende Aktivität
des Data Minings. Mittels einer großen Menge an Daten lässt sich in kurzer Zeit bestimmen welcher Kunde wie
profitabel sein kann und wie ein Kunde dazu verleitet werden kann noch profitabler zu werden. Derart
aufbereitete Kundendaten werden häufig an Dritte verkauft, da diese für ein anderes Unternehmen in einem
anderen Kontext ggf. einen deutlich größeren Wert haben können.
3.3.2 Rekurrente Netze
Wie unter 3.3.1 erwähnt liegt die Differenzierung eines Rekurrenten Netzes zu einem Feedforward-Netz darin,
dass Rückkopplungen von Neuronen einer Schicht zu Neuronen derselben oder einer beliebigen, vorhergehenden
Schicht möglich sind. Die Rekurrenten Netze lassen sich in vier Subkategorien unterteilen die je nach ihren
Verbindungen zu anderen Neuronen unterschieden werden.
Rekurrente Netze kennen drei Zustände, wovon idealerweise der stabile Zustand erreicht werden sollte. Aufgrund
der Verschachtelungen kann es aber auch sein, dass Rekurrente Netze Schwingungen Ausgeben oder ein
chaotisches Verhalten wieder geben, dies sind die zwei ungewollten Zustände die ein Rekurrentes Netz aufweisen
kann. Überdies hängt die Antwort von dem aktuellen Zustand des Netzes ab und wann die Eingabe erfolgt.
Daraus resultiert das Rekurrente Netze eine Art Kurzzeitgedächtnis unterstützen. Folglich sind sie dem
Nervenzellen-System des Gehirns ähnlicher als die Feedforward-Netze[34].
Neuronale Netze mit direkten Rückkopplungen (in engl. direct feedback)
Die Ausgabe eines Neuron ist gleichzeitig die Eingabe des Selbigen.
Neuronale Netze mit indirekten Rückkopplungen (in engl. indirect feedback)
Ein Neuron der Schicht x^1 gibt seine Ausgabe an das rückliegende Neuron der Schicht x zurück.
Neuronale Netze mit seitlichen Rückkopplungen (in engl. lateral feedback)
Hier wird auf 2 Neuronen derselben Schicht bezug genommen. Die Ausgabe eines Neurons geht an ein Neuron
derselben Schicht als Eingabe.
Neuronale Netze mit vollständigen Verbindungen
Ein Netz in dem die Neuronen mit jedem anderen Neuron in direkter Verbindung stehen.
Rekurrente-Netze sind im allgemeinen sehr komplizierte Netzstrukturen. Daher sind die Anwendungsbereiche
auch sehr komplex. So kann ein Rekurrentes-Netz beispielsweise Prognosen über die Zukunft treffen.
3.4 Lernregeln
Neuronale Netze sind in der Lage durch Anwendung von Regeln zu Lernen. Indem die Verbindung zweier
Neuronen ein anderes Gewicht erhält, findet ein Lerneffekt statt, der sich auf folgende Entscheidungen auswirkt.
Beispielhaft betrachtet sei das Verhalten von Kindern, die lernen, dass das Anfassen heißer Herdplatten zu
schmerzhaften Verbrennungen führt. Die Neuronen in diesem Entscheidungsvorgang zeigen dadurch folgendes
Muster (Siehe Abbildung 3.4.-1):
3.3.1 Feedforward-Netze (Pattern Association)
14
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Abbildung 3.4.-1 - Beispielhafte Darstellung eines Neuronalen Netzes
Zustände der Neuronen in Abbildung 3.4.-1
A = Herd eingeschaltet
B = Herd ausgeschaltet
C = Herd Anfassen
D = Herd nicht anfassen
Im ersten Moment haben die Verbindungen zu den beiden Neuronen C und D, ausgehend von den Neuronen A
und B das gleiche Gewicht. Indem die Verbindungen A -> D und B -> C eine positive Veränderung der
Gewichtung erhalten, werden diese bei den folgenden Entscheidungen bevorzugt. Das Kind wird folglich nicht
mehr auf eine eingeschaltete Herdplatte fassen.
Wie genau die Gewichtung der Verbindungen verändert wird, ist in der angewandten Lernregel definiert. Gängige
Regeln im überwachten Lernen sind die Hebb Regel, die Delta Regel und die Back Propagation Regel.
3.4.1 Hebbsche-Regel
Die Regel von Donald O. Hebb ist eine der ersten und zugleich auch eine der einfachsten Lernregeln, die
verwendet werden, um Neuronale Netze zu trainieren. Sie hat Ihren Ursprung in der Biologie und stellte die
Vermutung auf, dass die Verbindung zwei miteinander verbundene Neuronen verstärkt wird, wenn diese vermehrt
miteinander reagieren. Die im Jahre 1949 definierte Regel konnte erst 1989 anhand von Rattengehirnen
nachgewiesen werden.[35]
When an axon of cell A is near enough to excite a cell B and repeatedly or persistently takes part in firing it, some
growth process or metabolic change takes place in one or both cells, such that A's efficiency as one of the cells
firing B, is increased.[36] Übersetzt: Wenn ein Axon der Zelle A nahe genug einer Zelle B ist und wiederholt und
andauernd befeuert, findet in einer oder beiden Zellen ein Wachstumsprozess oder eine metabolische
Veränderung statt, sodass die Effizienz der Zelle A sich im Bezug auf das befeuern der Zelle B erhöht.
Übertragen auf die Neuronalen Netze bedeutet diese Regel, dass ein Wachstumspotential, bzw. ein Lerneffekt
stattfinden kann, wenn beide miteinander verbundene Neuronen gleichzeitig aktiv sind.
Zur Erläuterung der Funktionsweise sei gegeben folgendes Beispiel:
Als Beispiel für diese Lernform wurde ein Neurales Netz Entwickelt, das das Imperfekt englischer Verben lernt
(Rumelhart & McClelland, 1986). Als Input Muster wurden die Verben im Präsens und als Output-Muster deren
Imperfekt präsentiert. Es hat sich herausgestellt, daß [sic] zu Beginn die Wörter explizit gelernt werden, was
jedoch auf Dauer nicht möglich ist, da das Netzwerk nicht genügend Speicherkapazität besitzt. Je Mehr Verben
gelernt werden, desto mehr generalisiert das Netz: Nach einiger Zeit wird standardmäßig die Endung ?-ed? an
3.4 Lernregeln
15
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
jedes Verb angefügt. Die nicht regulären Verben, die das System zu Beginn schon richtig erlernt hatte, werden
nun auch mit der Endung ?-ed? versehen, das System muß [sic] diese neuerlich lernen.[37]
Die Generalisierung führt dem zufolge dazu, dass unter Umständen bereits gelernte Verbindungen ein weniger
großes Gewicht erhalten und somit der Generalisierung untergeordnet werden. Erzielte Lerneffekte werden
überschrieben und führen möglicherweise zu Fehlverhalten der Funktion.
Die einfachste Form der Regel wird wie folgt definiert:
Bei der sei gegeben: ?wij als Veränderung der Gewichtung zwischen den beiden Neuronen i und j, k als Lernrate,
ai als Aktivitätslevel des Neuron i, oj als Ausgabe des Neurons j. Die Lernrate k enthält im Regelfall Werte
zwischen 0 und 1. Wird der Wert k=0 gewählt, findet kein Lerneffekt statt. Wird der Wert k=1 gewählt, findet ein
Lerneffekt statt, der so schwer gewichtet ist, dass der Lerneffekt bereits gelernter Muster mit großer
Wahrscheinlichkeit zerstört wird.[38]
3.4.2 Delta-Regel
Die Delta Regel oder auch Widrow-Hoff-Regel genannt, ist eine häufig verwendete Lernregel, welche die Hebb
Regel iterativ ergänzt. Sie bringt zusätzlich die Differenz zwischen der erwarteten Ausgabe und der tatsächlichen
Ausgabe des jeweiligen Neurons assoziativ in Verbindung mit der Berechnung der Gewichtsveränderung.
Gegeben sei die folgende Formel:
Oder:
Im Vergleich zur Hebb Regel, siehe Abschnitt 3.4.1, wird der Aktivitätslevel ai des Neurons i durch dessen
Fehlersignal ?i ersetzt.
Durch die Betrachtung des Deltas zwischen der erwarteten und der tatsächlichen Ausgabe des Neurons i werden
nur dann Änderungen an der Gewichtung vorgenommen, also Lerneffekte erzielt, wenn beide Werte nicht
identisch sind. Je geringer der Unterschied der beiden Werte ti und oi ist, desto geringer ist der erwartete
Lerneffekt. Gemäß der Rescorla-Wagner-Theorie der klassischen Konditionierung findet bei Organismen nur
dann ein Lerneffekt statt, wenn die Ergebnisse Ihre Erwartungen wiederlegen.[39]
Sind ti und oi gegenseitig orthogonal, verhält sich die Delta-Regel gleich der Hebb-Regel.
Die Delta Regel setzt voraus, dass die erwartete Ausgabe des Neurons i (ti) bekannt ist. Dies ist nicht gegeben,
wenn es sich hierbei um ein Neuron in einer Versteckten Schicht handelt. Für mehrschichtige Netze kann die
Deltaregel folglich nicht verwendet werden.
3.4.1 Hebbsche-Regel
16
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
3.4.3 Backpropagation-Regel
Die Backpropagation Regel, oder auch generalisierte Delta-Regel genannt, kann im Gegensatz zur Delta-Regel
auf mehrschichtige Netze angewandt werden. Es ist erforderlich, dass es sich bei dem angewandten Netzwerk um
ein Feed-Forward Netzwerk handelt.
Es ist möglich die Regel auf Neuronale Netze mit einer beliebigen Anzahl von Schichten anzuwenden, wobei die
Anwendung der Backpropagation Regel auf Netze mit nur insgesamt zwei Schichten, also nur der Eingabe- und
der Ausgabe-Schicht zu aufwendig ist. In diesem Fall ist die Anwendung der Delta Regel effizienter.
Der Prozess für die Bestimmung von Netzwerkfehlern, bzw. der Fehlerhaften oder unzureichenden Gewichtung
einzelner Verbindungen, wird in insgesamt zwei Phasen untergliedert: In der Ersten Phase wird an den Eingabe
Neuronen ein Lernmuster angelegt, welches nun über die Versteckten Schichten bis zu den Ausgabe Neuronen
vor propagiert wird. Übersteigt die Abweichung der erwarteten und der errechneten Ergebnisse der Output Layer
einen bestimmten, vordefinierten Schwellenwert, wird die zweite Phase, die Bestimmung der Netzwerkfehler,
eingeleitet.[40]
Die Bestimmung des Fehlers erfolgt schichtweise. Wobei von der letzten Schicht ausgegangen wird, um die
Quelle des Netzwerkfehlers aufzuspüren, da an diesem das erwartete Ergebnis Muster anliegt. An dieser Stelle
wird der erwartete Wert mit dem errechneten Wert verglichen und daraus ein Fehlersignal gebildet. Im Anschluss
wird die letzte versteckte Schicht, danach die davorliegende versteckte Schicht korrigiert. Dieser Vorgang wird
fortgesetzt, bis final auch die erste versteckte Schicht korrigiert wurde. Durch die angewandte Vorgehensweise,
der rückwärtigen Fehlerbestimmung, wird dieser Algorithmus auch ?Backpropagation of error?-Algorithmus
genannt. [41]
Für die Analyse der Netzwerkfehler, bzw. der fehlerhaften Gewichtung anliegender Verbindungen, wird ein
mathematisches Verfahren verwendet, das sich an das von Newton definierte Verfahren zur annäherungsweisen
Berechnung einer Quadratwurzel anlehnt:[42]
Das Gradientenabstiegsverfahren ermittelt Gewichtungsfehler durch das herabsteigen einer Gradientenfunktion
nach einer bestimmten Schrittlänge, im weiteren Verlauf auch Lernrate genannt. Dieses Vorgehen wiederholt sich
bis ein lokales oder globales Minimum des Gradienten ermittelt wurde. Betrachtet man zunächst eine
eindimensionale Fehlerkurve, also eine Kurve mit nur einem anliegenden Gewicht, wird deutlich, wie das
Verfahren funktioniert. Ziel ist die Definition des Gewichts (W) mit dem geringsten Fehlerwert (F). Die Korrektur
des Gewichtes erfolgt nach jedem Schritt. Siehe folgende Abbildung 3.4.3.-1:[43]
3.4.3 Backpropagation-Regel
17
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Abbildung 3.4.3.-1: Abbildung einer Gradientenfunktion und Vorgehensweise des Gradientenabstiegs
Die Gewichte der am Neuron uj anliegenden Verbindungen werden in einer Funktion zusammengefasst. Diese
Funktion bestimmt den Fehler des Neurons. Es resultiert daraus die folgende Formel: [44]
Betrachtet man nun die daraus resultierende mögliche Fehlerkurve, ergibt sich beispielhaft die Abbildung
3.4.3.-2.
Abbildung 3.4.3.-2: Darstellung einer möglichen Fehlerkurve von zwei anliegenden Gewichten[45]
Bei mehrdimensionalen Funktionen, wie in obig abgebildeter Darstellung, wird diese zunächst partiell nach Ihren
Gewichten abgeleitet. Die Ableitung pro Gewichtsvariabel wird dann verwendet um Korrekturen an dem Gewicht
durchzuführen. [46]
Gegeben sei folgende Formel:
Bei dem Gilt: Faktor ? stellt die Lernrate und Grad der Veränderung des Gewichtes dar. Für die Veränderung der
Kurve entgegen des Kurvenanstiegs in ein Tal der Fehlerkurve wird ein negatives Vorzeichen gewählt. Der Fehler
und damit verbunden auch die Änderung des Gewichtes sind abhängig vom angewandten Trainingsmuster.
Die Änderung der Gewichte kann in zwei verschiedenen Verfahren vorgenommen werden: Wird die
3.4.3 Backpropagation-Regel
18
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Gewichtsveränderung nach jedem Bearbeiten eines Lernmusters durchgeführt, wird das Online-Verfahren
angewandt. Wird erst ein vollständiger Mustersatz bearbeitet, wird das Batch-Verfahren angewandt. Das
Online-Verfahren ermöglicht den Verzicht der Kennzeichnung jedes durchgeführten Musters, da diese
unmittelbar eine Auswirkung auf die Gewichtung der Verbindungen haben. Konkretisiert man nun die o.g.
Formel mit der Funktionsweise eines Neurons unter Berücksichtigung der Tatsache, dass ein Fehler die
Abweichung der errechneten Ausgabe von der erwarteten Ausgabe ist, ergibt sich die Folgende Formel:
Es gilt: Der Fehler ?? ist abhängig vom Ausgabewert ?oj; Der Ausgabewert ist abhängig von der Netzeingabe
?netj; Die Netzeingabe ist abhängig vom Gewicht ?wij.
Die Zusammenhänge werden nachfolgend in umgekehrter Reihenfolge genauer erläutert:
Durch die Summationsformel der Netzeingabe ?netj wird deutlich, wie diese vom Verbindungsgewicht ?wij
abhängig ist.
Die Formel der Netzeingabe zum Vergleich:
Differenziert nach einem konkreten Gewicht wij, entfallen alle Summanden bis auf den einen Summanden
k=i, der wij enthält:
Findet die Identität Verwendung in der Ausgabefunktion, kann durch die Aktivierungsfunktion eine Abhängigkeit
zwischen Ausgabe und Netzeingabe definiert werden.
Formel der Aktivierungsfunktion:
Bei der gilt:
Id bedeutet, die Funktion ist identisch, bzw. eine Identität der Funktion.
Bringt man nun die Ausgabe und die Netzeingabe über die Aktivierungsfunktion in Verbindung, ergibt
sich die folgende Formel (Die identische Ausgabefunktion wird in der Formel weggelassen):
Es ist jedoch erforderlich, dass die Aktivierungsfunktion differenzierbar ist. Die Schwellwertfunktion ist
nicht differenzierbar. In dem Fall behilft man sich auf der einen Seite mit der Identität als
3.4.3 Backpropagation-Regel
19
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Aktivierungsfunktion fact=Id, somit ist f'act=1. Auf der anderen Seite wird für den
Backpropagation-Algorithmus auch die logistische Funktion verwendet, welche eine Abwandlung der
Sigmoidfunktion ist. Die erste Ableitung daraus ist wie folgt zu berechnen: [47]
Daraus ergibt sich:
Den Fehler kann man für ein Ausgabeneuron nur direkt zwischen dem Trainingswert tj und der berechneten
Ausgabe oj differenzieren
Dabei wird das Quadrat genutzt, damit vermieden werden kann, dass sich negative und positive
Abweichungen gegenseitig aufheben. Durch den Faktor œ verändert sich inhaltlich nichts an der
Funktion, vereinfacht jedoch den Ausdruck der ersten Ableitung:
Für ein Neuron einer inneren, versteckten Schicht wird der Fehler aus den Fehlersignalen der
nachfolgenden Neuronen berechnet:
Das Fehlersignal ? ist dabei als das Produkt des ersten und des zweiten Faktors der Gleichung definiert:
Unter Verwendung der logistischen Funktion als Aktivierungsfunktion ergibt sich zusammenfassend
daraus folgende Gleichung: [48]
3.4.3 Backpropagation-Regel
20
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
In der Kurzform kann die Formel zur Berechnung der Gewichtsveränderung wie folgt vereinfacht werden:
Mit der obig definierten Vorgehensweise können nahezu alle Fehler definiert und korrigiert werden. Abhängig
von der Effektivität der Lösungsfindung ist die definierte Lernrate ?. So kann es durch die falsche Definition der
Lernrate zu Problemen oder Inperformanzen kommen. Ist beispielsweise die Lernrate zu groß, ist es möglich, dass
ein Tal übersprungen wird und dann zwischen den beiden gegenüberliegenden Schenkeln des Gradienten
oszilliert wird. Ist die Lernrate zu klein definiert, ist es möglich, dass die maximale Anzahl an erlaubten
Iterationen erreicht ist, bevor das Tal des Gradienten gefunden wurde. In beiden Fällen ist die Korrektur der
Formel für die Gewichtsbestimmung eine Lösung. Durch die Anpassung der Formel ist die Lernrate nicht mehr
festgelegt, sondern verändert sich bei jeder Iteration um einen totalen oder prozentualen Wert. Ebenfalls durch die
Anpassung der obig genannten Formel durch einen weiteren Term, welcher bewirkt, dass die Richtung der
Korrektur sich anteilig verändert. Siehe folgend abgebildete Formel:[49]
In folgender Abbildung 3.4.3.-3 der Vergleich des Verhaltens einer Grundfunktion mit zu hoher Lernrate ? (links)
und der erweiterten Funktion (rechts):
Abbildung 3.4.3.-3: Funktion mit zu hoher Lernrate und erweiterte Funktion[50]
4 Anwendungsbeispiel
4.1 Neuronale Netze zur Erkennung handgeschriebener Zahlen
Das Erkennen und Unterscheiden von Objekten fällt dem menschlichen Gehirn vergleichsweise einfach. Es
extrahiert Merkmale, bedient sich dabei bereits bekannten Mustern und klassifiziert diese. Die Verarbeitung findet
im primären visuellen Kortex in den kortikalen Neuronen statt.
4 Anwendungsbeispiel
21
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Trotz der Komplexität eines einzelnen Neurons ist seine Leistungsfähigkeit im Sinne der biologischen
Informationsverarbeitung nur von geringer Bedeutung. Erst durch die Verknüpfung mit anderen Neuronen und
der parallelen Verarbeitung von Informationen kann das System seine Leistungsfähigkeit entfalten.
Abbildung 4.1.-1: handgeschriebene Postleitzahl
Das Erkennen der folgenden Zahlenreihe sollte für das menschliche Gehirn eine einfache Tätigkeit darstellen. Die
Zahlen in Abbildung 4.1.-1 können gedreht, auf den Kopf gestellt oder stark verkleinert bzw. vergrößert
dargestellt sein, dennoch sollte sie das Gehirn ohne große Umstände identifizieren können.
Für Computer ist das allerdings kein trivialer Vorgang. Die Entwicklung eines traditionellen
Computerprogrammes zur Klassifikation von handgeschriebenen Zahlen ohne Einsatz von neuronalen Netzen
würde durch die bloße Anzahl von zu definierenden Ausnahmen und Spezialfällen überaus komplex, da jedes
Schriftbild für sich sehr individuell und charakteristisch ist.
Künstliche neuronale Netze bieten da einen alternativen Ansatz. Man verwendet eine große Anzahl von
handgeschriebenen Zahlen, die Trainingsdaten, und lasse das Netz in einer Lernphase eigenständig neue
Verbindungsgewichte zwischen den Neuronen zur Verbesserung der Erkennungsleistung ableiten.
Eine hohe Erkennungsleistung entspricht dabei der Einordnung eines Objektes in die Kategorie mit der höchsten
Wahrscheinlichkeit. Diese statistische Einordnung des Objektes in eine Klasse ist aber erst der letzte Schritt des
Mustererkennungsprozesses.
Der Mustererkennungsprozess gliedert sich in die folgenden Phasen:
• die Arbeitsphase:
1. Erfassen des Objektes
2. Vorverarbeitung der Daten
3. Merkmalsgewinnung
4. Klassifikation
• die Lernphase
Nach der Erfassung des Objektes werden in der Vorverarbeitung unerwünschte oder für die Erkennung nicht
benötigte Bestandteile entfernt oder verringert. Sollte das Muster aus mehreren Objekten bestehen kann eine
Segmentierung durchgeführt werden. Nach erfolgter Segmentierung kann die Mustererkennung auf den nun
eigenständigen Mustern durchgeführt werden, was unter Umständen Vorteile hinsichtlich der Parallelisierbarkeit
bietet. Um den Prozess der Segmentierung zu unterstützen können farbige Objekte in eine Graustufen- oder
Schwarz-Weiß Darstellung überführt werden. Die Klassifikation kann durch Normierung und Skalierung der
Objekte erleichtert werden.[51][52]
4.1 Neuronale Netze zur Erkennung handgeschriebener Zahlen
22
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Die Merkmalsgewinnung versucht nun aus dem Muster Merkmale abzuleiten und das Muster eben auf diese
Merkmale zu reduzieren. Die Gesamtheit der gewonnenen Merkmale bildet den für die maschinelle Verarbeitung
benötigten Merkmalsvektor.
Zur Vereinfachung der weiteren Betrachtung werden die eingescannten Zahlen in der Vorverarbeitung mit Hilfe
des Schwellenwertverfahrens, einer einfachen Binarisierungsmethode, in ein Binärbild überführt. Je nachdem,
welcher Schwellenwert gewählt wird, wird der Pixel unter oder über einem bestimmten Schwellenwert in die
Farbe schwarz oder weiß konvertiert.
Abbildung 4.1.-2: Segmentierung, Normalisierung und Skalierung
Dieser Schwellenwert muss nicht zwangsläufig bei 50% liegen. Für das Bild kann ebenso automatisiert ein
Schwellenwert ermittelt werden. Dazu wird das Histogramm des Bildes mit dem K-Means-Algorithmus in zwei
möglichst gleich große Cluster aufgeteilt und im Schnittpunkt der Cluster wird der gesuchte Schwellenwert
abgebildet. Das Ergebnis dieser Operationen ist eine quadratische (0, 1)-Matrix.[53]
4.1 Neuronale Netze zur Erkennung handgeschriebener Zahlen
23
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Abbildung 4.1.-3: Überführung in ein Binärbild.
Für die Klassifikation der Zahlen wird das im Grundlagenkapitel vorgestellte 3-stufige feedforward- Netz
verwendet. Um die 28x28 Pixelinformationen mit dem neuronalen Netz verarbeiten zu können werden in der
Eingabeschicht 784 Neuronen (784 = 28x28) benötigt. Jedes Neuron kann dabei den Wert 0 (weiß) oder 1
(schwarz) annehmen. Jede Komponente der (0,1) -Matrix wird dabei auf ein Neuron abgebildet.
Die Ausgabeschicht weist 10 Neuronen auf und repräsentiert die Zielmenge der natürlichen Zahlen. Dabei steht
die Aktivierung des Neuron 0 für die Ausgabe der natürlichen Zahl 0, Neuron 1 für die Zahl 1 und so weiter.[54]
Ergänzt wird das neuronale Netz um eine versteckte Schicht und obgleich diese Schicht nicht unmittelbar mit der
?Außenwelt? interagiert, besitzt sie eine entscheidende Bedeutung für die Funktionsweisen und Fähigkeiten des
gesamten neuronalen Netzes. Würde gänzlich auf diese Schicht verzichtet, ließen sich nur noch linear
separierbare Funktionen, wie die UND-, ODER- und NICHT-Funktion, darstellen. Die Darstellung der
XOR-Funktion ist jedoch mit einem solchen einstufigem Perzeptron nicht realisierbar. Den mathematischen
Beweis dazu führten die Wissenschaftler Marvin Minsky und Seymour Papert bereits 1969.[55]
Die Frage nach der für das neuronale Netz bestmögliche Konfiguration (der Anzahl der versteckten Schichten und
Neuronen) führt den Betrachter zu einem zentralen Problem:
4.1 Neuronale Netze zur Erkennung handgeschriebener Zahlen
24
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Das Bias-Varianz-Dilemma ist eines der häufigsten Probleme beim überwachten Lernen und beschreibt ein
Minimierungsproblem. Einerseits möchte man die Gesetzmäßigkeiten in den Trainingsdaten genau erfassen, aber
dennoch in der Lage sein auf neue bisher nicht bekannte Testdaten ohne Anpassung reagieren zu können. Werden
also zu wenig oder zu viele Neuronen verwendet kann das Netz in einen Zustand der Unter- (Bias) oder
Überanpassung (Varianz) geraten.[56]
Abbildung 4.1.-4: Darstellung von Unter- und Überanpassung
Eine Unteranpassung liegt vor, wenn die Anzahl der verwendeten Neuronen nicht ausreicht um die Menge an
Trainingsdaten zu verarbeiten und damit die Approximationsfunktion entsprechend hohe Abweichungen vom
Erwartungswert zeigt. Überanpassungen können dann auftreten, wenn das Netz optimal an einen
Trainingsdatensatz angepasst wurde, aber gleichzeitig zu spezifisch für andere Datensätze geworden ist und somit
seine Generalisierungsfähigkeit verliert. Das heißt das Netz reagiert auf kleine Abweichungen mit einer hohen
Varianz.
Für die Wahl einer möglichst optimalen Anzahl von Neuronen in der versteckten Schicht gibt es einige erprobte
und bewährte Methoden[57]:
• die Anzahl der Neuronen in den versteckten Schichten liegt zwischen der Anzahl derer in der Ein- und
Ausgabeschicht
• die Anzahl der Neuronen in den versteckten Schichten sollte ungefähr 2/3 der Größe der Eingabeschicht,
zuzüglich der Größe der Ausgabeschicht, betragen.
4.1 Neuronale Netze zur Erkennung handgeschriebener Zahlen
25
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
• die Anzahl der Neuronen in den versteckten Schichten sollte kleiner sein, als die Größe der
Eingabeschicht.
Abbildung 4.1.-5: Feedforward Multi-Layer Perzeptron
4.2 MNIST Datenbank für handgeschriebene Zahlen
Die MNIST Datenbank für handgeschriebene Ziffern entstand während der Arbeit einer Forschergruppe um Yann
LeCun von den AT&T Bell Laboratories Ende der 1980er Jahre. Sie eignet sich vor allem für eine erste
Auseinandersetzung mit Techniken des maschinellen Lernens und Methoden der Mustererkennung, da der
Aufwand für die Vorverarbeitung und Normalisierung der Trainings- und Testdaten größtenteils entfällt. [58]
Die MNIST Datenbank umfasst einen Trainingsdatensatz von 60.000 Bildern und einen Testdatensatz von 10.000
Bildern und entstand aus der ursprünglichen NIST Datenbank. Die Abkürzung MNIST steht dabei für ?modified
National Institute of Standards and Technology?. Die originären Daten der NIST Datenbank waren
schwarz-weiße Bilder. In Folge der Normalisierung auf ein 20x20 Pixel Raster, entstanden durch
Anti-Aliasing-Techniken des Normalisierungsalgorithmus auch Grauabstufungen. Die Abstufungen liegen im
Wertebereich von 0 (weiß) und 255 (schwarz). Im Anschluss wurden die Ziffern erneut anhand ihres jeweiligen
Schwerpunktes innerhalb eines 28x28 Pixel großem Raster zentriert.
4.2 MNIST Datenbank für handgeschriebene Zahlen
26
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Die Daten werden in einem einfachen Dateiformat (IDX) bereitgestellt, das besonders gut geeignet ist Vektoren
und mehrdimensionale Matrizen zu speichern. Auf der offiziellen Webseite der MNIST Datenbank unter
http://yann.lecun.com/exdb/mnist können die IDX Dateien und die Spezifikation des Dateiformates
heruntergeladen werden.
Es findet sich auf der Seite auch eine Übersicht mit Benchmarks der verschiedenen Klassifizierern. Neben der
Fehlerquote sind auch Informationen über die Art der Vorverarbeitung und Normalisierung der Daten in der
Tabelle enthalten.
4.3 Implementierung des neuronalen Netzes
Die Implentierung des neuronalen Netzes erfolgt mit scikit-learn. Scikit-learn ist ein bekannte Python Bibliothek
für den Themenbereich des Maschinelles Lernens. Um die Bibliothek nutzen zu können müssen folgende
Abhängigkeiten erfüllt sein:
• numpy: ist ein Python Modul für die Erzeugung und Manipulation von Arrays
• scipy: baut auf dem Modul numpy auf und stellt schnelle Implementierungen von wissenschaftlichen
Algorithmen bereit
• matplotlib: ist ein Paket für die Erzeugung von Plots, Zeichnungen und Diagrammen
Für die Betriebssystem-Spezifischen Abhängigkeiten sollte die Dokumentation eingehend gelesen werden
(http://scikit-learn.org/dev/documentation.html). SciKit-Learn beinhaltet in der aktuellen Version 0.18dev0
bereits eine Klasse MLPClassifier die ein Multi-Layer Perzepton (MLP) implementiert. Das MLP wird mit
Backpropagation trainiert. Der Klasse werden 2 Arrays übergeben. Das erste Array X beinhaltet die
Trainingsdaten als Fließkommazahlen, das zweite Array Y hält die Ergebnisse gegen die trainiert wird.
4.3 Implementierung des neuronalen Netzes
27
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Abbildung 4.3.-1: Visualization of MLP weights on MNIST - Python Quellcode
Abbildung 4.3.-2: Visualization of MLP weights on MNIST - Script Output
5 Schlussbetrachtung
5 Schlussbetrachtung
28
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
5.1 Zusammenfassung
Durch das vorher genannte wird deutlich, dass die Entwicklung der Neuronalen Netze zu Beginn an sehr simpel
agieren und mit zunehmender Entwicklung und Aufgabenstellung sehr komplex werden. Dennoch steht die
Entwicklung noch sehr weit am Anfang, allerdings ist das was ein künstliches Neuronales Netz leisten kann bis
dato schon außergewöhnlich. Es wurde gezeigt, dass die Technologien, die dem Anwender oder der Industrie zur
Verfügung gestellt werden können, nicht mehr nur das tun was man ihnen durch Wenn-Dann Regeln
kleinschrittig definiert hat, sondern vielmehr Probleme selbstständig analysieren können und eine Lösung
aufzeigen. Die Ableitung aus dem biologischen Vorbild ist heute der Grundpfeiler der Entwicklung der
neuronalen Netze.
Im Jahr 1943 stellten McCulloch und Pitts die Anfänge der heutigen Forschung öffentlich. Daraus resultierten
zwei Kategorien von Netzen. Das im Jahr 1953 vorgestellte Perzeptron von Rosenblatt gilt heute als einschlägig
für die Feedforward-Netze. Der zweite Netztyp, das Rekurrente Netz grenzt sich darin ab, dass die Ausgabe eines
Neurons auch an der Eingabe eines Neurons in der gleichen oder vorherigen Schicht anliegen kann. Und so eine
sehr komplexe Struktur erwarten lässt. Dieser Netztyp wurde nur im Hinblick auf die Abgrenzung zu dem
Feedforward-Netz erläutert.
Auf die Fragestellung wie ein Computersystem Wissen schafft und generalisiert wurde in dem Kapitel 3
theoretisch eingegangen und in Kapitel, dem Anwendungsbeispiel, praktisch vertieft. So ist ein lernfähiges
Computersystem nicht mehr nur in der Lage, auswendig gelernte Strukturen abzuarbeiten, sondern vielmehr selbst
auf vorher unbekannte Problemstellung zu reagieren.
5.2 Ausblick
Die Aufgabengebiete für Unternehmen erstrecken sich von Sicherheitsanwendungen von
Gesichtserkennungssoftware bis hin zur Logistikprozessoptimierung. Beispielhaft ist dies am Logistikprimus
Amazon in Deutschland zu sehen. Das selbstlernende Lagerverwaltungssystem hat nicht mitunter hierzu
wesentlich beigetragen, dass Amazon heute an der Spitze des Online- und Versandhandels in Deutschland steht.
Künstliche neuronale Netze sind heute schon im Stande unter Einfluss der richtigen Daten Prognosen für unser
Kaufverhalten zu treffen. Mitunter ein sehr wichtiger Faktor.
Unternehmen sind heutzutage dazu gezwungen schneller auf den Markt zu reagieren. Dies ist ein Resultat des sich
stetig verkürzenden Produktlebenszyklus. Der Kampf um das beste Angebot und durch die Vielfalt an am Markt
angebotenen Substitutionsprodukte macht es einem Unternehmen zusehends schwerer sich gegenüber der
Konkurrenz durchzusetzen. Das Maschinelle Lernen bietet eine Hilfestellung mit dem Wandel umgehen zu
können, indem umfangreiche Methoden zur Verfügung gestellt werden, den Markt und das Kaufverhalten des
Kunden zu analysieren. Hier sind die Begriffe Industrie 4.0 und Data Mining prägend. Mittels des Maschinellen
Lernens lassen sich Verhaltensweisen des Konsumenten schneller Analysieren und die Industrie ist schneller im
Stande auf deren Wünsche einzugehen.
Es könnten noch zahlreiche Beispiele aufgezählt werden, die jeweils Ihren Beitrag dazu leisten, um zu
verdeutlichen, dass die Vielfalt der bereits bestehenden Anwendungszwecke der Künstlichen Intelligenz,
respektive des Maschinellen Lernens, gewaltig ist. Es kann vom aktuellen Standpunkt aus nicht eingeschätzt
werden, ob die Möglichkeiten jemals ausgeschöpft sein werden, neue Anwendungszwecke aus dieser Technologie
abzuleiten.
5.1 Zusammenfassung
29
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
6 Anhang
6.1 Fußnoten
1. ? Vgl. Görz, Schneeberger und Schmid (2012), Seite 405
2. ? Alpaydin (2004), Seite 2
3. ? Vgl. Alpaydin (2004), Seite 2
4. ? Vgl. Simon (1985), Seite 26
5. ? Vgl. Michalski (1986), Seite 4
6. ? Ertel (2013), Seite 178
7. ? Ertel (2013), Seite 12f
8. ? Vgl. Ertel (2013), Seite 14
9. ? Russel und Norvig (2012), Seite 809ff
10. ? Ertel (2013), Seite 178
11. ? Vgl. Görz, Schneeberger und Schmid (2012), Seite 410
12. ? Ertel (2013), Seite 181
13. ? Ester und Sander (2000), Seite 114
14. ? Russel und Norvig (2012), Seite 811f
15. ? Ertel (2013), Seite 192ff
16. ? Lämmel und Cleve (2008), Seite 195
17. ? Ertel (2013), Seite 204
18. ? Ertel (2013), Seite 202
19. ? Russel und Norvig (2012), Seite 814
20. ? Vgl. Ertel (2013), Seite 216
21. ? Ertel (2013), Seite 216
22. ? Vgl. Russel und Norvig (2012), Seite 928
23. ? Vgl. Görz, Schneeberger und Schmid (2012), Seite 457f
24. ? Russel und Norvig (2012), Seite 811
25. ? Russel und Norvig (2012), Seite 812
26. ? Russel und Norvig (2012), Seite 812
27. ? Lämmel & Cleve (2012), Seite 189
28. ? Ertel (2013), Seite 247
29. ? Vgl. Ertel (2013), Seite 247f
30. ? Vgl. Ertel (2013), Seite 250
31. ? Vgl. Pitts und McCulloch (1943)
32. ? Vgl. Rey und Wender (2010), Seite 15
33. ? Rosenblatt(1958)
34. ? Vgl. Russel und Norvig (2012), Seite 847
35. ? Köhle (2013), Seite 86
36. ? Hebb (1949), Seite 62
37. ? Köhle (2013), Seite 86
38. ? Vgl. Köhle (2013), Seite 86
39. ? Vgl. Karakas (1999), Seite 12
40. ? Vgl. Köhle (2013), Seite 88
41. ? Vgl. Lämmel und Cleve (2012), Seite 212
42. ? Vgl. Lämmel und Cleve (2012), Seite 211f
43. ? Vgl. Rey und Wender (2010), Seite 40
44. ? Vgl. Lämmel und Cleve (2012), Seite 211f
45. ? Vgl. Lämmel und Cleve (2012), Seite 212
6 Anhang
30
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
46. ? Vgl. Lämmel und Cleve (2012), Seite 212
47. ? Vgl. Lämmel und Cleve (2012), Seite 213
48. ? Vgl. Lämmel und Cleve (2012), Seite 214
49. ? Ertel (2013), Seite 280
50. ? Ertel (2013), Seite 281
51. ? Vgl. He, C. L., Zhang, P., Dong, J. X., Suen, C. Y., & Bui, T. D. (2005, August). The Role of Size
Normalization on the Recognition Rate of Hanwritten Numerals. In The 1st IAPR TC3 NNLPAR
workshop (pp. 8-12).
52. ? Vgl. Privenau, R. (2011). Mustererkennung mit Neokognitron und Anwendungen. Diplomarbeiten
Agentur.
53. ? Vgl. Perwej, Y., & Chaturvedi, A. (2012). Neural networks for handwritten english alphabet
recognition. arXiv preprint arXiv:1205.3966.
54. ? Vgl. LeCun, Y., Jackel, L. D., Bottou, L., Cortes, C., Denker, J. S., Drucker, H., ... & Vapnik, V.
(1995). Learning algorithms for classification: A comparison on handwritten digit recognition. Neural
networks: the statistical mechanics perspective, 261, 276.
55. ? Vgl. Minsky, M., & Papert, S. (1969). Perceptrons
56. ? Vgl. Stuart Geman, Elie Bienenstock, and René Doursat. 1992. Neural networks and the bias/variance
dilemma. Neural Comput. 4, 1 (January 1992), 1-58. DOI=http://dx.doi.org/10.1162/neco.1992.4.1.1
57. ? Vgl. Karsoliya, S. (2012). Approximating number of hidden layer neurons in multiple hidden layer
BPNN architecture. International Journal of Engineering Trends and Technology, 3(6), 713-717.
58. ? Vgl. LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to
document recognition. Proceedings of the IEEE, 86(11), 2278-2324.
6.2 Literatur und Quellenverzeichnis
Görz, Schneeberger und
Schmid (2012)
Alpaydin (2004)
Ester und Sander (2000)
Simon (1983)
Michalski (1986)
Lämmel und Cleve (2008)
Lämmel und Cleve (2012)
Pitts und McCulloch (1943)
Ertel (2013)
Rosenblatt (1958)
6.1 Fußnoten
Günther, Görz; Josef, Schneeberger; Ute, Schmid: Handbuch der künstlichen
Intelligenz, 2014, 5. Auflage, Oldenbourg Verlag
Ethem, Alpaydin: Maschinelles Lernen, 2004, Oldenbourg Verlag
Martin, Ester; Jörg, Sander: Knowledge Discovery in Databases, 2000, Springer
Verlag
Herbert, Simon: Why should machines learn?, 1983 (aus Ryszard S. Michalski,
Jaime G. Carbonell, Tom M. Mitchell, Machine Learning: An Artificial
Intelligence Approach, 1985), Morgan Kaufmann
Ryszard S., Michalski; Jaime G., Carbonell; Tom M., Mitchell: Machine
Learning: An Artificial Intelligence Approach, 1986, 2. Auflage, Morgan
Kaufmann
Uwe, Lammel; Jürgen, Cleve: Künstliche Intelligenz, 2008, 3. Auflage, Hanser
Verlag
Uwe, Lammel; Jürgen, Cleve: Künstliche Intelligenz, 2012, 4. Auflage, Hanser
Verlag
Warren, McCulloch; William, Pitts: A logical calculus of the ideas immanent in
nervous activity. In: Bulletin of Mathematical Biophysics, Band 5(1943), S.
115-113
Wolfgang, Ertel: Grundkurs Künstliche Intelligenz: Eine praxisorientiere
Einführung, 2013, 3. Auflage, Springer Vieweg Verlag
Frank, Rosenblatt: The perceptron - a probabilistic model for information
storage and organization in the brain. Psychological Reviews 65 (1958) 386-408
31
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
Russel und Norvig (2012)
Lippe (2006)
Hebb (1949)
Köhle (2013)
Karakas (1999)
Rey und Wender (2010)
He, C. L., Zhang, P., Dong, J.
X., Suen, C. Y., & Bui, T. D.
(2005, August)
Privenau, R. (2011)
Perwej, Y., & Chaturvedi, A.
(2012)
LeCun, Y., Jackel, L. D.,
Bottou, L., Cortes, C., Denker,
J. S., Drucker, H., ... & Vapnik,
V. (1995)
Minsky, M., & Papert, S.
(1969)
Stuart Geman, Elie
Bienenstock, and René Doursat.
(1992)
Stuart, Russel; Peter, Norvig: Künstliche Intelligenz: Ein moderner Ansatz,
2012, 3 Auflage, Pearson Verlag
Wolfram Lippe: Soft-Computing: mit Neuronalen Netzen, Fuzzy-Logic und
Evolutionären Algorithmen, 2006, Springer Verlag
Donald O. Hebb: The Organization of Behavior, 1949
Monika Köhle: Neurale Netze, 2013, Springer Verlag
Christos Karakas: Neuronale Lernregeln und Andere Methoden, 1999, BoD
Günter Daniel Rey; Karl F. Wender: Neuronale Netze, 2010, Huber Verlag
The Role of Size Normalization on the Recognition Rate of Hanwritten
Numerals. In The 1st IAPR TC3 NNLPAR workshop (pp. 8-12).
Mustererkennung mit Neokognitron und Anwendungen. Diplomarbeiten
Agentur.
Neural networks for handwritten english alphabet recognition. arXiv preprint
arXiv:1205.3966.
Learning algorithms for classification: A comparison on handwritten digit
recognition. Neural networks: the statistical mechanics perspective, 261, 276.
Perceptrons
Neural networks and the bias/variance dilemma. Neural Comput. 4, 1 (January
1992), 1-58. DOI=http://dx.doi.org/10.1162/neco.1992.4.1.1
Approximating number of hidden layer neurons in multiple hidden layer BPNN
Karsoliya, S. (2012)
architecture. International Journal of Engineering Trends and Technology, 3(6),
713-717.
LeCun, Y., Bottou, L., Bengio, Gradient-based learning applied to document recognition. Proceedings of the
Y., & Haffner, P. (1998)
IEEE, 86(11), 2278-2324.
6.3 Abbildungsverzeichnis
Abb.-Nr.
2.2.-1
2.2.-2
2.2.-2
2.3.-1
3.1.-1
3.1.-2
3.1.-3
3.2.-1
3.2.-2
3.2.-3
3.2.-4
Abbildung
Prozess der Klassifikation
Nearest Neighbour
Entscheidungsbaum
Prozess des Clusterings
Darstellung einer Nervenzelle
Neuronalen Netztes mit 3 Schichten
Neuron dargestellt im 4-Schichtenmodell
Lineare Aktivitätsfunktion
Lineare Aktivitätsfunktion mit Schwelle
Binäre Aktivitätsfunktion
Sigmoide Aktiverungsfunktion
6.2 Literatur und Quellenverzeichnis
32
Konzept_und_Anwendungsbeispiel_des_Überwachten_Lernens
3.4.-1
3.4.3.-1
3.4.3.-2
3.4.3.-3
4.1.-1
4.1.-2
4.1.-3
4.1.-4
4.1.-5
4.3.-1
4.3.-2
Beispielhafte Darstellung eines Neuronalen Netzes
Abbildung einer Gradientenfunktion und Vorgehensweise des
Gradientenabstiegs
Darstellung einer möglichen Fehlerkurve von zwei anliegenden
Gewichten
Funktion mit zu hoher Lernrate und erweiterte Funktion
handgeschriebene Postleitzahl
Segmentierung, Normalisierung und Skalierung
Überführung in ein Binärbild
Darstellung von Unter- und Überanpassung
Feedforward Multi-Layer Perzeptron
Visualization of MLP weights on MNIST - Python Quellcode
Visualization of MLP weights on MNIST - Script Output
6.4 Abkürzungsverzeichnis
6.3 Abbildungsverzeichnis
33
Herunterladen