Ein neuronales Netz (auch künstliches neuronales Netz oder KNN genannt) ist ein lernfähiges System, das mithilfe miteinander verbundener Knoten oder Neuronen in einer geschichteten Struktur, die dem menschlichen Gehirn ähnelt, Lernprozesse durchführt. Ein neuronales Netz kann aus Daten lernen und lässt sich so darauf trainieren, Muster zu erkennen, Daten zu klassifizieren und zukünftige Ereignisse vorherzusagen. Ein neuronales Netz schlüsselt die Eingabe in verschiedene Abstraktionsebenen auf. Es kann mithilfe von zahlreichen Beispielen trainiert werden, um Muster in Sprache oder Bildern zu erkennen – so wie es das menschliche Gehirn tut. Sein Verhalten wird durch die Art und Weise, wie die einzelnen Elemente miteinander verbunden sind, sowie durch die Stärke, also die Gewichtung, dieser Verbindungen bestimmt. Diese Gewichte werden beim Training automatisch nach einer bestimmten Lernregel angepasst, bis das künstliche neuronale Netz die gewünschte Aufgabe korrekt ausführt.
Einsatzgebiete von neuronalen Netzen
Neuronale Netze sind ein Machine-Learning-Ansatz, der sich daran orientiert, wie Neuronen im menschlichen Gehirn miteinander kommunizieren. Daher eignen sich neuronale Netze besonders gut für die Modellierung nichtlinearer Zusammenhänge und werden in der Regel zur Mustererkennung und zur Klassifizierung von Objekten oder Signalen in Sprach-, Seh- und Regelungssystemen eingesetzt.
Die Fähigkeit neuronaler Netze, insbesondere tiefer neuronaler Netze, zur Identifizierung komplexer Anwendungen wie der Gesichtserkennung, der Textübersetzung und der Spracherkennung hat sich längst herumgesprochen. Diese Ansätze bilden eine Schlüsseltechnologie, die die Innovation bei fortschrittlichen Fahrassistenzsystemen und -aufgaben vorantreibt, wie beispielsweise in puncto Fahrspurklassifizierung und Verkehrszeichenerkennung.
Beispiele für neuronale Netze
Im Folgenden finden Sie mehrere Beispiele dafür, wie neuronale Netze in Machine-Learning-Anwendungen eingesetzt werden:
- Semantische Segmentierung von Bildern und Videos
- Erkennung von Objekten in Bildern, einschließlich Fußgängern und Radfahrern
- Gehtraining eines zweibeinigen Roboters mithilfe von Reinforcement Learning
- Krebserkennung durch Unterstützung der Pathologen bei der Tumorklassifizierung
- Und viele weitere Bereiche.
Die Funktionsweise von neuronalen Netzen
In Anlehnung an biologische Nervensysteme kombiniert ein neuronales Netz mehrere Verarbeitungsebenen mit einfachen, parallel arbeitenden Elementen. Das Netz besteht aus einer Eingabeschicht, einer oder mehreren verborgenen Schichten und einer Ausgabeschicht. In jeder Schicht gibt es mehrere Knoten oder Neuronen: Die Knoten in jeder Schicht verwenden die Ausgaben aller Knoten in der vorherigen Schicht als Eingaben, sodass alle Neuronen über die verschiedenen Schichten miteinander verbunden sind. Jedem Neuron wird in der Regel ein Gewicht zugewiesen, das während des Lernprozesses angepasst wird. Eine Verringerung oder Erhöhung des Gewichts verändert auch die Signalstärke des betreffenden Neurons.
Wie andere Machine-Learning-Algorithmen können auch neuronale Netze für Klassifizierungs- oder Regressionsaufgaben eingesetzt werden. Die Modellparameter werden durch Gewichtung des neuronalen Netzes mittels Lernen auf Trainingsdaten festgelegt, indem in der Regel die Gewichte optimiert werden, um mögliche Vorhersagefehler zu minimieren.
Die Arten von neuronalen Netzen
Das erste und einfachste neuronale Netz war das Perzeptron, das 1958 von Frank Rosenblatt vorgestellt wurde. Es bestand aus einem einzigen Neuron und im Wesentlichen aus einem linearen Regressionsmodell mit einer sigmoidalen Aktivierungsfunktion. Seitdem wurden immer komplexere neuronale Netze erforscht, bis hin zu den heutigen tiefen Netzen, die Hunderte von Schichten umfassen können.
Der Begriff Deep Learning bezieht sich auf neuronale Netze mit vielen Schichten, während neuronale Netze mit nur zwei oder drei Schichten verbundener Neuronen auch als flache neuronale Netze bezeichnet werden. Das Deep Learning erfährt große Beachtung, da es die bisher notwendige Extraktion von Merkmalen aus Bildern überflüssig macht, was früher eine Herausforderung für die Anwendung des Machine Learning in der Bild- und Signalverarbeitung darstellte. Obwohl die Merkmalsextraktion bei Bildverarbeitungsanwendungen nicht erforderlich ist, wird sie dennoch häufig bei Signalverarbeitungsaufgaben eingesetzt, um eine höhere Modellgenauigkeit zu erreichen.
Es gibt drei gängige Arten von neuronalen Netzen, die für technische Anwendungen verwendet werden:
- Vorwärtsgerichtetes neuronales Netz: Besteht aus einer Eingabeschicht, einer oder mehreren verborgenen Schichten und einer Ausgabeschicht (ein typisches flaches neuronales Netz).
- Faltendes neuronales Netz (Convolutional neural network, CNN): Eine Architektur für tiefe neuronale Netze, die häufig in der Bildverarbeitung eingesetzt wird und durch Faltungsschichten gekennzeichnet ist, die Fenster über die Eingabe mit Knoten verschieben, deren Gewichte gemeinsam genutzt werden, um die (in der Regel bildliche) Eingabe in Merkmalskarten zu abstrahieren. Sie können hierfür vortrainierte CNN-Netze, wie z. B. SqueezeNet oder GoogleNet, verwenden.
- Rekurrente Neuronale Netze (RNN): Eine neuronale Netzwerkarchitektur mit Rückkopplungsschleifen, die sequenzielle Abhängigkeiten in der Eingabe modellieren, wie z. B. in Zeitreihen-, Sensor- und Textdaten; der gängigste RNN-Typ ist ein Long Short Memory Network (LSTM).
Die Funktionsweise von CNNs
Sehen Sie sich dieses kurze Video über die Besonderheiten von CNNs und deren Schichten, Aktivierungen und Klassifizierungen an.
Erfahren Sie mehr über Deep Learning:
Erstellen eines neuronalen Netzwerks mit MATLAB
Mithilfe von MATLAB® und der Deep Learning Toolbox™ sowie der Statistics and Machine Learning Toolbox™ können Sie sowohl tiefe als auch flache neuronale Netze für Anwendungen wie Computer Vision und das automatisierte Fahren erstellen.
Schon mit wenigen Zeilen Code können Sie in MATLAB neuronale Netze erstellen, ohne Experte zu sein. Der Einstieg ist schnell gemacht: Sie können neuronale Netzmodelle trainieren und visualisieren, neuronale Netze in Ihr bestehendes System integrieren und sie auf Servern, Unternehmenssystemen, Clustern, Clouds und eingebetteten Geräten bereitstellen.
Typischer Workflow für den Systemaufbau mit neuronalen Netzen
Die Entwicklung von KI-Anwendungen, insbesondere von neuronalen Netzen, umfasst in der Regel folgende Schritte:
- Datenaufbereitung
- Sammeln Sie ausreichend gekennzeichnete Trainingsdaten, da für das Training tiefer neuronaler Netze weitaus mehr Daten erforderlich sind; Labeler-Apps zur Kennzeichnung von Bildern, Videos und Signalen können diesen Prozess beschleunigen.
- Verwenden Sie Simulationen, um Trainingsdaten zu generieren – insbesondere wenn die Erfassung von Daten aus realen Systemen nicht praktikabel ist (Fehlerbedingungen).
- Erweitern Sie die Daten, um eine größere Variabilität in den Trainingsdaten darzustellen.
- KI-Modellierung
- Trainieren Sie flache neuronale Netze interaktiv im Classification and Regression Learner der Statistics and Machine Learning Toolbox oder verwenden Sie die Befehlszeilenfunktionen. Diese Vorgehensweise bietet sich an, wenn Sie die Leistung flacher neuronaler Netze mit anderen konventionellen Machine-Learning-Algorithmen, wie z. B. Entscheidungsbäumen oder SVMs, vergleichen möchten oder wenn Sie nur über eine begrenzte Anzahl gekennzeichneter Trainingsdaten verfügen.
- Spezifizieren und trainieren Sie neuronale Netze (flache oder tiefe) interaktiv mithilfe des Deep Network Designer oder der Befehlszeilenfunktionen der Deep Learning Toolbox, die sich insbesondere für tiefe neuronale Netze eignet oder wenn Sie mehr Flexibilität bei der Anpassung der Netzarchitektur und der Solver benötigen.
- Simulieren und Testen
- Integrieren Sie neuronale Netze als Blöcke in Simulink®‑Modelle, um die Integration in ein größeres System, das Testen und die Bereitstellung für viele Arten von Hardware zu erleichtern.
- Bereitstellung
- Generieren Sie von C/C++ Code aus flachen neuronalen Netzen, die in der Statistics and Machine Learning Toolbox trainiert wurden, um ihn auf eingebetteter Hardware und Hochleistungs-Computersystemen bereitzustellen.
- Ebenso können Sie optimierten CUDA®- und C/C++ Code aus neuronalen Netzen, die in der Deep Learning Toolbox trainiert wurden, für schnelle Inferenzen auf Grafikkarten und anderen industriellen Hardwaretypen (ARM, FPGA) generieren.
MATLAB für Deep Learning
Erfahren Sie mehr über die MATLAB-Unterstützung für Deep Learning.
Tutorials und Beispiele
Ihre ersten Schritte mit MATLAB für Deep Learning.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)