Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 53

Frameworks für Machine Learning: So gelingt der Einstieg in die KI-Entwicklung

(Grafik: Shutterstock / Konstantin Faraktinov)

Jeder spricht darüber, jeder will damit arbeiten: Machine Learning. Doch der Einstieg in den Teilbereich der künstlichen Intelligenz (KI) stellt Unternehmen vor ­große ­Probleme – es fehlt an Know-how und Personal. Mit diesen Tools und Frameworks ­gelingen die ersten Schritte.

Eine Frau in Japan erkrankt an Blutkrebs. Mehrere Monate lang wird sie in einem Krankenhaus mit zwei Medikamenten behandelt, die in der Branche als zuverlässig gelten. Doch der Ge­nesungserfolg bleibt aus. Der Zustand der Frau verschlechtert sich, die ­Ärzte sind ratlos. Daraufhin geben sie die genetischen Daten der ­Patientin, die sich während der Behandlung verändert hatten, in Watson ein. Die künstliche Intelligenz von IBM vergleicht die ­Daten innerhalb weniger Minuten mit denen von 20 Millionen anderer Patienten. Das Ergebnis: Die Frau aus Japan leidet an ­einer besonders seltenen Form von Blutkrebs. Ein von IBM Watson ­vorgeschlagene ­Ersatzmedikament schlägt schließlich an. Schon kurze Zeit später kann die Frau das Krankenhaus verlassen. Auch wenn das Beispiel noch zu den wenigen Einzel­fällen in der Wirtschaftswelt gehört: Von solchen oder ähnlichen ­Szenarien wie in Japan träumen inzwischen viele Unternehmen, wenn es darum geht, eigene Anwendungen rund um das ­Thema künst­liche Intelligenz und Machine Learning zu entwickeln. Schließlich kann sich eine Investition in wertvollen Zeit- und Kosteneinsparungen niederschlagen. Die rasante Ver­breitung entsprechender Technologien stellt Unternehmen jedoch vor zwei gravierende Probleme: Es fehlt an Know-how über die Datengewinnung aus dem laufenden Betrieb einerseits und an ­qualifizierten ­Entwicklern andererseits. Umso wichtiger ist es, sich selbst mit den Grundlagen der Thematik vertraut zu ­machen. Auf den ­nachfolgenden Seiten zeigen wir, wie das gelingt.

Was ist Machine Learning?

Am Anfang steht etwas Lesearbeit, die man am besten mit ­entsprechenden Büchern oder in Online-Tutorials verbringt. Ein absoluter Klassiker ist mittlerweile der Onlinekurs, von Andrew Ng3, einem der bekanntesten Professoren im Feld des Machine Learnings an der ­Stanford University im Silicon Valley. Durch den Kurs ist es auch möglich, außerhalb einer Elite-Universität mit State-of-the-Art-Technologien in Berührung zu kommen.

Das führt auch schon zu einer weiteren wichtigen Erkenntnis: Das Feld des Machine Learnings ist sehr akademisch. Wer die Theorien hinter diesen Algorithmen tiefgreifend verstehen will, muss viel Zeit investieren. Das gelingt oftmals nur durch ein langwieriges Studium. Erst danach ist man in der Lage, diese Algorithmen zu verstehen und zu optimieren. Allerdings ist das noch lange kein Grund, aufzugeben. Zahlreiche Frameworks bieten auch Einsteigern die Möglichkeit, Machine Learning anhand der praktischen Ausführung vortrainierter Modelle zu verstehen.

Neuronale Netze sind in Ebenen aufgebaut, die aus einer Reihe von miteinander verbundenen ­Knotenpunkten bestehen. Netze können Dutzende oder hunderte verborgener Ebenen enthalten. (Grafik: t3n)

Es gibt verschiedene Formen des Machine Learnings: ­Supervised (überwacht), semi-supervised (halbüberwacht), unsupervised (unüberwacht) und Reinforcement (verstärkendes) Learning. Ist ein Algorithmus supervised, so weiß er beispielsweise durch ein Label, dass ein konkreter Datenpunkt zu einer bestimmten Klasse gehört oder einen spezifischen Zielwert hat. Ein Beispiel wären hier künstliche neuronale Netze oder Entscheidungsbäume (engl.: Decision Tree). Ist der Algorithmus dagegen unsupervised, so muss er selbst herausfinden, was der Zielwert oder die Klasse des Datenpunkts ist. Am meisten verbreitet ist jedoch das Supervised Learning. Deshalb beschäftigen sich auch viele Tutorials vornehmlich damit, was Einsteigern sehr entgegenkommt.

Im Falle des Supervised Learnings erhält der Datenpunkt neben seiner Repräsentation als Vektor (der sogenannte ­„Feature-Vektor“) noch ein Label. Benutzt man einen Klassifikator (Datenpunkte werden Klassen zugeordnet), so ist das ­Label die Klassenbezeichnung, zu der dieser Datenpunkt gehört. ­Anhand dieser Klasse versucht der Algorithmus dann während des ­Trainings, die Datenpunkte korrekt zu separieren. Neben der Klassifikation existiert auch die Regression. Hier gibt es keine Klassen. Das Label ist in diesem Fall ein Zahlenwert – der Zielwert für diesen Datenpunkt. Soll beispielsweise ein ­Modell ­gebaut werden, dass die monatliche Miete einer Wohnung ­anhand diverser Faktoren schätzt (Anzahl der Bäder, Anzahl der Schlafzimmer, ­Quadratmeterzahl), so lassen sich diese Faktoren als Features bezeichnen und die geschätzte Miete als Label (oder Zielwert).

