Deep Learning

 

Deep Learning

Drei Dinge, die Sie wissen sollten

Deep Learning ist eine Machine-Learning-Technik, mit der Computer eine Fähigkeit erwerben, die Menschen von Natur aus haben: aus Beispielen zu lernen. Deep Learning ist eine wichtige Technologie in fahrerlosen Autos, die es diesen ermöglicht, ein Stoppschild zu erkennen oder einen Fußgänger von einer Straßenlaterne zu unterscheiden. Sie ist der Schlüssel zur Sprachsteuerung von Verbrauchergeräten wie Smartphones, Tablets, Fernsehern und Freisprecheinrichtungen. Deep Learning erhält in letzter Zeit sehr viel Aufmerksamkeit und das aus gutem Grund. Es erreicht Ergebnisse, die zuvor unmöglich waren.

Beim Deep Learning erlernt ein Computermodell die Durchführung von Klassifikationsaufgaben direkt aus Bildern, Text oder akustischen Daten. Deep-Learning-Modelle nach dem neuesten Stand der Technik können manchmal genauere Ergebnisse erzielen als Menschen. Modelle werden anhand umfangreicher Sätze klassifizierter Daten und anhand neuronaler Netzarchitekturen mit vielen Ebenen trainiert.

Wichtigkeit von Deep Learning

Wodurch erreicht Deep Learning derart beeindruckende Ergebnisse?

Mit einem Wort: Genauigkeit. Deep Learning erreicht höhere Niveaus der genauen Erkennung als je zuvor. So kann Unterhaltungselektronik die Erwartungen der Verbraucher erfüllen und sicherheitskritische Anwendungen wie fahrerlose Autos werden überhaupt erst möglich. Dank aktueller Fortschritte ist das Deep Learning inzwischen so weit, dass es einige Aufgaben besser bewältigt als Menschen, etwa die Klassifikation von Objekten auf Bildern.

Während die Theorie des Deep Learning schon in den 1980er-Jahren begründet wurde, gibt es zwei wesentliche Gründe, aus denen es seit kurzer Zeit in der Praxis genutzt wird:

  1. Deep Learning erfordert große Mengen an klassifizierten Daten. Beispielsweise sind für die Entwicklung eines fahrerlosen Autos Millionen Bilder und Tausende Stunden Video erforderlich.
  2. Deep Learning erfordert sehr viel Rechenleistung. Hochleistungs-GPUs verfügen über eine parallele Architektur, die für das Deep Learning effizient ist. In Kombination mit Clustern oder Cloud Computing bietet dies Entwicklungsteams die Möglichkeit, die Trainingszeit für ein Deep-Learning-Netz von Wochen auf Stunden oder noch weniger zu reduzieren.

Beispiele für Deep Learning in der Praxis

Deep-Learning-Anwendungen werden in Branchen vom automatisierten Fahren bis hin zu Medizinprodukten verwendet.

Automatisiertes Fahren: Entwickler in der Automobilbranche verwenden Deep Learning für die automatische Erkennung von Objekten wie Stoppschildern und Ampeln. Außerdem wird Deep Learning verwendet, um Fußgänger zu erkennen und somit Unfälle zu vermeiden.

Luft- und Raumfahrt und Verteidigung: Deep Learning wird verwendet, um über Satelliten Objekte zu identifizieren, an denen relevante Gebiete zu erkennen sind, und um sichere oder gefährliche Zonen für Einsatzkräfte zu identifizieren.

Medizinische Forschung: Krebsforscher verwenden Deep Learning für die automatische Erkennung von Krebszellen. Teams an der UCLA haben ein innovatives Mikroskop gebaut, das eine hochdimensionale Datenmenge bereitstellt, mit der eine Deep-Learning-Anwendung so trainiert werden kann, dass sie Krebszellen präzise identifiziert.

