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!

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, CNTK
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.

Sie sehen gerade einen Platzhalterinhalt von Youtube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen
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
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.

Künstliche Intelligenz optimiert Marketing und Vertrieb

In 6 Fallstudien erfahren Sie:

  • Wie Sie 29% mehr Umsatz pro Kampagne machen.
  • Wie Sie durch KI und Automatisierung mehr Zeit gewinnen.
  • Wie Sie 300% mehr Conversions zur richtigen Zeit machen.
Jetzt herunterladen

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.

Bilderkennung mit TensorFlow anhand von dem MNIST Datenset
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.

Profilbild von Vinzent Wuttke Leiter Business Development Datasolut GmbH
Vinzent Wuttke
Leiter Business
 Development

Ihr Ansprechpartner

Ob und wie künstliche Intelligenz Ihnen weiterhelfen kann, können Sie in einem ersten, unverbindlichen Gespräch mit uns herausfinden.

In diesem Gespräch erfahren Sie:

  • Wie Ihr Use-Case technisch am besten umgesetzt werden kann
  • Wie wir maximal sicher mit Ihren Kundendaten umgehen
  • Wie lange wir für die Umsetzung benötigen und wie ein konkreter Projektplan aussehen könnte
Termin buchen

Weiterlesen

künstliche neuronale Netze sind das zentrale Element im Deep Learning
Deep Learning Grundlagen Vor 5 Monaten

Künstliche Neuronale Netzwerke: Definition, Einführung, Arten und Funktion

Künstliche Neuronale Netze (KNN) sind dem menschlichen Gehirn nachempfunden und werden für maschinelles Lernen und Künstliche Intelligenz eingesetzt. Computerbasiert lassen sich damit diverse Problemstellungen lösen, die für uns Menschen fast […]
Deep Learning GrundlagenKünstliche Intelligenz (KI) Vor 10 Monaten

Bilderkennung: Definition, Funktionsweise und Anwendungsbereiche

Schadensfälle bewerten, Menschen erkennen oder die Produktsuche. Schon heutzutage stellt die Bilderkennung einen Bereich dar, mithilfe dessen die Identifikation verschiedener Gegenstände oder Muster eines Bildes geschieht. Dabei kommt die Bildererkennung in vielen Anwendungen zum Einsatz und hat […]
Deep Learning GrundlagenSprachmodelle Vor 12 Monaten

Was ist ein Large Language Model?

Large Language Models (zu dt. Große Sprachmodelle) arbeiten auf Basis von Deep Learning Modellen mit menschlicher Sprache. Das Ziel des Large Language Models (LLM) ist es, einen Text auf menschenähnliche […]
Was ist Reinforcement Learning?
Deep Learning Grundlagen Vor 1 Jahr

Reinforcement Learning: Wenn KI auf Belohnungen reagiert

Dass dem maschinellen Lernen die Zukunft gehört, dürfte mittlerweile unbestritten sein. Mit der wachsenden Komplexität der anfallenden Aufgaben und den sich ständig weiterentwickelnden Lösungsansätzen sind im Laufe der Zeit eine […]
Zusammenhang von Natural Language Processing, Natural Language Understanding und Natural Language Generation
Deep Learning Grundlagen Vor 1 Jahr

NLP vs. NLU vs. NLG: Unterschiede, Funktionen und Beispiele

Obwohl die Themengebiete Natural Language Processing (NLP), Natural Language Understanding (NLU) und Natural Language Generation (NLG) miteinander verwandt sind, haben sie jedoch unterschiedliche Funktionen. Im folgenden Beitrag werden Ihnen die Bedeutung, […]
Deep Learning Grundlagen Vor 1 Jahr

Einführung in maschinelles Sehen

Das computergestützte Sehen (Computer Vision) schreitet seit einigen Jahren rasant voran. Neuronale Netze und Deep Learning eröffnen zahlreiche Anwendungsmöglichkeiten, die unseren Alltag erleichtern und bereichern. In diesem Artikel vermitteln wir […]
Deep Learning Grundlagen Vor 1 Jahr

Deep Learning: Definition, Beispiele & Frameworks

Deep Learning (tiefes Lernen) ist ein Teilgebiet von maschinellem Lernen, welches sich auf künstliche neuronale Netze und große Datenmengen fokussiert. Deep Learning wird dazu genutzt Durch große Datenmengen (Big Data) […]
Newsletter und Updates

Sie sehen gerade einen Platzhalterinhalt von HubSpot. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen
Termin buchen