Machine Learning kann sehr viele Probleme lösen und bei wichtigen Entscheidungen assistieren. Bezieht die Maschine menschlichen Input in ihre Entscheidung mit ein, spricht man von Human-in-the-Loop (HITL). Wie eingangs schon erwähnt, kann Watson von IBM beispielsweise helfen, im Krankheitsfall die richtige Diagnose zu stellen. Algorithmen in autonomen Fahrzeugen wiederum werden in der Zukunft auf Basis von ­Machine-Learning-Algorithmen dafür sorgen, dass Menschen ­sicher ans Ziel kommen.

Für den Anfang sollte man sich allerdings einfacheren ­Projekten zuwenden, die man auch in kurzer Zeit lösen und ­damit eine eigene Anwendung oder Startup-Idee umsetzen kann. Dort steht man meist vor reinen Datenverarbeitungsproblemen wie Bilderkennung oder der maschinellen Verarbeitung von Text. Für diese Probleme existieren sogar meist schon Lösungen auf ­Stackoverflow und Github.

Geeignete Daten suchen

Allerdings benötigt jede gute Statistik eine repräsentative ­Menge von Stichproben, damit sie aussagekräftig ist. Das ­bedeutet, dass man eine große Menge von Datenpunkten benötigt, ­damit die ­trainierten Modelle smart werden und die richtigen ­Ent­scheidungen treffen.

Doch woher kommen diese Daten? Es gibt diverse Portale, die freie Datensets anbieten. Auf Kaggle treten Machine Teacher ­gegeneinander in Wettkämpfen an, indem sie auf freien Datensets ihre Algorithmen testen. Im UCI Machine Learning ­Repository findet man 438 Datensets zu diversen Themen über die Klassifikation von Buzz in Social-Media-Channels bis hin zu einer Regression von Facebook-Metriken. Ein weiteres Daten-Repository stellt Datahub dar. Dort haben sich die Gründer Adam Kariv und Rufus Pollock ihren Traum von einem offenen Austauschplatz für Daten erfüllt. Auch die Administrationen von Staaten haben viele Daten, die sie zur Verfügung stellen wollen. Darunter sind ­Bereiche wie Landwirtschaft, Klima, Bildung und viele mehr. Ein Beispiel für dieses Vorgehen findet sich für die USA auf der Plattform data.gov.

Wurde ein Datensatz ausgewählt, der die Anwendung ­trainieren soll, kann man im Prinzip sofort starten. Als nächstes muss die Entscheidung fallen, was man mit diesen Daten tun will. Lohnt sich für dieses Datenset eine Klassifikation? Die ­Frage kann mit „Ja“ beantwortet werden, wenn das Datenset über ein Klassenlabel verfügt. Dabei handelt es sich meist um alpha­numerische Bezeichner (beispielsweise „Spam“ und „Nospam“ in einer Antispam-Datenbank). Oder ist hier eher eine Regression sinnvoll? Die Antwort fällt positiv aus, wenn das Datenset über einen nummerischen Zielwert verfügt (beispielsweise der Kurs bei einer Aktienvorhersage).

Ebenfalls empfehlenswert ist KNIME (Konstanz ­Information Miner) – ein graphisches Tool zur Datenanalyse. Mit KNIME kann man schnell und unkompliziert seine Daten visualisieren, auswerten und Modelle darauf trainieren. Die Software bietet die gängigsten Diagramme und Darstellungen an, die man in der Statistik benutzt. Nachdem man das Datenset angeschaut und studiert hat, kann man mit KNIME bereits durch „Drag and Drop“ bequem die Komponenten für eine Machine-Learning-Anwendung verbinden und auf Play drücken.

Da sich graphische Tools besonders gut für den Einstieg und die Visualisierung der Arbeitsschritte eignen, empfiehlt es sich, wenigstens einmal kurz den Workflow zu skizzieren, nämlich erst das Training eines Machine-Learning-Modells und danach das Testen beziehungsweise Evaluieren des Modells. Eine Alternative zu KNIME ist das Programm Rapidminer.

Das richtige Framework nutzen

Will man allerdings ohne eine graphische Benutzeroberfläche an dem Code der Anwendung arbeiten und das fertige Modell in eine Anwendung integrieren, muss man sich einer Programmiersprache bedienen. Zum Glück sind fast alle gängigen Programmiersprachen für die Entwicklung von Machine-Learning-­Anwendungen geeignet. Es gibt kaum Einschränkungen und die Communities rund um diese Programmiersprachen sind meist sehr schnell, wenn es darum geht, neue Bibliotheken einzubinden.

Hat man keine besonderen Präferenzen, so ist Python eine Sprache, die man wählen sollte. Warum gerade Python? In der Wissenschaftswelt ist Python eine sehr beliebte Sprache, wodurch viele Optimierungen von Algorithmen und viele Frameworks für Machine-Learning-Anwendungen dort zuerst verfügbar waren.

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden