t3n 53

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

Seite 2 / 2

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.

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.

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.

Startseite
  • Seite:
  • 1
  • 2

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

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

Jetzt anmelden

Hey du! Schön, dass du hier bist. 😊

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

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

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung