iX 9/2019
S. 136
Praxis
Machine Learning

Geschäftsanwendungen mit Long-Short-Term-Memory-Netzen in Keras und Python entwickeln

In guter Erinnerung

Ramon Wartala

Mit rekurrenten Netzen – insbesondere Long Short-Term Memory Networks (LSTM) – lassen sich Kundenverhalten voraussagen, Sprache verstehen und Texte erzeugen. Mit Keras und TensorFlow kann man LSTMs in eigenen Anwendungen nutzen.

Menschen erzeugen ständig Daten. Sie verschicken E-Mails, öffnen Apps auf dem Smartphone, fahren Auto und zahlen an der Supermarktkasse. Für jede Handlung innerhalb der digitalisierten Welt werden mindestens vier Attribute gespeichert:

  • die Nutzeridentität, wie User-ID oder Fahrgestellnummer;
  • die konkrete Aktion (Suchwort eingeben, auf die Bremse treten);
  • der Zeitstempel (24. Juni 2019, 8:39 Uhr);
  • das Ergebnis, also Erfolg oder Nicht­erfolg der Aktion.

Zeitlich aufeinander folgende Handlungen lassen sich auch als Sequenz beschreiben (mehr im Kasten „Aus Sequenzen lernen“). Das können nicht nur Messwerte sein, die man über einen bestimmten Zeitraum verfolgt. Auch Äußerungen, also die Anei­nanderreihung von Buchstaben zu Wörtern, von Wörtern zu Sätzen und von Sätzen zu Texten, stellen Sequenzen dar.

Aus ML wird KI

Anwendungsfälle dieser Art lassen sich mit statistischen Verfahren wie der linearen oder der logistischen Regression oder zum Beispiel mit Markov-Modellen modellieren. Algorithmen für ihre Anwendung sind in viele bekannte Frameworks geflossen und haben so zum Siegeszug des maschinellen Lernens einen nicht unerheblichen Teil beigetragen. In den letzten Jahren brachten der Trend zu Big Data, das Aufkommen hochoptimierter GPUs und die Verfügbarkeit von Rechenpower-on-Demand in der Cloud die künstlichen neuro­nalen Netze aus ihrem Nischendasein. 

Plötzlich gewannen ML-Modelle einen akademischen Wettbewerb nach dem nächsten – und das gleich auf mehreren Ebenen. 2011 gewann ein Deep-Learning-­Algorithmus auf GPUs den ICDAR-Wettbewerb für die Erkennung von chinesischen Handschriften (siehe ix.de/zvs3). 2012 erreichte dann das AlexNet von Alex Kri­zhevsky den ersten Platz beim ILSVRC, einem wichtigen Wettbewerb für Bild­klassifikationsalgorithmen. 2014 veröffentlichte Facebook mit DeepFace eine Gesichtserkennungssoftware, die menschliche Gesichter mit einer Genauigkeit von 97,35 Prozent erkannte.

Im Frühjahr 2019 gewannen Geoffrey Hinton, emeritierter Professor der in KI-Fachkreisen hoch angesehenen Universität von Toronto und Senior Re­searcher bei Googles Mutterfirma Al­phabet, Yann LeCun, Chef-KIler von Facebook und Professor an der New York University, sowie Yoshua Bengio, Professor an der Universität in Montreal, den Turing Award. Dieser mit einer Million US-Dollar dotierte Preis gilt als der Nobel­preis der Computerwissenschaften. Er wurde den drei Wissenschaftlern für ihre konzeptionelle und technische Arbeit an künstlichen neuronalen Netzen (KNN) verliehen.

Anders als klassische mathematische und statistische Verfahren lernen künst­liche neuronale Netze selbstständig aus Eingaben und Ausgaben. Ein KNN wird trainiert, indem es zu einer erwünschten Ausgabe eine oder mehrere mögliche Eingaben verarbeitet und gewichtet. Solche Netze sind dabei in der Regel in Schichten organisiert. Nach der Eingabe fließen die Daten dabei per Feedforward in die nächsthöheren Schichten, bis sie die Ausgabeschicht erreichen. Stimmt die durch das Netz berechnete Ausgabe nicht mit der zu lernenden Ausgabe überein, wird der Fehler durch das Netz zurückgeführt (Backpropagation) und die Gewichte, die zu der fehlerhaften Ausgabe geführt haben, werden angepasst. Diese Rückführung wird aus der Fehlerminimierung bei der mathematischen Ableitung der Ausgabe­funk­tion bestimmt.

Effizienz durch Rekurrenz

Leider eignet sich diese Form künstlicher neuronaler Netze nicht sehr gut für die Verarbeitung langer Sequenzreihen. Der Grund hierfür ist die fehlende Möglichkeit, zeitlich aufeinander folgende Daten zu modellieren. Um zum Beispiel die Bedeutung von Texten zu verstehen, müsste das Netz verschiedene Wortpositionen lernen, da es keine Repräsentationsform von Wortabfolgen lernen kann. Dies kann ein Feedforward-Netz nur, wenn es genug Beispiele und dafür auch ausreichend Speicher und Rechenpower zur Verfügung hat. Und es geht deutlich effizienter. 

Genau das sollen RNNs leisten. Diese Art neuronaler Netze kann man auch als Schleifenstruktur betrachten. Die Ein­gabedaten verarbeitet ein solches System schrittweise. Beim Durchlauf einer Eingabesequenz durch das RNN merken sich seine Zellen ihren vorherigen Zustand. RNN-Zellen verfügen somit über eine Art Gedächtnis. Auch RNN nutzen zur Fehler­minimierung den Backpropagation-­Algorithmus. In diesem Fall wird er auch gern als Backpropagation Through Time (BPTT) bezeichnet, da die Fehlerrückführung hier durch die Zeit rückwärts verläuft.

Kommentieren