X

Einführung in Keras

Keras ist eine Open-Source-Bibliothek, die in der Sprache Python geschrieben ist und eine rasche Implementierung neuronaler Netzwerke für das Deep Learning ermöglicht. Es kann gemeinsam mit TensorFlow, Theano oder anderen Frameworks verwendet werden.

Steigen wir direkt ein:

  1. Was ist Keras?
  2. Welches sind die hauptsächlichen Vorteile von Keras?
  3. Wesentliche Prinzipien der Entwicklung
  4. Erweiterungen bei Keras2
  5. Unterstützung diverser Plattformen
  6. Verwendung von Keras
  7. Keras Beispiel: Bilderkennung

Was ist Keras?

Diese Open-Source-Bibliothek wurde zum größten Teil von Google-Programmierer François Chollet entwickelt und entstand im Zuge des sogenannten ONEIROS-Projekts (Abkürzung für: Open-ended Neuro-Electronic Intelligent Robot Operating System).

Es ist also eine Open-Source basierte Bibliothek, vorgesehen für schnelle Implementierung eines neuronalen Netzwerks. Sie dient nicht als Deep-Learning-Framework, eher als Interface für solche Frameworks und ist auf Frameworks für maschinelles Lernen einsetzbar.

High-Level-API für Deep Learning

Mit der Bibliothek steht ein High-Level-API zur Vereinfachung der Programmierung neuronaler Netze bereit. Der Fokus liegt auf der schnellen Bereitstellung der neuronalen Netze zu experimentellen Zwecken. Dabei werden rekurrente und auch konvolutionale Netzwerke, CPUs (Central Processing Units) sowie GPUs (Graphics Processing Units) unterstützt.

Keras High-Level-API unterstützt TensorFlow, Theano und CNTK.

Die zentralen Merkmale der Bibliothek sind Einfachheit, Erweiterbarkeit und Modularität. Neuronale Netze können mit den bereitgestellten Lösungen erstellt und konfiguriert werden, ohne dass man sich detailliert mit den zugrunde liegenden Backends beschäftigen muss. TensorFlow unterstützt Keras direkt in seiner Kernbibliothek. Der Name geht übrigens auf das griechische Wort für Horn zurück und spielt auf Homers Odyssee an.

Deep Learning Tutorial mit Keras am Beipiel Bilderkennung.

Welches sind die hauptsächlichen Vorteile von Keras?

Die Verwendung der Bibliothek zusammen mit den Frameworks für maschinelles Lernen bietet die folgenden Vorteile:

  • Schnelles und leichtes Erstellen neuronaler Netze.
  • Benutzerfreundlichkeit, Erweiterbarkeit und Modularität.
  • Unterstützung der rekurrenten und auch konvolutionalen Netzwerke nebst Kombinationen aus beiden.
  • Unterstützung der GPUs, CPUs sowie des Multi-Input-Trainings und Multi-Output-Trainings.

Wesentliche Prinzipien der Entwicklung

Eines der wichtigsten Prinzipien ist die Ausrichtung auf Menschen statt auf Maschinen. Benutzerfreundlichkeit steht daher im Mittelpunkt. Bei Fehlern erhalten Nutzer ein ausführliches Feedback und damit die Möglichkeit, Probleme leicht zu beheben.

Keras Logo

Das zentrale Designprinzip ist Modularität. Die voll konfigurierbaren Module sind beliebig kombinierbar. Mit der Kombination der Module für neuronale Layer, Aktivierungsfunktionen, Kostenfunktionen oder Initialisierungsschemata können schnell neue Modelle erschaffen werden. Diese können leicht als neue Funktionen oder Klassen hinzugefügt werden und sind im Python-Code beschrieben, welcher kompakt und einfach zu debuggen ist.

Download:

KI Use Cases für Marketing und Vertrieb

Jetzt eintragen und spannende KI-Projektbeispiele aus der Praxis erhalten:

Erweiterungen bei Keras2

Nach Veröffentlichung der ersten Variante im Jahr 2015 gibt es inzwischen die zweite Hauptversion. Im Vergleich zur ersten Version kann die API einfacher genutzt werden. Es ist inzwischen als Teil der Machine-Learning-Bibliothek im Framework TensorFlow verfügbar. Grundsätzlich gibt es zwei Implementierungen: eine externe, einfach erweiterbare Framework-Bibliothek und eine interne Umsetzung in der Bibliothek.

Unterstützung diverser Plattformen

Als besondere Stärke der Bibliothek lassen sich definierte Modelle auf verschiedenen Plattformen bereitstellen. Handys und Tablets von Apple mit dem Betriebssystem iOS, können über Apples CoreML unterstützt werden.

Für die Androidgeräte gibt es die TensorFlow-Android-Runtime-Umgebung. Wenn Modelle browserbasiert zur Verfügung gestellt werden, kommen JavaScript basierte Laufzeitumgebungen (etwa Keras.js und WebDNN) zur Anwendung. Des Weiteren sind nutzbar: die Google Cloud mit TensorFlow-Serving, der Raspberry Pi und die Java Virtual Machine mit dem DL4J Modelimport von SkyMind.

Verwendung von Keras

Gegen Ende des Jahres 2017 gab es schon mehr als 200.000 Nutzer. Die Bibliothek wird für Forschungsprojekte und auch in der Industrie für professionelle Anwendungen eingesetzt.

Neben TensorFlow zählt Keras zu den beliebtesten Bibliotheken für Deep-Learning-Anwendungen. Auch bei Anwendungen von Netflix, Uber, Instacard und Yelp sind Keras-Funktionen zu finden. Start-up-Unternehmen, die Deep Learning in ihren Produkten einsetzen, nutzen Keras. Wissenschaftliche Organisationen wie CERN oder NASA verwenden die beliebte Deep-Learning-Bibliothek ebenfalls.

Keras Beispiel: Bilderkennung

Einfaches Beispiel in Keras ist die Bilderkennung von handgeschriebenen Ziffern (MNIST Datensatz). Hier hat das High-Level-API Keras große Vorteile, da es die Arbeit vereinfacht. Nur in ein paar Funktionen können wir ein Deep Learning Modell in Keras zur Bilderkennung bauen.

TensorFlow Bilderkennung anhand von dem bekannten MNIST Datenset.

Die Beispiel MNIST-Daten können wir einfach über TensorFlow importieren. Diese Daten nutzen wir im Folgenden, um die Handschriftlichen Zahlen durch ein künstliches Neuronales Netz zu erkennen. Mit folgendem Code geht das ganz einfach:

# import von TF
import tensorflow as tf
# Handgeschriebene Ziffern laden
mnist = tf.keras.datasets.mnist

# Aufteilung in Training- und Testset
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# TF Bilderkennungsmodell
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])

# Crossentropy für die 10 Zahlen Klassen
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# Modellfitting und Evaluation
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

Nach der 5 Epoche sollte dieses sehr einfache künstliche Neuronale Netz eine Genauigkeit von ca. 98 % haben.

Laurenz Wuttke: Laurenz Wuttke ist Experte für künstliche Intelligenz und maschinelles Lernen zur Optimierung von Marketing und Vertrieb. Als Gründer von der datasolut GmbH kümmert es sich um Data Science Projekte und die Geschäftsentwicklung. An der Hochschule Düsseldorf unterrichtet Wuttke "Big Data im Marketing" in einem Masterstudiengang.

This website uses cookies.