erste Versuche mit Machine Learning *UPDATE 5*

nach langer Zeit finde ich wieder Mal Zeit für meinen Blog.. Heute will ich über ein Thema schreiben, welches mich aktuell begleitet – Machine Learning. Überall werden Begriffe wie künstliche Intelligenz, maschinelles Lernen, Personal Assistant etc. genannt. Jüngst hat Google seinen Assistant vorgestellt, der Einzug auf vielen Geräten wie dem Smartphone, Lautsprechern, Fernsehern und weiteren haben soll.

Doch was versteht man unter Machine Learning überhaupt? Diese Frage beschäftigt mich derzeit. Ich möchte daher diesen Blogpost nutzen, um meine Ergebnisse zusammenzufassen.

UPDATE 1

Ein interessantes Feld ist das “Interessen des Benutzer lernen”. Sicherlich kennt ihr das, wenn ihr z.B. bei Amazon nach einem Artikel sucht und ab da an überall “ähnliche Artikel wie diese” findet. Zwar kann ein “einfacher” Vergleich der Kategorien, Stichworte und weitere Eigenschaften gemacht werden, dies hätte aber keinen “intelligenten” Ansatz. Es würde also der Bezug zum “Lernen” fehlen.

Nach meinen ersten Recherchen bin ich auf den Begriff “Recommendation Engine” gestoßen. Die nächsten Tage werde ich an diesem Begriff weiter erforschen…

UPDATE 2

Nach ein paar Tagen frei, die ich in Berlin verbracht habe, nutze ich jetzt Mal die Gelegenheit, um wieder in das Thema einzusteigen.

Das Stichwort „Recommendation Engine” habe ich aktuell nicht weiter verfolgt. Dafür habe ich aber
Weitere genannt bekommen.
Bevor irgendeine Art von Vorschlag durch ein System gemacht werden kann, müssen
Inhalte des Benutzers verarbeitet (analysiert) werden. Dies führte mich zu dem Begriff „Natural Language Processing” (kurz NLP). Aktuell recherchiere ich zu diesem Begriff, da ich wie gesagt denke, dass er eine Vorstufe zu dem ist, was ich erreichen möchte.
Hierbei stehe ich gerade bei dem Begriff „NLP Pipeline”, den ich vertieft analysieren muss. Stay tuned….

UPDATE 3

Unter dem Begriff “Pipeline” ist keine wissenschaftliche Disziplin, sondern eine “Beschreibung” des Workflows zu verstehen. Dabei teilt man das gesamte NLP in verschiedene Unterbereiche auf, bei dem jeder Bereich als Input den Output seines Vorgängers bekommt. Eine Art Kette also…

Immer öfers stoße ich auf die Begriffe “Tokenisation”, “POS-Tagging” (POS für “Part-of-Speech”) und “Parsing”. Hierunter ist grob beschrieben das “Aufteilen eines Satzes in seine Bestandteile” zu verstehen. Da mich die Praxis hierzu sehr interessiert hat, habe ich einen kurzen Abstecher in die Welt der Python-Programmierung gemacht. Das erste Framework im Zusammenhang mit NLP ist das “Natural Language Processing Toolkit”, welches umfangreiche Werkzeuge zur Verfügung stellt. Es eignet sich aber etwas weniger für den produktiven Einsatz, da es mit sehr großen Datenmengen (wohl) nicht so gut umgehen kann. Ohnehin ist es für Lehr- und Forschungszwecke entwickelt worden. Des Weiteren bin ich auf “SpaCy” gestoßen, eine – laut Hersteller – “industrial-strength” Bibliothek für das NLP.

Aktuell ist es noch sehr viel an Informationen, die ich schlichtweg ordnen muss. Mir fehlt noch der rote Faden durch die ganze Thematik, aber ich bleibe am Ball…

UPDATE 4

Die letzten paar Tage war etwas ruhig um das Thema „Machine Learning”. Grund hierfür waren ein paar berufliche und private Gründe. Ich konnte nur wenig Recherche machen. Ohnehin habe ich die Suche nach einer „Übersicht” zu dem Thema NLP aufgegeben. Es ist einfach zu viel. Ein Blick in “Foundations of Statistical Natural Language Processing” zeigt was ich meine.
Die Hochschule gewährt kostenfreien Zugriff auf viele Paper bei IEEE. Die nächste Zeit werden ich werde ich hier suchen – und af Google Scholar.
Sobald ich einen roten Faden durch die Thematik habe, werde ich diese in eigenständige Posts aufteilen. Das wird zwar ein langwieriger Prozess, aber gut’ Ding’ will Weile haben..

UPDATE 5

Nach ein paar Tagen gründlicher Recherche über IEEE Explore, Arxiv und Google Scholar bin ich nun der Meinung, dass ich einen Ansatz habe, den ich verfolgen kann. Natürlich muss ich diesen noch validieren und mit den Zuständigen besprechen. Da dies noch in einem sehr frühen Stadium ist, mache ich das jetzt noch nicht bekannt. Wenn meine Vorstellung in Ordnung und umsetzbar ist, würde ich mich über die in UPDATE 4 genannten Posts kümmern.

Somit wäre dieser Post auch beendet. Für Interessierte kann ich die folgenden Stichpunkte zum Weiteren recherchieren nennen:

  • Natural Language Processing (Pipeline)
  • Information Retrieval
  • Clustering
  • Content Based Recommendation (System)
  • Similarity Measurement
  • Tokenisation, Stopwords, Stemming, Parsing, N-Grams
  • K-Means, Expectation Maximization, Decision Trees, Naiv Bayesian
  • Support Vector Machine

Im erweiterten Sinne:

  • Computer Vision (bzw. OpenCV)
  • Optical Character Recognition (OCR)
  • Video Analysis
  • Speech Processing/Synthesizing

Des Weiteren kann ich folgende Literatur zum Einlesen empfehlen:

letzte Aktualisierung: 26.09.2017 09:23:28

Du hast Interesse an Machine Learning? Ich würde mich über ein Kommentar freuen!

Schreibe einen Kommentar