Was ist ein neuronales Netz?

Drei Dinge, die Sie über neuronale Netze wissen sollten

Ein neuronales Netz (auch künstliches neuronales Netz genannt) ist ein adaptives System, das mithilfe von miteinander verbundenen Knoten oder Neuronen in einer dem menschlichen Gehirn ähnelnden Schichtstruktur lernt. Ein neuronales Netz lernt mit Daten – damit es trainiert werden kann, Muster zu erkennen, Daten zu klassifizieren und zukünftige Ereignisse vorherzusagen.

Ein neuronales Netz schlüsselt die Eingabe in Abstraktionsebenen auf. Es kann anhand zahlreicher Beispiele trainiert werden, damit es beispielsweise Muster in gesprochener Sprache oder in Bildern genauso erkennt wie das menschliche Gehirn. Sein Verhalten wird durch die Art und Weise, in der die einzelnen Elemente verbunden sind, und durch die Stärke, also die Gewichtung, der einzelnen Verbindungen definiert. Diese Gewichtungen werden während des Trainings automatisch gemäß einer angegebenen Lernregel angepasst, bis das neuronale Netz die gewünschte Aufgabe korrekt ausführt.

Bedeutung neuronaler Netze

Neuronale Netze eignen sich besonders gut für die Mustererkennung zur Identifizierung und Klassifizierung von Objekten oder Signalen in Sprach-, Vision- und Regelungssystemen. Außerdem können sie für die Prognose und Modellierung von Zeitreihen verwendet werden.

Einige Beispiele für den Einsatz künstlicher neuronaler Netze:

Deep Learning: Flache und tiefe Netze

Bei Deep Learning handelt es sich um ein Fachgebiet, das sehr oft auf künstliche neuronale Netze zurückgreift. Eine verbreitete Anwendung sindfaltende neuronale Netze zur Klassifizierung von Bildern, Videos, Text oder Ton.

Neuronale Netze, die auf zwei oder drei Schichten miteinander verbundener Neuronenschichten basieren, werden als flache neuronale Netze bezeichnet. Deep Learning-Netze können bis zu einhundert Schichten aufweisen. Bei beiden handelt es sich um Machine Learning-Verfahren, die direkt von den eingegebenen Daten lernen.

Deep Learning eignet sich besonders gut für komplexe Anwendungen zur Identifizierung wie die Gesichtserkennung, die Übersetzung von Texten und die Spracherkennung. Es bildet außerdem die grundlegende Technologie für modernste Fahrerassistenzsysteme und entsprechende Aufgaben wie die Klassifikation von Fahrspuren und die Erkennung von Verkehrsschildern.

Wie funktionieren neuronale Netze?

In einem neuronalen Netz sind mehrere Verarbeitungsschichten kombiniert. Dabei werden einfache Elemente verwendet, die parallel arbeiten und Nervensystemen aus der Biologie nachempfunden sind. Ein neuronales Netz besteht aus einer Eingabeschicht, einer oder mehreren verborgenen Schichten sowie einer Ausgabeschicht. Die Schichten sind über Knotenpunkte oder Neuronen miteinander verbunden. Jede Schicht nutzt die Ausgabe der vorigen Schicht als ihre Eingabe. Die Neuronen verbinden also die verschiedenen Schichten miteinander. Jedes Neuron weist normalerweise Gewichtungsfaktoren auf, die während des Lernprozesses angepasst werden. Lässt die Gewichtung nach oder nimmt sie zu, ändert sich die Signalstärke dieses Neurons.

Typische Architektur eines neuronalen Netzes.

Mit neuronalen Netzen verwendete Techniken

Verbreitete Machine Learning-Techniken für den Entwurf von Anwendungen mit künstlichen neuronalen Netzen sind überwachtes und unüberwachtes Lernen, Klassifikation, Regression, Mustererkennung und Clustering.

Überwachtes Lernen

Bei überwachten neuronalen Netzen handelt es sich um Netze, die entsprechend trainiert wurden, um die gewünschten Ausgaben in Reaktion auf Sample-Eingaben zu erhalten. Diese Netze eignen sich besonders gut für das Modellieren und Steuern dynamischer Systeme, das Klassifizieren verrauschter Daten und die Vorhersage zukünftiger Ereignisse. Die Deep Learning Toolbox™ umfasst vier Arten überwachter Netze: Feed-Forward, radiale Basisfunktion, dynamische und lernende Vektorquantisierung.

Classification

Classification is a type of supervised machine learning in which an algorithm “learns” to classify new observations from examples of labeled data.

Regression

Regression models describe the relationship between a response (output) variable and one or more predictor (input) variables.

Pattern Recognition

Pattern recognition is an important component of artificial neural network applications in computer vision, radar processing, speech recognition, and text classification. It works by classifying input data into objects or classes based on key features, using either supervised or unsupervised classification.

For example, in computer vision, supervised pattern recognition techniques are used for optical character recognition (OCR), face detection, face recognition, object detection, and object classification. In image processing and computer vision, unsupervised pattern recognition techniques are used for object detection and image segmentation.

Unsupervised Learning

Unsupervised neural networks are trained by letting the neural network continually adjust itself to new inputs. They are used to draw inferences from data sets consisting of input data without labeled responses. You can use them to discover natural distributions, categories, and category relationships within data.

Clustering

Clustering is an unsupervised learning approach in which artificial neural networks can be used for exploratory data analysis to find hidden patterns or groupings in data. This process involves grouping data by similarity. Applications for cluster analysis include gene sequence analysis, market research, and object recognition.

Entwicklung flacher neuronaler Netze mit MATLAB

Neben Tools und Funktionen zur Verwaltung großer Datenmengen bietet MATLAB® spezielle Toolboxes für die Arbeit mit Machine Learning, künstlichen neuronalen Netzen, Deep Learning, Computer Vision und autonomem Fahren.

Mit nur wenigen Codezeilen können Sie in MATLAB neuronale Netze entwickeln, ohne ein Experte sein zu müssen. Verlieren Sie keine Zeit, erstellen und visualisieren Sie Modelle und stellen Sie Modelle auf Servern und Embedded Geräten bereit.

Mit MATLAB können Sie die Ergebnisse in Ihre vorhandenen Anwendungen integrieren. MATLAB automatisiert die Bereitstellung Ihrer Modelle mit künstlichen neuronalen Netzen auf Unternehmenssystemen, in Clustern, in Clouds und auf Embedded Geräten.

Typischer Workflow für den Entwurf neuronaler Netze

Jede Anwendung neuronaler Netze ist einzigartig. Bei der Entwicklung des Netzes werden jedoch im Allgemeinen die folgenden Schritte durchgeführt:

  1. Datenzugriff und -vorbereitung
  2. Erstellung des künstlichen neuronalen Netzes
  3. Konfigurieren der Ein- und Ausgaben des Netzes
  4. Optimieren der Netzparameter (die Gewichtungen und Bias-Werte), um die Leistung zu steigern
  5. Trainieren des Netzes
  6. Validieren der Ergebnisse des Netzes
  7. Integrieren des Netzes in ein Produktionssystem

Klassifikation und Clustering flacher Netze

MATLAB und die Deep Learning Toolbox bieten Befehlszeilenfunktionen und Apps für die Erstellung, das Training und die Simulation flacher neuronaler Netze. Die Apps erleichtern das Entwickeln neuronaler Netze für Aufgaben wie die Klassifikation, die Regression (einschließlich Zeitreihen-Regression) und das Clustering. Nach Erstellung der Netze mithilfe dieser Werkzeuge können Sie dann automatisch den MATLAB Programmcode generieren, um Ihre Arbeitsschritte zu erfassen und Aufgaben zu automatisieren.

Vorverarbeitung, Nachverarbeitung und Verbessern Ihres Netzes

Durch die Vorverarbeitung der Netzeingaben und Ziele erhöht sich die Effizienz des Trainings eines flachen neuronalen Netzes. Durch die Nachverarbeitung wird eine detaillierte Analyse der Netzleistung möglich. MATLAB und Simulink® bieten Tools, mit denen Sie:

  • die Dimensionen von Eingabevektoren mittels Hauptkomponentenanalyse verringern können
  • eine Regressionsanalyse zwischen Netzantwort und entsprechenden Zielen durchführen können
  • Eingaben und Ziele skalieren können, sodass sie im Bereich [-1,1] liegen
  • Mittelwert- und Standardabweichung des Trainingsdatensatzes normalisieren können
  • beim Erstellen Ihrer Netze automatische Datenvorverarbeitung und Datenaufteilung verwenden können

Durch Verbesserung der Fähigkeit zur Verallgemeinerung des Netzes wird eine Überanpassung (Overfitting) vermieden, die beim Entwerfen künstlicher neuronaler Netze oft ein Problem darstellt. Die Überanpassung wird dadurch verursacht, dass ein Netz sich zwar das Trainingsset gut eingeprägt hat, aber noch nicht gelernt hat, neue Eingaben zu verallgemeinern. Bei der Überanpassung handelt es sich anfangs nur um einen verhältnismäßig kleinen Fehler im Trainingsset. Dieser Fehler kann jedoch erheblich größer werden, wenn das Netz neue Daten verarbeiten muss. Erfahren Sie mehr über die Verwendung der Kreuzvalidierung zur Vermeidung von Überanpassung.

Mit den folgenden beiden Lösungen können Sie die Verallgemeinerung verbessern:

  • Durch Regularisierung wird die Rechenleistungsfunktion des Netzes (d. h. der Messwert des Fehlers, der durch den Trainingsvorgang minimiert werden soll) modifiziert. Durch Einbeziehung der Größen von Gewichtungen und Bias-Werten wird mittels Regularisierung ein Netz erstellt, das mit den Trainingsdaten sehr gut funktioniert und auch mit neuen Daten ein glatteres Verhalten zeigt.
  • Vorzeitiges Anhalten arbeitet mit zwei verschiedenen Datensätzen, nämlich dem Trainingssatz, um die Gewichtungen und Bias-Werte zu aktualisieren, und dem Validierungssatz, um das Training anzuhalten, sobald das Netz damit beginnt, die Daten übermäßig anzupassen.

Darstellungen der Nachverarbeitung für die Analyse der Netzleistung, einschließlich Leistung der Validierung des mittleren Fehlerquadrats für aufeinanderfolgende Trainingsepochen (oben links), Fehlerhistogramm (oben rechts) und Konfusionsmatrizen (unten) für die Trainings-, Validierungs- und Testphase.

Anwendungen, die neuronale Netze einsetzen

Die Universität Lund hat ein prädiktives Modell entwickelt und Tausende von Risikoprofil-Kombinationen simuliert, um die langfristigen Überlebensraten von Empfängern zu verbessern.
Verbesserung der Krebsdiagnostik mithilfe eines neuronalen Netzes, um Krebs anhand Massenspektrometerdaten von Proteinprofilen zu erkennen.
Trainieren eines künstlichen neuronalen Netzes für die Klassifikation von Bildern von Ziffern.