Konzept und Anwendungsbeispiel des Überwachten Lernens

Aus Winfwiki

Wechseln zu: Navigation, Suche

Fallstudienarbeit

Hochschule: Hochschule für Oekonomie & Management
Standort: Münsterwarning.png„Münster“ gehört nicht zu den möglichen Werten dieses Attributs (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


Inhaltsverzeichnis

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 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 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 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
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 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
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]

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
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
Abbildung 2.3.-1: Prozess des Clustering

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.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
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]

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) Abbildung 3.1.-2: Neuronalen Netzes mit 3 Schichten
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:


Bild:Formel-Input-NEU.jpg


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
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:


Bild:Formel-Netzinput.jpg


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

Abbildung 3.2.-1: Lineare Aktivitätsfunktion
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
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
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
Abbildung 3.2.-4 Sigmoide Aktiverungsfunktion


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.

Bild:Formel-Sigmoide_Funktion.jpg

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 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):

Abbildung 3.4.-1 - Beispielhafte Darstellung eines Neuronalen Netzes
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 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:

Bild:Formel_Hebb_Regel.PNG

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:

Bild:Delta-Regel 1.PNG

Oder:

Bild:Delta-Regel_2.PNG

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.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]

Abbildung 3.4.3.-1: Abbildung einer Gradientenfunktion und Vorgehensweise des Gradientenabstiegs
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]

Bild:Backpropagation_Formel_1.PNG

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
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:

Bild:Backpropagation_Formel_2.PNG


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 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:

Bild:Backpropagation_Formel_3.PNG

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:
Bild:Backpropagation_Formel_4.PNG
Differenziert nach einem konkreten Gewicht wij, entfallen alle Summanden bis auf den einen Summanden k=i, der wij enthält:
Bild:Backpropagation_Formel_5.PNG
Findet die Identität Verwendung in der Ausgabefunktion, kann durch die Aktivierungsfunktion eine Abhängigkeit zwischen Ausgabe und Netzeingabe definiert werden.
Formel der Aktivierungsfunktion:
Bild:Backpropagation_Formel_6.PNG
Bei der gilt:
Bild:Backpropagation_Formel_7.PNG
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):
Bild:Backpropagation_Formel_8.PNG
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 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]
Bild:Backpropagation_Formel_9.PNG
Daraus ergibt sich:
Bild:Backpropagation_Formel_10.PNG
Den Fehler kann man für ein Ausgabeneuron nur direkt zwischen dem Trainingswert tj und der berechneten Ausgabe oj differenzieren
Bild:Backpropagation_Formel_11.PNG
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:
Bild:Backpropagation_Formel_12.PNG
Für ein Neuron einer inneren, versteckten Schicht wird der Fehler aus den Fehlersignalen der nachfolgenden Neuronen berechnet:
Bild:Backpropagation_Formel_13.PNG
Das Fehlersignal δ ist dabei als das Produkt des ersten und des zweiten Faktors der Gleichung definiert:
Bild:Backpropagation_Formel_14.PNG
Unter Verwendung der logistischen Funktion als Aktivierungsfunktion ergibt sich zusammenfassend daraus folgende Gleichung: [48]
Bild:Backpropagation_Formel_15.PNG


In der Kurzform kann die Formel zur Berechnung der Gewichtsveränderung wie folgt vereinfacht werden:
Bild:Backpropagation_Formel_16_1.PNG

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]

Bild:Backpropagation_Formel_16.PNG‎

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
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.

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
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]

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
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]

Abbildung 4.1.-3: Überführung in ein Binärbild.
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:

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
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.
     
  • 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
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.

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.


Abbildung 4.3.-1: Visualization of MLP weights on MNIST - Python Quellcode
Abbildung 4.3.-1: Visualization of MLP weights on MNIST - Python Quellcode


Abbildung 4.3.-2: Visualization of MLP weights on MNIST - Script Output
Abbildung 4.3.-2: Visualization of MLP weights on MNIST - Script Output

5 Schlussbetrachtung

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.

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
  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) Günther, Görz; Josef, Schneeberger; Ute, Schmid: Handbuch der künstlichen Intelligenz, 2014, 5. Auflage, Oldenbourg Verlag
