Teil 1: Die Grundlagen
Teil 2: Deep Learning & Anwendungsfälle
Teil 3: How to get started?
Einführung
Im letzten Blogpost haben wir uns das Buzzword der Künstlichen Intelligenz vorgenommen und sind kurz darauf eingegangen was maschinelles Lernen eigentlich ist. Kurze Rekapitulation: Maschinelles Lernen ist das Handwerk auf Grundlage von Daten einen Algorithmus mit einem speziellen Ziel zu entwickeln. Dies kann z.B. die Klassifikation von Hunde- und Katzenbildern sein, oder die Vorhersage eines Mietpreises anhand von Gebäudedaten. Dabei gibt es verschiedenste Werkzeuge und lernende Algorithmen mit denen ein Machine Learning Engineer ein Problem lösen kann. Die wohl derzeit populärste herangehensweise ist das benutzen von so genannten neuronalen Netzen. Im Folgenden werden wir einen genaueren blick hinter die Technologie werfen und Anwendungsmöglichkeiten im Business-Kontext betrachten.
Neuronale Netze
Die Idee der neuronalen Netze ist ziemlich alt und ist an die Funktionsweise unseres Gehirns angelehnt. Dort haben wir eine riesige Menge an Zellen, sogenannte Neuronen. Ein Neuron ist durch eingehende und ausgehende Verbindungen mit anderen Neuronen verbunden. Auf den eingehenden Verbindungen bekommt es elektrische Signale zu geschickt und sobald diese eine gewisse Intensität erreichen, schickt das Neuron ein eigenes elektrisches Signal an seine Ausgänge. Dieses Spiel wiederholt sich endlos oft und sorgt dafür, dass wir die Signale unserer Augen, die Gerüche die unsere Nase aufnimmt oder den Geschmack den unsere Zunge aufnimmt verarbeiten können.
Ein neuronales Netz für die Unterscheidung zwischen Hund und Katze basiert auf dem ähnlich simplen Prinzip. Anstatt jedoch elektrische Signale zwischen den einzelnen Neuronen zu verschicken arbeitet der Computer mit Zahlenwerten. Dabei wird z.B. das Bild einer Katze in seine einzelnen Pixelwerte zerlegt. Für ein Bild der Größe 224 x 224 Pixel bekommen wir 54.656 einzelne Pixel heraus. Ein Pixel ist üblicherweise mit drei Farbwerten kodiert, z.B. einer Rot-Grün-Blau Kodierung, weswegen wir pro Pixel auch drei Eingabewerte erhalten. Das alleine bringt und schon auf 163.968 Werte, die unser Netz verarbeiten soll.
Das meinen wir auch, wenn wir von großen Daten (Big Data) sprechen. Nicht nur allein die Anzahl an Daten die wir besitzen ist entscheidend, sondern auch die Größe eines einzelnen Datums selbst. Bilder sind hierbei meistens um Größenordnungen größer als gesammelte Daten von Sensoren.
Diese Werte füttern wir in die erste Schicht unseres Netzes, die so genannte Eingabeschicht oder auf englisch input layer. Von hier aus werden die Werte an alle Neuronen weitergeleitet die mit der Eingabeschicht verbunden sind. Dabei werden die Pixelwerte, mit einem Gewicht (eng.: weight) multipliziert und einem Bias addiert, der für die Verbindung vorher zufällig gewählt wurde. Das Gewicht und der Bias sind die Stellschrauben die am Ende beim Lernen des Netzes verändert werden um korrekte Ergebnisse zu erhalten. Wichtig dabei ist zu verstehen, dass jede Verbindung zwischen zwei Neuronen einen eigenes Gewicht zur Skalierung des Wertes, und einen eigene Bias hat. Haben wir also sehr viele Neuronen in unserem Netz, die viele Verbindungen untereinander haben, so gibt es eine riesige Masse an Stellschrauben durch dessen Veränderung das Netz lernen kann.
Ganz am Ende des Netzes steht die Ausgabeschicht. Hier werden die Ergebnisse der vorherigen Schicht zusammengeführt und je nach Modellart ausgewertet. Bei einem Klassifizierungsproblem zwischen Hunden- und Katzenbildern besteht die Ausgabeschicht aus zwei Neuronen. Das eine steht für die Wahrscheinlichkeit das sich bei der Eingabe um eine Katze handelt, das andere steht für den Hund. Je nachdem welches Neuron nun den höheren Wert zugewiesen bekommt, entscheidet dies über das Ergebnis bzw. die Ausgabe, welches das Netz ausgibt. Sollten wir nun aber die Vorhersage von Mietpreisen betrachten, dann haben wir in unserer Ausgabeschicht nur noch ein Neuron, welches den Wert des vorhergesagten Mietpreises annimmt.
Deep Learning
Aber wenn es doch eigentlich um neuronale Netze geht, warum reden dann immer alle von Deep Learning? Formal ist ein einfaches Neuronales Netz so definiert, dass wir eine Eingabeschicht, eine versteckte Schicht und eine Ausgabeschicht haben. Wenn wir nun mehr als eine versteckte Schicht in unserem Netzwerk haben, dann sprechen wir bereits von tiefem Lernen, also Deep Learning. Das Netz wächst damit nämlich sinnbildlich in die Tiefe (Anzahl der Schichten) und nicht in die Breite (Anzahl der Neuronen pro Schicht).
Deep Learning hat immense Vorteile gegenüber kleinen Netzen. Forscher haben herausgefunden das ein Netz, welches sehr viele Schichten hat, besser generalisieren kann. Generalisieren ist ein wichtiger Begriff im Umfeld des maschinellen Lernens und meint: das Übertragen von gelerntem Wissen auf unbekannte Daten. Die Daten mit denen wir ein Netz trainieren, kann nicht alle Fälle abdecken mit denen das Netz ggf. im Einsatz konfrontiert wird. Das Ziel ist es jedoch, für möglichst viele der Echtwelt Daten korrekte Ergebnisse zu produzieren. Also auch Daten, die dem Netz bisher unbekannt sind. Deswegen ist das Ziel im Bereich des maschinellen Lernens immer, ein Modell (Netz) zu entwickeln, welches das generelle Problem abdeckt und nicht nur auf Grundlage der zur Verfügung stehenden Daten korrekte Ergebnisse liefert und bei Echtwelt Szenarien komplett versagt.
Auf der anderen Seite braucht ein Netzwerk, welches immer weiter wächst auch deutlich länger für den Trainingsprozess. Es ist nicht unüblich, dass gewisse Netzwerke aus Forschungsarbeiten manchmal mehrere Wochen oder gar Monate lang am Stück trainiert werden müssen um gute Ergebnisse produzieren zu können.
Anwendungsfälle
Das unterscheiden von Katzen- und Hundebildern hilft den meisten Unternehmen nun aber nicht, die Kundenzufriedenheit oder den Umsatz zu steigern. Außer natürlich, man betreibt ein Portal über Tiere oder ähnliches. Wie kann diese viel gelobte Technologie nun dafür genutzt werden, um meine Produkte oder Dienstleistungen zu verbessern und dadurch den Umsatz zu erhöhen oder Kosten zu verringern?
Predictive Maintenance
Dieser Anwendungsfall trifft auf alle Unternehmen zu, die entweder einen eigenen Maschinenpark unterhalten oder zu wartende Produkte verkaufen. Anhand von Daten wann eine Maschine ausfällt, welche Probleme bei vorherigen Wartungen gefunden wurden und einem Nutzungsprofil das mit Sensoren aufgenommen wurde, kann man vorhersagen wann die Maschine das nächste mal ausfällt oder gar die Lebensdauer vorhersagen. Man kann auch ein Nutzungsprofil vorschlagen, das die Anforderungen an die Maschine immer noch erfüllt aber zu einer längeren Lebensdauer führt. Geht man noch einen Schritt weiter, so kann man dem Servicetechniker bei der Wartung auf vermutlich auftretende Probleme und Problemstellen hinweisen, sodass diese präventiv beseitigt werden. Das sorgt dafür, dass die Maschine kaum bis keine Ausfälle mehr hat.
Auftragsvorhersage
Gibt es eine Struktur mit der gewisse Waren eines Online-Händlers nachgefragt werden? Die Antwort kann auf Grundlage der vergangenen Auftragslage und des Nutzerprofils erzeugt werden. Mit einer soliden Prädiktion welche Waren in der kommenden Woche oder im kommenden Monat bestellt und Nachgefragt werden, aber auch welche nicht, kann helfen die interne Logistik und Lagerplanung zu optimieren. Ziel ist es keine unnötigen Waren mehr im Lager zu halten und somit auf kleinere Lagerhaltungskosten zurückgreifen zu können.
Aber auch in Betrieben, wo für die Erfüllung von Aufträgen Variable Kosten anfallen, kann mit einer Vorhersage die erforderlichen Ressourcen zu einem kostengünstigeren Zeitpunkt akquiriert werden.
Dokumentenverarbeitung
Bei euch fallen viele Dokumente an die Verarbeitet werden müssen? Ob Rechnung, Auftragsbestätigung oder E-Mails im Unternehmensalltag fallen viele Textdokumente aus die verarbeitet werden müssen. Dafür sind oft mehrere Mitarbeiter damit beschäftigt Daten aus den Dokumenten zu übertragen oder wiederkehrende Antworten zu formulieren. Durch maschinelles Lernen können diese repetitiven Aufgaben reduziert werden. Einmal angelernt kann die künstlichen Intelligenz einen Großteil der simplen Arbeit übernehmen und den Mitarbeitern dadurch mehr Zeit für die wichtigen Aufgaben freiräumen. Dokumente können in inhaltliche Segmente wie Anfrage zum Liefertermin oder Reklamation unterteilt werden, spezielle Werte wie Rechnungsdatum oder Gesamtbetrag können ausgelesen werden oder die Kommunikation mit dem Kunden auf seine Emotionen untersucht werden.
Produktempfehler
Oft sind Kunden mit der größe des heutigen Sortiments komplett überfordert und man findet im Produktjungle nicht das, was man tatsächlich sucht. Hier können virtuelle Empfehlungsmaschinen helfen, so genannete Recommender Systeme. Hat man also bereits Daten über das Kaufverhalten seiner Kunden, so kann eine Analyse ihres Kaufverhaltens dazu führen, das Ihnen deutlich bessere Produkte angezeigt werden. Zusätzlich kann man auch gezielter Werbung im eigenen Newsletter schalten und mit etwas werben, was den Kunden tatsächlich interessiert. Dies funktioniert übrigens nicht nur anhand der Produktbeschreibung, sondern auch anhand von Bildern. Hier kann dann die visuelle Ähnlichkeit von Produkten mit einbezogen werden. Dies alles sorgt dafür, das Kunden weniger Zeit zum suchen brauchen, sondern mehr Zeit für das finden haben und dadurch den Umsatz steigern.
Dies schließt den zweiten Teil unserer Serie über Machine Learning ab. In Part 3 zeigen wir euch, was Ihr beachten müsst, wenn ihr Machine Learning in eurem Unternehmen erfolgreich einsetzen wollt.
Philipp
Philipp studierte Informatik an der Leibniz Universität Hannover und war Teamleiter beim Pilotprojekt “Autonomous Driving” von Horsepower. Hier konnte er insbesondere Erfahrungen in der Anwendung und Optimierung von komplexen Machine Learning Modellen des autonomen Fahrens sammeln. Bei Ignaris (ehemals Refindit) entwickelt und optimiert er Machine Learning Modelle und beschäftigt sich mit Data Engineering.
Kontakt: Philipp Schelske (E-Mail)
Ignaris
Ignaris ist ein Beratungsunternehmen für Machine Learning, Deep Learning und Data Science. Wir begleiten von der Weiterbildung von Mitarbeitern über die Analyse bis zur Implementation von Machine Learning Anwendungen im Unternehmensumfeld.