Maschinelles Lernen


Maschinelles Lernen ist ein Oberbegriff für die „künstliche“ Generierung von Wissen aus Erfahrung: Ein künstliches System lernt aus Beispielen und kann nach Beendigung der Lernphase verallgemeinern. Das heißt, es lernt nicht einfach die Beispiele auswendig, sondern es „erkennt“ Gesetzmäßigkeiten in den Lerndaten. So kann das System auch unbekannte Daten beurteilen.

Aus dem weiten Spektrum möglicher Anwendungen seien hier genannt automatisierte Diagnoseverfahren, Erkennung von Kreditkartenbetrug, Aktienmarktanalysen, Klassifikation von DNA-Sequenzen, Sprach- und Schrifterkennung und autonome Systeme.

Das Thema ist eng verwandt mit „Knowledge Discovery in Databases“ und „Data-Mining“, bei dem es jedoch vorwiegend um das Finden von neuen Mustern und Gesetzmäßigkeiten geht. Viele Algorithmen können für beide Ziele verwendet werden, und insbesondere kann „Knowledge Discovery in Databases“ verwendet werden, um Lerndaten für „maschinelles Lernen“ zu produzieren oder vorzuverarbeiten, und Algorithmen aus dem maschinellen Lernen finden beim Data-Mining Anwendung.

Symbolische und subsymbolische Systeme

Beim maschinellen Lernen spielt Art und Mächtigkeit der Wissensrepräsentation eine wichtige Rolle. Man unterscheidet zwischen symbolischen Systemen, in denen das Wissen – sowohl die Beispiele als auch die induzierten Regeln – explizit repräsentiert ist, und subsymbolischen Systemen wie neuronale Netze, denen zwar ein berechenbares Verhalten „antrainiert“ wird, die jedoch keinen Einblick in die erlernten Lösungswege erlauben; hier ist Wissen implizit repräsentiert.

Bei den symbolischen Ansätzen werden aussagenlogische und prädikatenlogische Systeme unterschieden. Vertreter der ersteren sind ID3 und sein Nachfolger C4.5. Letztere werden im Bereich der induktiven logischen Programmierung entwickelt.

Algorithmische Ansätze

Die praktische Umsetzung geschieht meist mittels Algorithmen. Verschiedene Algorithmen aus dem Bereich des maschinellen Lernens lassen sich grob nach diesem Schema einteilen:

Überwachtes Lernen (engl. supervised learning)
Der Algorithmus lernt eine Funktion aus gegebenen Paaren von Ein- und Ausgaben. Dabei stellt während des Lernens ein „Lehrer“ den korrekten Funktionswert zu einer Eingabe bereit. Ein Teilgebiet des überwachten Lernens ist die automatische Klassifizierung. Anwendungsbeispiel: Handschrifterkennung.
Unüberwachtes Lernen (engl. unsupervised learning)
Der Algorithmus erzeugt für eine gegebene Menge von Eingaben ein Modell, das die Eingaben beschreibt und Vorhersagen ermöglicht. Dabei gibt es Clustering-Verfahren, die die Daten in mehrere Kategorien einteilen, die sich durch charakteristische Muster voneinander unterscheiden. Ein wichtiger Algorithmus in diesem Zusammenhang ist der EM-Algorithmus, der iterativ die Parameter eines Modells so festlegt, dass es die gesehenen Daten optimal erklärt. Er legt dabei das Vorhandensein nicht beobachtbarer Kategorien zugrunde und schätzt abwechselnd die Zugehörigkeit der Daten zu einer der Kategorien und die Parameter, die die Kategorien ausmachen. Eine Anwendung des EM-Algorithmus findet sich beispielsweise in den Hidden Markov Models (HMMs). Andere Methoden des unüberwachten Lernens, z. B. Hauptkomponentenanalyse verzichten auf die Kategorisierung. Sie zielen darauf ab, die beobachteten Daten in eine einfachere Repräsentation zu übersetzen, die sie trotz drastisch reduzierter Information möglichst genau wiedergibt.
Bestärkendes Lernen (engl. reinforcement learning)
Der Algorithmus lernt durch Belohnung und Bestrafung eine Taktik, wie in potenziell auftretenden Situationen zu handeln ist, um den Nutzen des Agenten (d. h. des Systems, zu dem die Lernkomponente gehört) zu maximieren.

Des Weiteren unterscheidet man zwischen Batch-Lernen, bei denen alle Eingabe/Ausgabe Paare gleichzeitig vorhanden sind und kontinuierlichem (sequentiellen) Lernen, bei dem sich die Struktur des Netzes zeitlich versetzt entwickelt.

Software

  • GNU R ist eine auf vielen Plattformen verfügbare, freie Statistik-Software mit Erweiterungen zum maschinellen Lernen (z. B. rpart, randomForest) und Data-Mining.
  • KNIME - Open Source Data Mining, Workflow und Data Pipelining Software
  • RapidMiner (früher YALE) ist ein einfach zu bedienendes und frei erhältliches Tool für maschinelles Lernen und Data-Mining.
  • Shogun ist eine Open-Source-Toolbox für Kernel-Methoden.
  • Shark ist eine freie C++ Bibliothek, die eine Vielzahl von maschinellen Lernverfahren implementiert.
  • scikit-learn ist eine auf Python basierte freie Bibliothek mit vielen Maschinenlernverfahren und Anwendungsbeispielen.

Literatur

  • Christopher M. Bishop: Pattern Recognition and Machine Learning. Information Science and Statistics. Springer, Berlin 2008, ISBN 978-0-387-31073-2.
  • David J. C. MacKay: Information Theory, Inference and Learning Algorithms. Cambridge University Press, Cambridge 2003, ISBN 978-0-521-64298-9 (Online).
  • Trevor Hastie, Robert Tibshirani, Jerome Friedman: The Elements of Statistical Learning. Data Mining, Inference, and Prediction. 2. Auflage. Springer-Verlag, 2008, ISBN 978-0-387-84857-0.
  • Thomas Mitchell: Machine Learning. Mcgraw-Hill, London 1997, ISBN 978-0-07-115467-3.
  • D. Michie, D. J. Spiegelhalter: Machine Learning, Neural and Statistical Classification. In: Ellis Horwood Series in Artificial Intelligence. E. Horwood Verlag, New York 1994, ISBN 978-0-13-106360-0.
  • A.P. Dempster, N.M. Laird, D.B. Rubin: Maximum Likelihood from Incomplete Data via the EM Algorithm Journal of the Royal Statistical Society, Vol. 39, No. 1, 1977

Weblinks

News mit dem Thema Maschinelles Lernen