/

Lass die Machine lernen

Speziell im Bereich der Klassifizierung bietet sich der Einsatz von Machine-Learning an

In diesem Artikel wollen wir Euch das Thema Machine Learning nahebringen. Wer diverse Science-Fiction-Filme wie Odysee 2001 kennt, weiss dass das Thema intelligente und selbstlernende Systeme nicht gutes verheißt. Trotzdem ist Machine Learning der Hype der 2020er. Also zeigen wir Euch mal, was hinter diesem Thema steckt (kein Science Fiction, versprochen).

Machine Learning - Heute

Machine Learning vereint viele verschiedene Themen, wie Business Intelligence, Cognitive Computing, Big Data, Deep Learning etc. All diese Themengebiete werden mit einander kombiniert, um in einem komplexen Umfeld durch Erlernen bisher nicht erreichbare Ziele zu erreichen. Lernen hat etwas mit Intelligenz zu tun und damit sind wir beim Thema Künstliche Intelligenz.

Vielleicht habt Ihr ja schon von den Begriffe Artificial Intelligence (AI) oder Künstliche Intelligenz (KI) gehört. KI ist ein Teilgebiet der Informatik, in dem versucht wird, intelligentes Verhalten maschinell nachzubilden. Aus diesen frühen Ansätze resultierte z.B. die Programmiersprache PROLOG, die wir mit unseren Produkten auch unterstützen.

Okay, und was ist unter Intelligenz oder intelligentem Verhalten zu verstehen? Der Begriff Artificial Intelligence wurde schon Ende der 1950er erfunden. In den Bereich AI fallen viele Teilgebiete, wie Diagnose, Robotersteuerung, autonome Fahrzeuge etc. Dabei wird zwischen Weak Artificial Intelligence und Strong Artificial Intelligence unterschieden. Alle heutzutage vorhandenen Lösungen zählen (noch) zum Bereich Weak Artificial Intelligence, d.h. künstliche Intelligenz, die nur in der Lage ist, bestimmte Problemstellungen zu meistern und in diesem Rahmen ein gewisses intelligentes Verhalten zu zeigen. Strong AI wäre aktuell noch Kino, also ist künstliche Intelligenz, die beliebig Problemstellungen bewältigen kann. Das war's schon mit Bezug zum Thema Science Fiction. Der aktuelle Stand der Technik im Bereich AI und Machine Learning ist genauso spannend. 

Der Begriff Machine Learning

Machine Learning , als Teilgebiet der künstlichen Intelligenz, wurde schon in den Anfängen der KI verwendet, um das Lernen aus Erfahrung auf dem Computer zu simulieren. Eigentlich ist es eher eine Form der Mustererkennung, die aber hoch effizient ist und komplexe Probleme bewältigen kann. Oder sagen wir einfach, Machine Learning ist ein intelligenter Algorithmus, der die ihm gestellten Probleme lernt zu lösen. Mit dem Erlernen von Mustern kann er aus beliebigen Daten innerhalb der Problemstellung diese eigenständig klassifizieren. Diese Eigenständigkeit wird als intelligentes Verhalten verstanden, weil neue Daten vorgelegt werden, die der Algoritmus noch nie zuvor gesehen hat, aber dennoch konrrekt bewertet werden. 

Es gibt im Bereich AI noch einen ähnlichen Begriff, das Deep Learning. Wir haben hierzu eigene Artikel, daher nur eine kurze Erläuterung.

Deep Learning

Ein verwandter Begriff ist Deep Learning, ist widerum ein Teilgebiet des Machine Learnings. Deep Learning basiert auf künstlichen neuronalen Netzen, die in zahlreichen Schichten miteinander verbunden sind, um Verhalten zu erlernen. Der Algorithmus ist inspiriert von biologischen neuronalen Netzen, welche auch das Lernen aus Mustern ermöglichen. Ende der Erläuterung, hierzu gibt es, wie gesagt, eigene Artikel. Daher zurück zum Oberbegriff Machine Learning.

Machine Learning - Funktionsweise

Wir wollen Euch im Nachfolgenden die Funktionsweise von Machine Learning anhand einer Beispielaufgabe erläutern.  Wir vergleichen dabei unterschiedliche Ansätze, um mit dieser Aufgabe umzugehen. 

Im Beispiel sollen Fotos von Katzen und Hunde unterschieden werden. Warum dieses Beispiel? Weil wir alle Katzen und/oder Hunde lieben! 

Wir wollen viele verschiedene Fotos als Datenbasis verwenden, mit dem Ziel, diese entsprechend zu kategorisieren. Für einen Menschen ist diese Unterscheidung relativ einfach, weil jeder irgendwann die Unterschiede lernt. Aber wie bringen wir das einem Computer bei, Fotos zu klassifizieren?

Der Klassiker

