Keras-Modell
Was ist ein Keras-Modell?
Keras ist eine High-Level-Bibliothek für Deep Learning, die auf Theano und Tensorflow aufsetzt. Sie ist in Python geschrieben und stellt eine saubere und bequeme Möglichkeit bereit, viele verschiedene Deep-Learning-Modelle zu erstellen. Keras hat sich zu einer der meistgenutzten High-Level-APIs für neuronale Netze gemausert, mit denen neuronale Netze entwickelt und getestet werden können. Das Erstellen von Schichten für neuronale Netze sowie das Einrichten komplexer Architekturen sind dank der Keras-API jetzt ein Kinderspiel. Ein Keras-Modell besteht aus einer Sequenz oder einem eigenständigen Graphen. Es gibt verschiedene vollständig konfigurierbare Module, die miteinander kombiniert werden können, um neue Modelle zu erstellen. Einige dieser konfigurierbaren Module, die Sie zusammenfügen können, sind neuronale Schichten, Kostenfunktionen, Optimierer, Initialisierungsschemata, Dropout-, Verlust- und Aktivierungsfunktionen sowie Regularisierungsschemata. Einer der Hauptvorteile der Modularität besteht darin, dass Sie neue Funktionen einfach als separate Module hinzufügen können. Daher ist Keras ausgesprochen flexibel und eignet sich gut für innovative Forschung. Es gibt zwei Möglichkeiten, wie Sie ein Keras-Modell entwickeln können: sequentiell und funktional.
Sequentieller API-Modus
Das sequentielle API-Modell ist das einfachste Modell. Es besteht aus einem linearen Schichtenstapel, mit dem Sie Modelle für die meisten Probleme Schicht für Schicht konfigurieren können. Das sequenzielle Modell ist sehr einfach zu handhaben, jedoch in seiner Topologie begrenzt. Diese Beschränkung ergibt sich aus der Tatsache, dass Sie keine Modelle mit gemeinsamen Schichten oder mit mehreren Ein- oder Ausgängen konfigurieren können.
Funktionale API
Alternativ dazu eignet sich die funktionale API ideal für das Erstellen komplexer Modelle, die mehr Flexibilität erfordern. Hiermit können Sie Modelle definieren, bei denen die Schichten auch mit anderen als nur den direkt benachbarten Schichten verbunden werden können. Modelle werden definiert, indem Sie Schichtinstanzen erstellen und diese paarweise direkt miteinander verbinden. Im Grunde genommen können Sie bei diesem Modell jede Schicht mit jeder anderen Schicht verbinden. Sie können auf diese Weise komplexe Netzwerkarchitekturen wie siamesische Netzwerke, Residualnetzwerke, Modelle mit mehreren Ein- und mehreren Ausgängen, DAGs (Directed Acyclic Graphs) und Modelle mit gemeinsamen Schichten erstellen.