Keras: Open-Source-Bibliothek für den Aufbau neuronaler Netze
Künstliche Intelligenz spielt in der heutigen digitalen Welt eine elementare Rolle – sowohl bei der Entwicklung und Nutzung von Computerspielen (oder sonstigen Anwendungsprogrammen) als auch bei Webservices, Geräten oder Maschinen. Eines der wichtigsten Forschungs- und Teilgebiete, das sich intensiv mit den Grundzügen der „virtuellen Denkkraft“ auseinandersetzt, sind die sogenannten Neural Networks (dt. „neuronale Netze“), deren Implementierung durch den Einsatz von Keras erheblich vereinfacht wird. Erfahren Sie, was hinter der Open-Source-Bibliothek steckt und inwiefern sie den Aufbau neuronaler Netze vereinfacht.
Was ist Keras?
Keras ist eine in Python geschriebene Open-Source-Bibliothek (MIT-Lizenz), die in erster Linie auf die Arbeit des Google-Entwicklers François Chollet im Rahmen des ONEIROS-Projekts (Open-ended Neuro-Electronic Intelligent Robot Operating System) zurückgeht. Eine erste Version der plattformunabhängigen Software wurde am 28. März 2015 veröffentlicht. Ziel der Bibliothek ist es, den schnellen Aufbau neuronaler Netze zu ermöglichen, wobei Keras in diesem Fall nicht als eigenes Framework, sondern als einsteigerfreundliche Schnittstelle (API) für den Zugriff und die Programmierung verschiedener Machine-Learning-Frameworks fungiert. Unter anderem zählen Theano, Microsoft Cognitive Toolkit (vormals CNTK) und TensorFlow zu den von Keras unterstützten Frameworks.
Seit dem Release von TensorFlow 1.4 ist Keras fester Bestandteil der TensorFlow-Kern-API. Dennoch wird die Bibliothek weiterhin als eigenständige Software weiterentwickelt, da sie von Beginn an als Schnittstelle für verschiedene Frameworks geplant war und dieser Ansatz auch weiterhin verfolgt wird.
Die aktuelle Keras-Version ist kompatibel mit Python ab Version 2.7 – das vollständige Projekt ist jederzeit über das offizielle Keras-GitHub-Verzeichnis verfügbar.
Wie funktioniert Keras?
Keras ist eine Bibliothek, die auf Modellebene agiert: Sie stellt Bausteine zur Verfügung, auf deren Basis sich komplexe Deep-Learning-Modelle entwickeln lassen. Anders als eigenständige Frameworks kümmert sich die Open-Source-Software dabei nicht um einfache Low-Level-Operationen, sondern nutzt zu diesem Zweck die Bibliotheken verknüpfter Machine-Learning-Frameworks, die quasi als Backend-Engine für Keras fungieren. Nach dem Baukastenprinzip werden die gewünschten Schichten des aufzubauenden neuronalen Netzes aneinandergehängt, ohne dass hierfür das tatsächliche Backend des gewählten Frameworks verstanden oder direkt vom Keras-Nutzer angesteuert werden muss.
Wie erwähnt baut Keras hierbei insbesondere auf die drei Tools TensorFlow, Theano und Microsoft Cognitive Toolkit, für die von Werk aus einsatzfertige Schnittstellen existieren, die einen schnellen, intuitiven Zugriff auf das jeweilige Backend ermöglichen. Sie müssen sich dabei keineswegs für ein Framework entscheiden, denn Sie können bequem zwischen den verschiedenen Backends hin und her wechseln. Auch die Wahl eines alternativen Backends abseits der drei genannten Lösungen ist möglich. Dieses muss lediglich in der Konfigurationsdatei (keras.json) angegeben werden und über die drei Funktionen „placeholder“, „variable“ und „function“ verfügen.
Ausführlichere Informationen über das Backend-Management und die allgemeine Verwendung erhalten Sie in unserem großen Keras-Tutorial.
Welche Vorteile bietet Keras?
Keras stellt eine hervorragende Ergänzung zu bestehenden Tools für den Aufbau von Neural Networks dar, da die Open-Source-Bibliothek diesen Prozess erheblich vereinfacht. Hierbei steht insbesondere die Usability im Vordergrund: Keras funktioniert als Schnittstelle, die explizit für Menschen und erst zweitrangig für Maschinen konzipiert ist. Die anfallenden Nutzeraktionen für die wichtigsten Use Cases sind auf ein Minimum reduziert, und sollte es dennoch zu Fehlern kommen, hilft entsprechendes Feedback bei der Behebung. So ist es vergleichsweise einfach, Keras zu lernen und einzusetzen – bei gesteigerter Produktivität. Durch die Anbindung an Deep-Learning-Frameworks ist diese Einfachheit zudem nicht mit funktionalen Einschränkungen verbunden: Alle gewünschten Features binden Sie über die passgenauen Schnittstellen ein (oder schalten diese bei Bedarf wieder ab).
Weitere Vorzüge von Keras im Überblick:
- Breite Plattform-Unterstützung für erarbeitete Modelle: Modelle, die Sie mit Keras erarbeitet haben, lassen sich besonders einfach auf verschiedenen Plattformen bereitstellen. Standardmäßig werden z. B. iOS (Apple CoreML), Android (Keras TensorFlow Android Runtime), Google Cloud und Raspberry-Pi-Setups unterstützt.
- Unterstützung multipler Backend-Engines: Mit Keras haben Sie nicht nur freie Wahl hinsichtlich des gewünschten Backends, sondern können auch mehrere Backends miteinander kombinieren. Ferner können Sie ein erarbeitetes Modell jederzeit auf ein anderes Backend übertragen.
- Hervorragender Multi-GPU-Support: Mit Keras lässt sich der Rechenaufwand für die erarbeiteten Deep-Learning-Prozesse bequem auf mehrere Grafikchips bzw. -karten verteilen.
- Entwicklungskraft großer Unternehmen: Die Instandhaltung und Weiterentwicklung von Keras wird von den bedeutendsten Firmen der Branche gestützt. Unter anderem sind Google, Amazon AWS, Microsoft, Apple und Nvidia an dem Projekt beteiligt.
Für welche Projekte ist Keras geeignet?
Als universelle Schnittstelle für die verschiedensten Machine-Learning-Plattformen ist Keras heute in diversen Projekten der AI-Branche im Einsatz. Bereits Mitte 2018 konnte die Bibliothek über 250.000 individuelle Nutzer verbuchen – spätestens seit der Aufnahme in die TensorFlow-Software wird diese Zahl noch einmal weit übertroffen. Die freie Wahl des zugrundeliegenden Frameworks, die freie Lizenzierung und die Plattformunabhängigkeit machen Keras sowohl im industriellen Umfeld als auch in der Forschung zur perfekten Allrounder-Lösung für professionelle Neural-Network-Anwendungen. Beispielsweise setzen bekannte Unternehmen wie Netflix, Uber und Yelp, aber auch Organisationen wie die NASA oder CERN in ihren Projekten auf Keras bzw. das TensorFlow-Keras-Paket.