Bei einem konventionellen Programm werden Anweisungen, die von Programmierern definiert wurden, für diese Aufgabe genutzt. Im Vorfeld suchen wir nach Merkmalen, wie Größe, Farbe, Strukturen usw., die Hunde von Katzen unterscheiden. Wir schreiben also Code, der nach diesen Merkmalen sucht und auf dieser Basis die Fotos klassifiziert. Diese Regeln, die hierfür definiert worden sind, sind relativ leicht zu implementieren und sie funktionieren recht gut mit den bisher verwendeten Beispielen. Jetzt liegen uns Fotos vor, die dunkler oder aus einer etwas anderen Perspektive aufgenommen wurden. Kann der geschriebene Algorithmus aus den Bildern Hunde und Katzen identifizieren? In der Regel, leider nein. Das Programm funktioniert nicht mehr, denn die erstellten Regeln bzw. Anweisungen greifen nicht. Also erweitern wir die Anweisungen im Rahmen eines Updates um neue Anweisungen. Bis zur nächsten Abweichungen usw. Klingt nicht sehr effizient, sondern klingt eher nach einem gigantischen, komplexen und nicht mehr wartbaren Programm spätestens ab Version 10 (Die Anspielung auf Windows 10 ist rein zufällig ;-), nur die Aufgabe Fotos mit Katzen und Hunden zu unterscheiden.

Nicht gerade intelligent, oder? Jetzt stellt Euch die Komplexität vor, nach Größe, Farbe und anderen Merkmalen unterschieden werden soll. Höchste Zeit als Entwickler sich einen neuen Job zu suchen. Oder sich mit Machine Learning zu beschäftigen.  

Auf zu neuen Horizonten

Mit der Komplexität der Anforderungen entsteht eine unüberwindbare Aufgabe, wenn wir nur nach Regeln arbeiten. Wie wäre es, wenn es eine Möglichkeit geben würde, wenn ein Algorithmus diese Regeln selbst herausfinden würde. Und damit sind wir beim Maschinellen Lernen.

Maschinelles Lernen agiert anders als konventionelle Programme, weil statt detaillierter Anweisungen dem Computer nur Daten vorgegeben werden. Daten wie beispielsweise Fotos, Messwerte, Protokollierungen, Dokumente, und dem Computer wird nicht explizit mitgeteilt, was er mit diesen Daten tun soll. Ein Machine-Learning-Algorithmus nutzt diese Daten, um versteckte Muster, Beziehungen und Zusammenhänge zu erkennen. Der Algorithmus erlernt diese Fähigkeit automatisch.

Am Anfang von Machine Learning stehen die Input-Daten (Erfahrung). Das können beispielsweise die Fotos von Hunden und Katzen unserer Aufgabe sein. Der Machine-Learning-Algorithmus bekommt diese Daten und erlernt anhand derer, diese zwei Tierarten voneinander unterschieden. Das Resultat auf Basis der Erfahrung ist das Modell, welches es ermöglicht, ein Foto von einer Katze auch bei einem neuen Bild von einer Katze dies als Katze zu klassifizieren. 

Supervised Learning

Eine Variante des Machine Learning ist das Supervised Learning. Wir schicken hierbei unseren Computer in die Schule, Supervised Learning auch überwachtes Lernen bedeutet. Als Basis beim überwachten Lernen dient eine Menge an Daten, wie die erwähnten Fotos von Hunden und Katzen. Die Fotos werden mit zusätzlichen Daten ergänzt, um welches Tier es sich handelt. Diese Zusatzinformation, genannt Label, gibt an, ob es eine Katze oder ein Hund ist. Mit Hilfe dieser gelabelte Daten bzw. Fotos lernt der Machine-Learning-Algorithmus das Modell, wie er Hunde von Katzen voneinander unterscheiden kann. Wer die einzelnen Rassen kennt, weiß, dass dies auf Fotos nicht immer so einfach ist. 

Ist der Lernvorgang abgeschlossen, sollte der Algorithmus bei einem neuen Katzenfoto (gibt es ja genug im Internet ;-) in der Lage sein, basierend auf dem vorherigen Modell eine Aussage zu treffen. Mit höchster Wahrscheinlichkeit wird in diesem Fall die Katze erkannt (z.B. Resultat 95% Katze, 5% Hund). Nicht anders funktioniert unser Lernen. Spätestens die Note eins auf dem Zeugnis belegt, dass wir erfolgreich gelernt haben (obwohl die Note zwei für manche auch schon ein Erfolg wäre). 

