Leseproben
Dr. Shirin Glander codecentric

„Ein vortrainiertes Netz wurde auf einer großen Menge von Daten trainiert und mit den gelernten Parametern gespeichert. Bei Bildklassifikationsmodellen wurden dabei verschiedene Muster von Objekten auf Bildern gelernt, die sogenannten Features. Die Idee ist nun, dass wir die allgemeineren Features, die auf diesem Datensatz gelernt wurden, für unsere Klassifikationsaufgabe wiederverwenden können.“

Bildklassifikationsmodelle sind dafür gedacht, Bilder in Klassen einzuteilen. Dabei wollen wir sie meist in Gruppen einteilen, die widerspiegeln, welches Objekt sich auf einem Bild befindet. Zum Beispiel können wir ein Bildklassifikationsmodell trainieren, das „Hund“ von „Katze“ unterscheiden kann, aber natürlich können auch viel komplexere Einteilungen in deutlich mehr Klassen vorgenommen werden.

Im Prinzip kann jede beliebige Gruppeneinteilung vorgenommen werden: Vielleicht wolltet ihr schon immer mal automatisiert Brillenträger von Nicht-Brillenträgern unterscheiden können oder Strandfotos von Bergfotos; eurer Fantasie sind im Prinzip keine Grenzen gesetzt – vorausgesetzt, ihr habt Bilder (in dem Fall eure Daten) zur Hand, mit denen ihr eure Aufgabe mit einem mathematischen Modell trainieren könnt.

Keras und TensorFlow

Das eigentliche Trainieren des Modells ist sehr einfach. Denn heute existieren viele Open-Source-Bibliotheken, die leicht zu bedienen sind und mit denen auch Einsteiger schnell Erfolge erzielen können. Eine dieser Bibliotheken, anhand derer ich hier ein Beispiel zeige, ist Keras mit TensorFlow Backend. Keras ist ein Open-Source-Deep-Learning-API, mit dem einfach, schnell und flexibel neuronale Netze trainiert werden können. Das API ist modular aufgebaut und funktioniert ähnlich wie ein LEGO-System für Machine Learning: Neuronale Netze setzen sich aus aufeinander aufbauenden Schichten verschiedener Typen zusammen und können so beliebig komplex entworfen werden. Die eigentlichen Berechnungen werden nicht von Keras selbst durchgeführt, sondern von einem darunterliegenden Backend. TensorFlow ist hierfür inzwischen der Standard und Keras ist Teil der TensorFlow Core Library. Die beiden Bibliotheken sind also optimal darauf ausgelegt, miteinander verwendet zu werden, denn das Prototypisieren von neuronalen Netzen ist mit Keras wesentlich einfacher als mit TensorFlow direkt.

Künstliche neuronale Netze

Künstliche neuronale Netze bestehen aus Knoten, die wir als Analogie zu menschlichen Nervenzellen sehen können. Diese Knoten sind in Schichten angeordnet. Ein neuronales Netz beginnt immer mit einer Eingangsschicht, in die die vorhandenen Daten einfließen – der sogenannte Input. Am Ende haben wir eine Ausgangsschicht, die das Ergebnis darstellt – der sogenannte Output. Dazwischen können sich beliebig viele weitere Schichten befinden, die wir verborgene Schichten (Hidden Layers) nennen. Deep Learning beschreibt maschinelles Lernen mit großen neuronalen Netzen. Wenn es gilt, sehr komplexe Probleme mit vielen Abstraktionsebenen zu lösen, ist Deep Learning besonders erfolgreich, wie zum Beispiel in der Bilderkennung.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 3.19 - "Machine Learning mit Python"

Alle Infos zum Heft
579886551Machine Learning mit Python
X
- Gib Deinen Standort ein -
- or -