Genie und Wahnsinn liegen dicht beinander. Der niederländische Künstler Vincent van Gogh ist ein Beispiel dafür. Sein Gemälde „Sternennacht“ im Stil des Impressionismus entstand, als van Gogh sich in der Nervenheilanstalt befand. Das Bild gibt die Gegensätze der Stille eines Dorfes und die Unruhe des Himmels mit Mond und Sterne wieder. Was hat das Werk van Goghs mit Programmieren und Algorithmen zu tun? Heute können Sie per Knopfdruck ein Foto mit Hilfe von Deep Learning in einen beliebigen
Kunststil umwandeln. Wenn das Vincent van Gogh noch erlebt hätte, wäre er dem Wahnsinn endgültig verfallen.
Was ist Deep Learning?
Der Begriff des Deep Learning (tiefgehendes Lernen) bezeichnet neuronale Netze, die aus einer großen Anzahl von Schichten bestehen. Diese Netze werden vor allem für Algorithmen in der Bildverarbeitung und Mustererkennung angewandt. Die Schichten extrahieren spezielle Merkmale aus dem Eingabebild heraus, um Objekte zu klassifizieren. Die einzelnen Schichten des neuronalen Netzes repräsentieren Informationen des Bildes in unterschiedlichen Abstraktionsebenen. Je tiefer diese Netze sind, desto leistungsfähiger werden sie in der Bildverarbeitung.
Beim
ImageNet Large Scale Visual Recognition Challenge (ILSVRC) besteht die Trainingsmenge aus 1,2 Millionen Bildern mit 1000 Kategorien. Die Sieger dieses jährlich stattfindenden Wettbewerbs im Bereich der Bilderkennung sind Netze mit über 100 Schichten und hunderte Millionen Parameter mit einem Fehlerquote von weniger als drei Prozent.
Mit Deep Learning versuchen die Entwickler das Prinzip des Lernens mit einem hierarchisch aufgebauten Schichtmuster nachzubilden. Ähnlich wie im menschlichen Gehirn strukturiert dieser Schichtaufbau den Lernvorgang. Der Algorithmus baut dazu zusammenhangsloses Wissen aus Rohdaten zu komplexen Mustern zusammen. Die Eingabeschicht nimmt die Rohdaten auf und leitet diese an die nächsthöhere Schicht weiter. Die weiteren Schichten verarbeiten diese Informationen und setzen sie zu komplexeren Mustern zusammen. Gut trainierte Netze lesen die wesentlichen Merkmale aus den Trainingsdaten heraus. Das Ergebnis dieses Prozesses gibt das neuronale Netz in der Ausgabeschicht aus.
Deep Learning in der Bildverarbeitung
Die Möglichkeiten des Deep Learning zur Datenanalyse und Bildverarbeitung sind fantastisch. Immer leistungsfähigere Rechner auf Basis von Grafikprozessoren, enormen Speicherkapazitäten und riesigen Datenmengen sind die Schlüssel zum Deep Learning:
- Deep Dream Generator:
Ein beliebiges Eingabebild analysiert ein angelerntes Netz auf bekannte Objekte und erzeugt daraus ein surreales buntes Bild mit verrückten Kreaturen aus einer Traumwelt. Das Verfahren entstand durch Zufall beim Entwickeln eines Algorithmus zum Reduzieren von Verlusten der Bildschärfe beim Vergrößern von Bildern.
- Transfer von Bildstilen:
Aus einem Stilbild und einem Eingabebild erzeugt das neuronale Netz ein Bild der Eingabeszene in diesem Stil. Dieses tiefe neuronale Netz ist in der Lage einen fotorealistischen Stil aus einer Tageszeit, Jahreszeit oder einem Wetterszenario auf ein Foto zu übertragen.
- Erstellen von Bildbeschreibungen:
Neuronale Netze können einzelne Bildregionen eines Fotos erkennen und in natürlicher Sprache beschreiben. Der Algorithmus basiert auf einer Kombination von einem neuronalen Faltungsnetz über Bildbereiche mit einem rekurrenten Netz über Sätze.
- Repräsentation von Texturen:
Neuronale Netze sind in der Lage aus einer Textur (Bild auf der Oberfläche eines Körpers) den zugehörigen Generierungsprozess zu finden. Auf diesem Weg sind neue Muster dieser Textur erzeugbar. Mit diesem Modell erkennen diese Netze Defekte auf bedruckten Oberflächen in der optischen Qualitätssicherung.
- Umwandeln von Text in Bilder:
Aus einer textuellen Beschreibung erzeugt das Netz fotorealistische Bilder, die bis dahin nicht existierten. Damit entstehen beispielsweise Fotos von Pflanzen und Tieren, die in der Realität nicht vorkommen.
- Erzeugen von hochauflösenden Bildern:
Neuronale Netz können aus einem unscharfen Foto ein hochauflösendes Bild erzeugen, das dem Originalbild ähnlich ist. Dieses Wissen zur Bildrekonstruktion entsteht aus einem angelernten Netz mit unzähligen Bildern von vergleichbaren Inhalten.
Neben der Bildverarbeitung leisten neuronale Netze in vielen Disziplinen einen großen Beitrag: Neuronale Netze steuern selbstfahrende Autos, filtern Gravitationswellen aus Signalen, berechnen das Verhalten von Strömungen oder komponieren selbstständig reale Klaviermusik. Mit dem Konzept der neuronalen Netze aus den 1980er Jahren können Algorithmen eine Form von Intelligenz und Kreativität an den Tag legen, die bisher nur Menschen vorbehalten war.
Erfahren Sie mehr zu Deep Learning mit neuronalen Netzen in meinem Buch
„Intelligente Algorithmen und digitale Technologien“ aus der Lehrbuchreihe
„Programmieren für Ingenieure und Naturwissenschaftler“.