Was ist der Turing Test?
- Test mit dem festgestellt werden soll, ob ein Computer ein dem Mensch gleichwertiges Denkvermögen hat - menschlicher Fragesteller führt ohne Sicht- und Hörkontakt, eine Unterhaltung mit zwei ihm unbekannten Gesprächspartnern. - Nach intensiver Befragung beurteilt dieser, ob er die Maschine erkannt hat
Was ist das Moravec’sche Paradoxon
-Aufgaben, die für Menschen intuitiv einfach erscheinen sind für Maschinen schwer zu bewältigen (Wahrnehmung, Soziale Interaktionen, Kreativität) - Abstrakte intellektuelle Aufgaben, die für Menschen schwerer sind für Maschinen einfach nachzuahmen. (Logik, mathematisch Rechnen, Regeln anwenden)
Was ist Moor’s Law?
- Die Anzahl der Transistoren auf einem integrierten Schaltkreis verdoppelt sich etwa alle 2 Jahre - Mehr Transistoren ermöglichen leistungsstärkere Computerchips → Größere Rechenkapazität - KNN profitieren von den Rechenkapazitäten → Effizientes Training Tieferer Netze → Höhere Genauigkeit, schnelleres Training
Wann lernt ein Programm?
Ein Programm lernt:
aus Erfahrung E
in Bezug auf eine Klasse von Aufgaben T
und Leistungsmaß P
Wenn sich seine Leistung bei Aufgaben T, gemessen durch P, mit mehr Erfahrung E, also der Verarbeitung von mehreren Beispielen, verbessert
Was zeichnet supervised learning aus?
Für das Lernen steht ein “gelabelter” Datensatz zur Verfügung
Der Datensatz enthält Trainingsbeispiele, bei denen jedem Beispiel ein Zielwert (Label) zugeordnet ist
Das Ziel besteht darin, die Beziehung zwischen den Trainingsbeispielen und den zugehörigen Zielwerten zu erlernen
Was zeichnet unsupervised learning aus?
Beim Lernen steht “ungelabelter” Datensatz zur Verfügung
Das Ziel ist es, Muster, Strukturen oder Gruppierungen in den Daten zu entdecken, ohne explizite Zielwerte zu verwenden.
Was zeichnet Reinforcement Learning aus?
Kein fester Datensatz
Lernen auf Basis von Interaktion mit der Umwelt und zeitlich verzögerter Belohnung
Ein Agent führt Aktionen in einer Umgebung aus und erhält Belohnungen oder Strafen als Rückmeldung.
Das Ziel des Agenten ist es, eine Strategie zu erlernen, um Aktionen zu wählen, die über die Zeit hinweg maximale Belohnungen akkumulieren.
Was ist der Unterschied zwischen Regression und Classification?
Regression:
Predict a number
Infinitely many possible outputs
Classification
predict categories
small number of possible outputs
Was ist ein MCP Neuron?
Einfaches Neuronenmodell
Rechnung mit boolschen Werten {0, 1}
Jedes Neuron hat mehrere binäre Eingänge (aktiviert oder deaktiviert) und einen einzigen binären Ausgang
Mehrschichtiges MCP-Netzwerk kann jede mögliche logische Funktion berechnen.
Was zeichnet ein Perzeptron aus?
Besteht aus einer Schicht von Threshold logical units (TLU)
Input x ist numerisch und reel
Jede Eingangsverbindung wird mit einem reelwertigen Gewicht w versehen
Kann für binäre Klassifizierung verwendet werden.
Wozu werden Aktivierungsfunktionen genutzt?
Um Backpropagation ausüben zu können:
Backpropagation braucht nicht-lineare Aktivierungsfunktion um funktionieren zu können.
Es wird ein Gradient != Null gebraucht um sich bewegen zu können
Grund: Mehrere verkettete lineare Transformationen ergeben eine lineare Transformation!
Ohne Nichtlinearität zwischen den Schichten ist also selbst ein tiefes neuronales Netz äquivalent zu einer einzelnen Schicht!
Was beschreibt der Begriff “Deep Learning”?
Künstliches neuronales Netz mit mehreren Schichten, welches Lernfähig ist
Hierfür muss dieses Nicht-Linearitäten beinhalten
Durch hierarchische Schichten wird erzwungen, dass immer höherwertige und abstraktere Repräsentationen gelernt werden
Wieso lohnt es sich tiefe Netzwerke zu trainieren?
Tiefe Netze haben eine viel höhere Parametereffizienz als flache Netze
Bessere Leistung: Schnellere Konvergenz und bessere Generalisierung
Real-World-Daten sind oft hierarchisch strukturiert
Niedrige Schichten modellieren Strukturen auf niedriger Ebene (z. B. Liniensegmente, Ausrichtungen)
Intermediate Schichten kombinieren diese Low-Level-Strukturen zu Strukturen (z.B. Kreis, Quadrat)
Hohe Schichten kombinieren diese Strukturen zu Objekten (z. B. Objekte, Rad, Baum…)
Welche Rolle spielt die Initalisierung der Gewichte?
Die Initialisierung der Gewichte ist von entscheidender Bedeutung für ein erfolgreiches Training
kann helfen, das Problem des verschwindenden Gradienten anzugehen, indem sie sicherstellt, dass die Gewichtswerte so gewählt werden, dass der Gradient während des Trainings nicht zu schnell abnimmt
Break the Symmetry: Gewichte müssen mit unterschiedlichen Werten Initialisiert werden, da sonst die Kapazität des Netzwerks verschiedene Muster zu erfassen und zu lernen, eingeschränkt wird.
Jedoch muss auch bei der Zufälligen Initialisierung der Gewichte darauf geachtet werden, dass diese so verteilt sind, dass die Gradienten in jeder Schicht groß genug sind, damit während der Backpropagation eine ausreichend große Aktualisierung der Gewichte stattfindet.
Welche Ansätze gibt es Gewichte zu initalisieren?
Die Gewichte müssen nach den folgenden Funktionen zufällig initialisiert werden:
Was wird durch Standartisierung der Daten erreicht?
Durch die Standartisierung wird eine Standardabweichung von 1 und ein Mittelwert von 0 erreicht
Wieso benutzen wir Feature Scaling und was bringt es uns?
Unterschiedliche Skalen führen zu unterschiedlichen Schrittgrößen für jedes Merkmal
Merkmale mit hohen Größenordnungen werden stärker gewichtet als solche mit kleinen Größenordnungen
Verbesserte Konvergenzgeschwindigkeit, da die Aktualisierung der Gewichtung bei kleinen Bereichen schnell und bei großen Bereichen langsam abläuft
Standartisierung: Subtrahiert den Mittelwert und dividiert durch die Standardabweichung, so dass die resultierende Verteilung eine einheitliche Varianz hat.
Min-Max-Scaling: Die Werte werden verschoben und neu skaliert, so dass sie im Bereich von 0 bis 1 liegen
Was ist der Grund höhere Ableitungen beim Gradientenabstieg zu verwenden?
Kritischer Punkt: Punkt in einer Funktion, an dem die Ableitung der Funktion gleich null ist. An einem solchen Punkt kann die Funktion ein Minimum, ein Maximum oder ein Sattelpunkt sein.
→ Gradienten Abstieg würde hier nicht mehr weiter kommen!
Welche Möglichkeiten gibt es Sattelpunkte zu vermeiden?
Hesse Matrix, Schmiegeparabel und Newton Optimierung.
Was ist die Hesse-Matrix und was ist ihr Zweck?
- Matrix, die die zweiten partiellen Ableitungen einer Funktion enthält.
- Gibt Aufschluss über die Krümmung der Funktion an einem bestimmten Punkt
- Kann bei der Untersuchung von Extremstellen hilfreich sein
- Alle Eigenwerte Positiv –> Lokales Minimum
- Gemische Vorzeichen –> Sattelpunkt
Was bezweckt die Schmiegeparabel?
- In der Nähe eines Minimums einer Funktion kann die Form der Funktion durch eine parabelförmige Kurve, (→ Schmiegeparabel), approximiert werden.
- Dies erleichtert die Berechnung von Gradienten und die Bestimmung der optimalen Schrittweite im Abstieg.
Was bezweckt die Newton Optimierung?
- Optimierungsalgorithmus, der die lokale Krümmung einer Funktion nutzt, um den nächsten Schritt im Optimierungsprozess zu bestimmen.
- Verwendet das Konzept der Schmiegeparabel
- Sie verwendet die inverse Hess-Matrix, um den Abstieg effizienter zu gestalten.
→ Höhere Ableitungen sind jedoch nur für relativ kleine Probleme sinnvoll aufgrund der hohen Laufzeit-Komplexität
Wie müssen die Gewichte w verändert werden, damit der Fehler L kleiner wird?
Die Ableitung der Fehlerfunktion L bezüglich eines speziellen Gewichts w (=Partielle Ableitung) zeigt in die Richtung, in der L größer wird
→ Squared Error als Fehlerfunktion. Faktor ½ vereinfacht die spätere Rechnung (Nach partieller Ableitung)
Was macht das Gradienten Abstiegs Verfahren?
Beim Gradienten Abstiegs Verfahren werden die Model-Parameter (Gewichte w) schrittweise optimiert, um die Verlustfunktioin über die Trainingsmenge zu minimieren.
Initalisierung der Gewichte
→Break the Symmetrie - Initialisierung der Verbindungsgewichte aller versteckten Schichten nach dem Zufallsprinzip - Wenn alle Gewichte identisch sind, Beeinflusst Gradient Descent (Backpropagation) diese genau gleich - Obwohl das Modell 100 Neuronen pro Schicht hat, verhält es sich so, als hätte es nur ein Neuron pro Schicht! Warum: Sind alle Gewichte in einer Schicht identisch, ist ebenfalls die partielle Ableitung für jede Verbindung identisch. Daher erhalten alle Gewichte denselben Gradienten und damit dieselbe Anpassung. Das bedeutet, dass alle Neuronen genau das Gleiche lernen
Training bis zum Abbruchkriterium
Wähle zufällige Trainingsinstanz x 2.2. Verarbeite x vorwärts durch das Netz → 𝑦̂ 2.3. Berechne die Fehlerfunktion, um 𝑦̂ mit Zielwert 𝑦 zu vergleichen → 𝐿 2.4. Berechnen des Fehlerbeitrags jedes Modelparameters (Gewichte) → 𝛻𝑤𝐿 2.5. Aktualisiere Gewichte → 𝑤𝑛+1 = 𝑤𝑛 − 𝜂 ∗ 𝛻𝐿(𝑤𝑛 )
Wieso wird das Crossvalidation Verfahren angewendet und was bringt es?
Je öfter der Validierungsdatensatz für Entscheidungen genutzt wird, desto mehr „leckt“ er ins Training (=data leakage). Das heißt, dass wir das Model mit steigenden Iterationen ebenfalls auf die Validierungsdaten überanpassen!
Crossvalidation teilt den verfügbaren Trainingsdatensatz in mehrere Teile, um das Modell auf verschiedene Datensätze zu trainieren und zu testen!
-> Bessere Schätzung der Modellleistung
Was zeichnet Lokale Minima aus?
Punkte in der Fehlerlandschaft, an denen der Fehler niedriger ist als in den nahen Nachbarbereichen
Jedoch größer als der niedrigste Fehler im gesamten Raum (Globales Optimum)
Erschweren das Training, da Optimierungsalgorithmen darin „stecken“ bleiben, anstatt das globale Minimum zu finden.
Was ist das Model Identigiability Problem?
Das Problem besteht darin, dass verschiedene Konfigurationen von Modellparametern (Gewichten) zu identischen Lösungen führen. (d.h. gleicher Output) z.B. Weil Gewichte Skaliert werden können → Austauschbare Lösungen
Was beschreibt die Weight Space Symmetrie und was können Ursachen dessen sein?
Verschiedene Konfigurationen von Modellparametern (Gewichten) beschreiben aufgrund von Symmetrien das gleiche Netzwerk. → Unterschiedliche Lösungen
Durch Symmetrien und Austauschbarkeit kann es zu vielen äquivalenten Lösungen im Gewichtsraum kommen, die einen identischen Fehler aufweisen. Dies führt dazu, dass der Fehlerlandschaft des Netzwerks viele flache Bereiche aufweist, in denen der Fehler lokal minimiert ist, jedoch nicht das globale Minimum darstellt.
Ist das Problem von lokalen Minima in der Fehlerlandschaft ein großes Problem?
Erstaunlicherweise ist das Problem der lokalen Minima nicht so schlimm wie vermutet.
Die meisten lokalen Minima führen nur zu einem minimal größeren Fehler als das globale Optimum
Jedoch ist handwerkliches Geschick nötig, um Gradientenabstieg auf komplexen Fehlerlandschaften anzuwenden
Was sind merkmale des Batch Gradient Descent Verfahrens?
Verwendet bei jedem Schritt den gesamten Batch Trainingsdaten
Die Gewichte werden erst geändert, wenn der gesamte Datensatz verarbeitet wurde.
Skaliert gut mit der Anzahl an Merkmalen (Größe des Eingabevektors)
Langsam bei sehr großen Trainingssätzen (Anzahl der Stichproben)
Was sind merkmale des Stochastic Gradient Descent Verfahrens?
Verwendet bei jedem Schritt nur eine einzige Instanz
Wählt eine zufällige Instanz aus der Trainingsmenge und berechnet für diese Instanz die Gradienten.
Aufgrund der Zufälligkeit können einige Instanzen mehrmals pro Epoche ausgewählt werden, während andere möglicherweise gar nicht ausgewählt werden.
Die Zufälligkeit hilft, um lokalen Optima zu entgehen,
Zufälligkeit führt dazu, dass sich der Algorithmus nie auf dem globalen Minimum einpendeln kann
Skaliert gut mit der Anzahl der Stichproben
Gut für große Datensätze, da nur eine Instanz in den Speicher geladen werden muss
Was sind merkmale des Mini-Batch Gradient Descent Verfahrens?
Mischung zwischen beiden extremen Varianten
In jedem Schritt wird der Gradient anhand einer kleinen Stichprobenmenge (Mini-Batch) berechnet.
Wie ist das Konvergenzverhalten beim Batch GD und beim Mini-Batch GD und Stochastischer GD?
Batch GD:
nimmt sanft ab, da es den Durchschnitt über alle Instanzen nimmt- Konvergiert zum Minimum und bleibt dort stehen
Mini-Batch GD und Stochastischer GD:
Springen auf und ab, nehmen nur im Durchschnitt ab, da nur 1 oder eine kleine Teilmenge von Instanzen berücksichtigt wird
SGD und Mini-Batch GD schwanken um das Minimum
Was ist Bias und Variance?
Bias:
Fehler aufgrund falscher Annahmen (z. B. die Annahme, dass die Daten linear sind, obwohl sie quadratisch sind)
Ein Model mit hohem Bias underfittet
Variance:
Fehler aufgrund der Empfindlichkeit des Modells gegenüber kleinen Abweichungen in den Trainingsdaten
Bei einem Modell mit vielen DoF ist die Wahrscheinlichkeit groß, dass es eine hohe Varianz aufweist und die Trainingsdaten overfitted
Was ist das Ziel vom Training? Was hat Generalisierung damit zu tun?
Im Training wird der Trainingsfehler minimiert. Dieser ist aber nur beschränkt Aussagekräftig
Mit einem ausreichend komplexen Modell ist es i.d.R. einfach möglich, einen Trainingsfehler von ≈0% zu erreichen → Overfitting
Tatsächlich soll der Fehler auf einem unbekannten Testdatensatz minimiert werden, also generalisiert sein
Hohe Bias = Hohe Fehler auf den Trainingsdaten
Hohe Varianz = Overfitting, Schlechte Generalisierung
Was ist der Unterschied zwischen Optimierung und Lernen?
Lernen bedeutet, dass das Modell Muster erfassen soll und sich an die der Gesamtheit der Daten unterliegenden Verteilung anpassen soll
Lernen bedeutet nicht die betrachtete Stichprobe der Trainingsdaten auswending zu lernen
Was ist die Kapazität im ML?
Die Kapazität bestimmt, wie gut es sich ein Modell an eine große Menge von Funktionen anpassen kann
Die effektive Kapazität kann dabei kleiner sein, da der eingesetzte Lern-Algorithmus nicht alle Lösungen erreichen kann
Wie kann die Kapazität des Netzwerks erhöht werden?
-> Mehr freie Parameter
Mehr Layer
Mehr Neuronen pro Layer
Nicht-Linearität in Aktivierungsfunktionen
Reduzierung Regularisierung
Nach welchen Kriterien sollte die Kapazität des Netzwerks gewählt werden?
Die Kapazität muss so gewählt werden, dass sie ausreichend hoch ist, um komplexe Muster abzubilden aber gleichzeitig nicht zu hoch um Overfitting zu vermeiden.
Es muss ein Gleichgewicht zwischen Modelleistung und Verallgemeinerungsfähigkeit erreicht werden
Welches Vorgehen kann angewendet werden um die optimale Kapazität des Netzwerks zu gewährleisten?
Vorgehen:
1. Zielwert für zu erreichende Genauigkeit/Fehler festlegen
2. Trainingsgenauigkeit zu Gering → Kapazität des Modells erhöhen
3. Trainingsgenauigkeit zu hoch bzw. steigender Fehler für Testdatensatz → Kapazität des Modells verringern
→ Weitere Einflüsse wie Lernrate und andere Hyperparameter nicht vergessen, da diese auch einen signifikanten Einfluss auf die Modellleistung und die Generalisierungsfähigkeit des Modells haben.
Wozu wird die Regularisierung genutzt und was ist das Ziel?
Dient dazu Overfitting zu reduzieren, indem zusätzliche Bedingungen oder Strafen in den Trainingsprozess eingeführt werden, um die Komplexität des Modells zu kontrollieren.
→ Ziel von Regularisierung ist es, nicht nur auf dem Trainingsdatensatz gute Ergebnisse zu erzielen, sondern auch auf ungesehenen Daten (Generalisierungsfähigkeit)
Wieso macht es Sinn Generalisierung selbst bei passender Kapazität zu verwenden?
Regularisierung verringert nicht die Kapazität, sondern „erschwert“ es dem Lernalgorithmus nur diese auszunutzen
Bestimmte Lösungen werden somit Attraktiver bzw. weniger Attraktiv
Wie funktioniert das Early Stopping?
→ Free Lunch
Training beenden, sobald der Validierungsfehler ein Minimum erreicht
Wenn der Validierungsfehler nicht mehr abnimmt, sondern wieder ansteigt, hat das Modell begonnen zu Overfitten
Was machen Parameter Norm Penalties?
Hinzufügen eines Regularisierungsterms zur Verlustfunktion
Zwingt Lernalgorithmus, sich nicht nur an die Trainingsdaten anzupassen, sondern auch die Modellgewichte so klein wie möglich zu halten
Was ist Data Augmentation und was bringt es?
Data Augmentation ist die künstliche Variationen der Trainingsdaten.
Mehr Daten helfen bei Verbesserung der Generalisierungsfähigkeit
Rauschen, Variationen und Transformationen helfen dabei, das Modell robuster gegenüber realen Variationen zu machen
Für Bilddaten:
Verschieben, Drehen, Vergrößern, Spiegeln
Blur, Farben ändern, Filter
Für nicht Bilddaten:
Hinzufügen von leichtem Rauschen
Geringfügigen Transformationen
Was zeichnet sich das Dropout Verfahren aus?
In jedem Schritt hat jedes Neuron eine Wahrscheinlichkeit p, während des Trainings vorübergehend ignoriert zu werden ("Dropped out", „ausgeknipst“)
Nur im Training, für Vorhersagen werden keine Neuronen herausgenommen
→ Neigt dazu, robustere Netze mit besserer Generalisierung zu erstellen
Wieso erzeugt das Dropout Verfahren Netze mit besserer Generalisierung?
Keine Co-Adaption im Netzwerk
Vermeidet, dass sich das Modell nur auf wenige Merkmale verlässt
Führt somit dazu, dass alle Eingaben berücksichtigt werden
Was zeichnet das Co-Adaption aus?
Gibt es dazu ein Beispiel?
Es ist möglich, dass ein Neuron oder eine gewichtete Verbindung einen völlig falschen Wert lernt.
Die anderen Verbindungen lernen dann gegebenenfalls, diesen zu kompensieren.
Der Fehler ist hier also nicht spürbar!
Durch Dropout können solche fehlerhaften Verbindungen bemerkt werden
Beispiel:
Bei der Ziffernerkennung lernt ein Neuron, dass ein Bild mit einem Pixel in der rechten oberen Ecke immer eine 9 ist (das mag sogar für die Trainingsdaten stimmen, lässt sich aber nicht verallgemeinern). Mit Dropout kann dieser Fehler erkannt werden, da das Neuron von Zeit zu Zeit abgeschaltet wird.
Was zeichnet das Batch Normalisation Verfahren aus?
Hinzufügen eines Layers vor oder nach der Aktivierungsfunktion nach jeder Versteckten Schicht
Null-Zentrierung und Normalisierung jeder Eingabe und anschließende Skalierung und Verschiebung der Ergebnisse
Parameter für Skalierung und Verschiebung können während des Trainings erlernt werden
→ Das Modell lernt die optimale Skalierung und den optimalen Mittelwert für die Eingaben jeder Schicht.
Wie ist der Ablauf des Batch Normalisation Verfahrens?
1. Schätzen des Mittelwerts der Eingaben durch Berechnung des Mittelwerts des aktuellen Batches 𝜇𝐵 = 1 𝑚𝐵 ∑𝑥 (𝑖) 𝑚𝐵 𝐼=1
2. Schätzung der Standardabweichung der Eingaben durch Berechnung der Standardabweichung des aktuellen Batches 𝜎𝐵 2 = 1 𝑚𝐵 ∗∑(𝑥 (𝑖) − 𝜇𝐵) 2 𝑚𝐵 𝑖=1
3. Normierung und Skalierung der Eingabewerte für alle Beispiele i = 1, …., m
𝑥̂ (𝑖) = 𝛾 ∗ 𝑥 (𝑖) − 𝜇𝐵 √( 𝜎𝐵 2 ) + 𝛽
𝛾 & 𝛽 werden während der Backpropagation gelernt
𝜇 & 𝜎 warden für jeden Batch berechnet
Welche Vorteile hat die Batch Normalisierung?
Wirkt wie ein Regularisierer
Kein verschwindender Gradient selbst bei sättigenden Aktivierungsfunktionen
Weniger empfindlich auf Gewichtsinitialisierung
Ermöglicht die Verwendung größerer Lernraten, was dem Algorithmus hilft, schneller zu konvergieren
Wodurch kommt die regularisierende Wirkung im Batch Normalisation Verfahren?
Die Eingaben jeder Schicht werden auf Grundlage des Mittelwerts und der Standardabweichung des Mini-Batches normalisiert werden.
Da jede Mini-Batch zufällig aus den Trainingsdaten gezogen wird, führt der Normalisierungsprozess zu leichten Schwankungen in den Werten der Eingaben. Diese Schwankungen wirken wie eine Art Rauschen, das verhindert, dass sich das Netzwerk zu sehr auf bestimmte statistische Eigenschaften der Eingabedaten verlässt, wodurch die Verallgemeinerung verbessert wird.
Was zeichnet das Adversariale Training aus?
Es werden künstlich "adversarische" Beispiele erzeugt und während des Trainingsprozesses verwendet
„adversarischen“ Beispiele sind absichtlich leicht veränderte Versionen der Originaldaten, die das Modell dazu bringen sollen, fehlerhafte Vorhersagen zu treffen
so soll das Modell robuster und widerstandsfähiger gegenüber Störungen gemacht werden
Bzw. soll so die Robustheit und Angreifbarkeit von Netzwerken untersucht werden.
Was zeichnet die Fast Gradient Sign Method (FGSM) aus?
Gradient der Kostenfunktion in Bezug auf die Eingabedaten wird verwendet, um die Richtung des Gradienten zu bestimmen
Mit 𝑠𝑔𝑛(∇𝑥 𝐽(𝑤, 𝑥, 𝑦)) wird also „quasi“ nur das Vorzeichen der Gradienten bestimmt
Angepasst werden die einzelnen Werte von x mit +𝜖 bzw. −𝜖
𝑥𝑡+1 = 𝑥𝑡 + 𝜖 ∗ 𝑠𝑔𝑛(∇𝑥 𝐽(𝑤, 𝑥, 𝑦))
𝜖 : kleiner Wert, der die Stärke der Störung steuert
Was zeichnet die Fast Gradient Value Method (FGVM) aus?
Gradient der Kostenfunktion in Bezug auf die Eingabedaten wird verwendet, um eine Störung zu erzeugen. 𝑥𝑡+1 = 𝑥𝑡 + 𝜂 ∗ ∇𝑥 𝐽(𝑤, 𝑥, 𝑦)
Was zeichnet die Projected Gradient Descent (PGD) Methode aus?
Gradientenaufstieg wird iterativ auf die Eingabedaten angewendet
Die hinzugefügte Störungen in jedem Schritt ist so begrenzt, dass sie innerhalb eines bestimmten zulässigen Bereichs bleibt
Was sind Hyperparameter beim Machine Learining?
Hyperparameter sind Parameter, die vor dem Training eines maschinellen Lernmodells festgelegt werden müssen und nicht automatisch durch das Lernalgorithmus selbst gelernt werden. Im Gegensatz dazu werden die Gewichtungen der Merkmale im Modell während des Trainingsprozesses angepasst.
Beispiele sind Lernrate, Batch-Größe etc.
Was zeichnet die Lernrate aus?
Die Richtung der Gradienten ist bei großer Batchgröße bzw. im Durchschnitt bei SGD zuverlässig
Der Betrag hat jedoch weniger Aussagekraft
Deshalb wird die Schrittweite mit der Lernrate 𝜂 skaliert
Wie wirkt sich die Lernrate auf das Training aus?
Die Lernrate hat einen Einfluss auf die Trainingsgeschwindigkeit und den Trainingserfolg.
Eine zu geringe Lernrate führt zu geringen Gewichtsanpassungen, was eine lange Trainingszeit zur Folge hat. Dennoch kann in der Regel das Optimum gefunden werden, wenn dem Trainingsprozess ausreichend Zeit gegeben wird.
Ist die Lernrate zu hoch, werden die Gewichte überkorrigiert, d.h. zu stark verändert. Dies hat zur Folge, dass die Werte der Verlustfunktion oszillieren und nicht konvergieren, weil die aktualisierten Gewichte deutlich zu groß oder zu klein sind.
Was zeichnet das Momentum aus?
Die Anpassung der Gewichte erfolgt durch Addition des momentum Vektors mit den aktuellen Gewichten
Der Momentum Vektor beachtet vorherige Gradienten, um den Lernprozess zu beschleunigen
Hierfür wird von einem Prozentsatz des vorherigen Momentum-Vektors v der aktuelle berechnete Gradient ∇𝑥 𝐽(𝑤, 𝑥, 𝑦) subtrahiert.
𝑣𝑡 = 𝛼𝑣𝑡−1 − 𝜖 ∗ ∇𝑥 𝐽(𝑤, 𝑥, 𝑦)
𝑤𝑡+1 = 𝑤𝑡 + 𝑣𝑡
Was zeichnet das Nestrov Momentum aus?
Der Gradient ∇𝑥 𝐽(𝑤̃, 𝑥, 𝑦) wird für die Zwischenposition 𝑤̃ = 𝑤 + 𝑣 berechnet
𝑤̃𝑡 = 𝑤𝑡 + 𝛼𝑣𝑡−1
𝑣𝑡 = 𝛼 ∗ 𝑣𝑡−1 + 𝜖 ∗ ∇𝑥 𝐽(𝑤̃𝑡 , 𝑥, 𝑦)
Idee Momentum: Wenn ich schon viele Schritte in diese Richtung gemacht habe, gehe ich davon aus, dass die Richtung gut ist und mache mehr Schritte
Wie sollte die Lernrate angepasst werden und warum?
Tendenziell: Lernrate am Anfang groß und wird immer kleiner.
Warum?
Am Anfang kann man davon ausgehen man ist weit vom Optimum entfernt.
Man macht große Schritte hin zum Optimum.
Am Ende will man aber vermeiden, über das Ziel zu Springen (Bounc around Minima)
Deshalb will man am ende kleinere Schritte bei der Optimierung machen!
→ Erst grob annähern mit großer Lernrate, dann mit kleinen Schritten zum Minima
Was ist AdaGrad?
Verfahren, das die Lernrate für jeden Parameter auf der Grundlage vorheriger Gradienten anpasst, so dass bei häufig auftretenden Merkmalen kleinere Aktualisierungen und bei seltenen Merkmalen größere Aktualisierungen vorgenommen werden
g = ∇𝑥 𝐽(𝑤, 𝑥, 𝑦)
𝑟 = 𝑟 + 𝑔 ∙ 𝑔
∇𝑤 = − 𝜖 𝛿 + √𝑟 ∙ 𝑔
𝑤 = 𝑤 + ∇𝑤
(∙) → Komponentenweise Multiplikation
𝛿 → Kleine Konstante um Division durch 0 zu vermeiden
Welche Probleme gibt es beim AdaGrad?
Die Werte in Vektor r können nur wachsen
Wird r größer wird Änderungsvektor ∇𝑤 kleiner
Somit können die Schritte nur kleiner werden
Was zeichnet RMSProp aus?
Löst das Problem der schnell abnehmenden Lernrate in AdaGrad
Nutzt einen exponentiell abklingenden Durchschnitt der quadratischen Gradienten
Ermöglicht es dem Algorithmus, frühe Gradienten zu vergessen und sich auf die zuletzt beobachteten Gradienten zu konzentrieren
𝑟 = 𝜌 𝑟 + (1 − 𝜌)𝑔 ∙ 𝑔
Was zeichnet den ADAM Algorithmus aus?
Adam kombiniert die Vorteile der Momentum
und RMSProp-Optimierungsalgorithmen.
Momentum glättet Schwankungen im Optimierungsprozess, indem es den vorherigen Gradienten nutzt.
RMSProp passt die Lernrate basierend auf der Größe der vorherigen Gradienten an.
Adam berechnet exponentiell gleitende Durchschnitte der Gradienten und ihrer Quadrate, um adaptiv die Lernraten (erstes und zweites Moment des Gradienten) für jedes Gewicht im neuronalen Netz anzupassen.
Initialisierung: 𝑠 = 0, 𝑟 = 0,𝑡 = 0
𝑠𝑡 = 𝜌1 ∗ 𝑠𝑡−1 + (1 − 𝜌1 ) ∗ 𝑔𝑡
𝑟𝑡 = 𝜌2 ∗ 𝑟𝑡−1 + (1 − 𝜌2 ) ∗ 𝑔𝑡 ∙ 𝑔𝑡
𝑡 = 𝑡 + 1
𝑠̂𝑡 = 𝑠𝑡/(1 − 𝜌1 𝑡 )
𝑟̂𝑡 = 𝑟𝑡/(1 − 𝜌2 𝑡 )
∇𝑤𝑡 = − 𝜖∗ 𝑠̂𝑡 𝛿+√𝑟̂𝑡
𝑤𝑡 = 𝑤𝑡−1 + ∇𝑤𝑡
𝑔𝑡 : gradient at time t
𝑠̂𝑡 : Enthält Momentum
𝑟̂𝑡 Normierung ähnlich RMSProp
𝜖 the learning rate
𝛿: small constant used to prevent division by zero.
Was ist Unsupervised Learining?
Keine expliziten Zielvorgaben für Datenpunkte.
Hauptziel: Muster und Strukturen in Daten erkennen.
Beispiele: K-means Clustering zur Gruppierung ähnlicher Daten. Principal Component Analysis (PCA) zur Dimensionsreduktion.
Generative Adversarial Networks (GANs) zur Bildgenerierung.
Was ist unüberwachtes Vor-Training?
Vor-Training von Modellen auf großen, unbewachten Datensätzen.
Gewinnung allgemeiner Merkmale aus den Daten.
Feinabstimmung auf spezifische Aufgaben mit beschrifteten Daten.
Beispiele: Vor-Training eines Sprachmodells auf großen Textkorpora vor der Feinabstimmung auf Übersetzungsaufgaben. Verwendung von vor-trainierten Bildmerkmalen in der Bildklassifizierung.
Was sind Beispiele von Unsupervised Modellen?
GANs
Autoencoder
Was zeichnet Self-Supervised Learining aus?
Verwendung von Aufgaben, die aus den Daten selbst abgeleitet werden können.
Automatische Generierung von Labeln aus Daten.
Reduzierte Abhängigkeit von teuren, manuellen Beschriftungen.
Beispiele: Vorhersage des nächsten Wortes in einem Satz für Sprachverstehen.
→ Lasse Wörter in Sätzen weg und nutze diese als Label
Was ist Backpropagation?
Backpropagation ist eine effiziente Methode zur Berechnung von Gradienten in mehrschichtigen neuronalen Netzwerken.
→ Backpropagation selbst ist kein Optimizer, sondern lediglich eine Methode, die es ermöglicht, Gradienten effizient zu Berechnen.
Wie funktioniert Backpropagation?
1. Vorwärts-Pass: Die Eingabedaten durchlaufen das Netzwerk, und die Netzausgabe wird berechnet.
2. Berechnung des Fehlers: Der Fehler des Netzwerks wird anhand der Verlustfunktion ermittelt.
3. Backward Pass: Beginnend beim Output Layer wird der Fehlerbeitrag für jeden Parameter mit Hilfe der partiellen Ableitung des Fehlers bezüglich des Parameters bestimmt.
Wie läuft der Bachward-Pass?
1. Fehlerbeiträge der Output-Verbindungen: Mit Hilfe der Kettenregel wird der Beitrag des Fehlers jeder Ausgangsverbindung zur Gesamtfehlerfunktion berechnet.
2. Fehlerbeiträge der verdeckten Schichten: Durch erneute Anwendung der Kettenregel werden die Fehlerbeiträge der Verbindungen in der vorherigen Schicht ermittelt.
3. Gradientenabstieg: Die Verbindungsgewichte werden unter Verwendung der berechneten Fehlergradienten angepasst.
Welche 2 Kettenregeln werden bei der Ableitung der Loss-Funktion verwendet?
1. Äußere Ableitung der Loss-Funktion (Loss Function Gradient): Zuerst wird die äußere Ableitung der Loss-Funktion in Bezug auf die Ausgabe des Netzwerks berechnet. Dies geschieht durch die Anwendung der Kettenregel, um zu verstehen, wie sich eine Änderung in der Ausgabe auf den Verlust auswirkt.
2. Ableitung der Aktivierungsfunktion (Activation Function Derivative): Anschließend wird die Ableitung der Aktivierungsfunktion in Bezug auf die gewichtete Summe berechnet. Dies geschieht erneut mithilfe der Kettenregel, um zu verstehen, wie sich eine Änderung der gewichteten Summe auf die Aktivierung auswirkt.
Was ist der Vanishing Gradient und der Exploding Gradient?
Vanishing Gradient: In tieferen Netzwerken können Gradienten in den früheren Schichten aufgrund wiederholter Ableitungen sehr klein werden. Dies führt dazu, dass Gewichtsanpassungen kaum stattfinden und das Netzwerk nicht richtig lernt.
Exploding Gradient: Umgekehrt können Gradienten auch exponentiell ansteigen und dazu führen, dass Gewichtsanpassungen zu groß werden, was die Stabilität des Lernprozesses beeinträchtigt.
Was ist eine Lösung für den Exploding Gradient?
Gradient Clipping: Gradient wird auf einen Schwellwert begrenzt
Was ist beim Autoencoder der Encoder?
Der Encoder bildet die Eingabedaten auf einen Raum mit weniger Dimensionen ab, welcher die relevante und wichtigen Strukturen der Daten repräsentiert.
Was ist beim Autoencoder der Decoder?
Der Decoder übersetzt den komprimierten Code aus dem Latent Space zurück in den ursprünglichen Datenraum, um die ursprünglichen Daten zu rekonstruieren.
Was ist beim Autoencoder der Latent Space?
Der Latent Space ist der niedrigdimensionale Raum, in den der Encoder die Daten abbildet.
Er enthält kompakte Repräsentationen, die wichtige Merkmale der Daten erfassen.
Diese Repräsentationen können für Analyse, Generierung und Datenvorverarbeitung verwendet werden.
Was beschreiben beim Autoencoder die Begriffe Kontinuität und Vollständigkeit?
Kontinuität bedeutet, dass zwei naheliegende Punkte nach dem decodieren nicht komplett verschieden sein sollten, sondern einen ähnlichen Output haben sollten.
Vollständigkeit bedeutet, dass ein ein zufällig ausgewählter Punkt im latenten Bereich auch zu einem sinnvollen Output führen sollte. Somit sollte es keine „Lücken“ geben, sondern es sollte einen fließenden Übergang bilden.
Was ist die Idee von Variational Autoencodern (VAE)?
Die Idee hinter einem VAE ist es, einen Datenraum in einen strukturierten latenten Raum zu projizieren, in dem jeder Punkt eine sinnvolle Darstellung der Daten repräsentiert. Durch das Erlernen einer Wahrscheinlichkeitsverteilung über diesen latenten Raum kann der VAE neue Datenpunkte generieren, indem er zufällige Latent-Codes in den Datenraum zurücktransformiert.
Woraus besteht ein Variational Autoencoder und was macht er?
Er besteht aus einem Encoder, der eine Wahrscheinlichkeitsverteilung über den latenten Raum erstellt, und einem Decoder, der Daten aus dieser Verteilung generiert.
Führt stochastische Komponente ein, um Daten im latenten Raum zu modellieren.
Wie ist die Funktionsweise eines Variational Autoencoder?
Encoder projiziert die Eingabedaten in einen strukturierten latenten Raum
Der Decoder entnimmt dem Latenten Raum einen zufälligen Code z und generiert daraus ein Datenbeispiel
ABER: Backpropagation kann nicht durch einen zufälligen Knoten fließen, wodurch kein Training Möglich wäre → Reparametrisierungstrick
Was macht der Encoder beim Variational Autoencoder?
Der Encoder mappt Eingabedaten in zwei Vektoren:
Einen Vektor für den Mittelwert
Einen Vektor für die Standardabweichung
Diese beiden Vektoren definieren eine Normalverteilung im latenten Raum. Dies ist notwendig, um den Reparametrisierungstrick anzuwenden.
Was ist beim Variational Autoencoder der Reparametrisierungstrick?
Generieren der latenten Variablen z mit einer Funktion von 𝜀, 𝜇 und 𝜎.
𝜀 kann als zufälliges Rauschen betrachtet werden, das zur Aufrechterhaltung der Stochastizität von z dient.
𝜀 wird aus einer Standardnormalverteilung generiert.
Während der Backpropagation können 𝜇 und 𝜎. aus der Decoderausgabe abgeleitet werden.
Was ist beim Variational Autoencoder der Decoder?
Der Decoder nimmt den zufälligen Latent-Code und generiert Datenpunkte im ursprünglichen Raum.
Verlustfunktion:
Setzt sich aus zwei Teilen zusammen:
Der Rekonstruktionsverlust zielt darauf ab, eine genaue Rekonstruktion der Daten zu erreichen,
Der Regularisierungsterm beeinflusst die Struktur des latenten Raums, um die erzeugte latente Verteilung näher an eine Standardnormalverteilung zu bringen.
Indem diese beiden Terme kombiniert werden, lernt der VAE, sinnvolle latente Repräsentationen zu erstellen und gleichzeitig datengenerierend zu sein.
Was zeichnet einen Conditional Autoencoder (CVE) aus?
CVAE ist eine Art von VAE, die eine conditional Variable sowohl in den Encoder als auch in den Decoder einbezieht.
Der Encoder nimmt die Eingabedaten und die conditional Variable und erzeugt eine latente Repräsentation, die die relevanten Merkmale der Daten unter der Bedingung erfasst.
Der Decoder nimmt die latente Repräsentation und die gleiche conditional Variable und erzeugt eine Ausgabe, die mit den Daten und der Bedingung übereinstimmt.
Durch das Hinzufügen von Labeln zur Eingabe und Ausgabe einer CVAE können Daten erzeugt werden, die einer bestimmten Bedingung entsprechen (z. B. einer bestimmten Klasse, einem bestimmten Stil oder einem bestimmten Inhalt.)
Beispielsweise könnte ein CVAE, das auf Bildern von Tieren trainiert wurde, abhängig vom gegebenen Tierlabel realistische Bilder verschiedener Tiere erzeugen.
Was ist die Idee hinter Generativen neuronalen Netzen?
Die Eingaben werden aus einer zufälligen Noise-Distribution entnommen
Generative Modelle wandeln die zufällige Noise-Distribution in Beispiele um, die der gewünschten Wahrscheinlichkeitsverteilung folgen.
Training:
Generative Netze werden trainiert, indem sie realen Datenproben aus der gewünschten Verteilung ausgesetzt werden, so dass sie die zugrundeliegenden Muster und Merkmale lernen können.
In Fällen, in denen die zugrundeliegende Wahrscheinlichkeitsverteilung unbekannt oder komplex ist, muss sich das Netz ihr durch verschiedene Methoden annähern, z. B. durch Optimierung oder probabilistische Inferenz.
Was zeichnet den Klassifizierungs-Variations-Autoencoder aus?
Klassifizierungs-VAEs erweitern die Standard-VAE-Architektur um eine Klassifizierungskomponente.
Der Encoder erzeugt eine latente Repräsentation z und sagt gleichzeitig eine Klassenbezeichnung auf der Grundlage der Eingabedaten voraus.
Der Decoder bildet latente Codes z und der Klassenbezeichung zurück auf die ursprünglichen Daten x.
Was zeichnet das Generative Adversarial Network aus?
Besteht grundsätzlich aus einem Generator und einem Diskriminator
Diese werden in einem wettbewerbsorientierten Prozess trainiert
Was sind die Bestandteile des Generative Adversarial Networks?
Es besteht aus Generator, Diskriminator und Wettbewerb.
Wie ist die Funktionsweise des Generative Adversarial Networks?
Generator:
Erzeugt neue Daten, oft Bilder, basierend auf zufälligem Rauschen oder einem anderen Eingabevektor
Versucht Daten zu erzeugen, die ähnlich aussehen wie echte Daten aus einem gegebenen Datensatz.
Diskriminator:
Der Diskriminator ist ein Klassifikator, der zwischen echten Daten aus dem Datensatz und von Generator erstellten Daten unterscheidet.
Er versucht, echte von gefälschten Daten zu unterscheiden.
Wettbewerb:
Im Training treten Generator und Diskriminator in einen Wettbewerb.
Generator versucht, Daten zu erzeugen, die den Diskriminator täuschen, indem er sie für echt hält.
→ Stichwort: Gradientenaustieg
Diskriminator versucht, zwischen echten und generierten Daten zu unterscheiden.
GradientenaustiegIm Laufe der Zeit wird der Generator immer besser darin, realistische Daten zu erzeugen, da er durch den Wettbewerb mit dem Diskriminator lernt.
Wie ist der Aufbau eines U-Nets?
besteht aus einem "Encoder" und einem "Decoder"
Diese sind sowohl über eine "Bottleneck"-Schicht als auch Skip-Connections miteinander verbunden
Diese Struktur ermöglicht es, sowohl globale Kontextinformationen als auch feine Details in den Daten zu erfassen.
Jede „Stufe“ des Encoders besteht aus zwei 3x3 Convolutions gefolgt von 2x2 Pooling
Jede „Stufe“ des Decoders besteht aus einem Upsampling der Merkmalskarte, gefolgt von einer 2x2-Faltung („up-convolution“), einer Verkettung mit der Feature Map welche über Skip-Connections aus dem Encoder Pfad übergeben wird, gefolgt von zwei 3x3 Convolutions
Was sind die Skip-Connections beim U-Net?
Konkret werden die Merkmalskarten aus den Encoder-Schichten, die die räumlichen und abstrakten Merkmale der Eingangsbilder repräsentieren, werden über Skip-Connections direkt in den Decoder-Teil übergeben.
Diese Informationen werden dann verwendet, um die generierten Bilder aufzubauen.
Somit hat der Decoder sowohl Zugriff auf die globalen Kontextinformationen als auch auf die lokalen Details, die während des Encodens erfasst wurden.
Die Skip-Connections ermöglichen es also dem Generator, die gelernten Merkmale und Muster effektiv in den generierten Bildern zu nutzen, um realistische und detaillierte Ausgaben zu erzeugen, die den Strukturen der Eingangsbilder ähnlich sind.
Bei welchen Aufgaben werden U-Nets verwendet?
Bildsegmentierung: U-Net ist besonders leistungsfähig bei der semantischen Segmentierung, bei der jedes Pixel eines Bildes einer bestimmten Klasse oder Kategorie zugeordnet wird.
Bildgenerierung: Obwohl das Hauptziel des U-Net nicht die Bildgenerierung ist, kann es als Teil von GANs (Generative Adversarial Networks) verwendet werden, um realistischere Bilder zu generieren.
Was sind Convolutional Neural Networks (CNNs)?
Art von künstlichen neuronalen Netzwerken, die speziell für die Verarbeitung von strukturierten Daten wie Bildern entwickelt wurden.
Was sind Vorteile von CNNs?
Der Hauptvorteil von CNNs liegt in ihrer Fähigkeit, räumliche Strukturen in Daten effizient zu erfassen.
Durch Faltungsoperationen können sie lokale Merkmale unabhängig von ihrer genauen Position im Bild gut erfassen
→ CNNs sind besonders gut darin, lokale Merkmale zu erfassen und räumliche Beziehungen in den Daten zu berücksichtigen
Was ist die Transnationale Invarianz bei CNNs?
Durch die Verwendung von Faltungen lernt ein CNN transnationale Invarianz. Das bedeutet, dass es Muster unabhängig von ihrer genauen Position im Bild erkennen kann, was für die Bildanalyse besonders wichtig ist.
Wie werden räumliche Struckturen bei CNNs erkannt?
CNNs berücksichtigen die räumlichen Strukturen von Daten. Durch die Verwendung von Faltungen und Pooling-Operationen können sie hierarchische Merkmale extrahieren und komplexe visuelle Informationen in Schichten aufbauen.
Was sind die Operationen bei CNNs?
Kernel, Faltung, Pooling und Channel
Wie ist der Mean Squred Error (MSE) bei Klassifikationsproblemen zu bewerten?
Im Klassifizierungskontext ist er nicht wirklich sinnvoll, da die Klassenwerte keine topologische Struktur haben: Wir können nicht sagen, dass die Klasse "Hund" näher an der Klasse "Schulbus" liegt als an der Klasse "Gebäude".
Bei Klassifikationsaufgaben sollen Objekte diskreten Klassen zugeordnet werden (z. B. Bilder in "Katze" oder "Hund" kategorisieren) Klassenvorhersagen werden oft als Wahrscheinlichkeiten dargestellt.
MSE passt jedoch nicht zur Natur von Wahrscheinlichkeiten und Klassenzugehörigkeiten.
Starkes Bestrafen falscher Outputs mit richtigen Vorhersagen: MSE bestraft Vorhersagen, welche die Richtige Verteilung haben aber nicht dem Label entsprechen stärker als notwendig. Bei Klassifikation geht es darum, die richtige Klasse zuzuordnen, nicht unbedingt die genaue Wahrscheinlichkeit zu ermitteln. Dies kann dazu führen, dass MSE zu vorsichtigen Vorhersagen führt.
Was zeichnet Cross Entropy aus?
Misst den Unterschied/die Ähnlichkeit zwischen zwei Wahrscheinlichkeitsverteilungen
Durchschnittliche Länge der Übermittlung eines Ereignisses aus einer Verteilung mit dem optimalen Code für eine andere Verteilung
In welchem Anwendungsbereich ist Cross Entropy sehr gut geeignet?
Im Klassifizierungskontext
Last changed10 months ago