Heim >Backend-Entwicklung >Python-Tutorial >Deep-Learning-Grundlagen
Es handelt sich um eine Teilmenge des maschinellen Lernens, die sich auf die Verwendung neuronaler Netze mit vielen Schichten konzentriert, um komplexe Muster in Daten zu modellieren und zu verstehen.
Ein neuronales Netzwerk ist eine Art maschineller Lernalgorithmus, der darauf ausgelegt ist, aus Daten zu lernen, indem er die Gewichtungen der Verbindungen zwischen Neuronen basierend auf den Fehlern in ihren Vorhersagen anpasst.
Die Grundeinheit eines neuronalen Netzwerks ist das künstliche Neuron, oft auch nur Neuron genannt. Ein künstliches Neuron ist von den biologischen Neuronen im menschlichen Gehirn inspiriert und für die Durchführung einer kleinen, spezifischen Berechnung im Netzwerk verantwortlich.
1) Jedes Neuron empfängt einen oder mehrere Eingaben, verarbeitet sie (häufig durch Anwendung einer mathematischen Funktion) und erzeugt dann eine Ausgabe.
2) Das Neuron wendet typischerweise eine gewichtete Summe seiner Eingaben an, gefolgt von einer Aktivierungsfunktion, um Nichtlinearität einzuführen. Die Ausgabe dieser Funktion wird dann an die nächste Schicht des Netzwerks weitergeleitet oder dient als endgültige Ausgabe, wenn sie sich in der Ausgabeschicht befindet.
Eingaben: Das Perzeptron empfängt mehrere Eingaben, die jeweils durch eine Gleitkommazahl dargestellt werden.
Gewichte: Jede Eingabe wird mit einem entsprechenden Gewicht multipliziert, das ebenfalls eine Gleitkommazahl ist. Das Gewicht bestimmt die Bedeutung des Inputs im Entscheidungsprozess.
Summierung: Die gewichteten Eingaben werden dann summiert, um einen einzigen Wert zu ergeben.
Schwellenwert (oder Bias):Das Perzeptron vergleicht das Ergebnis der Summierung mit einem Schwellenwert
Ausgabe:
Wenn die Summe größer als 0 (oder der Schwellenwert) ist, gibt das Perzeptron 1 (oder 1 in einigen Versionen) aus.
Wenn die Summe kleiner oder gleich 0 ist, gibt das Perzeptron -1 (oder 0 in einigen Versionen) aus.
(Hinweis: Perzeptrone sind auf die Lösung von Problemen beschränkt, die linear trennbar sind, d. h. sie können nur Daten klassifizieren, die durch eine gerade Linie getrennt werden können)
Die meisten interessanten Probleme, und sogar einige sehr einfache, lagen nachweislich außerhalb der Fähigkeit eines Perzeptrons, sie zu lösen. Diese Periode, die ungefähr zwischen den 1970er und 1990er Jahren dauerte, wurde als KI-Winter bezeichnet
Diese Zeit war geprägt von Enttäuschung über frühe KI-Technologien wie Expertensysteme, die mit Skalierbarkeit und realer Anwendung zu kämpfen hatten. Infolgedessen versiegten die Mittel von Regierungen und Organisationen und die KI-Forschung verlangsamte sich erheblich.
1) Änderung 1:
Dabei handelt es sich um die Hinzufügung eines zusätzlichen Inputs namens Bias. Im Gegensatz zu den anderen Eingaben ist der Bias nicht an externe Daten oder Ausgaben früherer Neuronen gebunden.
Der Bias ist ein konstanter Wert, der direkt zur Summe der gewichteten Eingaben addiert wird. Es fungiert als separater Parameter, den jedes Neuron hat, und hilft dabei, die Ausgabe unabhängig von den Eingabewerten anzupassen.
2) Änderung 2:
Anstatt die Summe einfach mit einem Schwellenwert zu vergleichen und -1 oder 1 auszugeben, können wir die Summe (einschließlich des Bias) durch eine mathematische Funktion weiterleiten. Diese Funktion gibt einen neuen Gleitkommawert aus, der irgendwo innerhalb eines bestimmten Bereichs liegen kann
Aktivierungs-/Mathematik-/Übertragungsfunktion
Es bestimmt, wie „aktiv“ das Neuron basierend auf den empfangenen Eingaben sein wird. Viele Aktivierungsfunktionen führen Nichtlinearität ein und ermöglichen es dem Netzwerk, nichtlineare Beziehungen zu lernen, was für die Lösung komplexerer Probleme von entscheidender Bedeutung ist.
Bsp.
Sigmoid-Funktion: Gibt Werte zwischen 0 und 1 aus. Nützlich für binäre Klassifizierungsprobleme.
Tanh (Hyperbolischer Tangens)-Funktion: Gibt Werte zwischen -1 und 1 aus. Es ähnelt dem Sigmoid, ist jedoch bei 0 zentriert.
ReLU (Rectified Linear Unit): Gibt den Eingang aus, wenn er positiv ist, andernfalls 0.
Leaky ReLU: Ähnlich wie ReLU, ermöglicht jedoch einen kleinen Gradienten ungleich Null, wenn die Eingabe negativ ist, wodurch das Problem des „aussterbenden ReLU“ vermieden wird.
Arten von Aktivierungsfunktionen:
1) Geradenfunktionen
a. Identitätsfunktion:
Die Identitätsfunktion ist eine geradlinige Funktion, bei der die Ausgabe genau der Eingabe entspricht.
f(x)=x
b. Lineare Funktionen:
Eine lineare Funktion ist jede Funktion, die als gerade Linie dargestellt werden kann.
f(x) = mx b
2) Schrittfunktionen
a. Treppenstufenfunktion:
Eine Treppenstufenfunktion besteht aus mehreren linearen Segmenten mit abrupten Änderungen bei bestimmten Eingabewerten. Es zeichnet sich eher durch diskrete Sprünge als durch eine sanfte Kurve aus.
Bsp.
Eine Funktion, die 0 für Eingaben zwischen 0 und knapp unter 0,2, 0,2 für Eingaben von 0,2 bis knapp unter 0,4 usw. ausgibt.
b. Einheitsschrittfunktion:
Gibt 0 für Eingabewerte aus, die unter einem Schwellenwert liegen, und 1 für Eingabewerte, die gleich oder größer als der Schwellenwert sind.
c. Heaviside-Funktion:
3) Stückweise lineare Funktionen
a. ReLU (Rectified Linear Unit)
Funktionsdefinition:
Für x≥0:
f(x)=x
Für x<0:
f(x)=0
b. Undichte ReLU
Funktionsdefinition:
Für x≥0:
f(x)=x
Für x<0:
f(x)=αx (wobei α eine kleine Konstante ist, z. B. 0,01)
c. Parametrisches ReLU (PReLU)
Funktionsdefinition:
Für x≥0:
f(x)=x
Für x<0:
f(x)=αx (wobei α ein lernbarer Parameter ist)
4) Reibungslose Aktivierungsfunktionen
a. Softplus-Funktion
Es handelt sich um eine glatte Näherung der ReLU-Funktion. Es begegnet dem scharfen Übergang bei Null, indem es eine kontinuierliche und differenzierbare Alternative bietet.
Softplus(x) = ln(1 ex)
b. Sigmoidfunktion
Die Sigmoidfunktion komprimiert Eingabewerte in einen Bereich zwischen 0 und 1
σ(x)= 1 / 1 e−x
c. Funktion des hyperbolischen Tangens (tanh)
Die Tanh-Funktion ähnelt der Sigmoidfunktion, drückt jedoch Eingabewerte in den Bereich [−1,1]. Es ist um Null herum zentriert, was es für die Normalisierung von Daten nützlich macht.
tanh(x)=ex e−x
/ex−e−x
Die Softmax-Funktion ist eine entscheidende Komponente bei Klassifizierungsaufgaben innerhalb neuronaler Netze, insbesondere wenn das Ziel darin besteht, Wahrscheinlichkeiten für mehrere Klassen vorherzusagen.
Softmax wandelt die rohen Ausgabewerte (oft als Logits bezeichnet) der Ausgabeneuronen in eine Wahrscheinlichkeitsverteilung über die Klassen um. Jeder Ausgabewert wird in eine Wahrscheinlichkeit umgewandelt, die über alle Klassen hinweg 1 ergibt.
1) Feed-Forward-Neuronales Netzwerk
Ein Feed-Forward-Netzwerk ist eine Art künstliches neuronales Netzwerk, bei dem die Verbindungen zwischen den Neuronen keine Zyklen bilden. Mit anderen Worten: Die Daten fließen in eine Richtung, vom Eingang zum Ausgang, ohne eine Schleife zurück.
Struktur:
Ein Feed-Forward-Netzwerk ist in Schichten organisiert: eine Eingabeschicht, eine oder mehrere verborgene Schichten und eine Ausgabeschicht.
Jedes Neuron empfängt Eingaben von der vorherigen Schicht, wendet Gewichtungen auf diese Eingaben an, summiert sie, fügt einen Bias-Term hinzu und leitet das Ergebnis durch eine Aktivierungsfunktion, um eine Ausgabe zu erzeugen.
Arten von Feed-Forward-Netzwerken:
Einschichtiges Perzeptron:
Die einfachste Form eines Feed-Forward-Netzwerks mit nur einer Eingabeschicht und einer Ausgabeschicht
Ex. Wird für binäre Klassifizierungsprobleme verwendet, bei denen Daten linear trennbar sind.
Mehrschichtiges Perzeptron (MLP):
Es enthält eine oder mehrere versteckte Ebenen zwischen der Eingabe- und Ausgabeebene.
Ex. Es wird bei Aufgaben wie Klassifizierung, Regression und Funktionsnäherung verwendet.
Radial Basis Function (RBF) Netzwerk
Es verwendet radiale Basisfunktionen als Aktivierungsfunktionen in der verborgenen Schicht.
Ex. Es wird zur Funktionsnäherung und Mustererkennung verwendet.
Anwendungen:
Bilderkennung
Spracherkennung
Medizinische Diagnose
Es ist die Anzahl der Schichten, die Daten von der Eingabe zur Ausgabe durchlaufen. Dies sind die Schichten zwischen der Eingabeebene und der Ausgabeebene (ohne Eingabeebene). Die Tiefe des Netzwerks wird durch die Anzahl dieser verborgenen Schichten bestimmt.
Dabei handelt es sich um eine Reihe von Neuronen, die jeweils eine Eingabe von jedem Neuron der vorherigen Schicht erhalten. Wenn eine Schicht aufgebaut ist
Es besteht nur aus dichten Schichten und wird manchmal als vollständig verbundenes Netzwerk bezeichnet.
Nulldimensionales Array
Bsp.
Wenn eine neuronale Netzwerkschicht nur ein Neuron hat, ist ihre Ausgabe ein einzelner Skalarwert. Mathematisch kann diese Ausgabe als nulldimensionales Array dargestellt werden.
Eindimensionales Array (1D-Array)
Bsp.
Wenn eine Schicht in einem neuronalen Netzwerk über mehrere Neuronen verfügt, kann die Ausgabe als Liste oder Vektor von Werten beschrieben werden. Wenn eine Ebene beispielsweise 12 Neuronen enthält, ist die Ausgabe ein 1D-Array mit 12 Elementen.
(Hinweis: Egal wie groß oder kompliziert unser neuronales Netzwerk ist, wenn es keine Aktivierungsfunktionen hat und es sich um lineare Funktionen wie Addition, Subtraktion usw. handelt, entspricht es immer einem einzelnen Neuron.)
Ein allgemeiner Begriff für eine kastenförmige Anordnung von Zahlen mit beliebig vielen Dimensionen. Es umfasst eindimensionale (Vektor), zweidimensionale (Matrix), dreidimensionale (Volumen) und höherdimensionale Arrays.
Das Training neuronaler Netze beinhaltet die Anpassung der Gewichte des Netzes, um Fehler bei Vorhersagen zu minimieren. Dies geschieht durch einen Prozess der iterativen Aktualisierung der Netzwerkparameter, um eine Kosten- oder Verlustfunktion zu reduzieren
Sie sind eine Art neuronales Netzwerk, das für unbeaufsichtigtes Lernen verwendet wird. Die Schlüsselidee besteht darin, die Eingabe in einen niedrigerdimensionalen Code zu komprimieren und dann die ursprüngliche Eingabe aus diesem Code zu rekonstruieren.
Encoder:
Dieser Teil komprimiert die Eingabedaten in eine kompakte Darstellung.
Beispiel: Bei einem Bild könnte der Encoder seine Abmessungen beispielsweise von 128 x 128 Pixel auf einen kleineren Vektor reduzieren, etwa 32-dimensional
Decoder:
Dieser Teil rekonstruiert die ursprünglichen Eingabedaten aus der komprimierten Darstellung.
Beispiel: Der Decoder würde den 32-dimensionalen Vektor nehmen und versuchen, das 128 x 128 Pixel große Bild neu zu erstellen.
Sie sind darauf trainiert, den Unterschied zwischen der Eingabe und der rekonstruierten Ausgabe zu minimieren. Dies erfolgt normalerweise mithilfe einer Verlustfunktion, wie z. B. Mean Squared Error (MSE) für kontinuierliche Daten oder binäre Kreuzentropie für binäre Daten. Ziel ist es, die Gewichte des Netzwerks so anzupassen, dass die Rekonstruktion so nah wie möglich an der ursprünglichen Eingabe liegt.
1) Entrauschen von Autoencodern
2) Variationale Autoencoder
3) Sparse Autoencoder
1) Verlustfrei:
Es handelt sich um eine Art der Datenkomprimierung, bei der die Originaldaten aus den komprimierten Daten perfekt rekonstruiert werden können. Dies bedeutet, dass während des Komprimierungsprozesses keine Informationen verloren gehen und die dekomprimierten Daten mit dem Original identisch sind.
Algorithmen: Verwenden Sie Methoden wie Entropiekodierung und wörterbuchbasierte Techniken. Beispiele hierfür sind:Huffman-Codierung: Codiert häufig vorkommende Symbole mit kürzeren Codes und weniger häufige Symbole mit längeren Codes.Lempel-Ziv-Welch (LZW): Erstellt ein Wörterbuch von Sequenzen aus den Daten und verwendet kürzere Codes für häufige Sequenzen.Lauflängencodierung (RLE): Komprimiert Sequenzen wiederholter Zeichen durch Speichern des Zeichens und seiner Anzahl.Beispiel. PNG,FLAC,ZIP
2) Verlustbehaftet:
Es reduziert die Dateigröße durch das Entfernen einiger Daten, oft auf eine Weise, die für die menschlichen Sinne weniger wahrnehmbar ist, aber zu einem gewissen Verlust an Wiedergabetreue führt. Ziel ist es, eine deutliche Reduzierung der Dateigröße zu erreichen und gleichzeitig eine akzeptable Qualität für den beabsichtigten Verwendungszweck beizubehalten.
Ex. JPEG, H.264 oder HEVC, MP3Transform Coding: Konvertiert Daten in einen anderen Bereich (z. B. Frequenzbereich) und quantisiert sie. Beispiele hierfür sind: Diskrete Kosinustransformation (DCT): Wird bei der JPEG-Bildkomprimierung verwendet. Diskrete Wavelet-Transformation (DWT): Wird bei JPEG 2000 verwendet.
1) Dimensionsreduktion
2) Rauschunterdrückung
Optimierer: Passt Gewichte an, um die Verlustfunktion zu minimieren.
Verlustfunktion: Misst, wie gut die Vorhersagen des Modells mit den tatsächlichen Werten übereinstimmen.
Aktivierungsfunktion: Fügt dem Modell Nichtlinearität hinzu, sodass es komplexe Muster lernen kann.
Bleiben Sie in Verbindung!
Wenn Ihnen dieser Beitrag gefallen hat, vergessen Sie nicht, mir in den sozialen Medien zu folgen, um weitere Updates und Einblicke zu erhalten:
Twitter: madhavganesan
Instagram: madhavganesan
LinkedIn: madhavganesan
Das obige ist der detaillierte Inhalt vonDeep-Learning-Grundlagen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!