Anzeige
Anzeige
Ratgeber
Artikel merken

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

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.

Von Alexander Bresk
9 Min. Lesezeit
Anzeige
Anzeige

(Grafik: Shutterstock)

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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

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).

Anzeige
Anzeige

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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

Ein simples Framework für den Einstieg in Python ist ­Scikit-learn. Damit ist mit wenigen Codezeilen vieles möglich. So lässt sich nach einem kurzen Blick auf die Seite der ­Scikit-learn-Beispielprojekte bereits ein einfacher Klassifikator implementieren, den man mit den besorgten Daten trainieren kann. Scikit-learn bietet sich für Anfänger an, weil es viele Me­triken zur Bestimmung der Güte des Modells schon mitbringt und es auch sehr gute Optionen zur Visualisierung bietet.

Um mit den Daten überhaupt arbeiten zu können, müssen erstmal Features (Merkmale in den Daten) extrahiert werden. Wer mit Texten arbeitet, der will beispielsweise schauen, ob ein Wort vorkommt oder nicht. Man könnte außerdem versuchen, die Wörter auf den Wortstamm zu reduzieren und schauen, ob dieser Wortstamm im Text vorkommt. Auch das Vorkommen von bestimmten Sonderzeichen lässt sich als Merkmal erfassen – je nachdem, welches Problem gelöst werden will und wie die Daten aussehen. Arbeitet man mit Bildern, dann ließe sich eine Kantendetektion (Canny-Algorithmus oder Sobel-Operator) nutzen, um zu erkennen, was auf dem Bild gezeigt wird.

Für das Extrahieren dieser Merkmale können Einsteiger ­ebenfalls Frameworks verwenden. Sie helfen dabei, die ­Merkmale aus den Daten herauszubekommen. Die Merkmale werden dann zu Vektoren, die man in den Algorithmus stecken kann. Der ­Vorgang nennt sich Feature Extraction. Bei der Extraktion von Merkmalen aus dem Text helfen die Frameworks NLTK und Spacy. Diese erledigen den Job des Merkmalextrahierens, indem sie beispielsweise schätzen, welche Wörter im Text Orte, ­Personen und bestimmte Entitäten sind oder den Typ des jeweiligen Wortes.
Auch für die Extraktion von Merkmalen aus Bildern gibt es Frameworks. Dafür eignen sich Scikit-image und ­OpenCV. Damit kann man aus den Bildern Kantenstrukturen und ­Histogramme erstellen lassen, die sich als sehr gut als Merkmale anbieten. Diese Frameworks sind für Einsteiger zu empfehlen, da sie meist gut dokumentiert sind und viele Beispiele für die Benutzung enthalten sind. Wer außerhalb von Python unterwegs ist, kann sich auch das Weka Framework für Java anschauen oder Mlpack für C.

Anzeige
Anzeige

Geht es noch tiefer?

Nachdem nun einfache Probleme gelöst sind, können Interessierte sich komplizierteren Anwendungen widmen. Neben den sogenannten „Shallow-Neural-Networks“ (simple künstliche ­neuronale Netze mit einfachen Aktivierungsfunktionen) gibt es noch komplexere neuronale Netze. Deep Learning heißt die ­Disziplin, in der diese Netze mehrere Schichten haben und es ­verschiedene Typen von Schichten gibt. Diese Netze haben ­gezeigt, dass sie für einen komplexen Input (ein Bild oder ein Text) eine viel höhere Genauigkeit erzielen, als herkömmliche ­Algorithmen. Das funktioniert unter anderem so gut, da das ­Feature ­Engineering hier durch Autoencoder übernommen wird, die sehr viele Informationen aus dem Eingangsmedium extrahieren.

Die Open-Source-Datenbank ­Tensorflow bietet einen guten Einstieg zum Experimentieren mit Deep ­Learning. Das integrierte Tensorboard ­ermöglicht die grafische Darstellung der Daten. (Screenshot: Tensorboard)

Das klingt spannend? Ist es auch. Allerdings bringt das ­Training von Modellen mittels Deep Learning auch einige Probleme mit sich. Weil durch die Komplexität viele Parameter mehr als bei herkömmlichen Verfahren optimiert werden müssen, sind deutlich mehr Daten nötig. Man muss diese also im Vorfeld beschaffen. Außerdem müssen Entwickler viel mehr Zeit in die Architektur des Netzes stecken. Deep-Learning-Netze verfügen über eine höhere Anzahl von Schichten sowie über eine Vielzahl von Schichttypen. Die Optimierung bietet bei diesem Ansatz ­natürlich viel mehr Raum für Verbesserungen und Änderungen, ist dadurch aber auch komplexer und schwieriger in der Handhabung.

Wer trotzdem mit Deep Learning experimentieren will, ­sollte einen Blick auf Tensorflow und Keras werfen. Mit ­diesen ­beiden Bibliotheken lassen sich Deep-Learning-Anwendung ­bauen. Aber Vorsicht, zuerst sollten die Machine-Learning-Basics klar sein, bevor man mit diesen beiden Open-Source-Bibliotheken arbeitet. Damit ist sichergestellt, dass man eine grobe Vorstellung davon hat, was sich hinter den wenigen Codezeilen versteckt, die für eine funktionsfähigen Anwendung nötig sind.

Anzeige
Anzeige

Fazit

Dieser Artikel hat einen kurzen Einblick in die Welt des Machine Learnings gewährt. Was der Artikel aber nicht gezeigt hat, ist die Schwierigkeit, die Ergebnisse eines Modells gut zu interpretieren. Das sollte man sehr gewissenhaft tun, da man sich nach dem Training des Modells darauf verlassen muss, dass die ­Trainings- und Testdaten ausreichend waren, damit die Anwendung auch nach einem Deployment in einer produktiven Umgebung noch funktioniert.

Was ist dafür nötig? Eine gute Dokumentation ist ­wichtig, ­damit jeder Entwickler, der aktuell und zukünftig an dem ­Machine-­Learning-Projekt arbeitet, eine gute Vorstellung vom entstandenen Modell hat. Außerdem sollte ein Review-Prozess rund um die Entstehung des Machine-­Learning-Modells etabliert ­werden. Häufig schleicht sich unbemerkt eine Verzerrung (engl.: bias) in die Daten oder den Prozess ein, das Training wird also sehr einseitig und entwickelt ungewollte Tendenzen. Ein ­Review-Prozess mit einem Entwickler oder externem Beauftragten könnte diesen Fehlern und negativen Effekten vorbeugen.

Genauso wichtig ist es allerdings auch, die Ergebnisse und den Prozess interpretierbar und verständlich zu machen, um mit den optimierten Algorithmen keine negativen Effekte für andere Menschen oder Unternehmen zu erzielen.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige