Posted on Leave a comment

Machine Learning

Machine Learning

Maschinelles Lernen (engl. Machine Learning) ist ein aktuelles Thema. Viele große Unternehmen von Google über Amazon bis Netflix setzen auf Machine Learning-Systeme, um ihre Daten besser zu verstehen, Empfehlungen zu generieren oder Betrug aufzudecken. Auch in anderen Branchen, wie der Automobilindustrie oder Medizin, ist Machine Learning vielversprechend. 
Grundsätzlich handelt es sich um ein Teilgebiet der künstlichen Intelligenz, das auch Algorithmik und Statistik einschließt. Es geht darum, künstlich bzw. automatisiert Wissen aus Erfahrung zu generieren. Bei einem klassischen Algorithmus ist von Anfang an festgelegt, was bei einer bestimmten Eingabe passieren soll. Die Beziehungen der Variablen sind klar definiert und der Algorithmus bleibt immer gleich. Werden Werte eingegeben, die der Algorithmus nicht kennt, kann er diese nicht verarbeiten. Das ist ungünstig, wenn Algorithmen sehr komplexe Sachverhalte beschreiben sollen oder von vielen sich ändernden Eingaben und Randbedingungen abhängig sind. Maschinelles Lernen ermöglicht es, auf verschiedenen Arten und Weisen Muster in Trainingsdaten zu erkennen und so adaptive und sich kontinuierlich verbessernde Systeme zu schaffen.

Grundlagen von Machine Learning

Maschinelles Lernen funktioniert, indem ein Algorithmus mit Testdaten (engl. Training Data) arbeitet, um Muster zu erkennen, die anschließend auf ähnliche Sachverhalte angewendet werden können. Dies wird als Lerntransferbezeichnet. Man kann Machine Learning-Systeme entweder daran unterscheiden, wie das so erlangte Wissen repräsentiert wird, oder daran, wie das System lernt. 

Einteilung nach Wissensrepräsentation

Wissen – also die Sachverhalte oder Funktionen, die das System aus den gegebenen Daten ableitet – kann symbolbasiert oder nicht symbolisch dargestellt werden. Bei symbolbasierter Wissensrepräsentation werden die Ausdrücke explizit durch eine formale Sprache dargestellt, die meist auf speziellem Fach- oder Domänenwissen basiert. Bei einem nicht symbolischen Ansatz hingegen existiert das Wissen nur implizit durch die Ergebnisse, die das System liefert. Das ist beispielsweise bei neuronalen Netzen der Fall: Hier wird zwar ein Algorithmus trainiert und stetig verbessert, der Programmierer hat aber keinen Einblick, wie am Ende tatsächlich das Ergebnis erzeugt wird. 

Einteilung nach Algorithmus und Trainingsdaten – Supervised und Unsupervised Learning

Neben der eben genannten Einteilung, gibt es noch die Unterscheidung anhand Algorithmus und Trainingsdaten. Trainingsdaten können klassifiziert (engl. gelabeled) werden oder nicht. Je nachdem spricht man von überwachtem Lernen (Supervised Learning), für das gelabelte Daten verwendet werden, oder von unüberwachtem Lernen(Unsupervised Learning) mit nicht klassifizierten Trainingsdaten. 

Supervised Learning

Supervised Learning ist die in der Praxis häufigere Technik, um Machine Learning umzusetzen. Der erste Schritt für überwachtes maschinelles Lernen ist das Sammeln und Klassifizieren bzw. Labeln von Trainingsdaten. Dazu werden, meist durch einen Menschen, eine Reihe von Merkmalen, denen die Testdaten entsprechen, festgelegt. Würde man beispielsweise einen Algorithmus zur Handschriftenerkennung implementieren wollen, bräuchte man Bilder von handgeschriebenen Zeichen und der korrekten Zuordnung zu Zahlen oder Buchstaben. Diese Datensätze werden als Grundwahrheit (Ground Truth) bezeichnet.

Das Ziel des Systems ist es dann, über mehrfache Durchläufe mit unterschiedlichen Ein- und Ausgaben Assoziationen herzustellen. Diese Assoziationen können anschließend auf ähnliche Daten angewendet werden, um Vorhersagen zu treffen. Grundsätzlich lässt sich das Ziel des Algorithmus also so formulieren, dass er von einer gewissen Eingabe auf ein Ergebnis abbilden soll. Dazu gibt es Klassifikations- und Regressionstechniken. Klassifikationstechniken haben das Ziel, einen konkreten Ausgang vorherzusagen. Hier wird gerne ein E-Mail-Filter für Spamnachrichten als Beispiel genommen: Entweder eine E-Mail ist Spam oder sie ist es nicht. Regressionstechniken hingegen definieren kontinuierliche Ergebnisse, beispielsweise Temperaturänderungen oder Mietschwankungen, die das System auf Basis verschiedene Eingabefaktoren berechnet. 

Überwachtes Lernen kann in einige Unterkategorien eingeteilt werden, beispielsweise bestärkendes oder aktives Lernen. Bei bestärkendem Lernen (Reinforcement Learning) weiß das System nicht unbedingt, was bei einer bestimmten Eingabe zu tun ist, erhält aber je nachdem, wie es sich entscheidet, positives oder negatives Feedback. Auf Basis dessen wird eine Nutzenfunktion approximiert, denn das System versucht das positive Feedback zu maximieren. Dadurch wird das Ergebnis des Algorithmus optimiert. Bei aktivem Lernen (Active Learning) hingegen kann der Algorithmus einer Wissensquelle Fragen stellen, muss dies aber proaktiv tun. So wählt der Algorithmus selbst, welche Daten klassifiziert werden – nämlich nur die, die er anfragt. Bei aktivem Lernen ist der Aufwand zum Labeln der Daten damit deutlich geringer als bei vollständig überwachtem Lernen. 

Unsupervised Learning

Bei unüberwachtem Lernen haben die Trainingsdaten keine Labels. Der Algorithmus weiß dementsprechend nicht, was er erkennen soll und verfügt nicht über Beispiele, aus denen er eine Strategie entwickeln kann. Das ist nützlich, um die interne Struktur von Daten zu analysieren oder neue Muster aufzudecken. Eine der häufigsten Techniken, die für unüberwachtes Lernen verwendet wird, ist Clustering. Beim Clustering wird versucht, möglichst viele ähnliche Elemente zu finden, die sich in eine Kategorie einteilen lassen. Das System legt diese Kategorien selbst fest. Anstatt also auf Feedback reagieren zu können, muss der Algorithmus eigenständig Ähnlichkeiten zwischen Objekten erkennen und seine Strategie anhand des Vorhandenseins oder Fehlens der bisher gewählten Label bei neuen Datensätzen ändern. Ein reales Beispiel für die Anwendung eines solchen Algorithmus ist die Mustererkennung für Werbe- und Marketingmaßnahmen. Der Machine Learning-Algorithmus kann eine Menge an Leuten demographisch einteilen und erleichtert es damit, möglichst viele Konsumenten in der richtigen Zielgruppe zu erreichen.

Semi-Supervised Learning

Als Zwischenschritt zwischen überwachtem und unüberwachtem Lernen gibt es sogenanntes semi-überwachtes Lernen (Semi-Supervised Learning). Dabei wird sowohl eine kleine Menge klassifizierter Daten als auch eine große Menge nicht klassifizierter Daten verwendet. Auf der einen Seite sind die Lernergebnisse des Algorithmus oft besser, wenn einige Basisdaten als Ausgangsposition verwendet werden können. Alle Daten zu klassifizieren ist auf der anderen Seite aber oft so zeitaufwändig, dass es sich nicht rentiert. Semi-überwachtes Lernen bietet damit einen Kompromiss, der die Ergebnisse optimiert, während es den Aufwand reduziert. 

Machine Learning in der Praxis

Machine Learning ist für einige Anwendungsfälle besonders sinnvoll, beispielsweise wenn das manuelle Programmieren von Regeln oder Gleichungen für ein Problem zu komplex ist. Das ist unter anderem bei Spracherkennung, Gesichtserkennung oder Übersetzungen der Fall – ein Mensch kann die Algorithmen und Muster unmöglich erkennen und in Code fassen. Auf Basis vieler Lerndaten lassen sich mittlerweile trotzdem verlässliche Systeme entwickeln. Bei der Erkennung von Krebs sind Algorithmen mittlerweile zuverlässiger als Ärzte. Für selbstfahrende Autos, die im Straßenverkehr intelligent reagieren müssen und nicht einfach starren Regeln folgen können, ist der Ansatz des maschinellen Lernens ebenso relevant.

Aber auch, wenn sich die Anforderungen an einen Algorithmus stetig ändern oder die Art der Daten nicht konstant ist, eignen sich Machine Learning-Algorithmen, denn sie sind adaptiv. Dies kommt zum Beispiel bei er der Erkennung von Kreditkartenbetrug zum Tragen. Das System muss in Echtzeit, nämlich schon während der Transaktion, auf Basis einer großen Menge von Faktoren die Entscheidung treffen, ob Betrug vorliegt oder nicht. Gleichzeitig muss es schnell neue Tricks erlernen und ebenso zuverlässig wiedererkennen.

Zuletzt kann Machine Learning den Alltag in vielen Bereichen erleichtern, in dem Aufgaben intelligent und automatisiert übernommen werden. Das ist unter anderem für die Empfehlungssysteme von Netflix der Fall. Auf Basis einiger Faktoren, wie kürzlich angesehener Filme oder Bewertungen anderer Nutzer, werden Vorschläge gemacht. Der Entwickler muss sich dabei nicht um die optimale Gewichtung der Faktoren kümmern – der Algorithmus weiß selbst, wie er ein sehr gutes Ergebnis erzielt. 

Machine Learning und andere Konzepte

Machine Learning überschneidet sich mit einigen anderen Wissenschaften und Konzepten, die in der IT aktuell eine große Rolle spielen – beispielsweise Big DataKnowledge Discovery und Data-Mining. Auch der Zusammenhang und Unterschied zur künstlichen Intelligenz ist nicht auf den ersten Blick ersichtlich. Es gilt daher, Machine Learning im Gesamtbild aktueller technischer Praktiken und Forschungsrichtungen einzuordnen. 

Machine Learning und künstliche Intelligenz

Manchmal werden die Begriffe Machine Learning und künstliche Intelligenz (Artificial Intelligence / AI) synonym verwendet. Das ist nicht ganz richtig, denn Machine Learning ist lediglich ein Teilgebiet von AI. Während AI generell alle Techniken beinhaltet mit denen Computer entwickelt werden, die eigenständig Probleme lösen können, bezieht sich maschinelles Lernen lediglich auf Techniken, die das Generierung von Wissen und Lösungsansätzen auf Basis von Beispielsdaten beinhalten. 

Machine Learning und Big Data

Der rasante Aufstieg vom Machine Learning-Algorithmen ist insbesondere durch Big Data ermöglicht worden. Big Data bezeichnet die Ansammlung vieler, verschieden gearteter Daten, die sehr schnell aus unterschiedlichen Quellen generiert oder erfasst werden. Die Verfügbarkeit solcher Datenmengen ist für statistische Wissenschaften im Allgemeinen relevant. Speziell für Machine Learning ermöglicht Big Data die Bereitstellung umfangreicher Test- und Lerndaten, die eine stetige Verbesserung der Algorithmen ermöglichen. 

Machine Learning and Knowledge Discovery

Knowledge Discovery (auch Data-Mining) beschreibt die Wissensentdeckung in Datenbanken, meist auf großen und unstrukturierten Datenmengen. Das Forschungsgebiet ist daher eng mit Big Data verknüpft. Während Data-Mining lediglich den Erkennungs-Prozess selbst betrachtet, schließt Knowledge Discovery auch die Vorbereitung der Daten und die abschließende Auswertung der Ergebnisse mit ein. Viele unüberwachte Machine Learning-Algorithmen können für Knowledge Discovery verwendet werden. Anders herum können die Resultate des Prozesses als Trainingsdaten für überwachtes Lernen genutzt werden. 

Machine Learning und Deep Learning

Deep Learning ist ein Begriff, der oft im Zusammenhang mit Machine Learning auftaucht. Es handelt sich um eine Spezialisierung, bei der ein künstliches, neuronales Netzwerk aufgebaut wird, das aus mehreren Schichten (Layern) besteht, die schlussendlich ein Problem lösen sollen. In das Input-Layer werden die initialen Daten eingegeben, die anschließend in mehreren versteckten Layern (engl. Hidden Layers) bearbeitet und zum Schluss im Output-Layer ausgegeben werden. Der Programmierer kann nicht exakt nachvollziehen, wie das System lernt oder was in den versteckten Schichten passiert. Daher handelt es sich bei Deep Learning-Systemen fast immer um Anwendungen mit impliziter Wissensrepräsentation. 

Einstieg in Machine Learning

Machine Learning ist ein interessantes und vielversprechendes Thema, das auch für private Projekte spannend sein kann. Um richtig in die Materie einzusteigen, ist allerdings einiges an Literaturrecherche notwendig, um unter anderem Konzepte der Statistik oder die wichtigsten grundlegenden Algorithmen für verschiedene selbstlernende Systeme zu verstehen. Viele Sprachen bieten eigene Frameworks und Bibliotheken an, die insbesondere Supervised Machine Learning unterstützen und so das Aufsetzen erster eigener Projekte erleichtern. Insbesondere Python ist eine Programmiersprache, die gerne für Machine Learning verwendet wird. Das liegt unter anderem daran, dass Python in der wissenschaftlichen Community sehr beliebt ist und daher viele Pakete regelmäßig gepflegt und verbessert werden. TensorFlow, eines der beliebtesten Frameworks für maschinelles Lernen, unterstützt aber auch Java oder C#.

Fazit

Maschinelles Lernen wird bereits in verschiedenen Branchen wie Sales, Banken oder Medizin verwendet und gewinnt stetig an Bedeutung. Generell geht es bei diesem Teilgebiet der künstlichen Intelligenz darum, Wissen aus Erfahrung zu generieren, um adaptive Systeme zu implementieren. Man unterscheidet Machine Learning-Systeme hauptsächlich danach, ob sie überwacht oder unüberwacht (supervised oder unsupervised) lernen. Der Hauptunterschied liegt darin, dass die Testdaten, die dem Algorithmus als Ausgangspunkt dienen, für überwachtes Lernen klassifiziert bzw. gelabeled wurden. Durch mehrere Rechendurchläufe werden Assoziationen zwischen den vorliegenden Eingaben und Ergebnissen “erlernt”. Diese können anschließend zur Vorhersage auf ähnliche Probleme angewendet werden. Bei unüberwachtem Lernen hingegen muss der Algorithmus selbst entscheiden, wie er die Daten labeled. Dadurch können neue Muster oder innere Strukturen von Daten erkannt werden. Zudem ist für diese Art des Lernen weniger Vorarbeit durch einen Menschen notwendig. 

Ähnliche Produkte

Schreibe einen Kommentar