Alpaydin (2004) Ethem, Alpaydin: Maschinelles Lernen, 2004, Oldenbourg Verlag
Ester und Sander (2000) Martin, Ester; Jörg, Sander: Knowledge Discovery in Databases, 2000, Springer Verlag
Simon (1983) 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
Michalski (1986) Ryszard S., Michalski; Jaime G., Carbonell; Tom M., Mitchell: Machine Learning: An Artificial Intelligence Approach, 1986, 2. Auflage, Morgan Kaufmann
Lämmel und Cleve (2008) Uwe, Lammel; Jürgen, Cleve: Künstliche Intelligenz, 2008, 3. Auflage, Hanser Verlag
Lämmel und Cleve (2012) Uwe, Lammel; Jürgen, Cleve: Künstliche Intelligenz, 2012, 4. Auflage, Hanser Verlag
Pitts und McCulloch (1943) 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
Ertel (2013) Wolfgang, Ertel: Grundkurs Künstliche Intelligenz: Eine praxisorientiere Einführung, 2013, 3. Auflage, Springer Vieweg Verlag
Rosenblatt (1958) Frank, Rosenblatt: The perceptron - a probabilistic model for information storage and organization in the brain. Psychological Reviews 65 (1958) 386-408
Russel und Norvig (2012) Stuart, Russel; Peter, Norvig: Künstliche Intelligenz: Ein moderner Ansatz, 2012, 3 Auflage, Pearson Verlag
Lippe (2006) Wolfram Lippe: Soft-Computing: mit Neuronalen Netzen, Fuzzy-Logic und Evolutionären Algorithmen, 2006, Springer Verlag
Hebb (1949) Donald O. Hebb: The Organization of Behavior, 1949
Köhle (2013) Monika Köhle: Neurale Netze, 2013, Springer Verlag
Karakas (1999) Christos Karakas: Neuronale Lernregeln und Andere Methoden, 1999, BoD
Rey und Wender (2010) Günter Daniel Rey; Karl F. Wender: Neuronale Netze, 2010, Huber Verlag
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).
Privenau, R. (2011) Mustererkennung mit Neokognitron und Anwendungen. Diplomarbeiten Agentur.
Perwej, Y., & Chaturvedi, A. (2012) Neural networks for handwritten english alphabet recognition. arXiv preprint arXiv:1205.3966.
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.
Minsky, M., & Papert, S. (1969) Perceptrons
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
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.
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.3 Abbildungsverzeichnis

Abb.-Nr.Abbildung
2.2.-1Prozess der Klassifikation
2.2.-2Nearest Neighbour
2.2.-2Entscheidungsbaum
2.3.-1Prozess des Clusterings
3.1.-1Darstellung einer Nervenzelle
3.1.-2Neuronalen Netztes mit 3 Schichten
3.1.-3Neuron dargestellt im 4-Schichtenmodell
3.2.-1Lineare Aktivitätsfunktion
3.2.-2Lineare Aktivitätsfunktion mit Schwelle
3.2.-3Binäre Aktivitätsfunktion
3.2.-4Sigmoide Aktiverungsfunktion
3.4.-1Beispielhafte Darstellung eines Neuronalen Netzes
3.4.3.-1Abbildung einer Gradientenfunktion und Vorgehensweise des Gradientenabstiegs
3.4.3.-2Darstellung einer möglichen Fehlerkurve von zwei anliegenden Gewichten
3.4.3.-3Funktion mit zu hoher Lernrate und erweiterte Funktion
4.1.-1handgeschriebene Postleitzahl
4.1.-2Segmentierung, Normalisierung und Skalierung
4.1.-3Überführung in ein Binärbild
4.1.-4Darstellung von Unter- und Überanpassung
4.1.-5Feedforward Multi-Layer Perzeptron
4.3.-1Visualization of MLP weights on MNIST - Python Quellcode
4.3.-2Visualization of MLP weights on MNIST - Script Output

6.4 Abkürzungsverzeichnis

Persönliche Werkzeuge