Deep Learning mit künstlichen neuronalen Netzen
Hier findest du folgende Inhalte
Formeln
Deep Learning mit künstlichen neuronalen Netzen
Deep Learning
ist ein Teilbereich des maschinellen Lernens, der sich auf den Einsatz von künstlichen neuronalen Netzwerken konzentriert, um komplexe Muster und Zusammenhänge in großen Datenmengen zu lernen. Es basiert auf dem Konzept von mehrschichtigen Netzwerken, die als "tiefe" neuronale Netzwerke bezeichnet werden.
Im Gegensatz zu traditionellen neuronalen Netzwerken, die nur wenige Schichten haben, bestehen tiefe neuronale Netzwerke aus vielen Schichten von Neuronen, die in einer hierarchischen Struktur angeordnet sind. Jede Schicht nimmt die Ausgabe der vorherigen Schicht als Eingabe und führt Transformationen durch, um abstraktere Merkmale und Repräsentationen zu lernen.
Der Kern des Deep Learning-Ansatzes besteht darin, dass das Netzwerk selbständig die relevanten Merkmale und Muster in den Daten lernen kann, anstatt dass diese Merkmale manuell vom Menschen definiert werden müssen. Durch die Verwendung von großen Trainingsdatensätzen und leistungsstarken Rechenressourcen können tiefe neuronale Netzwerke komplexe Probleme wie Bilderkennung, Spracherkennung, natürliche Sprachverarbeitung, maschinelles Übersetzen und vieles mehr lösen.
Ein wesentlicher Faktor für den Erfolg von Deep Learning ist die Verwendung von sogenannten "Convolutional Neural Networks" (CNNs) für die Verarbeitung von Bildern und "Recurrent Neural Networks" (RNNs) für die Verarbeitung von Sequenzen wie Text oder Sprache. Diese Netzwerkarchitekturen sind darauf ausgerichtet, spezifische Muster und Abhängigkeiten in den Daten zu erfassen und damit präzisere Vorhersagen zu ermöglichen.
Deep Learning hat in den letzten Jahren zu beeindruckenden Fortschritten in verschiedenen Bereichen geführt und wird in Anwendungen wie Gesichtserkennung, autonomen Fahrzeugen, medizinischer Bildgebung, Sprachassistenten und vielen anderen Bereichen eingesetzt. Es erfordert jedoch große Datenmengen, um effektiv zu sein, und das Training von tiefen neuronalen Netzwerken kann rechenintensiv sein.
Künstliche neuronale Netze sind eine Schlüsselkomponente des maschinellen Lernens und der künstlichen Intelligenz und haben breite Anwendungen in Bereichen wie Bilderkennung, Sprachverarbeitung, Robotik ... .
Künstliche neuronale Netze (KNNs oder ANN) wurden von biologischen neuronalen Netzen, etwa dem menschlichen Gehirn, inspiriert. Die Idee hinter künstlichen neuronalen Netzen besteht darin, die Grundprinzipien der Informationsverarbeitung im Gehirn nachzuahmen, um komplexe Aufgaben im Bereich des maschinellen Lernens zu lösen.
Biologische neuronale Netze bestehen aus Milliarden von Neuronen, die miteinander verbunden sind und elektrische und chemische Signale über Synapsen austauschen.
Schichtenmodell neuronaler Netze
Ein künstliches neuronales Netzwerk besteht aus drei Schichten, die zusammenarbeiten, um Daten durch das neuronale Netzwerk zu verarbeiten und letztendlich eine Ausgabe zu generieren.
Eingabeschicht
Die Eingabeschicht empfängt die Eingangsdaten und leitet sie gewichtet an die nächste Schicht weiter. Die Input-Neuronen verarbeiten die Daten und bereiten sie für die Verarbeitung im Netzwerk vor.
Verborgene Schichten
Die verborgenen Schichten liegt zwischen der Eingabeschicht und der Ausgabeschicht. Sie kann aus mehreren Ebenen von Neuronen bestehen, die Informationen erneut gewichten und in jeder Schicht weiterverarbeiten. Die genaue Verarbeitung in der verborgenen Schicht ist für den Beobachter nicht sichtbar, daher der Name "verborgene Schicht".
Ausgabeschicht
Die Ausgabeschicht bildet die letzte Schicht des Netzwerks und liefert die endgültigen Ergebnisse oder Entscheidungen des Modells. Die Output-Neuronen enthalten die vom Netzwerk generierten Informationen.
Graph-Repräsentation Neuronaler Netze
Der Graph modelliert die Struktur und die Verbindungen im neuronalen Netzwerk.
Bei der Wegfindung (bei Navigationssystemen) verwendet man Algorithmen aus der Graphentheorie. Dabei erfolgt die Modellierung des Graphen durch Knoten und Kanten samt Kantengewichten.
Bei neuronalen Netzen kommen noch die Grundtendenz und die Aktivierungsfunktion hinzu.
Einschichtiges neuronales Netz
Einfache neuronale Netze besitzen einen Hidden Layer
Mehrschichtiges neuronales Netz für Deep Learning
Neuronale Netze für Deep Learning besitzen viele Hidden Layer
Neuronen der gleichen Schicht sind in gleicher Farbe dargestellt.
Graph neuronaler Netze
Neuronale Netze werden oft als gerichteter Graph dargestellt. Wie die Neuronen bzw. Knoten einer Schicht über Kanten mit Knoten einer weiteren Schicht verbunden sind, bezeichnet man als Topologie. Die Topologie hat erheblichen Einfluss auf die Leistungsfähigkeit des neuronalen Netzwerks, aber auch auf die Komplexität und die erforderliche Rechenzeit.
Den Kanten ordnet man ein Gewicht zu, den Knoten eine Grundtendenz, auch BIAS genannt. Ob ein Knoten letztlich feuert, hängt von dessen Aktivierung ab.
Da sich neuronale Netze als Matrizen darstellen lassen, können sie mathematisch einfach berechnet werden.
Neuron
Jeder Knoten (Neuron) führt eine einfache algorithmische Aufgabe aus. Jedes Neuron empfängt ein oder mehrere Eingangsdaten, verarbeitet diese gemäß einem Algorithmus und stellt ein Ergebnis am Ausgang zur Verfügung.
Kanten
Kanten verbinden je 2 Neuronen miteinander und haben eine Eigenschaft, die „Gewicht“ genannt wird.
Gewicht
Das Gewicht einer Kante ist eine reelle Zahl und kann mit der Verstärkung in der Signalverarbeitung vergleichen werden. Dieses Gewicht steuert, wie stark das Signal von einem Neuron zum nächsten Neuron entlang der Kante übertragen wird.
Die Höhe vom Gewicht jeder Kante wird während des Trainings so justiert, dass die Zielstellung des gesamten neuronalen Netzwerks optimal erreicht wird. Neuronale Netze „lernen“ bevorzugt durch Gewichtsveränderung.
Die Höhe vom Gewicht jeder Kante beeinflusst, welchen Anteil ein Eingangssignal zum Ergebnis beiträgt.
- Ein positives Gewicht bewirkt, dass das feuernde Neuron einen anregenden Einfluss auf den Netzinput vom nachfolgenden Neuron hat.
- Ein negatives Gewicht bewirkt, dass das feuernde Neuron einen hemmenden Einfluss auf den Netzinput vom nachfolgenden Neuron hat.
- Ein Gewicht von Null bewirkt, dass das feuernde Neuron keinen Einfluss auf den Netzinput vom nachfolgenden Neuron hat.
Skalarprodukt bzw. Linearkombination bzw. Netzinput
In jedem Neuron wird zuerst die Summe der Skalarprodukte aus den Eingabevektoren und deren zugehörigem Gewicht gebildet. D.h. die gewichteten Inputs der vorliegenden Neuronen werden zum Netzinput addiert.
BIAS bzw. Grundtendenz
Die Grundtendenz ist ein Offset je Neuron, der dem Skalarprodukt additiv hinzugefügt wird. Dieser BIAS beeinflusst, ob der Schwellwert erreicht wir, ab dem das Neuron am Ausgang der Kante aktiviert wird.
Ein positiver BIAS erhöht die Wahrscheinlichkeit, dass das Neuron feuert und so für das Gesamtergebnis relevant ist.
Aktivierungsfunktion
Die Aktivierungsfunktion bestimmt, ob das Zielneuron aktiviert wird oder ob nicht. Jedes Neuron summiert zunächst den Netzinput auf und addiert die Grundtendenz. Anschließend entscheidet die Aktivierungsfunktion ob und in welchem Maß das Neuron feuert, oder nicht feuert. Wenn das Zielneuron „feuert“, gibt es seinerseits ein Signal an nachfolgende Teile des Netzwerks weiter.
Die Aktivierungsfunktion kann verschiedene Formen haben. Im Allgemeinen sind Aktivierungsfunktionen monoton steigende Funktionen, Schwellwertfunktionen, tanh oder logistische Funktionen.
- Lineare Aktivierungsfunktion des Typen \(y = k \cdot x\)
- Ein Schwellwert muss erreicht oder überschritten werden, damit das Neuron feuert. Für eine binäre Schwellwert-Aktivierungsfunktion gilt:
\(y = \{ 1,{\text{wenn x}} \geqslant {\text{ Schwellwert; 0}}{\text{, wenn x < Schwellwert\} }}\) - Tanh Funktion oder Logistische Funktion
„Feuern“ von Neuronen
In einfachen feedforward Netzen fließen alle Daten nur ein eine Richtung, von der Eingabe über allfällige verdeckte Schichten zur Ausgabe. Es gibt keine Rückkopplungsschleifen. In der Signalverarbeitung nennt man das eine Steuerung, im Unterschied zur Regelung, die mittels einer Rückkopplung über einen Soll-/Istwert-Vergleich verfügt.
Beispiel: Neuron 3 feuert
- In der n-ten Schicht des neuronalen Netzes befinden sich die beiden Neuronen 1 und 2, die mit einem Ausgangswert von 5 bzw. 10 „feuern“.
- Im Laufe des Trainings wurden den beiden Kanten, die zum Neuron 3 führen, ein Gewicht von 3 bzw. 0,5 zugewiesen.
- Wir haben das Neuron 3, welches in der (n+1)-Schicht liegt, vergrößert herausgezeichnet!
- Am Eingang des Neurons 3 wird zuerst das Skalarprodukt aus den Ausgangswerten und den Kantengewichten wie folgt gebildet: \(\left[ {5 \cdot 3} \right] + \left[ {10 \cdot 0,5} \right] = 15 + 5 = 20\)
- Dem Neuron 3 ist ein BIAS von 2 zugeordnet, welcher zum zuvor gebildeten Skalarprodukt 20 addiert wird: \(20 + 2 = 22\)
- Bei der Aktivierungsfunktion handelt es sich um eine Schwellwert-Funktion. Bei einem Wert über 20 schaltet die Aktivierungsfunktion \(f\left( \lambda \right) = 1\) durch und das Neuron 3 feuert.
Beispiel: Neuron 3 feuert nicht
- In der n-ten Schicht des neuronalen Netzes befinden sich die beiden Neuronen 1 und 2, die mit einem Ausgangswert von 5 bzw. 10 „feuern“.
- Im Laufe des Trainings wurden den beiden Kanten, die zum Neuron 3 führen, ein Gewicht von 3 bzw. -0,5 zugewiesen.
- Wir haben das Neuron 3, welches in der (n+1)-Schicht liegt, vergrößert herausgezeichnet!
- Am Eingang des Neurons 3 wird zuerst das Skalarprodukt aus den Ausgangswerten und den Kantengewichten wie folgt gebildet: \(\left[ {5 \cdot 3} \right] + \left[ {10 \cdot \left( { - 0,5} \right)} \right] = 15 - 5 = 10\)
- Dem Neuron 3 ist ein BIAS von 2 zugeordnet, welcher zum zuvor gebildeten Skalarprodukt 10 addiert wird: \(10 + 2 = 12\)
- Bei der Aktivierungsfunktion handelt es sich um eine Schwellwert-Funktion. Bei einem Wert unter 20 schaltet die Aktivierungsfunktion \(f\left( \lambda \right) = 0\) nicht durch und das Neuron 3 feuert nicht.
Training neuronaler Netze durch maschinelles Lernen
Bei komplexen Problemstellungen kommt maschinelles Lernen zum Einsatz. Dabei werden in einer ersten Phase mit Hilfe von Trainingsdaten die Parameter des neuronalen Netzes justiert, der dann die Test- und Anwendungsphase folgt.
Während der Trainingsphase mittels maschinellen Lernens wird ein neuronales Netz mittels der folgenden mathematischen Parameter definiert:
Gewichte je Kante = Lernen des neuronalen Netzes
Die Kanten übertragen Signale von einem Neuron zum nächsten. Am Anfang des Trainings eines neuronalen Netzes werden die Kantengewichte zunächst zufällig festgelegt.
Während des Trainings werden die Kantengewichte so angepasst, dass das neuronale Netz bei Eingabe eines Werts die passende bzw. erwartete Ausgabe berechnet. Diese Anpassung der Gewichte entspricht dem „Lernen“ des neuronalen Netzwerks. Auf diese Weise "lernt" das neuronale Netzwerk allmählich, bessere Vorhersagen oder Ergebnisse aus den Eingangsdaten abzuleiten.
- Die Hebbsche Lernregel ist eine Regel, die zur Anpassung der Gewichte je Kante herangezogen wird. Sie besagt, dass Neuronen, die wiederholt gleichzeitig feuern, sich miteinander verbinden und deren Gewicht verstärkt wird.
Am Ausgangs-Layer erfolgt die Berechnung des Gesamtergebnisses. Solange nicht alle Ausgaben korrekt sind, muss man den Fehler bestimmen und während des fortlaufenden Trainings bevorzugt das Gewicht je Kante und allenfalls auch den BIAS nachjustieren.
- Backpropagations-Verfahren ist ein überwachte Lernverfahren, mit dem der Fehler im Gesamtsystem zunächst bestimmt und dann schrittweise rückwärts durch die Schichten des neuronalen Netzes, durch Anpassung der Kantengewichte, solange minimiert wird, bis er unter einem vorgegebenen Grenzwert liegt. Das ist sehr rechenintensiv und die Backpropagation kann auch in einem lokalen Optimum steckenbleiben.
BIAS bzw. Grundtendenz je Neuron
Die Grundtendenz ist im Allgemeinen eine feste Größe und wird auch Bias genannt. Der BIAS, so es ihn überhaupt gibt, ist vom Netzinput und von der Aktivierungsfunktion unabhängig und wird während des maschinellen Lernens justiert.
- Ist der Netzinput gering, kann ein positiver BIAS sicherstellen, dass das Neuron dennoch feuert.
- Ein negativer BIAS stellt eine Schwelle für den Netzinput dar, der überschritten werden muss, damit die Aktivierungsfunktion durchschaltet und das Neuron feuert.
Aktivierungsfunktion je Neuron
Die einmal sinnvoll gewählte Aktivierungsfunktion wird während des Trainings nicht verändert, sondern richtet sich eher nach der Art der Aufgabe des neuronalen Netzes.
Topologien neuronaler Netzwerke
Neuronale Netzwerke können in verschiedenen Topologietypen implementiert werden, je nachdem, wie die Neuronen miteinander verbunden sind. Die beiden häufigsten Topologietypen sind Feedforward-Netzwerke und Rekurrente Netzwerke.
Feedforward-Netzwerke (Vorwärtsnetzwerke)
In einem Feedforward-Netzwerk bewegen die Informationen sich nur in eine Richtung, nämlich von der Eingabe über versteckte Schichten (falls vorhanden) zu den Ausgabeneuronen. Es gibt keine Rückkopplungsschleifen. Diese Netzwerke werden häufig für Mustererkennungsaufgaben und Klassifikation verwendet.
- Einschichtige Feedforward-Netzwerke: Diese Netzwerke haben nur eine Schicht von Neuronen zwischen den Eingabe- und Ausgabeschichten. Sie sind einfach und linear.
- Mehrschichtige Feedforward-Netzwerke: Hier gibt es mindestens eine Zwischenschicht (versteckte Schicht) zwischen der Eingabe- und der Ausgabeschicht. Diese Schichten ermöglichen die Modellierung komplexer nichtlinearer Beziehungen.
Rekurrente Netzwerke (RNNs - Recurrent Neural Networks)
Im Gegensatz zu Feedforward-Netzwerken haben RNNs Rückkopplungsschleifen, die es ihnen ermöglichen, Informationen über vergangene Zustände zu speichern. Dies macht sie besonders geeignet für Aufgaben, bei denen die Sequenzinformation wichtig ist, wie zum Beispiel in der natürlichen Sprachverarbeitung, maschinellem Übersetzen und Zeitreihenanalysen.
- Einfache RNNs: Diese haben eine einfache Form von Rückkopplung und können Schwierigkeiten mit langen Abhängigkeiten in den Daten haben, da sie anfällig für das sogenannte "Verschwinden des Gradienten" sind.
- LSTM (Long Short-Term Memory) und GRU (Gated Recurrent Unit): Diese sind Weiterentwicklungen von RNNs, die das Problem des verschwindenden oder explodierenden Gradienten lösen. Sie sind besonders gut geeignet für Aufgaben, die eine lange Abhängigkeit der Daten erfordern.
Zusätzlich zu diesen beiden Haupttypen gibt es weitere Netzwerktypen
Convolutional Neural Networks (CNN)
CNNs sind spezialisierte Netzwerke, die hauptsächlich für die Verarbeitung von Bildern (Bilderkennung) verwendet werden. Sie verwenden Faltungsoperationen, um Merkmale aus den Eingabedaten zu extrahieren.
Autoencoder
Autoencoder sind neuronale Netzwerke, die dazu dienen, Daten zu komprimieren und dann wieder möglichst vollständig zu rekonstruieren. Sie bestehen also aus zwei Teilen:
- Der Encoder vereinfacht die Eingabe und erzeugt eine latente Darstellung der Eingaben. Dabei fallen redundante oder unnötige Informationen weg.
- Der Decoder rekonstruiert aus der latenten Darstellung die Daten für die Ausgabe.
Während des maschinellen Lernens lernt der Autoencoder, welche Informationen der Encoder beibehalten muss, damit des dem Decoder gelingt die Eingangsdaten am Ausgang zu rekonstruieren.
Sie finden Anwendung in der Dimensionsreduktion, Rauschunterdrückung und generativen Modellen.
Variational Autoencoder (VAEs) und Anomalie-Erkennung
Für Anomalie-Erkennungen wird der Autoencoder mit einem Datenset normaler Daten trainiert. Wird das so kalibrierte Modell dann mit abweichenden Daten versorgt, lassen sich Anomalien erkennen. VAEs finden Einsatz bei der industriellen Qualitätskontrolle oder im Gesundheitsbereich.
Generative Adversarial Networks (GAN)
GANs bestehen aus zwei einander feindlichen neuronalen Netzwerken, dem Generator und dem Diskriminator, die gegeneinander antreten. Sie werden zur Generierung von Daten, wie Bildern, verwendet. Bei diesem deep-learning basiertem generativen Model erzeugt ein Generator Proben, die von einem Diskriminator „auf Echtheit“ bewertet werden. Mit Hilfe einer Verlustfunkton und aktualisierter Parameter optimieren sich sowohl der Generator als auch der Diskriminator kontinuierlich.
Radial Basis Function Networks (RBFN)
RBFN verwenden Radialbasisfunktionen zur Transformation der Eingabedaten und sind in der Regel für Mustererkennung und Interpolation geeignet.
Schon den nächsten Urlaub geplant?
Auf maths2mind kostenlos auf Prüfungen vorbereiten!
Nach der Prüfung mit dem gesparten Geld deinen Erfolg genießen.
![Poolliegen Illustration Poolliegen 1050 x 450](/sites/default/files/2021-06/stock.adobe_.com_162533162.jpg)