Open Source im professionellen Einsatz
Linux-Magazin 10/2017
454

Ene mene muh

Mit einem Array wie »[3,4,5,6,7]« aufgerufen (Abbildung 6) produziert das Skript relativ genau die auf die Sequenz folgende Zahl (7,84 statt 8). Listing 1 zerlegt die Zahlenreihe mit der ab Zeile 12 definierten Funktion »window« in wandernde 4er Blöcke ([3,4,5,6],[4,5,6,7]) und legt jeweils die ersten drei Elemente im Eingabevektor »X« und das letzte Element im Ergebnisvektor »y« ab.

Abbildung 6: Eine einfache Sequenz packt das LSTM-Netzwerk relativ zielsicher.

Damit dem LSTM-Netzwerk nicht seine Gewichte um die Ohren fliegen, normalisiert der aus der Sklearn-Library stammende »StandardScaler« die Werte auf kleine sowohl positive als auch negative Floatingpoint-Zahlen um den Nullpunkt herum – sowohl für den Eingabe- als auch den Ergebnisvektor, der die zum Supervised Learning notwendigen erwarteten richtigen Ergebnisse enthält.

Die Methode »fit_transform()« standardisiert die Daten. Weiter unten, wenn es an die Ausgabe der Ergebnisse geht, dreht »inverse_transform()« den Spieß um und holt zur erbaulichen Betrachtung die Originaldaten wieder hervor.

Die Zeilen 38 bis 45 stapeln die einzelnen Layer des LSTM-Netzwerks aufeinander. Als Erstes kommt in Zeile 39 der LSTM-Core-Layer mit fünf internen Neuronen hinzu. Es folgen der Ausgabe-Layer unter dem Namen »Dense« und die Activation-Funktion, die die Antwortkurve der intern verwendeten Neuronen auf »linear« setzt, da dies beim Testen die besten Ergebnisse brachte.

Auf los geht's los

Anschließend macht »compile()« das Lernmodell startfertig und bestimmt außerdem als Lernparameter »mean_squared_error« (Abweichungen vom optimalen Lernerfolg werden nach der Methode der mittleren Quadrate gemessen) und als Optimizer den Algorithmus »rmsprop« , ein bei neuronalen Netzwerken gängiges Verfahren.

Zeile 45 ruft nun die Methode »fit()« des Modells auf, übergibt ihr die Lerndaten und verlangt mit »epoch=500« entsprechend viele Lerndurchgänge. Im Test zeigten sich bei kürzeren Lernphasen schlechtere Ergebnisse, doch auch größere Werte für »epoch« halfen nicht zu mehr Lernerfolg, da sich das System danach auspendelte und der Lernprozess, sichtbar am gleichbleibenden Wert für die »loss« -Funktion, stagnierte.

Der Abschnitt von Listing 1 ab Zeile 47 gibt dann die mit dem austrainierten Modell erzielten Vorhersagen aus, sowohl für die Trainingsdaten als auch für die Fortsetzung der Folge, die das System rein aus vorher Gelerntem ableiten muss, da sich in den Trainingsdaten kein entsprechender Präzedenzfall findet.

Abbildung 7 zeigt, dass das Netzwerk auch bei zyklischen Daten (1,2,3,1,2,3) eine gute Figur macht, übrigens unabhängig davon, wie lang die Periode des Signals ist. Das ist ein wesentlicher Vorteil gegenüber klassischen neuronalen Netzwerken, denen man die Periodizität vorher zustecken muss, damit sie zuverlässige Vorhersagen machen.

Abbildung 7: Bei einer zyklischen Sequenz sagt der Algorithmus den jeweils nächsten Wert ungefähr richtig voraus.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Snapshot

    Das aus Gameshows bekannte Ziegenproblem kann eine lohnende Jungfernfahrt für angehende Statistiker sein. Lässt sich die Wahlentscheidung zwischen Ziegen und Auto mit einem neuronalen Netzwerk und einigen Trainingsläufen erlernen? KI-Meister Mike Schilli probiert es aus.

  • Tensorflow erreicht Version 1.0

    Tensorflow 1.0 verspricht Stabilität für sein Python API und beschleunigt die aktuelle und zukünftige Arbeit mit der Einführung des domain-spezifischen XLA Compilers.

  • Snapshot

    Anhand von Trainingsdaten in Form von täglich im Auto erfassten Kilometerständen versucht Michael Schillis KI-Programm Muster im Fahrverhalten zu erkennen und Prognosen abzugeben.

  • Virtueller Bühnenbildner

    Ob Bildschirmschoner, CAD-System oder Flugsimulator - Programme mit dreidimensionalen Effekten sind auf den meisten Computern zu finden, aber schwer zu schreiben. Ein neues Projekt macht Letzteres leichter und öffnet Skript-Programmierern den Vorhang für 3D-Effekte in ihrer Software.

  • Im Rampenlicht

    Ein überzeugendes Bühnenbild sorgt für die passende Atmosphäre im Theater. Auch am Computer machen Anstrich und Beleuchtung die Illusion von 3D-Modellen perfekt. Selbst einfache Skripte zaubern dank OpenGL mit Hilfe von Bitmaps und Beleuchtung Überraschendes auf den Schirm.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.