Deep Learning

Was ist Deep Learning?

Anwendung von Deep Learning auf die Entwicklung intelligenter technischer Systeme

Unter Deep Learning versteht man einen Teilbereich des Machine Learning, bei dem neuronale Netze eingesetzt werden, um Computern das beizubringen, was für den Menschen selbstverständlich ist: aus Beispielen zu lernen. Beim Deep Learning lernt ein Modell, Klassifizierungs- oder Regressionsaufgaben direkt aus Daten wie Bildern, Text oder Ton durchzuführen. Dabei können Deep-Learning-Modelle den neuesten Stand der Technik erreichen und oft die Leistung von Menschen übertreffen.

Die Funktionsweise von Deep Learning

Deep-Learning-Modelle basieren auf Architekturen neuronaler Netze. Nach dem Vorbild des menschlichen Gehirns besteht ein neuronales Netz aus miteinander verbundenen Knoten oder Neuronen in einer geschichteten Struktur, die die Eingaben mit den gewünschten Ausgaben verbinden. Die Neuronen zwischen den Eingabe- und Ausgabeschichten eines neuronalen Netzes werden als verborgene Schichten bezeichnet. Der Begriff „deep“ bezieht sich in der Regel auf die Anzahl der verborgenen Schichten in einem neuronalen Netz. Deep-Learning-Modelle können Hunderte oder sogar Tausende von verborgenen Schichten haben.

Die Deep-Learning-Netze sind darüber hinaus in mehreren Schichten organisiert, die aus einer Reihe miteinander verbundener Neuronen bestehen.

Darstellung einer typischen Architektur eines neuronalen Netzes.

Deep-Learning-Modelle werden mit großen Mengen an gekennzeichneten Daten trainiert und können häufig Merkmale direkt anhand dieser Daten lernen, ohne dass eine manuelle Merkmalsextraktion erforderlich ist. Zwar wurde das erste künstliche neuronale Netz bereits 1958 entwickelt, jedoch erfordert Deep Learning eine enorme Rechenleistung, die erst in den 2000er-Jahren verfügbar war. Mittlerweile stehen den Wissenschaftlern die nötigen Computerressourcen zur Verfügung, um Netze mit Hunderten von Verbindungen und Neuronen aufzubauen und zu trainieren.

Leistungsstarke Grafikkarten bieten heute eine parallele Architektur, die für Deep Learning besonders effizient ist. In Kombination mit Clustern oder Cloud Computing können Entwicklerteams so die Trainingszeit für ein Deep-Learning-Netz von mehreren Wochen auf wenige Stunden oder sogar Minuten reduzieren.

Arten von Deep-Learning-Modellen

Die drei Arten von Deep-Learning -Modellen sind Convolutional Neural Networks (CNNs), Recurrent Neural Networks (RNNs) und Transformer Models (TMs).

CNNs: Ein CNN faltet erlernte Merkmale mit Eingabedaten und verwendet 2D-Faltungsschichten, wodurch sich diese Architektur ideal für die Verarbeitung von 2D-Daten, wie z. B. Bildern, eignet. Das CNN arbeitet mit der direkten Extraktion von Merkmalen aus Bildern. Die relevanten Merkmale werden erlernt, während das Netz mit einer Sammlung von Bildern trainiert. Diese automatisierte Merkmalextraktion ermöglicht Deep-Learning-Modelle mit hoher Genauigkeit für Bildklassifizierungsaufgaben. Darüber hinaus können CNNs auch für die Klassifizierung anderer Datentypen wie Zeitreihen und Text verwendet werden.

Ein Convolutional Neural Network für Deep Learning erlernt automatisch Merkmale aus den Eingabebildern und berechnet die Wahrscheinlichkeit für jede Klasse.

Visualisierung eines Beispiels für ein Convolutional Neural Network.

RNNs: Ein rekurrentes neuronales Netz (RNN) ist eine Netzarchitektur für das Deep Learning, die Vorhersagen anhand von Zeitreihen oder sequenziellen Daten trifft. RNNs eignen sich besonders für die Arbeit mit unterschiedlich langen, sequentiellen Daten und zur Problemlösung in den Bereichen Klassifizierung natürlicher Signale, Sprachverarbeitung und Videoanalyse. Das Long Short-Term Memory-Netz (LSTM) ist ein spezieller RNN-Typ, der besser in der Lage ist, längerfristige Abhängigkeiten zu lernen als einfache RNNs.

Transformers: Mit Transformers lassen sich Zusammenhänge in sequentiellen Daten verfolgen. Sie stützen sich auf einen Selbstbeobachtungsmechanismus, um globale Abhängigkeiten zwischen Eingabe und Ausgabe zu erfassen. Häufig werden sie für die natürliche Sprachverarbeitung verwendet und bilden die Grundlage für große Sprachmodelle (LLMs) wie BERT und ChatGPT™.

Erstellen von Deep-Learning-Modellen

Sie können ein Deep-Learning-Modell von Grund auf neu erstellen oder mit einem bereits vortrainierten Deep-Learning-Modell beginnen, das Sie auf Ihre jeweilige Situation anwenden oder an diese anpassen können.

Von Grund auf neu trainieren: Um ein Deep-Learning-Modell von Grund auf zu trainieren, wird ein großer, gekennzeichneter Datensatz gesammelt und eine Netzarchitektur entwickelt, die die Merkmale und das Modell erlernen soll. Diese Vorgehensweise eignet sich insbesondere für neue oder spezielle Anwendungen oder auch ganz allgemein für Anwendungen, für die es keine bereits bestehenden Modelle gibt. Der wesentliche Nachteil dieses Ansatzes besteht darin, dass er einen großen Datensatz erfordert (mit annotierter Ground Truth) und die Trainingszeit je nach Aufgabe und Rechenressourcen mehrere Stunden bis Wochen dauern kann.

Transfer Learning: In Deep-Learning-Anwendungen wie der Bildklassifizierung, Computer Vision, der Audioverarbeitung und der Verarbeitung natürlicher Sprache wird häufig der Ansatz des Transfer Learning verwendet. Dazu gehört die Optimierung eines vortrainierten Deep-Learning-Modells. Man beginnt mit einem bestehenden Modell, z. B. SqueezeNet oder GoogLeNet zur Bildklassifizierung, und speist neue Daten ein, die bisher nicht gesehene Klassen enthalten. Nach einigen Anpassungen des Netzes kann nun eine neue Aufgabe ausgeführt werden, z. B. nur Hunde oder Katzen statt 1000 verschiedener Objekte zu kategorisieren. Das hat auch den Vorteil, dass viel weniger Daten benötigt werden, sodass die Trainingszeit deutlich sinkt.

Ein vortrainiertes Deep-Learning-Modell kann außerdem als Merkmalsextraktor verwendet werden. Mithilfe der Ebenenaktivierungen lassen sich andere Machine-Learning-Modelle trainieren (z. B. eine Support Vector Machine (SVM)). Oder man verwendet das vortrainierte Modell als Baustein für ein anderes Deep-Learning-Modell. So kann beispielsweise ein CNN zur Bildklassifizierung als Merkmalsextraktor für einen Objektdetektor verwendet werden.

Deep Learning und Machine Learning im Vergleich:

Deep Learning ist eine spezielle Form des Machine Learning, und beide gehören zum Bereich der künstlichen Intelligenz (KI). Das Machine Learning bietet eine Vielzahl von Techniken und Modellen, die Sie entsprechend Ihrer Anwendung, dem Umfang der zu verarbeitenden Daten und der zu lösenden Problematik auswählen können.

Definitionen von künstlicher Intelligenz, Machine Learning und Deep Learning in einer Abbildung mit allen drei Konzepten.

Die Entscheidung für einen Deep-Learning- oder einen Machine-Learning-Algorithmus für Ihre KI-Anwendung hängt von den Zielsetzungen und Erfordernissen Ihres Systems ab.

Warum sollte man Deep Learning dem Machine Learning vorziehen? Kurz gesagt: der Genauigkeit wegen. Deep Learning erreicht im Allgemeinen eine höhere Genauigkeit und bietet eine stärkere Automatisierung des erweiterten Arbeitsablaufs als das Machine Learning. Der Hauptnachteil von Deep-Learning-Modellen besteht darin, dass sie komplexer sind und größere Trainingsdatensätze erfordern, was zu einer längeren Trainingszeit führt. Es gibt jedoch Methoden, um diese Defizite zu überwinden oder zumindest ihre Auswirkungen zu verringern.

Automatisierung der Merkmalserkundung und -extraktion (Feature Engineering)

Ein Machine-Learning-Workflow beginnt mit der manuellen Extraktion relevanter Merkmale aus Daten. Anschließend werden die Merkmale zur Erstellung eines Modells verwendet, das Vorhersagen für neue Daten treffen kann. Mit einem Deep-Learning-Workflow werden in Anwendungen wie Bilderkennung und Computer Vision automatisch relevante Merkmale aus den Bilddaten extrahiert. Im Umgang mit Signalen oder Textdaten kann Deep Learning die erforderliche Datenvorverarbeitung reduzieren.

Vergleich eines Machine-Learning-Ansatzes zur Kategorisierung von Fahrzeugen (links) mit Deep Learning (rechts).

Trainingsdaten und -zeit

Die Genauigkeit von Deep Learning skaliert mit den Daten. Das bedeutet, dass sich die Performance von Deep Learning mit zunehmender Größe der Trainingsdaten weiter verbessert. In der Regel erfordert Deep Learning eine sehr große Datenmenge (z. B. Tausende von Bildern für die Bildklassifizierung), um das Modell zu trainieren. Der Zugang zu leistungsstarken Grafikkarten kann die Trainingszeit erheblich verkürzen. Alternativ dazu ist das Modifizieren und erneute Trainieren eines vortrainierten Netzes mit Transfer Learning in der Regel viel schneller und erfordert weniger markierte Daten als das komplette Neutraining eines Netzes.

Wenn nicht genügend Trainingsdaten zur Verfügung stehen, können Sie Ihre vorhandenen Daten mit synthetischen Daten ergänzen. Sie können synthetische Daten mithilfe von Generative Adversarial Networks (GANs) oder durch das Erstellen und Simulieren eines Modells eines physikalischen Systems erzeugen.

Größe und Komplexität der Modelle

Im Vergleich zu Modellen des Machine Learning sind Deep-Learning-Modelle weitaus komplexer und größer, da sie aus Hunderten von miteinander verbundenen Schichten bestehen. Mit der Weiterentwicklung der Deep-Learning-Technologie nimmt auch die Komplexität der Deep-Learning-Netzarchitekturen weiter zu. Ihre Komplexität und Größe tragen zu der Genauigkeit bei, die Deep Learning erreichen kann.

Aufgrund ihrer Komplexität werden Deep-Learning-Modelle oft als „Blackboxes“ betrachtet, denen es an Interpretierbarkeit fehlt. Ein aufkommender Bereich, bekannt als Explainable AI, bietet Techniken, die darauf abzielen, das Verhalten von Deep-Learning-Modellen mit menschlichen Begriffen zu erklären. Sie können zum Beispiel Grad-CAM und LIME verwenden, um Vorhersagen von Deep-Learning-Modellen für Bildklassifizierungsaufgaben zu erklären.

Inzwischen sind Deep-Learning-Modelle nicht mehr nur auf dem Desktop zu finden. Die Bereitstellung immer größerer und komplexerer Deep-Learning-Modelle auf ressourcenbeschränkten Geräten ist eine wachsende Herausforderung, der sich viele Deep-Learning-Anwender stellen müssen. Es gibt zahlreiche Techniken zur Komprimierung von Deep-Learning-Modellen, mit denen die Größe der Deep-Learning-Modelle auf der Festplatte, der Laufzeitspeicher und die Inferenzzeiten reduziert werden können, während gleichzeitig eine hohe Genauigkeit beibehalten wird.

Komprimierung einer vollständig verknüpften Schicht mithilfe der Projektion. Unter der Abbildung ist der Ebenenvorgang angegeben.

Projizieren einer vollständig verbundenen Schicht. Die Projektion ist eine Methode zur Netzkomprimierung.

Die Bedeutung von Deep Learning

Deep Learning ist eine Schlüsseltechnologie für autonome Fahrzeuge, mit der Stoppschilder erkannt oder Fußgänger von Laternenpfählen unterschieden werden können. Sie ist der Schlüssel zur Sprachsteuerung von Endgeräten wie Telefonen, Tablets, Fernsehern und Freisprechanlagen. In letzter Zeit wird dem Deep Learning viel Aufmerksamkeit geschenkt – und das aus gutem Grund. Mit Deep Learning können Computer und Systeme komplexe Aufgaben mit wachsender Genauigkeit und Automatisierung durchführen.

Deep-Learning-Anwendungen

Deep Learning wird in den Bereichen Computer Vision, Bildverarbeitung, automatisiertes Fahren, Signalverarbeitung und vielen anderen Bereichen eingesetzt. Jeder Anwendungsbereich des Deep Learning kann mehrere Teilanwendungsbereiche umfassen. So sind beispielsweise die Bildklassifizierung, die Objekterkennung und die semantische Segmentierung Teilanwendungen der Computer Vision. Mit der Entwicklung neuer Methoden und Technologien des Deep Learning werden auch die Anwendungen des Deep Learning weiter zunehmen, und es werden neue Teilanwendungen entstehen, bei denen Deep Learning die Genauigkeit verbessern kann.

Praxisbeispiele für Deep Learning

Die visuelle Inspektion ist eine bildgestützte Prüfung von gefertigten Teilen, bei der eine Kamera das zu prüfende Teil auf Fehler und Qualitätsmängel abtastet. Mithilfe von Techniken des Deep Learning und Computer Vision kann die visuelle Inspektion zur Erkennung von Fertigungsfehlern in vielen Branchen wie der Biotechnologie, der Automobilindustrie und der Halbleiterindustrie automatisiert werden.

Die Signale der Elektroenzephalographie (EEG) sind die am besten zugänglichen und – wenig überraschend – auch die am meisten untersuchten Gehirnsignale. Mit Deep Learning kann man Epilepsie automatisch diagnostizieren und epileptische Anfälle in EEG-Signalen vorhersagen.

Virtuelle Sensoren können in jedem System eingesetzt werden, in dem eine Echtzeitüberwachung und -steuerung erforderlich ist und in dem der Einsatz physischer Sensoren unpraktisch oder kostspielig sein könnte. Sie können das Deep Learning mit Model-Based-Design kombinieren, um virtuelle Sensoren zu entwickeln.

Deep Learning in der Krebsforschung

Erfahren Sie, wie das Moffit Cancer Center mithilfe von Deep Learning die wissenschaftliche Forschungsarbeit vorantreibt und die Therapiepläne personalisiert.

MATLAB® stellte alle notwendigen Tools, um KI erfolgreich bei der Bildgebung und Radiomics anzuwenden. MATLAB wurde für Aufgaben wie Datenvorverarbeitung, Rauschunterdrückung und Bildsegmentierung verwendet.

Deep Learning mit MATLAB

Mit MATLAB und der Deep Learning Toolbox™ können Sie Deep-Learning-Netze entwickeln, analysieren und simulieren. Sie können Deep-Learning-Workflows auf zahlreiche Anwendungen (z. B. Computer Vision, Signalverarbeitung und Verarbeitung natürlicher Sprache) ausweiten, indem Sie zusätzliche Toolboxen verwenden (z. B. die Computer Vision Toolbox™, die Signal Processing Toolbox™ und die Text Analytics Toolbox™).

Der Deep-Learning-Workflow umfasst die Vorverarbeitung und Kennzeichnung von Daten, die Erstellung eines KI-Modells, die Visualisierung der Modellentscheidungen, die Simulation des KI-Systems und die Bereitstellung auf den Zielplattformen.

Visualisierung eines Deep-Learning-Workflows von der Datenaufbereitung bis zur Bereitstellung.

Daten für Deep Learning

Das Deep Learning erfordert große Mengen an qualitativ hochwertigen Daten. Sie können datastores verwenden, um Datensammlungen zu verwalten, die zu groß sind, um sie auf einmal im Speicher unterzubringen. Ebenso können Sie Low-Code-Apps und integrierte Funktionen verwenden, um die Datenqualität zu verbessern und die Ground-Truth automatisch zu kennzeichnen.

Entwicklung von Deep-Learning-Modellen

 

Neue Netze erstellen

  • Mit nur ein paar Zeilen Code können Sie Deep-Learning-Netzwerke wie CNNs, LSTMs, GANs und Transformers erstellen.
  • Beschleunigen Sie das Training mithilfe mehrerer Grafikkarten, der Cloud oder von Clustern. Beim Training von Deep-Learning-Modellen nutzt MATLAB-Grafikkarten (sofern verfügbar), ohne dass Sie die Grafikkarten explizit programmieren müssen.
Erstellen Sie mit nur wenigen Zeilen MATLAB Programmcode ein LSTM Deep Learning-Netz.

Ein LSTM-Netz programmatisch erstellen.

Vortrainierte Netze

  • Wenden Sie ein bereits vortrainiertes Modell direkt auf Ihr Vorhaben an, passen Sie es mithilfe von Transfer Learning an oder verwenden Sie es als Merkmalsextraktor.
  • Entdecken Sie den MATLAB Deep Learning Model Hub, um auf die neuesten Modelle nach Kategorie zuzugreifen und vortrainierte Modelle über die Kommandozeile zu laden.
  • Konvertieren Sie TensorFlow™-, PyTorch®- und ONNX™-Modelle mit einer Importfunktion in MATLAB-Netzwerke. Exportieren Sie trainierte und untrainierte Netzwerke aus der Deep Learning Toolbox nach TensorFlow und ONNX.
  • Mit den integrierten Funktionen zum Ersetzen von Schichten und zum Anpassen der Lernraten für das Neutraining können Sie mühelos Transfer Learning durchführen.

Vortrainierte Modelle an die Deep-Learning-Aufgabe anpassen.

Low-Code Apps

  • Mit der Deep Network Designer-App können Sie Netze interaktiv entwerfen, analysieren und trainieren. Sie können auch vortrainierte Netze aus der Deep Learning Toolbox, TensorFlow und PyTorch importieren.
  • Die Experiment Manager-App hilft Ihnen, mehrere Deep-Learning-Experimente zu verwalten, Trainingsparameter zu verfolgen, Ergebnisse zu analysieren und Code aus verschiedenen Experimenten zu vergleichen.
Screenshot der Deep Network Designer-App mit den Schichten eines CNN-Netzes für Deep Learning.

Entwurf, Analyse und grafische Modifizierung von Deep-Learning-Netzwerken mit dem Deep Network Designer.

Deep Learning für Ingenieure

Erklärbares und fehlerresistentes Deep Learning

Mit MATLAB können Sie Deep-Learning-Modelle und deren Vorhersagen visualisieren und überprüfen.

  • Überwachen Sie den Trainingsfortschritt von Deep-Learning-Modellen und stellen Sie Leistungsmetriken dar.
  • Visualisieren Sie die Ergebnisse von Deep-Learning-Modellen durch die Anwendung von Erklärungsmethoden wie Grad-CAM, Okklusionsempfindlichkeit, LIME und Deep Dream. Dadurch können Sie besser verstehen, wie Deep-Learning-Modelle Vorhersagen treffen.
  • Trainieren Sie fehlerresistente Deep-Learning-Modelle und überprüfen Sie die Robustheit der Modelle. Sie können die Robustheitsmerkmale eines Netzes überprüfen, Grenzen für die Netzausgabe berechnen, Gegenbeispiele finden, Daten außerhalb der Verteilung erkennen und die Einhaltung von Industriestandards verifizieren.

Simulation auf Systemebene

Verwenden Sie Blöcke der Deep Learning Toolbox, um trainierte Netze in Simulink®-Systeme zu integrieren. So können Sie die Integration von Deep-Learning-Modellen mit anderen Teilen des Systems testen.

Zielbereitstellung

Sie können Deep-Learning-Modelle auf Edge-Geräten, Embedded Systems oder in der Cloud bereitstellen. Vor der Bereitstellung können Sie Ihre Modelle durch Quantisierung, Projektion oder Pruning komprimieren.