Maschinenlernen

Werbung
“If an expert system – brilliantly designed, engineered and implemented – cannot learn not to repeat its mistakes, it is not as
intelligent as a worm or a sea anemone or a kitten”
Oliver G. Selfridge, from The Gardens of Learning.
Ludwig-Maximilian-Universität München
Maschinenlernen
von Thomas Bleher1
Seminararbeit zum Seminar „Lehren und Lernen“
Ludwig-Maximilian-Universität München im Sommersemester 2003
gehalten von Frau Dipl. päd. Ulrike-Marie Krause
Abgegeben am 30. September 2003
1 Theo-Prosel-Weg
16, 80797 München, Matrikelnr. 010382303844
Inhaltsverzeichnis
1 Einleitung
2
2 Anwendungen
2.1 Data mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Schwer programmierbare Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Angepasste Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
3
3
3
Philosophische Fragen
3
4
Grundlagen
4.1 Lernfähigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Lernende Agenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Lernarten und Unterscheidungsmerkmale . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
5
5
5
Supervised Learning
5.1 Decision Trees . . . . . . . . . . . . . . . .
5.1.1 Overfitting . . . . . . . . . . . . . .
5.2 Neuronale Netze . . . . . . . . . . . . . . .
5.2.1 Biologisches Vorbild . . . . . . . . .
5.2.2 Aufbau . . . . . . . . . . . . . . . .
5.2.3 Lernen von neuronalen Netzen . . . .
5.2.4 Zusammenfassung . . . . . . . . . .
5.3 Bayesische Netzwerke . . . . . . . . . . . .
5.3.1 Was sind Bayesische Netze? . . . . .
5.3.2 Lernen von Bayesischen Netzwerken
5.3.3 versteckte Variablen . . . . . . . . .
5.3.4 Struktur lernen . . . . . . . . . . . .
5.3.5 Zusammenfassung . . . . . . . . . .
5.4 Andere Modelle . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
7
8
8
8
8
9
10
10
10
12
12
12
13
13
6
Unsupervised Learning
13
7
Reinforcement Learning
15
8
Vergleich zu menschlichem Lernen
16
9
Zusammenfassung
17
Literatur
17
Zusammenfassung
Diese Arbeit behandelt das Thema Maschinenlernen (ML). Ziel ist, Methoden und Anwendungen von
Computerlernen kennenzulernen, besonders auch im Hinblick und als Vergleichspunkt zu menschlichem
Lernen. Zuerst werden verschiedene Anwendungen vorgestellt, die zeigen wie ML in der Praxis eingesetzt wird. Danach wird auf einige grundsätzliche philosophische Fragen hingewiesen, die das Feld der
Künstlichen Intelligenz betreffen. Nach einer Einführung in verschiedene Teilgebiete des ML werden dann
verschiedene Methoden vorgestellt, die heute benutzt werden, um ML zu ermöglichen. Diese Methoden decken einen guten Teil der aktuellen Forschung ab und zeigen sowohl die Errungenschaften dieses Gebiets
als auch die Problemfelder und Herausforderungen. Am Ende steht noch ein Vergleich zu menschlichem
Lernen sowie ein Ausblick.
1
1
Einleitung
Warum eine Arbeit über Maschinenlernen? Was hat der Versuch, Computern das Lernen beizubringen mit Pädagogik zu tun? Mein Ziel bei der Beschäftigung mit diesem Thema war es, das Thema Lernen einmal aus
einer völlig anderen Perspektive kennenzulernen, neu darüber nachzudenken wie Lernen eigentlich funktioniert. Möglicherweise entmystifiziert dieser Perspektivenwechsel auch manche Lernvorstellungen und bietet
Einblick in die zugrundeliegenden Mechanismen. Wie wir sehen werden sind die Lernfähigkeiten von Computern noch längst nicht so ausgereift wie die menschlichen und es besteht kein Grund anzunehmen, dass die
Art des Lernens von Mensch und Computer völlig identisch ist. Dies bedeutet dass nicht notwendigerweise
alle Ergebnisse auf menschliches Lernen übertragbar sind. Dennoch kann die Disziplin Maschinenlernen einen
Beitrag zum Verständnis menschlichen Lernens beitragen, zusammen mit vielen anderen Disziplinen wie der
Gehirnforschung der Psychologie und der Pädagogik.
Maschinenlernen (im Folgenden ML) ist ein eigenes Forschungsgebiet innerhalb der Künstlichen Intelligenz. In den 50 Jahren seiner Existenz hat dieser Bereich nicht nur eine Menge theoretische Ergebnisse vorgebracht sondern auch eine Vielzahl an praktischen Anwendungen. Zu Beginn werde ich einige davon vorstellen
um einen Überblick zu geben was mit ML heute schon möglich ist. In Abschnitt 3 reiße ich einige philosophische Fragen an, die die Künstliche Intelligenz (im Folgenden KI) seit ihrer Geburt begleitet haben. In den
Abschnitten 4 bis 7 stelle ich dann die eigentlichen Methoden des ML vor und gebe einen Überblick über
die Konzepte, die in lernenden Maschinen Verwendung finden. In den Abschnitten 8 und 9 gibt es noch einen
Vergleich zu menschlichem Lernen sowie eine Zusammenfassung und einen Ausblick.
Die Hauptaufgabe innerhalb des Bereichs ML ist es, Algorithmen zu entwickeln, die Lernen ermöglichen.
Nun haben Computern die Eigenschaft, dass man ihnen alles was sie machen sollen sehr exakt mitteilen muss.
Der Nachteil daran ist, dass Maschinenlernen eine sehr mathematische Disziplin ist, die auch viele Konzepte
aus der Statistik entliehen hat. Ich habe mich bemüht, die grundlegenden Konzepte verständlich darzustellen,
ohne zu viel Mathematik vorauszusetzen. Wer sich noch genauer in diese Bereiche hineinvertiefen möchte
kommt um ein gutes Verständnis der mathematischen Grundlagen jedoch nicht herum. Der Vorteil ist jedoch,
dass Computer exakt sind, genau untersucht werden können und Experimente beliebig reproduzierbar sind. Sie
eignen sich deshalb gut zur Untersuchung von Lernvorgängen.
2
Anwendungen
Wo braucht man ML? Oder, anders ausgedrückt: Wozu soll man sich die Mühe machen, Computer zum Lernen
zum Bewegen? Sicher kann man mit einem Computer viele nützliche Dinge anstellen, ohne dass der Computer
dazu lernen muss. In vielen Fällen will man gar nicht dass ein Computer lernt und sein Verhalten ändert (z.B. bei
mathematischen Berechnungen). Dennoch gibt es einige Bereiche in denen ML unabdingbar ist. [Mit97] nennt
drei solcher Bereiche: Data Mining, Schwer programmierbare Anwendungen und Angepasste Anwendungen.
2.1
Data mining
Data Mining ist sicherlich der Goldesel der ML-Forscher, das Anwendungsgebiet in dem am meisten Geld
zu holen ist. Mit zunehmender Computernutzung steigt die Zahl der verfügbaren und zu bearbeitenden Daten
exponentiell an. Unternehmen besitzen immer größere Datenbanken und es wird immer schwieriger, sinnvolle Informationen herauszufiltern. Beispielsweise erzeugt jeder Einkauf im Supermarkt einen Eintrag in einer
Datenbank, in dem alle Artikel die gekauft wurden aufgelistet sind zusammen mit Datum und Urzeit, Filiale,
evt. Kundennummer usw. Die Unternehmen würden solche Daten gerne nutzen um neue Informationen über
ihre Kunden zu bekommen oder die verkauften Waren, um z.B. die Werbung zu verbessern („welche Waren
werden häufig zusammen eingekauft?”). Die schiere Menge der Informationen (oft viele Millionen Einträge)
macht dies mit konventionellen Methoden praktisch unmöglich. Hier kommt nun Data Mining ins Spiel. Es be-
2
zeichnet die Verwendung von Lernalgorithmen um neue Zusammenhänge zu entdecken. Beispielsweise kann
man Clustering (Abschnitt 6) verwenden um verschiedene Kundenkategorien zu finden.
Ein anderes Anwendungsgebiet liegt in der Medizin. Wenn man eine Datenbank von schwangeren Frauen
hat zusammen mit verschiedenen Daten (Alter, Raucher/NR), den Untersuchungsergebnissen und dem Ausgang der Schwangerschaft, kann man Data Mining dazu benutzen um Risikofaktoren zu finden und in Zukunft
entsprechende Maßnahmen zu treffen. Bei Data Mining wird ML also dazu genutzt, aus historischen Daten
neue Informationen zu gewinnen und zukünftige Entscheidungen besser treffen zu können.
Weitere Einsatzgebiete für Data Mining sind die Klassifizierung von Kreditanträgen (wann lohnt es sich für
die Bank, einen Kredit zu geben), sowie das Erkennen von Kreditkartenbetrug, indem typische Benutzungsprofile aus der Vergangenheit mit dem zu überprüfenden Profil verglichen werden. Data Mining wurde auch
erfolgreich zur Klassifizierung von Sternen eingesetzt, siehe Abschnitt 6 auf Seite 14.
2.2
Schwer programmierbare Anwendungen
Es gibt viele Anwendungen, die sich nur schwer von Hand programmieren lassen, weil man zwar viele Beispiele hat, sich aber kaum explizite Regeln finden lassen. Beispiele für solche Anwendungen sind Schriftund Spracherkennung. Alle zur Zeit auf dem Markt erhältlichen Programme für diese Aufgaben verwenden
irgendwie ML. Allgemein eignet sich ML überall da, wo es viele Sensordaten (Informationen von Kameras,
Mikrofonen, Drucksensoren, ...) zu interpretieren gilt, z.B. in der Gesichtserkennung, in der Auto- und Flugzeugsteuerung. ML wurde auch eingesetzt um Computern Spiele wie Backgammon beizubringen (der beste
Computer-Backgammon-Spieler wurde mit Hilfe von ML entwickelt)
2.3
Angepasste Anwendungen
In vielen Gebieten ist es wünschenswert dass sich Computern den Wünschen und Gewohnheiten des Nutzers
anpassen. Besonders lohnenswert scheint die automatische Informationssortierung im Internet, da die Informationsflut sonst kaum noch bewältigt werden kann. Es gibt einige Projekte, die Webseiten und News als
interessant oder uninteressant klassifizieren, basierend auf dem, was der Benutzer bisher angeschaut hat oder
wie er andere Informationen bewertet hat. Viele moderne Spamfilter (z.B. in Mozilla) sind inzwischen auch
lernfähig und können sich so den eMailgewohnheiten des Benutzers und neuen Spammails anpassen.
Anpassung wird auch benötigt, wenn sich Roboter in einer neuen Umgebung zurechtfinden sollen oder die
Umgebung sich ständig ändert.
3
Philosophische Fragen
Die Fähigkeit zu Lernen ist in unserer Vorstellung untrennbar mit Denken und Intelligenz verknüpft, und so
stellen sich bei der Betrachtung lernender Maschinen unweigerlich eine Menge philosophischer Fragen ein,
etwa ob lernende Maschinen denken können, ob es möglich ist, menschenähnliche Maschinen (d.h. Maschinen
mit menschenähnlicher Intelligenz) zu entwickeln, welche Rolle das Bewusstsein und die Seele spielt, usw.2
Die Diskussion zu diesen Themen geht zurück bis zu den Anfängen der Künstlichen Intelligenz, zu Alan Turing, Vordenker und „Vater” dieser Forschungsrichtung. Sein Papier „Computing Machinery and Intelligence”
[Tur50] ist gewissermaßen die Geburtsurkunde des Forschungsbereichs Künstliche Intelligenz.
In diesem Papier stellt Turing die grundsätzliche Frage: „Können Maschinen denken?”. Um den philosophischen Einwänden, die dabei unweigerlich entstehen, zu entgehen ersetzt er diese Frage durch eine andere,
nämlich: „Können Computer das Imitationsspiel spielen?”. Turing dachte dabei an eine Art Chat, in der ein
2 Ich kann diese Fragen hier nur anreißen, zumal die Diskussion zu diesem Thema sehr umfangreich ist und es eine Fülle an Literatur
gibt, weitergehende Informationen und einen guten Überblick gibt [SCA00].
3
Fragesteller mit einem Mensch oder einer Maschine kommuniziert. Der Fragesteller darf beliebige Fragen stellen und muss herausfinden, ob er mit einem Mensch oder einer Maschine redet. Die Form eines Chats wurde
gewählt, um andere Faktoren als die Intelligenz zur Unterscheidung auszuschließen. Eine Maschine ist nach
diesem Test intelligent, wenn sie auch durch beliebig viele Fragen nicht von einem Menschen unterschieden werden kann. Turing hielt seinen Test (später nach ihm Turing-Test benannt) für ein notwendiges und
hinreichendes Kriterium für maschinelle Intelligenz. Später wurde ihm vorgeworfen, er setze ein rein behavioristisches Kriterium zur Beurteilung von Intelligenz ein, indem er nur das äußere Verhalten bewerte. Dies ist
richtig, entspricht jedoch durchaus auch der menschlichen Vorgehensweise, da auch wir anderen Intelligenz
nach äußeren Kriterien zumessen (ein Mensch ist intelligent, ein Regenwurm nicht...).
Es gab viele kontroverse Diskussionen darüber, ob eine Maschine gebaut werde könnte die diesen Test
bestehen würde. Die meisten Einwände rührten von der Auffassung her, es sei unmöglich eine Maschine mit
Bewusstsein zu schaffen, also eine Maschine die über sich selbst nachdenken kann, Emotionen haben kann usw.
Dies ist in der Tat ein sehr schwieriges Problem, auch heute ist die Frage nach dem Bewusstsein trotz intensiver
Bemühungen auch der Gehirnforschung noch nicht ansatzweise gelöst, unser Wissen ist sehr lückenhaft und wir
verstehen viele Vorgänge im Gehirn nicht. Dessen war sich auch Alan Turing bewusst, er war jedoch dennoch
der Ansicht, eine denkende Maschine sei konstruierbar, dazu sei es nicht unbedingt notwendig, vorher das
Gehirn komplett zu verstehen.
Dieses von Turing angestrebte Ziel einer intelligenten Maschine spaltete die Forscher in zwei Richtungen:
„Strong AI” (AI=Artificial Intelligence), welche an die Machbarkeit einer solchen Idee glaubten, und „weak
AI”, denen es einfach nur um „intelligente” Anwendungen ging. Die Diskussion ist noch nicht entschieden,
klar ist jedoch dass das Ziel in in weite Ferne gerückt ist.
Einen wichtigen Beitrag hat French in seinem lesenswerten Papier „Subcognition and the limits of the
Turing Test” [Fre90] gemacht, in dem er überzeugend dargelegt, dass Geist und Körper nicht so einfach zu
trennen sind, dass im Gegensatz ein Computer, um „menschlich” zu sein, die Welt so erlebt haben muss wie
ein Mensch3 . Das heisst nun nicht dass keine Intelligenz möglich ist ohne menschlichen Körper, sondern dass
eine solche Intelligenz notwendigerweise anders ist als die menschliche.
Wenn also auch das große Ziel der KI vorerst unerreichbar bleibt, so hat die „weak AI” doch große Fortschritte gemacht. Wenn man nämlich die Komplexität einschränkt und nur bestimmte Teilgebiete betrachtet, so
können Computer auch heute schon Leistungen erzielen die intelligent sind, das heisst für die ein Mensch Intelligenz bräuchte. Die Komplexität der Wissensdomänen, mit denen ein Computer umgehen kann ist natürlich
weit von der des Menschen entfernt, das tut der Nützlichkeit jedoch keine Abbruch.
4
4.1
Grundlagen
Lernfähigkeiten
Was können Computer lernen? Welche Fähigkeiten brauchen sie? Wenn wir lernen benutzen wir eine Vielzahl
von Fähigkeiten, ohne dass uns dies bewusst ist. Die Stärke des Gehirns liegt unter anderem in dieser komplexen
Vernetzung. Für das ML ist es aber notwendig, diese Fähigkeiten aufzuteilen und sie getrennt zu betrachten;
einige der Fähigkeiten, die für Maschinenlernen und intelligentes Verhalten notwendig sind:
• Klassifikation (Daten und Ereignisse in Kategorien einteilen)
• Mustererkennung
• Generalisierung (aus Beispielen allgemeine Regeln finden)
• Voraussagen treffen aufgrund aktueller Information
3 Einfach weil unsere Art zu denken und die Welt zu ordnen sehr von unserer Wahrnehmung der Welt geprägt ist; jede andere
Wahrnehmung der Welt führt notwendigerweise zu einer anderen Art des Denkens.
4
Abbildung 1: Modell eines lernenden Agenten, aus [RN02, Folien zum Buch, Kap. 18, S. 4]
• Verhaltensänderung (z.B. Roboter soll Verhalten der Umgebung oder neuen Situation anpassen)
Die bisherigen Algorithmen beschränken sich meist auf eine Aufgabe, die Verknüpfung dieser Teile kommt
erst langsam.
4.2
Lernende Agenten
„The term "Machine Learning" suggests that the goal of Machine Learning is to build complete
"learning machines". Actually building a machine that only learns is not the goal of Machine
Learning. The main applications are in data analysis or data mining and in the construction of
adaptive systems that automatically improve their performance on a particular task.”
aus [MLN03, http://kiew.cs.uni-dortmund.de:8001/mlnet/concepts/CaseStudy]
Wie man an obigem Zitat sehen kann steht Maschinenlernen nicht alleine im luftleeren Raum sondern ist in
einen Kontext eingebettet. Diesen Kontext kann man am besten verstehen wenn man sich das Konzept eines
lernenden Agenten anschaut. Agenten nehmen Wahrnehmungen aus ihrer Umgebung auf und handeln und
reagieren darauf. In ihrem Standardwerk ([RN02]) definieren Stuart Russell und Peter Norvig gar Künstliche
Intelligenz als das Studium von Agenten. In der Abbildung 1 sehen wir ein einfaches Modell für einen solchen
lernenden Agenten. Wir wollen uns im Folgenden mit dem Lernelement beschäftigen, doch ist es wichtig auch
die anderen Elemente zu kennen, z.B. der „Critic” der Rückmeldungen über Status und Lernerfolg gibt und das
„Performance Element”, das mit der Umgebung interagiert. Die Umgebung („Environment”) kann übrigens
sehr vielfältig sein – von etwas konzeptuell simplen wie einer Datenbank bis hin zu realen Umgebungen in
denen sich ein Roboter bewegt.
4.3
Lernarten und Unterscheidungsmerkmale
In der ML-Forschung werden drei Grundformen des MLs unterschieden. Die Unterschiede zwischen diesen
Lernformen liegen in der Art der vorhandenen Daten, ob die Daten schon vollständig, gar nicht oder indirekt
kategorisiert sind. Die folgende Tabelle fasst die drei Formen zusammen, die auch in den folgenden Kapiteln
beschrieben werden.
5
Lernart
Supervised Learning
Unsupervised Learning
Reinforcement Learning
welche
Informationen
sind vorhanden
Daten inklusive Kategorisierung
Nur Daten
Feedback zu einzelnen
Handlungen
Art des Erkenntnisgewinns
Generalisierung aus den Trainingsdaten, Fähigkeit, neue Daten zu kategorisieren
Kategorien finden und Daten zuordnen
Handlungsanweisung finden, um positives Feedback zu maximieren
Neben diesen drei großen Kategorien gibt es natürlich eine Vielzahl anderer Faktoren, die verschiedene
Lernaufgaben unterscheiden; dementsprechend gibt eine reichhaltige Sammlung an Algorithmen und Methoden, jeder mit ganz eigenen Fähigkeiten, Anforderungen und Grenzen. Einige der Unterscheidungsmerkmale:
Inkrementelles/Batch-Lernen Kann das Lernen nach und nach erfolgen oder muss alles auf einmal erlernt
werden? Batch-Lerner sind konzeptuell meist erheblich einfacher, allerdings kann kein Wissen nachträglich hinzugefügt werden und beim Lernen müssen alle Daten vorhanden sein
Umgang mit Rauschen Was passiert wenn die Daten teilweise verrauscht, ungenau oder falsch sind?
Zugang zu Lernergebnissen Können die gewonnenen Erkenntnisse gut extrahiert werden, z.B. als Regeln
oder Prozentzahlen über verschiedene Klassen oder handelt es sich bei dem Lernelement um eine „Black
Box”?
Umgang mit Vorwissen Kann Vor- und Hintergrundwissen aus der zu lernenden Domäne für den Lernvorgang
nutzbar gemacht werden?
Art der Daten Um Informationen für den Computer verdaubar zu machen werden diese meist als AttributWerte-Paare geliefert, beispielsweise hat ein Kunde in einer Firmendatenbank die Paare Alter = 34, Geschlecht = männlich, Einkommen/Jahr = 25000, Wohnort = Hamburg, usw. Manche Algorithmen können
nur mit numerischen Daten umgehen, während andere auch kategorische Informationen (rot/grün/blau)
verarbeiten können.
Leistungsanforderungen Wieviel Speicherplatz und Rechenzeit braucht ein Lernalgorithmus, sowohl um zu
lernen, als auch um Anfragen zu behandeln (oft ein wichtiger Faktor in realen Anwendungen)
Wie man hier wohl schon erahnen kann gibt es keinen optimalen Lernalgorithmus, vielmehr muss man bei
jeder Lernaufgabe neu schauen, welcher Algorithmus am ehesten dazu passt und die besten Ergebnisse liefert.
In den nächsten Kapiteln werde ich die bekanntesten und erprobtesten Methoden vorstellen.
5 Supervised Learning
Im Falle von „Supervised Learning” liegen die Daten bereits kategorisiert vor, das heisst die gewünschte Zuordnung ist bekannt. Um zum Beispiel Handschrifterkennung zu trainieren würde man eine Tabelle erstellen
mit Bildern von verschiedenen geschriebenen Buchstaben und Ziffern, zusammen mit der richtigen Kategorie.
Beim Lernen geht es nicht darum, einfach nur die gelernten Daten wieder zu erkennen, dazu könnte man ja
einfach eine Tabelle verwenden. Die Herausforderung bei „Supervised Learning” ist die Generalisierung, d.h.
der Computer soll z.B. Zeichen erkennen, die er nie zuvor gesehen hat. Es gilt also, beim Lernen allgemeine
Muster zu entdecken und diese dann anzuwenden.
6
Abbildung 2: Ein einfacher Decision Tree, erzeugt aus den Beispielen links (Beispiel aus [Aha95, S. 19f], leicht
verändert)
5.1
Decision Trees
Decision Trees sind ein einfaches Modell, das leicht zu verstehen ist und gleichzeitig oft in der Praxis eingesetzt
wird. Decision Trees eignen sich für Kategorisierungsaufgaben, bei der Daten mit vielen Attributen vorliegen,
bevorzugt kategorischen.
Am besten kann man das Konzept von Decision Trees an einem Beispiel sehen (Abbildung 2): Zellen
sollen in krebsartig und gesund einsortiert werden; jede Zelle hat drei Eigenschaften: Zahl der Zellkerne, Art
des Zellkörpers und Zahl der Schwänze. Aus den gegebenen Beispielen sollen Regeln abgeleitet werden, um
andere Zellen einordnen zu können, die in dem Beispiel nicht vorkamen.
Je nachdem, nach welchen Kriterien zuerst unterschieden wird kann der Baum ganz verschieden aussehen.
Das Ziel ist, einen möglichst kleinen Baum zu finden, der alle Daten korrekt klassifiziert (kleiner Baum →
Bearbeitung geht schnell, wenig Speicherplatz).
Ein Baum wird von oben nach unten erzeugt. Dabei wird immer die Eigenschaft gesucht die den höchsten Informationsgewinn bringt (d.h. die Eigenschaft die die Beispiele am besten in verschiedene Kategorien
einteilt), im Beispiel ist das die Eigenschaft „Zahl der Kerne”. Dann werden die Beispiele entsprechend dieser
Eigenschaft in Gruppen aufgeteilt, eine Verzweigung im Baum erzeugt und aus den Gruppen wird wieder ein
(Unter-)Baum erstellt. Dies wird solange fortgeführt bis alle Beispiele korrekt klassifiziert sind.
Der große Vorteil dieser Methode ist die Einfachheit, was sowohl beim Lernen und Klassifizieren von Daten
hilfreich ist, als auch ein leichteres Verständnis des Gelernten ermöglicht. So können unter Umständen einfache
Regeln abgelesen werden, wie in dem Beispiel.4
In ihrer Grundform lassen sich Decision Trees nur batch-lernen, da zum Erzeugen eines möglichst kleinen
Baums alle Daten vorhanden sein müssen; es gibt jedoch auch Unternehmungen, solche Bäume dynamisch
umzuordnen und so auch inkrementelles Lernen zu ermöglichen.
Eine Eigenheit von Decision Trees ist, dass sie nur mit „harten” Werten umgehen können, es wird immer
ja/nein-gesplittet und zwar immer nur an einer Eigenschaft. Das vereinfacht die Methode, macht solche Bäume
jedoch z.B. für Wahrscheinlichkeiten weniger geeignet.
Ein Problem der allermeisten Lernalgorithmen kann man bei Decision Trees besonders gut sehen, das
sogenannte Overfitting.
4 Mit
der Menge der Eigenschaften und Beispiele steigt natürlich auch die Größe des Baums, so dass dies in realen Anwendungen
oft nicht ganz so leicht ist
7
5.1.1
Overfitting
Overfitting bezeichnet ein allgemeines Problem innerhalb des ML und tritt vor allem auf wenn viele Daten
vorhanden sind oder die Daten mit Rauschen (also kleinen Abweichungen) behaftet sind. Wenn man solche
Daten einfach so lernen lässt dann kann es oft vorkommen dass der Lernalgorithmus, im Bestreben die Daten
korrekt zu lernen, sinnlose Regelmäßigkeiten findet, z.B. dass der Wochentag eine gewürfelte Zahl beeinflusst.
Das heisst der Lernalgorithmus passt sich nicht nur den tatsächlichen Daten an sondern auch dem Rauschen
und den Fehlern in den Daten. Dies ist unerwünscht, zum einen weil dadurch die allgemeine Qualität der
Voraussagen des Lernalgorithmus zurückgeht und das Modell unnötig komplex wird.
Je nach angewandter Methode gibt es verschiedene Möglichkeiten, gegen overfitting vorzugehen. Bei Decision Trees äußert sich overfitting meist in einem zu großen und komplexen Baum. In der Regel wird erst der
komplette Baum erzeugt und dann „beschnitten”, es werden von unten nach oben Äste entfernt, bis er eine
angemessene Größe erreicht hat.
5.2
5.2.1
Neuronale Netze
Biologisches Vorbild
Neuronale Netze sind ein interessantes Modell, ursprünglich entstanden um die Vorgänge im Gehirn bei der
Informationsverarbeitung sowie die Struktur zu modellieren und zu verstehen. Das Bemerkenswerte am Gehirn
ist, dass es keine zentrale Steuereinheit gibt, sondern dass es aus vielen kleinen Einheiten besteht, den Neuronen
(einzelne Nervenzellen), die autonom und parallel arbeiten und mit ihren Nachbarn über Synapsen verbunden
sind und Signale austauschen. Jedes Neuron empfängt über die Synapsen Impulse von anderen Neuronen und
„feuert”, also schickt auch ein Signal, wenn die Stärke des ursprünglichen Signals einen gewissen Wert übersteigt. Lernen passiert indem die Stärken der Verbindungen zwischen den Neuronen geändert werden oder
neue Verbindungen entstehen. Aus dieser sehr einfachen Grundaufbau5 entsteht durch die riesige Vernetzung
ein extrem komplexes System, das zu erstaunlichen Leistungen fähig ist.
5.2.2
Aufbau
Abbildung 3: Ein typisches Feed-Forward-Netzwerk mit zwei verdeckten Schichten
Künstliche Neuronale Netze bilden diese Struktur vereinfacht nach. Abbildung 3 zeigt ein typisches künstliches Neuronales Netzwerk (im Folgenden NN). Ganz links sieht man die sogenannte Eingabeschicht, dort
5 Der Gesamtaufbau des Gehirns ist natürlich noch um einiges komplexer und auch noch nicht ausreichend erforscht und verstanden,
doch schon mit diesem einfachen Modell kann man sehr viel erreichen, wie wir noch sehen werden.
8
liegen die Signale an. Von dort werden die Signale zu der ersten Schicht von Neuronen weitergeleitet.
Jedes Neuron ist dabei wie ein simpler Prozessor, der einige einfache Rechnungen durchführt6 . Zuerst
werden die Signale von den einzelnen Eingängen zusammengezählt, wobei die Eingänge gewichtet sind, das
heisst sie fließen unterschiedlich stark in die Summe ein. Falls ein bestimmter Schwellwert überschritten wird,
„feuert” das Neuron, das heisst es schickt ebenfalls ein Signal an seinen Ausgang.
Die Signale fließen also von links nach rechts durch das Netzwerk, bis sie an der Ausgabeschicht ankommen
und dort ein Signal (=Ergebnis) erzeugen. Die Art der Signalverarbeitung ist der des Gehirns ziemlich ähnlich,
der große Unterschied zum Gehirn besteht in der Größe und Komplexität: Während ein menschliches Gehirn
rund 100 Milliarden Neuronen enthält und Neuronen bis zu 10.000 Verbindung zu anderen Neuronen besitzen,
haben künstliche Netze meist 100 bis 1000 Neuronen und höchstens 100.000 bis 200.000 Verbindungen.
Das in der Abbildung 3 gezeigte NN ist ein Beispiel für ein mehrschichtiges Feed-Forward-Netzwerk.
Dies ist die häufigste Struktur, die in der Praxis verwendet wird. Die Neuronen sind in Schichten angeordnet
und die einzelnen Schichten sind vollständig mit der Nachbarschicht verbunden. Meist werden ein oder zwei
verdeckte Schichten verwendet. Die Signale wandern von links nach rechts. Weil keine Schleifen vorhanden
sind arbeitet ein solches Netz ziemlich schnell. Nahe verwandt sind sogenannte Kaskaden-Netzwerke, bei denen
die Neuronen geordnet sind und jedes Neuron mit jeder Eingabe und jedem seiner Vorgänger verbunden ist.
Neben diesen Strukturen gibt es noch viele andere, wahrscheinlich so viele wie Forscher in diesem Gebiet
([Sar02] nennt über 40 „well known kinds of NNs”). Ein interessanter Ansatz sind die sogenannten Recurrent
Networks, die Schleifen haben, das heisst die Signale können im Kreis wandern. Dies bietet einige interessante
Eigenschaften, denn solche Netzwerke können unter Umständen Informationen speichern, besitzen also eine
Art Kurzzeitgedächtnis. Dadurch dass die Signale im Kreis fliessen kann es lange dauern bis solche Netze einen
stabilen Zustand erreichen. Sie sind auch sehr komplex zu verstehen, zu analysieren und zu lernen und werden
daher noch nicht praktisch eingesetzt.
Im folgenden werde ich nur auf mehrschichtige Feed-Forward-Netze eingehen, die in Anwendungen (d.h.
ausserhalb der Forschung) fast ausschliesslich verwendet werden.
5.2.3
Lernen von neuronalen Netzen
Das „Wissen” eines NN ist in den Gewichten der Verbindungen gespeichert, also in der Information, wieviel
jedes Signal zur Ausgabe eines Neurons beiträgt. Lernen passiert daher, indem die Gewichte angepasst werden.
Außerdem kann noch der Schwellwert in den einzelnen Neuronen angepasst werden.
Der einfachste Algorithmus zum Lernen von NN ist der sogenannte Backprop-Algorithmus (für ’backpropagation of error’). Folgende Schritte werden dabei ausgeführt:
1. Initialisiere die Gewichte der Verbindungen mit zufälligen Werten
2. Wiederhole folgende Schritte
(a) Bearbeite alle Trainingsdaten und bestimme den Fehler (Unterschied zwischen erwarteter und tatsächlicher Ausgabe)
(b) Passe die Gewichte im Netz etwas an, um die tatsächliche Ausgabe der erwarteten anzugleichen;
der Name der Methode kommt daher, dass der Fehler und die Korrektur quasi von hinten durch das
Netz durchgereicht wird, um ein besseres Ergebnis zu erzielen; an jedem Neuron wird der Fehler
auf die Vorgänger aufgeteilt entsprechend ihrem Anteil am Fehler und die Gewichte entsprechend
korrigiert.
3. Beende das Training wenn der Fehler klein genug geworden ist
6 Da
Neuronen mit ihren Eingaben rechnen, können sie nur numerische Daten verarbeiten, meist Zahlen zwischen Null und Eins.
Kategorische Daten (z.B. rot/grün/blau) müssen erst kodiert werden. Dies entspricht dem biologischen Vorbild, da die Neuronen im
Gehirn auch „nur” elektrische Impulse verarbeiten.
9
Das Problem an diesem Algorithmus ist die lange Trainingsdauer, weil es sehr lange dauern kann bis eine
akzeptable Annäherung an das gewünschte Ergebnis erreicht ist. Es gibt einige Algorithmen die entwickelt
wurden, um das Training zu beschleunigen, aber grundsätzlich kann man sagen dass das Training eines NN
eine zeitraubende Angelegenheit ist. Zudem muss man grundsätzlich alle Trainingsdaten verfügbar haben - was
Menschen so einfach schaffen, nämlich sich neue Dinge zu merken ohne alte zu vergessen, ist für Neuronale
Netze ein sehr schwieriges Problem. (Wie passt man die Gewichte an die neuen Informationen an, ohne die
alten Informationen in den Gewichten zu verlieren?)
Doch nicht nur das Lernen ist eine Herausforderung: Vor dem Lernen steht die Auswahl einer passenden
Struktur für das NN: Wie viele verdeckte Neuronen sollen verwendet werden und wie sollen die Verbindungen
aussehen? Je mehr verdeckte Neuronen man verwendet, desto genauer kann das Netzwerk die Daten wiedergeben, jedoch steigt die Lerndauer entsprechend an und es besteht die Gefahr des Overfitting. Meist ist hier etwas
Experimentieren mit verschiedenen Strukturen angesagt.
Es gibt jedoch inzwischen auch Algorithmen, die die Struktur eines NN entsprechend den Daten lernen
können (sogenannte Constructive Learning-Algorithmen, siehe [Sar02, Part 2]). Dabei wird zuerst ein sehr
einfaches Netzwerk trainiert. Immer wenn die Fehlerrate nicht mehr abnimmt werden einige Neuronen an
passenden Stellen eingefügt, bis die Fehlerrate für die Anwendung akzeptabel ist.
5.2.4
Zusammenfassung
NN sind das verbreitetste Modell innerhalb der ML-Gemeinschaft, sowohl in der Forschung als auch im Praxiseinsatz. Einige Gründe dafür:
• NN eignen sich für viele Probleme, die viele Trainingsdaten besitzen, für die sich aber nur schwer explizite Regeln finden lassen. Beispiele dafür sind Schrift- und Spracherkennung.
• NN sind ein sehr flexibles Werkzeug, können gut angepasst werden (wie jedes Werkzeug erfordern sie
aber auch, den richtigen Umgang zu lernen)
• NN können gut mit Rauschen umgehen (robust), sie haben eine gewisse Fehlertoleranz und generalisieren
gut
Einige Herausforderungen liegen im Lernverhalten (teilweise sehr langsam, inkrementelles Lernen sehr schwierig) und im Black-Box-Verhalten7 von NN. Es gibt jedoch viel Forschung und Entwicklung auf diesen Gebieten,
siehe z.B. Genetic Programming und Boosting im Abschnitt 5.4.
5.3
Bayesische Netzwerke
5.3.1
Was sind Bayesische Netze?
Bayesische Netzwerke (BN) bilden ein Modell, menschliches Schlussfolgern und Umgang mit neuen Informationen nachzubilden. Sie können überall dort eingesetzt werden, wo kausale Zusammenhänge bestehen, aber
man nicht alles komplett versteht und deshalb Wahrscheinlichkeiten einsetzen muss. Am besten kann man das
an einem Beispiel einsehen, entnommen aus [Cha91, S. 51f]. Angenommen man kommt abends heim und
möchte wissen ob die Familie daheim ist, vor man die Türe probiert. Das Aussenlicht wird oft an sein, wenn
niemand da ist, manchmal aber auch weil ein Gast erwartet wird. Es gibt auch einen Hund. Wenn niemand da
ist, wird er im Garten sein, ebenso wenn er Magenprobleme hat. Vermutlich wird man den Hund bellen hören
wenn er draussen ist, manchmal verwechselt man das Bellen auch mit dem eines anderen Hundes.
Abbildung 4 zeigt eine Darstellung des Beispiels in Graphenform. Durch Pfeile werden mögliche Kausalitäten dargestellt, zum Beispiel hängt die Wahrscheinlichkeit dass der Hund draussen ist davon ab, ob die
7 aus
einem NN kann man nur schwer Regeln ableiten, da das gelernte Wissen in den einzelnen Gewichten verteilt gespeichert ist
10
W(fw)=15%
Familie weg (fw)
Licht an (la)
Magenprobleme (mp)
Hund draussen (hd)
W(mp)=1%
W(hd|fw,mp)
=99%
W(hd|fw,nicht mp)
=90%
W(hd|nicht fw,mp)
=97%
W(hd|nicht fw,nicht mp)=30%
W(la|fw)
=60%
W(la|nicht fw= 5%
Gebell (gb)
W(gb|hd)
=70%
W(gb|nicht hd)= 1%
Abbildung 4: Ein einfaches Beispiel für ein Bayesisches Netzwerk (Pfeile bezeichnen Kausalitätsbeziehungen,
die Zahlen sind die Wahrscheinlichkeiten der einzelnen Knoten)
Familie weg ist und der Hund Magenprobleme hat. Wichtig ist dass die kausalen Verbindungen nicht absolut
sind sondern nur mögliche Verbindungen anzeigen. So kann der Hund im Haus sein obwohl die Familie weg
ist. Dies macht die Beantwortung von Fragen schwierig wie „Ist die Familie daheim wenn das Licht brennt, der
Hund aber nicht draussen ist?”. Bayesische Netzwerke bieten nun eine genaue mathematische Antwort auf eben
solche Fragen. Die Idee zu solchen Netzen stammt von Thomas Bayes, ein englischer Pastor und Mathematiker
im 18. Jahrhundert, der mathematisch beschreiben wollte, wie sich Hypothesen ändern, wenn neue Informationen und Beweise vorliegen. Dies macht die Theorie auch so interessant für das Verstehen des menschlichen
Denkens, da ein großer Teil des Denkens darin besteht, Informationen mit bestehendem Wissen abzugleichen
und unsere Sicht der Welt den neuen Informationen anzupassen. Vermutlich läuft das im Gehirn sehr ähnlich
ab wie in BN, wenn auch nicht so exakt und dafür viel komplexer.
Für die von Bayes entwickelte Formel braucht man die Wahrscheinlichkeiten der einzelnen Knoten in Abhängigkeit von ihren verursachenden Knoten. Eine mögliche Verteilung sieht man in der Abbildung. Dabei
bedeutet z.B. W(fw)=15%, dass die Familie mit 15% Wahrscheinlichkeit nicht zu Hause ist, W(hd|fw,nicht
mp)=90% bedeutet, dass die Wahrscheinlichkeit, dass der Hund draussen ist 90% ist, falls die Familie weg ist
und der Hund keine Magenprobleme hat. Falls er auch noch Magenprobleme hat steigt die Wahrscheinlichkeit
auf W(fw,mp)=99%. Aus diesen Angaben kann dann mit Hilfe der Formel von Bayes andere Wahrscheinlichkeiten berechnet werden (z.B. „wie groß ist die Wahrscheinlichkeit dass die Familie daheim ist, wenn ich einen
Hund bellen höre?”)
Das Schöne an BN ist dass man nur verhältnismäßig wenige Angaben braucht, um ein komplettes Netzwerk zu bestimmen. Dies ist möglich weil man sich mit solchen Netzen die Struktur der Probleme (welche
Eigenschaften hängen voneinander ab, welche sind unabhängig) zunutze macht. Bei einem kleinen Netzwerk
mit 10 Knoten braucht man mit Bayes ungefähr 20 Wahrscheinlichkeiten (je nach Struktur), mit gewöhnlicher
Wahrscheinlichkeitsrechnung sage und schreibe 1023! BN sind daher gut geeignet, komplexe Zusammenhänge
darzustellen. Zum Beispiel gibt es ein Programm namens PATHFINDER , das entwickelt wurde um Krankheiten
an den Lymphknoten zu diagnostizieren und Behandlungsmöglichkeiten vorzuschlagen oder weitere Untersuchungen, falls die Diagnose noch nicht eindeutig ist. Ihm zugrunde liegt ein Netz, in dem über 130 Symptome
mit rund 60 Krankheiten verknüpft sind. Ein Mediziner kann die bisherigen Untersuchungsergebnisse eingeben
und erhält eine vorläufige Wahrscheinlichkeit über die verursachende Krankheit. Inzwischen ist PATHFINDER
so ausgereift dass es Expertenniveau erlangt hat.
11
5.3.2
Lernen von Bayesischen Netzwerken
Bisher wurden nur BN an sich vorgestellt. Diese kann man auch ohne Lernen verwenden, wie das oben vorgestellte Programm PATHFINDER, bei dem die Struktur und die Wahrscheinlichkeiten von Experten erstellt
wurden. Dies ist manchmal sinnvoll, oft ist es aber so, dass man zwar viele Daten hat, aber keine Experten, die
ein passendes Netz erstellen können. Es liegt nahe zu versuchen, BN zu lernen. Dabei gilt es zu unterscheiden,
ob die Struktur des Netzes bereits bekannt ist oder erst eine passende Struktur gesucht werden muss. Ausserdem gilt es noch zu unterscheiden ob alle Variablen direkt beobachtbar sind oder es versteckte Variablen gibt.
Der einfachste Fall liegt dann vor wenn die Struktur bereits bekannt ist und keine nicht beobachtbaren Variablen vorhanden sind. Dann können die einzelnen Wahrscheinlichkeitswerte mehr oder weniger direkt aus den
Trainingsdaten abgelesen werden.
5.3.3
versteckte Variablen
Schwieriger wird es im Falle von versteckten Variablen. Diese können zum Beispiel in der medizinischen Diagnose von Herzkrankheiten auftreten, wenn man zwar einige Vorfaktoren kennt (Patient Raucht, treibt Sport)
und einige Symptome wie Bluthochdruck beobachten kann, nicht jedoch die tatsächliche Krankheit. Solche
versteckten Variablen müssen dann aus den anderen abgeleitet werden, das geht nur mit Näherungswerten. Zunächst scheint es da natürlich einfacher, die versteckte Variable einfach wegzulassen, wenn man sie sowieso
nicht beobachten kann. Es gibt jedoch zwei Gründe sie zu behalten: Zum einen ist man evt. an ihrem Wert
interessiert, wie im Falle einer Diagnose. Zum anderen aber kann eine solche Variable ein Netz erheblich vereinfachen. Im Beispiel der Diagnose hängen alle Symptome irgendwie von der Krankheit ab, die wiederum von
den Vorfaktoren abhängt. Wenn man nun die Krankheit entfernt entsteht ein erheblich komplexeres Netz, da
nun plötzlich alle Vorfaktoren mit allen Symptomen zusammenhängen. Damit verliert man den entscheidenden
Vorteil von BN, nämlich dass durch Unabhängigkeit von Variablen nicht so viele Wahrscheinlichkeitswerte
gebraucht werden; außerdem steigt die Rechenzeit für ein solches Netz extrem an.
5.3.4
Struktur lernen
Die Struktur eines Netzes zu lernen ist die komplexeste und zugleich spannendste Aufgabe, ist es doch dies, was
auch beim Lernen im Kopf passiert, wenn neue Zusammenhänge verknüpft werden. Der Computer steht beim
Strukturlernen vor der Aufgabe zu erkennen, welche Variablen voneinander abhängen und welche unabhängig
sind. Die einfachste Möglichkeit ist natürlich, einfach nach einer Struktur zu suchen. Dabei kann man zum Beispiel mit einem leeren Netzwerk (ohne Verbindungen) anfangen und nach und nach Verbindungen hinzufügen.
Es darf jedoch auch nicht zu viele Verbindungen geben; diese könnten die Daten zwar vollständig beschreiben,
sind aber so komplex dass sie sich nicht mehr berechnen lassen. Aufhören kann man dann wenn die Struktur
des Netzwerks (d.h. welche Daten hängen wovon ab) mit den vorhandenen Daten übereinstimmen. Das hört
sich ganz simpel an, das Problem ist die riesige Menge an möglichen Netzwerken: mit nur 10 Variablen gibt
es schon mehr als 7 Milliarden Netzwerke! Man muss sich also auf Näherungen stützen, z.B. kann man mit
mehreren zufälligen Netzwerken starten, und diese immer wieder verändern, bis man ein zufriedenstellendes
Netz hat.
Komplexer wird das ganze wenn noch versteckte Variablen dazukommen. Zum einen kann es sein dass die
Existenz einer solchen Variable bekannt ist (wie im Beispiel oben); der Lernalgorithmus muss sie dann an eine
passende Stelle einfügen. Zum anderen kann es sein dass gar nicht bekannt ist ob und wie viele solcher Variablen vorhanden sind. Interessant sind sie weil sie unter Umständen die Struktur erheblich vereinfachen können.
Lernalgorithmen können an passenden Stellen solche Variablen einfügen, sie natürlich aber nicht benennen.
12
5.3.5
Zusammenfassung
BN sind sehr attraktiv weil sich viele komplexe Probleme gut darstellen und lösen lassen. Im Gegensatz zu NN
kann die Struktur des Problems direkt übertragen werden und das Ergebnis lässt sich leicht ablesen. Außerdem
lässt sich Vorwissen gut integrieren, z.B. kann man eine Struktursuche mit bestimmten Vorgaben machen (nicht
mehr als zwei Hauptursachen, eine versteckte Variable, ...) Das größte Problem ist die Berechenbarkeit. Der
Aufwand zum Berechnen von BN ist exponentiell, d.h. für jede Variable mehr verdoppelt sich der Rechenaufwand. Eine exakte Lösung ist so oft nicht möglich, es gibt jedoch ganz gute Annäherungen. BN haben auch
viele erfolgreiche Anwendungen. Besonders beliebt sind einfache bayesische Netze, sogenannte Naive Bayes
Nets, als eMailfilter. Als Reaktion auf die Spamflut im Internet werden solche Algorithmen in immer mehr
Programme eingebaut und funktionieren sehr erfolgreich.8
5.4
Andere Modelle
Wie oben schon angedeutet gibt es natürlich noch eine Vielzahl anderer Modelle und Variationen. Einige möchte ich hier noch kurz vorstellen:
k-Nearest Neighbor man sucht aus den bereits klassifizierten Elementen die k nächsten (ähnlichsten) heraus.
Die Klassifizierung, die dort am häufigsten vorkommt wird die Klassifizierung des neuen Elements. Sehr
einfaches Modell, erfordert jedoch je nach Aufgabe riesige Speichermengen, weil alle gelernten Daten
vorhanden sein müssen und ist auch nicht besonders schnell, weil alle Elemente durchsucht werden
müssen.
Genetic Programming ist ein eigenes Forschungsgebiet, das angelehnt ist an das Modell der biologischen
Mikroevolution. Die Methode kann zum Beispiel zusammen mit neuronalen Netzen verwendet werden.
Statt ein NN mühsam zu lernen nimmt man zum Beispiel 100 verschiedene zufällige Netzwerke, testet
sie anhand der Daten, wählt die 20 besten aus, macht von jedem 5 Kopien mit kleinen Mutationen (zufälligen Veränderungen in den Gewichten oder der Struktur) und testet sie wieder usw. Dies wird solange
durchgeführt bis man ein zufriedenstellendes Modell gefunden hat.9
Ensemble of Classifiers (auch als Boosting bekannt) eine Methode um Vorhersagen zum Beispiel von Neuronalen Netzen zu erhöhen. Statt eines NN werden viele NN verwendet, die mit unterschiedlichen Daten
trainiert wurden oder eine unterschiedliche Struktur aufweisen. Nachher befragt man alle Netze und lässt
sie über das Ergebnis abstimmen. Gute Methode wenn das Lernergebnis nicht ganz ausreichend ist; effizienter und leichter lernbar als ein einzelnes komplexeres NN. Für weitere Infos siehe z.B. [Die97].
6
Unsupervised Learning
Die Aufgabe von Unsupervised Learning kann man am besten an einem Beispiel sehen (aus [Nie96, S. 132,
leicht bearbeitet]):
8 Das
Prinzip ist recht einfach: Alle Worte einer neuen Mail werden daraufhin untersucht, mit welcher Wahrscheinlichkeit sie in
einer normalen Mail oder in einer Spam-Mail vorkommen. Je nachdem wird die Mail behalten oder weggeworfen. Da das System
lernfähig ist kann es sich individuell an den Benutzer und an neue Spammails anpassen.
9 Ein imposantes Beispiel (eine Figur lernt laufen) findet man im Internet unter: http://www.naturalmotion.com/pages/
technology_hiw.htm
13
Man kann sich die Punkte im Bild als Objekte mit verschiedenen Eigenschaften vorstellen. Wie man sieht
gibt es im Beispiel a zwei Gruppierungen (oder Cluster), im Beispiel b nur einen und im Beispiel c ist die Einteilung schwierig. Im Gegensatz zu Supervised Learning sind die Gruppen jedoch noch nicht vorgegeben und
bezeichnet, diese gilt es erst zu finden und dann die Daten entsprechend zu kategorisieren. Bei Unsupervised
Learning handelt es sich also um eine Suche nach einer natürlichen Struktur innerhalb einer Datenmenge. Während die Struktur (bzw. das Fehlen derselben) im Beispiel noch leicht sichtbar ist, besteht die Schwierigkeit in
realen Anwendungen (z.B. der Kategorisierung von Sternen, s.u.) oft darin, dass jedes Element hunderte von
Eigenschaften hat und die Struktur nicht so klar ist wie in a). An dieser Stelle kommt dann das ML ins Spiel.
Grundsätzlich gilt bei der Clusterbildung, dass Punkte innerhalb eines Clusters anderen Punkten des gleichen Clusters möglichst ähnlich und Punkte ausserhalb eines Clusters möglichst unähnlich sein sollten.
Es gibt viele Algorithmen, um diese Gruppierung durchzuführen, ich werde hier den gebräuchlichsten
beschreiben:
„Ähnlichkeit” von Punkten wird dabei über eine Abstandsfunktion definiert. Man kann sich dabei vorstellen, dass jeder Datensatz (z.B. ein Kunde, ein Stern) ein Punkt in einem mehrdimensionalen Raum darstellt,
wobei die Koordinaten durch die einzelnen Werte festgelegt sind. Manche Daten können direkt als Koordinaten
verwendet werden (z.B. Alter), andere müssen erst in Zahlen umgewandelt werden (z.B. Beruf, jedem Beruf
wird eine Zahl zugeordnet, ähnliche Berufe haben nahe beieinanderliegende Zahlen). Ziel ist dann, den Abstand
innerhalb des Clusters zu minimieren und den Abstand zu Punkten ausserhalb des Clusters zu maximieren.
Die exakte Vorgehensweise sieht folgendermaßen aus:
1. Wähle einige zufällige Punkte als Clustermittelpunkte
2. Tue für jeden Datenpunkt folgendes:
(a) Bestimme zu welchem Cluster er gehört (Methode: zu welchem Mittelpunkt hat er den geringsten
Abstand)
(b) Bewege den Mittelpunkt des zugehörigen Clusters ein Stück auf den Punkt zu10
3. Wenn zwei Cluster-Mittelpunkte zu nahe11 beieinander liegen, ersetze sie durch einen Punkt (vermutlich
ist es nur ein Cluster)
4. Wenn der Abstand der Punkte innerhalb eines Clusters zu groß wird, ersetze den Mittelpunkt durch zwei
Punkte (vermutlich handelt es sich um zwei Cluster)
5. Wiederhole Schritte 2 bis 4 bis sich Cluster-Mittelpunkte nicht mehr wesentlich bewegen
Unsupervised Learning hat einige erfolgreiche Anwendungen: So wurde das Programm Autoclass II 12 erfolgreich verwendet, um Sterne anhand ihrer verschiedenen Infrarotspektren zu klassifizieren; dabei entdeckte das
10 Um zu vermeiden, dass der Mittelpunkt nie zur Ruhe kommt, gibt man ihm oft ein „Gewicht” mit, das mit der Zeit anwächst, so
dass er sich in jeder Runde weniger bewegt und schließlich zur Ruhe kommt.
11 „zu nahe” muss natürlich, genauso wie die anderen Angaben hier, genau definiert werden. Das hängt stark von den Daten ab, so
dass hier sicher einige Experimente notwendig sind.
12 nähere Infos zu dem Programm und den Ergebnissen gibt es im Internet unter http://ic.arc.nasa.gov/projects/
bayes-group/autoclass/
14
Programm eine neue Klassifikation von Sternen, die später auch von Astronomen anerkannt wurde. Autoclass II
verwendet einen etwas anderen Ansatz zur Strukturfindung, basierend auf bayesischen Netzwerken. Dabei wird
versucht Strukturen zu finden, so dass die vorausgesagten Wahrscheinlichkeiten mit den beobachteten Daten
übereinstimmen. Da dieses Modell mit Wahrscheinlichkeiten arbeitet sind bessere Differenzierungen möglich,
Cluster können sich teilweise überlappen und ein Objekt kann mit bestimmten Wahrscheinlichkeiten zu verschiedenen Clustern gehören. Allerdings ist die Mathematik dahinter nicht unbedingt trivial.
Andere Anwendungen sind Data Mining und das Kategorisieren von Dokumenten im World Wide Web.
Die Herausforderung liegt hier in den riesigen Datenmengen die es zu bearbeiten gilt.
7
Reinforcement Learning
In Abschnitt 5 haben wir viele mächtige Methoden zum Lernen von Informationen kennengelernt, vorausgesetzt
man weiss die richtigen Antworten. Das ist in vielen realen Anwendungen aber ein Problem. Oft kennt man
nämlich nicht jede einzelne Antwort, sondern nur ein Ziel oder bestimmte Vorgaben. Beispiele sind Spiele wie
Backgammon (Ziel: Spiel gewinnen), Roboter in neuer Umgebung (Umgebung erkunden, nirgends anstossen,
heil zur Basisstation zurückkommen) oder ein Flugzeug zu fliegen (Flugzeug muss sicher in der Luft bleiben
und gut am Flughafen ankommen). Solche Probleme lassen sich mit klassischem Supervised Learning nicht
lernen weil die exakten Antworten fehlen. Mit solchen Problemen, die im Alltag eine große Rolle spielen
beschäftigt sich die Reinforcement Learning-Theorie.
Reinforcement Learning hat viele Ideen und Konzepte aus dem Lernen von Kindern und der Erziehung
übernommen. Wenn ein Kind auf die Welt kommt ist ihm die Welt noch sehr unbekannt. Es lernt, indem es
mit seiner Umgebung interagiert. Es hat einige Ziele, die es verwirklichen will (Essen bekommen, Welt um
sich herum entdecken). Während es diese Ziele zu verwirklichen sucht bekommt es immer Rückmeldungen
aus seiner Umgebung und lernt so, welche Auswirkungen seine Handlungen haben. Man kann die Rückmeldungen grob in „Belohnungen”, also positive Rückmeldungen und „Strafen”, also negative Rückmeldungen
(z.B. Hunger, Schmerz) einordnen. Lernen besteht bei einem Kind darin, herauszufinden, wie es die Belohnungen verstärken kann und gleichzeitig die Strafen vermindern.13 Auch später lernen wir indem wir mit unserer
Umgebung interagieren, die Reaktion sehen und unser Verhalten entsprechend anpassen um die Situation in
unserem Sinne zu beeinflussen (beispielsweise wenn wir Autofahren lernen).
Diese Fähigkeiten, die Menschen so selbstverständlich benutzen, für Computer verfügbar zu machen, ist das
Ziel von Reinforcement Learning, einer noch relativ jungen Disziplin. Um die Idee von intelligenten Agenten
(siehe Abschnitt 4.2) zu verwirklichen wird man solche Algorithmen benötigen.
Ein Reinforcement Learning System hat vier wichtige Komponenten (nach [SB98]):
policy Definiert was in einer bestimmten Situation zu tun ist. Dabei handelt es sich um eine Verknüpfung
von verschiedenen Zuständen der Umgebung mit bestimmten Handlungen. Entspricht ungefähr einem
biologischen Reiz-Reaktions-Schema und ist für alle Handlungen zuständig. In einfachen Fällen kann es
sich dabei um eine bloße Tabelle handeln, in vielen Situationen gibt es jedoch so viele Situationen dass
die Tabelle der Zustände viel zu groß würde, so dass man auf andere Methoden wie Neuronale Netze
ausweicht.
reward function Definiert das Ziel eines Lernsystems. Jeder Zustand bekommt eine Zahl zugewiesen, die die
Gewünschtheit der momentanen Situation beschreibt. Entspricht Belohnung und Strafe bzw. Freude und
Schmerz. Ziel des Systems ist es, auf lange Sicht den reward, also die Belohnung zu maximieren. Dies
geschieht indem die policy verändert wird, so kann zum Beispiel nach einem niedrigen reward die policy
so geändert werden, dass dieser Zustand nicht wieder eintritt.
13 Das
ist natürlich ein vereinfachtes Modell, taugt aber für diesen Zweck sehr gut.
15
value function Definiert was langfristig angestrebt wird. Um effizient zu lernen reicht es nicht aus, den momentanen reward zu maximieren, es kann auch sein, dass ein Zustand mit einem niedrigen unmittelbaren
reward langfristig einen hohen reward = value hat (Beispiel: ein Roboter muss einen kleinen Umweg
um ein Hindernis fahren, hinter dem sich eine Abkürzung zum angestrebten Ziel befindet). Die value
function gibt also an, wieviel ein Agent von einem bestimmten Punkt aus maximal als reward erreichen
kann und damit wie attraktiv ein Zustand langfristig ist. Im Vergleich zum Menschen könnte man reward
als unmittelbare Belohnung bezeichnen, während es sich bei value um langfristigere Ziele handelt, was
wünschenswert ist und was nicht.
model In einigen Reinforcement Learning-Systemen gehört noch ein model, ein Modell der Umgebung dazu,
das sich der Agent Schritt für Schritt aufbaut. Ein solches Modell dient dazu, Reaktionen auf Handlungen
vorauszusagen und Planen von Handlungen zu ermöglichen.
Beim Versuch, mit Hilfe dieser Methode eine optimale Problemlösung zu finden, stösst man schnell auf ein
Problem, das in der Literatur als „exploration versus exploitation” genannt wird. Ein System wird grundsätzlich
versuchen, den besten bekannten Weg laut bisherigem Wissen zu benutzen, was ja grundsätzlich auch sinnvoll
ist (exploitation), dabei besteht jedoch die Gefahr, dass es manche Wege überhaupt nicht bemerkt, weil es sich
zu früh auf einen Weg festgelegt hat. In der Lernphase muss ein solches System daher manchmal bewusst
scheinbar schlechtere Wege gehen, um alle Möglichkeiten zu erkunden (exploration).
Das Zusammenspiel der verschiedenen Elemente kann man am besten an einem Beispiel eines intelligenten
Agenten sehen: Ein Roboter in einer Firma soll Müll aufsaugen. Er kennt die Umgebung zunächst nicht und
startet an seiner Aufladestation. Seine Informationen über seine Umwelt bezieht er aus einer einfachen Kamera, die die Umgebung erkennt, einem Müllsensor und einer Ladeanzeige seiner Batterie. Ziel ist es, möglichst
viel Müll aufzusaugen und rechtzeitig, d.h. vor die Batterie alle ist, zur Ladestation zurückzukehren. Positive
rewards gibt es, wenn er Müll aufsammelt, negative wenn die Batterie leer ist. Die rewards stehen also gleich zu
Beginn fest, während die value-function, also das Maß für den langfristigen Erfolg, erst gelernt werden muss.
Zu Beginn muss der Roboter erstmal rumfahren, um seine Umgebung kennenzulernen (exploration). Auch
später kann es manchmal sinnvoll sein, einen neuen Weg zu wählen. Mit der Zeit kann ein solcher Roboter
eine effiziente value function lernen, also entsprechend den rewards in diesem Beispiel möglichst viel Müll
einzusammeln und rechtzeitig zur Ladestation zurückzukehren. Lernen geschieht bei Reinforcement Learning
durch trial and error, Lernen aus Fehlern. Wenn viel Müll rumliegt, fährt der Roboter zu Beginn möglicherweise einfach gradeaus, weil er ja immer einen positiven reward bekommt, bis die Batterie ausgeht und er einen
starken negativen reward bekommt. Beim nächsten Mal wird er nicht so weit fahren, kurz vorher umdrehen,
aber auch nicht mehr rechtzeitig zur Ladestation kommen. Beim nächsten Mal wird er dann noch früher umdrehen usw. bis er irgendwann rechtzeitig bei der Ladestation ist und einen positiven reward bekommt. Dieses
Lernen funktioniert – aber es ist langsam. Dies ist ein großes Problem, das die Anwendung von Reinforcement
Learning noch hindert. Dennoch handelt es sich hier um einen sehr lohnenswerten Ansatz, der sicher noch viel
Verwendung finden wird.
8
Vergleich zu menschlichem Lernen
Je länger man sich mit der ML-Forschung beschäftigt desto deutlicher wird, welch unglaublich komplexes
System das menschliche Denken und Lernen darstellt. Selbst heute, nach über 50 Jahren intensiver Forschung
lassen sich viele Aspekte in Maschinen nur sehr rudimentär abbilden. Dennoch erlauben die verschiedenen Methoden und Herangehensweisen der ML-Forschung Einblicke ins menschliche Denken, verschiedene Aspekte
werden beleuchtet:
• NN als Versuch, Arbeitsweise und Lernen von Neuronen nachzubilden (biologische Struktur)
• Bayesische Netzwerke als Modelle für die Entscheidungsfindung, der Umgang mit neuen Hypothesen
16
• Reinforcement Learning als eine Art Erziehung; wie kann gelernt werden wenn nur Belohnungen und
Strafen gegeben sind?
• Genetic Algorithms als Lernen durch Versuch und Irrtum sowie durch Auslese
• Unsupervised Learning als Beispiel für Mustererkennung und Kategorien finden (muss der Mensch auch
erst finden)
Viele einzelne Elemente sind also schon erforscht, sowohl im Kleinen der Aufbau und die Funktionsweise der
Neuronen, als auch im Großen, die Psychologie und die Arbeit und Zuständigkeit der einzelnen Gehirnregionen.
Unklar ist jedoch die Zusammenarbeit,wie aus so einfachen Zellen etwas so komplexes wie das menschliche
Gehirn entstehen kann. Das kann man eigentlich nur staunend betrachten.
Ein aktuelles Forschungsthema im Zusammenhang mit dem Menschen ist das lebenslange Lernen. Bisher
wurden lernende Maschinen nur für sehr eingeschränkte Bereiche und Zeiträume konstruiert. Menschen dagegen lernen ihr ganzes Leben und bauen immer weiter auf vorhandenem Wissen auf, verfeinern und verändern
dieses. Ein lohnendes Ziel wäre Maschinen zu entwickeln, die ebenso über einen längeren Zeitraum hinweg
lernen und vorhandenes Wissen einsetzen und ausbauen können.
9
Zusammenfassung
In den etwas über 50 Jahren ihres Bestehens hat die ML-Forschung eine Menge erreicht. Die grundsätzlichen
Voraussetzungen sind geschaffen, viele Algorithmen wurden entwickelt und in der Praxis getestet. Inzwischen
hat das Feld seine rein akademische Natur verloren und kann eine beachtliche Zahl erfolgreicher kommerzieller
Anwendungen vorweisen. Zu den Erfolgen beigetragen hat auch der explosionsartige Anstieg der Rechenleistung, die die Entwicklung von Methoden wie Gesichtserkennung und Datamining erst ermöglicht hat.
Vermutlich stehen wir aber erst am Anfang einer spannenden Entwicklung. In praktisch allen Gebieten wird
aktiv geforscht und es werden auch Systeme entwickelt, die die Methoden praktisch anwenden. Besonders
verheißungsvoll ist hier das Reinforcement Learning, das verspricht viele bisher ungelöste Probleme lösbar
zu machen. Die Verbreitung des Internet ermöglicht Versuche, selbstständig Wissen aus diesem kollektiver
Wissensspeicher zu lernen (und den ganzen Müll noch dazu :-/).
Fachübergreifend betrachtet, bietet sich die Chance, gemeinsam weiter zu untersuchen, wie man die Erkenntnisse von ML auf den Menschen übertragen kann (z.B. für CAL/CAI = Computer Aided Learning/Instruction).
Interessant ist an dieser Stelle noch die Gegenüberstellung von Expertiseforschung und ML. Erstere begann
ja mit der Vorstellung einer generischen Expertise („General Problem Solver”, Newell & Simon) und entwickelte sich zur Vorstellung von rein domänenspezifischer Expertise. Im Gegensatz dazu begann die KI-Forschung
mit dem Versuch, „Expertensysteme” zu konstruieren, Maschinen, die domänenspezifisches Expertenwissen
beinhalten und anwenden sollten (z.B. in der Landwirtschaft) und entwickelte sich hin zu dem Versuch, Maschinen zu bauen, die generisch lernen können, unabhängig von der Domäne.
Wir haben viel gelernt, trotzdem gibt es heute mehr offene Fragen als vor 50 Jahren. Es gibt noch viel zu
lernen.
Literatur
[Mit97]
Tom M. Mitchell. Does Machine Learning Really Work? AI Magazine 18, S. 11-20, 1997
[Die97]
Thomas G. Dietterich. Machine-Learning Research - Four Current Directions. AI Magazine 18, S.
97-136, 1997
[Tur50]
Alan Turing. Computing machinery and intelligence. Mind, 59(236):433-360, 1950
17
[Fre90]
Robert French. Subcognition and the limits of the Turing Test. Mind, 99(393):53-65, 1990
[SCA00] Ayse Pinar Saygin, Ilyas Cicekli, Varol Akman. Turing Test: 50 Years later. Minds and Machines
10(4):463-518. 2000
[RN02]
Stuart Russell, Peter Norvig. Artificial Intelligence: A Modern Approach (2nd Edition). Prentice
Hall, Dezember 2002
[Nie96]
Niels J. Nielsson. Introduction to Machine Learning. An early draft of a proposed textbook. URL:
http://robotics.stanford.edu/people/nilsson/mlbook.html, 1996
[Cha91]
Eugene Charniak. Bayesian Networks without Tears. AI Magazine 12, S. 50-63, 1991
[Aha95]
David W. Aha. Machine Learning. A tutorial presented at the Fifth International Workshop on Artificial Workshop on Artificial Intelligence & Statistics. URL: http://www.aic.nrl.navy.mil/
~aha/, 1995
[Sar02]
Warren Sarle. Neural Network FAQ, part 1-7, periodic posting to the Usenet newsgroup
comp.ai.neural-nets. URL: ftp://ftp.sas.com/pub/neural/FAQ.html, 2002
[MLN03] The Machine Learning Network Online Information Service - Training. URL: http://kiew.cs.
uni-dortmund.de:8001/, 2003
[SB98]
Richard S. Sutton, Andrew G. Barto. Reinforcement Learning: An Introduction. MIT Press, Cambridge, MA, 1998
18
Herunterladen