Noch ein wenige genauer betrachtet, gibt es bei Supervised Learning zwei wesentliche Problemstellungen:

  • Klassifizierung
    Bei Klassifikationsproblemen sollen Elemente in vordefinierte diskrete Klassen oder Kategorien eingeteilt werden. Also in der Lage sein, z.B. die Klasse Hund oder die Klasse Katze zu klassifizieren. Natürlich sind je nach Komplexität auch andere Klassen möglich, z.B. schwarze Katze oder brauner Dackel usw. Die Klassifizierungen (oder Voraussagen) sind diskrete Werte. Es gibt also keinen 1%-schwarz-99%-braunen 95%-Chihuahua.

  • Regression
    Ganz anders bei der Regression, bei der nicht diskrete Klassen, sondern kontinuierliche Werte vorhergesagt werden. Wie hoch sollte eine Versicherungspolicy bei Katzen mit blauen Augen sein? Mit  Hilfe der Regression können für einen neuen Vertrag basierend auf den Angaben vorhersagt werden, welcher Wert passen (und die Versicherung vor einem Verlust schützen) könnte.

Unsupervised Learning

Ähnlich wie im Schulwesen gibt es oft zuwenig Betreuer für ein überwachtes Lernen. In solchen Fällen liegen die Daten oftmals nur in unkategorisierter Form zur Verfügung. Hier setzt ein weiteres Teilgebiet des Machine Learnings ein, das Unsupervised Learning.

Auch beim Unsupervised Learning müssen süße Tierfotos gruppiert werden. Allerdings verfügen diese Fotos keine Labels, also der Computer weiß nicht, ist das ein süßes Kätzchen oder eine possierliche Hundewelpe oder vielleicht etwas ganz anderes. Die Bilder werden dann von diesem Machine-Learning-Algorithmus verarbeitet, welcher dann versucht, in diesen Fotos Muster zu erkennen, damit sie gruppiert werden. Hier entscheidet der Algorithmus selbstständig, wie die Fotos kategorisiert werden. Vielleicht gibt es Merkmale, die eine deutliche Unterscheidung ermöglichen. Entweder erfolgt ein Clustering, also ein Haufen weiße Tierfotos und ein Haufen andere Tierfotos, oder es erfolgt eine Anomalie-Erkennung (Ausreißer), bei der basierend auf den Daten erkannt wird, welches Foto nicht zu den restlichen Fotos passt (z.B. kein süßes Tierfoto, sondern stattdessen ein Katzenklo ohne Katze).

Viele Machine-Learning Anwendungen

Mit Hilfe von Machine Learning lassen sich viele der bisherigen und zukünftigen manuellen Anwendungen automatisieren. In der Medizin werden beispielsweise Krankheitsbilder identifiziert. Ein eher negatives Beispiel ist die Diskriminierung durch Gesichtserkennung nach Geschlechtern oder sexueller Ausrichtung. Auch gibt es keine Garantie dagegen, dass ein Unschuldiger durch eine Fehlklassierzierung als Kreditkartenbetrüger gekennzeichet wird. Daher werden aktuelle  

Im Allgemeinen lässt sich sagen, dass im speziellen Fall von Klassifikationen Machine Learning diese effizient und einfach lösen kann. Machine Learning sollte immer dann verwendet werden, wenn die Regel nicht einfach kodiert werden können. Regelbasierte System, wie früher die beliebten Expertensysteme, sind bei vielen menschliche Aufgaben, wie Spracherkennung, sind nicht in der Lage, regelbasiert die gestellten Herausforderungen zu lösen. Jede der vielen Einflußfaktoren können die Antwort beeinflussen. Wenn die Lösung von zu vielen Faktoren abhängt und angewandte Regeln sich überschneiden oder eine feine Abstimmung erfordern, wird es auch für einen Menschen schwierig, nach den gestellten Regeln (Vorgaben, Arbeitsanweisungen) zu handeln. Hier liegt das Einsatzgebiet des Machine Learnings, um Probleme effektiv und effizient zu lösen. Besonders bei einer großem Menge an unstrukturierten Daten, wie bei der Gesichtserkennung, schlägt die KI jedes Regelwerk.

Machine Learning zusammengefasst

Machine Learning ist ein Teilgebiet der künstlichen Intelligenz. Dabei werden aus Daten Informationen generiert, indem ähnliche Muster aus diesen Daten extrahiert werden. 

Machine Learning wird in die zwei Teilgebiete Supervised und Unsupervised Learning (mit oder ohne Lehrer) unterteilt werden. Beim Teilgebiet Supervised Learnings stehen dem Algorithmus eine Menge von gelabelten Daten als Lernbasis zur Verfügung. Auf dem Erlernten kann der Algorithmus Vorhersagen für neue Daten treffen, beispielsweise eine Klassifikation von Tierfotos durchführen (Label "Hunden" und "Katze"). Bei Unsupervised Learning werden Daten nicht gelabelt. Die Klassifizierung erfolgt beim Unsupervised Learning nur auf Basis von Mustern in den vorgegebenen Daten, wie beispielsweise Farbe, Größe oder ähnlichen Kategorien. Es werden ähnliche Gruppen selbstständig identifiziert.

Fazit: Es gibt nicht besseres als Machine-Learning beim Lösungen komplexer Probleme im Zusammenhang mit vielen Daten bezüglich Effizienz und Effektivität..