Industrieautomatisierung: Deep Learning trägt dazu bei, die Arbeitssicherheit an schweren Maschinen zu erhöhen, indem automatisch erkannt wird, ob Personen oder Objekte sich gefährlich nah an Maschinen befinden.

Elektronik (CES): Deep Learning wird für automatisiertes Hören und Sprechen verwendet. Beispielsweise basieren unterstützende Geräte im Privatbereich, die auf die Stimme des Anwenders reagieren und seine Wünsche kennen, auf Deep-Learning-Anwendungen.

Funktionsweise von Deep Learning

Die meisten Deep-Learning-Methoden nutzen Architekturen in Form von neuronalen Netzen. Deshalb werden Deep-Learning-Modelle häufig als tiefe neuronale Netze bezeichnet.

Der Begriff „tief“ bezieht sich im Allgemeinen auf die Anzahl verborgener Schichten des neuronalen Netzes. Herkömmliche neuronale Netze enthalten nur 2 bis 3 verborgene Schichten, während tiefe Netze bis zu 150 Schichten enthalten.

Deep-Learning-Modelle werden anhand umfangreicher Sätze klassifizierter Daten und anhand neuronaler Netzarchitekturen trainiert, die Merkmale direkt aus den Daten lernen, ohne dass eine manuelle Merkmalsextraktion benötigt wird.

Abbildung 1: Neuronale Netze sind in Ebenen aufgebaut, die aus einer Reihe von miteinander verbundenen Knotenpunkten bestehen. Netze können Dutzende oder Hunderte verborgener Ebenen enthalten.

Eine der beliebtesten Arten tiefer neuronaler Netze wird als neuronale Faltungsnetzwerke (Convolutional Neural Networks, CNN oder ConvNet) bezeichnet. Ein CNN faltet erlernte Merkmale mit Eingabedaten, wobei 2D-Faltungsebenen verwendet werden, die diese Architektur zur Verarbeitung von 2D-Daten wie Bildern geeignet macht.

CNNs machen eine manuelle Merkmalsextraktion unnötig. Sie müssen also nicht Merkmale identifizieren, die zur Klassifikation von Bildern verwendet werden. Das CNN arbeitet, indem es Merkmale direkt aus Bildern extrahiert. Die relevanten Merkmale werden nicht vortrainiert, sondern sie werden gelernt, während das Netz anhand einer Menge von Bildern trainiert wird. Dank dieser automatisierten Merkmalsextraktion sind Deep-Learning-Modelle für Aufgaben der Computer Vision, wie zum Beispiel die Objektklassifikation, hervorragend geeignet.

Abbildung 2: Beispiel für ein Netz mit vielen Faltungsebenen. Filter werden Trainingsbildern in unterschiedlichen Auflösungen zugefügt. Der Output gefalteter Bilder dient als Input für die nächste Ebene.

CNNs lernen mithilfe von Dutzenden oder Hunderten verborgener Ebenen, unterschiedliche Merkmale eines Bildes zu erkennen. Jede verborgene Ebene erhöht die Komplexität der gelernten Bildmerkmale. Beispielsweise könnte die erste verborgene Ebene lernen, Umrisse zu erkennen, und die letzte lernt, komplexere Formen zu erkennen, die spezifisch zur Form des zu erkennenden Objekts passen.

Was ist der Unterschied zwischen Machine Learning und Deep Learning?

Deep Learning ist eine spezialisierte Form von Machine Learning. Ein Machine-Learning-Workflow beginnt damit, dass relevante Merkmale manuell aus Bildern extrahiert werden. Anhand der Merkmale wird dann ein Modell erstellt, das die Objekte im Bild kategorisiert. In einem Deep-Learning-Workflow werden relevante Merkmale automatisch aus Bildern extrahiert. Außerdem wird beim Deep Learning ein „End-to-End-Lernvorgang“ durchgeführt. Dabei erhält ein Netz Rohdaten und eine Aufgabe, etwa eine Klassifikation, und lernt, diese Aufgabe automatisch zu erledigen.

Ein weiterer wichtiger Unterschied besteht darin, dass Deep-Learning-Algorithmen entsprechend der Daten skaliert werden, während Lernvorgänge mit flachen Netzen konvergieren. Als „flach“ werden Machine-Learning-Methoden bezeichnet, die ein Plateau auf einer bestimmten Leistungsebene erreichen, wenn Sie dem Netz weitere Beispiele und Trainingsdaten zur Verfügung stellen.

Ein wichtiger Vorteil von Deep-Learning-Netzen liegt darin, dass ihre Ergebnisse sich häufig weiter verbessern, sobald der Umfang der Daten zunimmt.

Abbildung 3: Vergleich zwischen Machine Learning (links) und Deep Learning (rechts) bei der Klassifikation von Fahrzeugen.

Beim Machine Learning wählen Sie manuell Merkmale und einen Klassifikator, um Bilder zu sortieren. Beim Deep Learning sind die Schritte für die Merkmalsextraktion und die Modellierung automatisch.

Wählen zwischen Machine Learning und Deep Learning

Machine Learning bietet eine Reihe unterschiedlicher Techniken und Modelle, zwischen denen Sie je nach Ihrer Anwendung, dem Umfang der zu verarbeitenden Daten und der Art der zu lösenden Aufgabe wählen können. Eine erfolgreiche Deep-Learning-Anwendung erfordert sehr viele Daten (Tausende von Bildern) für das Training des Modells sowie GPUs (Grafikprozessoren), um die Daten schnell zu verarbeiten.

Berücksichtigen Sie bei der Wahl zwischen Machine Learning und Deep Learning, ob Sie über eine Hochleistungs-GPU und umfangreiche klassifizierte Daten verfügen. Wenn Sie beides nicht besitzen, kann es sinnvoller sein, Machine Learning statt Deep Learning zu verwenden. Deep Learning ist im Allgemeinen komplexer, sodass Sie mindestens einige Tausend Bilder benötigen, um zuverlässige Ergebnisse zu erhalten. Mit einer Hochleistungs-GPU benötigt das Modell weniger Zeit, um all diese Bilder zu analysieren.

So erstellen und trainieren Sie Deep-Learning-Modelle

Die drei am häufigsten verwendeten Möglichkeiten, Deep Learning für Objektklassifikationen zu verwenden, sind folgende:

Trainieren von Grund auf

Um ein Deep-Learning-Netz von Grund auf zu trainieren, sammeln Sie eine sehr große Menge klassifizierter Daten und entwerfen eine Netzarchitektur, die die Merkmale und das Modell lernen soll. Dies ist gut für neue Anwendungen oder für Anwendungen, bei denen es viele Ausgabenkategorien geben wird. Dieser Ansatz wird weniger häufig als andere verwendet, denn aufgrund der großen Menge an Daten und der Lerngeschwindigkeit dauert das Trainieren dieser Netze im Allgemeinen Tage oder Wochen.

Transfer Learning

Die meisten Deep-Learning-Anwendungen verwenden den Ansatz des Transfer Learning, einen Prozess, bei dem ein vortrainiertes Modell verfeinert wird. Sie beginnen mit einem vorhandenen Netz, wie AlexNet oder GoogLeNet, und geben ihm Daten, die bisher unbekannte Klassen enthalten. Nachdem Sie das Netz ein wenig angepasst haben, können Sie jetzt eine neue Aufgabe damit erledigen, beispielsweise nur Hunde oder Katzen kategorisieren statt 1.000 unterschiedliche Objekte. Dies hat außerdem den Vorteil, dass viel weniger Daten benötigt werden (es werden Tausende statt Millionen Bilder verarbeitet), sodass die Ausführungszeit nur Minuten oder Stunden beträgt.

Für Transfer Learning ist eine Schnittstelle zum Inneren des vorhandenen Netzes erforderlich, damit es für die neue Aufgabe verändert und erweitert werden kann. MATLAB® bietet Tools und Funktionen für Transfer Learning.

Merkmalsextraktion

Ein etwas seltener genutzter, stärker spezialisierter Ansatz für das Deep Learning ist die Verwendung des Netzes als Merkmalsextraktor. Da jede Ebene die Aufgabe hat, bestimmte Merkmale aus Bildern zu lernen, können wir diese Merkmale zu jedem Zeitpunkt im Trainingsprozess aus dem Netz abrufen. Diese Merkmale können dann als Eingabe für ein Machine-Learning-Modell verwendet werden, beispielsweise für Support Vector Machines (SVM).

Beschleunigen von Deep-Learning-Modellen mit GPUs

Das Trainieren eines Deep-Learning-Modells kann viel Zeit – manchmal Tage und Wochen – in Anspruch nehmen. GPU-Beschleunigung kann den Vorgang deutlich fördern. Die Verwendung von MATLAB mit einem GPU verringert die notwendige Zeit für das Trainieren eines Netzes und kann die für eine Bildklassifikationsaufgabe benötigte Trainingszeit von mehreren Tagen auf nur wenige Stunden reduzieren. Beim Trainieren von Deep-Learning-Modellen verwendet MATLAB GPUs (sofern verfügbar), ohne dass Sie wissen müssen, wie Sie GPUs explizit programmieren können.

Abbildung 4: Die Neural Network Toolbox erfordert das Trainieren Ihres eigenen CNNs von Grund auf oder die Verwendung eines vortrainierten Modells für Transfer Learning.

Deep-Learning-Anwendungen

Sie können vortrainierte Modelle mit tiefen neuronalen Netzen verwenden, um Deep Learning schnell auf Ihre Aufgaben anzuwenden, indem Sie Transfer Learning oder eine Merkmalsextraktion verwenden. Einige der für MATLAB-Anwender verfügbaren Modelle sind AlexNet, VGG-16 und VGG-19 sowie Caffe-Modelle (etwa von Caffe Model Zoo), die mit importCaffeNetwork importiert werden.

Verwendung von AlexNet zur Erkennung von Objekten mit einer Webcam

Sie können MATLAB, eine einfache Webcam und ein tiefes neuronales Netz verwenden, um Objekte in Ihrer Umgebung zu erkennen.

Beispiel: Objekterfassung mit Deep Learning

Neben der Objekterkennung, mit der ein spezifisches Objekt in einem Bild oder Video identifiziert wird, ermöglicht Deep Learning auch die Objekterfassung. Die Objekterfassung ist die Erkennung und Ortsbestimmung des jeweiligen Objekts in einer Szene. Sie ermöglicht eine Ortsbestimmung für mehrere Objekte im Bild.

Deep Learning mit MATLAB

Mit MATLAB ist Deep Learning ganz leicht. Neben Tools und Funktionen für die Verwaltung großer Datenmengen bietet MATLAB auch spezialisierte Toolboxen für die Arbeit mit Machine Learning, neuronalen Netzen, Computer Vision und automatisiertem Fahren.

Mit nur wenigen Codezeilen können Sie mit MATLAB Deep Learning anwenden, ohne ein Experte sein zu müssen. Machen Sie schnell die ersten Schritte, erstellen und visualisieren Sie Modelle und stellen Sie Modelle auf Servern und Embedded-Geräten bereit.

Teams setzen MATLAB dank der folgenden Möglichkeiten erfolgreich für Deep Learning ein:

  1. Erstellung und Visualisierung von Modellen mit nur wenigen Codezeilen
  2. Dank MATLAB können Sie Deep-Learning-Modelle mit sehr wenig Code erstellen. Mit MATLAB können Sie vortrainierte Modelle schnell importieren sowie Zwischenergebnisse visualisieren und debuggen, wenn Sie Trainingsparameter anpassen.

  3. Anwendung von Deep Learning, ohne Experte zu sein
  4. Mit MATLAB können Sie sich Wissen im Bereich des Deep Learning aneignen und es üben. Die meisten von uns haben noch nie einen Kurs zu Deep Learning besucht. Wir müssen es in der Praxis lernen. MATLAB ermöglicht praktisches und leicht zugängliches Lernen in diesem Bereich. Außerdem können Fachexperten mit MATLAB Deep Learning selbst anwenden – statt diese Aufgabe Datenwissenschaftlern zu überlassen, die die Branche oder Anwendung möglicherweise nicht kennen.

  5. Automatisierung der Ground-Truth-Klassifikation von Bildern und Videodaten
  6. Mit MATLAB können Benutzer Objekte auf Bildern interaktiv klassifizieren, und sie können die Ground-Truth-Klassifikation in Videos automatisieren, um Deep-Learning-Modelle zu trainieren und zu testen. Mit diesem interaktiven und automatisierten Ansatz können bessere Resultate in kürzerer Zeit erzielt werden.

  7. Integration von Deep Learning in einem einzelnen Workflow
  8. Mit MATLAB können mehrere Bereiche in einem einzelnen Workflow vereint werden. Mit MATLAB können Sie in ein und derselben Umgebung all Ihre Forschungs- und Programmieraufgaben erledigen. Sie bietet Tools und Funktionen für das Deep Learning sowie für eine Reihe von Bereichen, die von Deep-Learning-Algorithmen genutzt werden können, wie Signalverarbeitung, Computer Vision und Datenanalysen.

Mit MATLAB können Sie Ergebnisse in Ihre vorhandenen Anwendungen integrieren. MATLAB automatisiert die Bereitstellung Ihrer Deep-Learning-Modelle auf Unternehmenssystemen, in Clustern, in Clouds und auf Embedded-Geräten.

Siehe auch Deep Learning Funktionen und Codebeispiele.

Weitere Informationen zum Trainieren und zur Verwendung von Deep-Learning-Modellen finden Sie unter MATLAB, Computer Vision System Toolbox™, Statistics and Machine Learning Toolbox™, Neural Network Toolbox™ und Automated Driving System Toolbox™.

Erfahren Sie mehr über Deep Learning

Erfahren Sie Grundlagen des Deep Learning in diesem MATLAB® Tech Talk. Sie erfahren, warum Deep Learning so beliebt geworden ist, und Sie lernen drei Konzepte kennen: Was Deep Learning so ist, wie es in der realen Welt verwendet wird, und wie Sie selbst Ihre ersten Schritte damit machen können.
Sehen Sie sich eine kurze Demonstration dazu an, wie Sie MATLAB®, eine einfache Webcam und ein tiefes neuronales Netz verwenden können, um Objekte in Ihrer Umgebung zu erkennen. Diese Demo verwendet AlexNet, ein vortrainiertes tiefes neuronales Faltungsnetzwerk (CNN oder ConvNet), das mit über einer Million Bildern trainiert wurde.
Erfahren Sie, wie Sie Transfer Learning in MATLAB einsetzen können, um Deep Learning Netzwerke für Ihre eignen Daten und Aufgaben zu trainieren.
Ein Bildverarbeitungssystem, in dem Durchflusszytometrie, Photonic Time Stretch und Machine-Learning-Algorithmen miteinander kombiniert sind, ermöglicht Forschern der UCLA, Krebszellen in Blutproben zu klassifizieren, ohne zuvor Biomarker-Klassifikationen zu erstellen.
Verwenden Sie Machine-Learning-Techniken in MATLAB, um in Bildern Szenen anhand eindeutiger Merkmale zu erkennen.
Anhand eines simplen Beispiels der Objekterfassung und -erkennung erfahren Sie in diesem Artikel, wie problemlos Sie MATLAB® für Deep Learning einsetzen können, ohne besondere Vorkenntnisse in Bezug auf Computer-Vision-Algorithmen oder neuronale Netze besitzen zu müssen.