Ratgeber

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.

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

Schreib den ersten Kommentar!

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