date-created: 2024-05-14 02:18:57 date-modified: 2024-07-15 01:08:44
Maximum Likelihood Estimation
anchored to 116.00_anchor_machine_learning
Wir haben eine erste Betrachtung von MLE bereits Hier betrachtet und somit die Idee eingebracht, MLE eine stochastische Betrachtung schaffen kann.
Overview | Wiederholung
Zuerst benötigen wir hier nochmal wissen über Zufallsvariablen
und ferner auch die Bernoulli-Verteilungb (weil wir hier meist eher binär betrachten!)
Wir wissen hier also, dass ist und somit genau zwei Ergebnisse Eintreten können:
- –>
- –>
Maximum-Likelihood-Schätzung | Bernoulli
[!Definition]
Unter Betrachtung der Bernoulli-Verteilung möchten wir jetzt ferner die Maximum-Likelihood-Schätzung beschreiben.
Wir möchten also das finden (unbekannter Parameter!), dass die Daten am besten beschreibt.
Damit können wir dann also auch wieder einen Optimierer definieren.
Wie wird dieser Optimierer beschrieben? Was erhalten wir bei der Ableitung und Gleichstellung zu 0? #card
Die Daten-Likelihood definieren wir folgend:
Leiten wir dass dann ab und setzen erhalten wir folgend:
Damit ist MLE hier von der Stichprobendurchschnitt!
Univariate Gaußche Verteilung
[!Feedback] Definition | Univariate Gaußche Verteilung
Wir können folgend die Wahrscheinlichkeit zum eintreffen eines Wert , also auch mit der gaußchen Verteilung Normalverteilung beschreiben.
Wir brauchen hierbei folgende Werte:
- eine stetige Zufallsvariable
- ist die Mittelwert / Erwartungswert
- beschreibt die Varianz und weiter die Standardabweichung, also
Wie formulieren wir dann und ferner wie beschreiben wir dann ? #card
Wir beschreiben jetzt folgend:
(Also einfache die Beschreibung der Gaußverteilung!)
–> Wir wollen uns dabei ferner noch die Wahrscheinlichkeitsdichten anschauen:
- und ferner auch
- Was allgemein nicht möglich ist, weswegen wir meist normalisieren und dann die Tabellen konsultieren!
Visuell also etwa:
Und somit etwa -Konfidenzintervall:
- Sagt aus, dass mit etwa WSK innerhalb des Intervalls auftritt
Das Ganze kann man auch in höhere Dimensionen übertragen!
Multivariate Gaußsche Verteilungen
[!Definition] Multivariate Gaußsche Verteilung
Wenn wir jetzt etwa multi-dimensionale Daten betrachten, die verschiedene Werte in Dimensionen aufweisen, dann können wir das vorherige Konzept der Wahrscheinlichkeits-Abschätzung auch auf diese hohen Dimensionen anwenden.
Etwa, wenn wir jetzt folgenden Datensatz haben: , wobei : Preis Kartoffeln, : Preis Karotten beschreiben. Sei ferner der Mittelwertsvektor gegeben
Dann kann man hiermit eine entsprechend Ko-varianzmatrix bilden.
Wie beschreiben wir die Normalverteilung auf höherer Dimension?, wie sieht die Covariance-Matrix aus? #card
Wir beschreiben hoch-dim jetzt: und ist positiv definit
Unter der Betrachtung können wir dann etwa folgende Kovarianzmatrix bestimmen:
Wir sehen hier auch, dass !
Visualisiert sieht die Gaußverteilung folgend aus:
Gains durch Gauß-Verteilung
[!Tip] Gains durch Gauß-Verteilung
Mit der Gaußverteilung werden uns einige Dinge ermöglicht / erlaubt:
Was können wir über bedingte Verteilungen sagen? Wie bestimmen wir Randverteilungen (betrachte die Grafik)? #card Uns wird jetzt also ermöglicht:
- bedingte Verteilungen zu berechnen: also etwa
- Randverteilungen können bestimmt werden mit also auch
–> Das ganze kann weiterhin vollständig analytisch umgesetzt werden!
Sofern wir also bestimmen wollen, können wir diese beiden Kurven “betrachten” und werden bei jedem Schnitt in dieser Draufsicht dann immer eine Gaußverteilung finden können.
Das heißt man kann da für jeden Punkt in diesem Raum dann immer eine Gaußverteilung finden, die uns dabei hilft ein Maximum zu finden.
Parametrische Diskriminierung
Wir möchten jetzt die Idee von der Verteilungen, in obiger Betrachtung, anwenden, um die Klassifikation damit modellieren und darstellen zu können.
Dabei ziehen wir zuerst einen Vergleich mit dem bereits kennengelernten 116.03_bayes_decision_theory Bayes-Klassifikator und möchten dann die Diskriminative Klassifikatoren beschreiben / definieren.
[!Proposition] Naiver Bayes-Klassifikator | Evaluierung
Wir kennen den Klassifikator, beschrieben mit:
- Wir wissen, dass wir damit die Prior-Wahrscheinlichkeiten, also schätzen
- wir schätzen auch die Klassenwahrscheinlichkeiten, also
Dieser baut hier auf den Bayeschen Regeln au, um diese Dichten zu berechen / zu bestimmen!
Wir wollen das jetzt mit einer anderen Art von Klassifikator vergleichen und somit Schlüsse ziehen.
Generative vs. diskriminative Klassifikatoren
Wir wollen also zwischen zwei verschiedenen Klassifikatore unterscheiden und ihnen Vor- und Nachteile zuschreiben.
[!Definition] Generative Klassifikatoren
Wie sehen diese aus, Beispiel? Welche Vorteiel sehen wir hier? Was lässt sich über das Lernen dieser Klassifikatoren aussagen? #card
Klassifikatoren sind solche, die durch generative Prozesse eine WSK aufbauen. (etwa durch Abschätzungen)
Sie weißen folgende Form auf:
(also etwa bayes!)
Vorteile hierbe:
- einfach anzupassen (naive bayes benötigt etwa nur einfaches Zahlen der Durchschnitte)
- fehlende Eingaben können hiermit behandelt / behoben werden
- Man kann hier Klassen separate voneinander betrachten und anpassen
- ubeschriftete Trainingsdaten können gut genutzt werden!
Großer Nachteil: Das lernen von ist schwierig! –> siehe Grafik dazu:
Die Testfehler werden aber schneller konvergieren und somit nicht so gut anpassbar / ausbaubar sein
[!Definition] Diskriminativer Klassifikator
Ferner möchten wir noch die andere Art von Klassifikatoren betrachten.
Was benötigt es für diese Art der Klassifikation? Welche Vorteile erzielen wir, welche Nachteile entstehen beim lernen? #card
Wir beschreiben sie mit der Form: -> also gegeben einer Eingabe, suche die WSK, dass es als Klasse ist
(etwa mit logistischer Regression umsetzbar!)
Vorteile dabei:
- bedingte Verteilung ist oft leichter zu lernen! (und somit womöglich besser als die generative Form?!)
- man kann die Eingaben schon pre-processen! (etwa verschiedene Basisfunktionen anwenden!)
- es gibt keine Unabhängigkeitsannahmen, die eingehalten werden müssen –> Die Daten können also abhängig sein
Lernen:
Mit dieser Struktur sind wir somit auch viel besser im lernen, weil es einfacher ist, die Parameter zu bestimmen, bzw zu berechnen, statt
Wir werden hier viel bessere (kleiner) Testfehler aufweisen, also beim generativen Ansatz! ( Eben weil wir besser lernen können!)
Diskriminierung zweier Klassen. |
Betrachten wir zwei Klassen: Äpfel und Orangen. Wir wollen jetzt unter Verwendung der gegebenen Daten diese beiden Typen unterscheiden können. Also einfach eine klassische Klassifikation anhand diverser Parameter!
[!Definition]
Wir haben also folgende Parameter bekommen:
Eingaben: typischerweise sind das kontinuierliche Variablen, beschrieben mit
eine binäre Klassifikation: also es gibt zwei Klassen
Ferner möchten wir jetzt eine lineare Diskriminanzfunktion beschreiben:
wie ist sie augabeut, was baut sie auf -> wozu brauchen wir die Gewichte und den Schwellwert w0? #card
Die lineare Diskriminanzfunktion ist dann folgend (als lineare Funktion) definiert:
wobei:
- der Schwellwert ist
beschreibt.
Damit erhalten wir eine binäre Entscheidungsregel:
und grafisch könnte das etwa folgend sein:
Gradientenabstieg
Heavyside-Function
[!Tip] Heaviside-Function
Definiert ist sie mit:
Foreshadow | Wie bestimmen wir die Parameter ?
Wie soeben erkannt, brauchen wir in der Funktion unserer Regression eine Möglichkeit die Gewichte möglichst optimal zu wählen, sodass wir dann die richtigen Klassifikationen umsetzen können.
[!Definition]
Betrachten wir jetzt den Loss für eine Klassifikation und möchten ferner dann eine Lösung bestimmen, wie man das sinnvoll lösen kann.
Hierbei ist Heavyside-Function
und wir sehen schon, dass ein Minima finden schwer wird!
was wäre jetzt ein Ansatz das zu lösen?! #card
Wir können iterativ eine Lösung zum Minimum finden.
Dafür stellen wir also folgendes auf:
- definiere die Ableitung nach
- Stelle die Ableitung um ein Minima zu finden!
Definition
[!Req] Definitiion | Gradientenabstieg
Wir wollen ferner also den Gradientenabstieg als mögliche Lösung für die Bestimmung der Loss-Funktion und somit einer Optimierung betrachten.
Unter Betrachtung der Grafik, was sagt der Gradient aus? was werden wir mit der Information machen? #card
Der Gradient zeigt erstmal immer in Richtung des steilsten Anstiegs, also die Ableitung
Da wir aber genau ein Minimum wollen, werden wir dann also einfach das Inverse (entgegen der Richtung) entlang “laufen”, um diesen Punkt zu erreichen.
es folgt also:
Wobei hier die Lernraet Pro Iteration beschreibt!
Algorithmus für Gradient Descent
[!Example] Beschreibung Algorithmus
wir erhalten folgende Eingaben:
- als Eingabe-Daten
- ist die Lernrate –> die Quantiät, wie viele Schritte wir pro Iteration in Richtung Gradient-Richtung gehen ( bzw. die entgegengesetzte)
- Präzision
Wie laufen wir jetzt einen möglichen Algorithmus durch. Er baut sich hier aus drei groben Stufen auf #card
Wir können jetzt einen Algorithmus mit folgendem Ablauf beschreiben:
- Initialisiere die Grundgewichte
- Berechne den Loss einmalig, also
- Wiederhole jetzt folgenden Schritt (bis wir unsere Präzision erreicht haben!)
- (Update also die Gewichte, wobei hier die Lernrate angibt, wie schnell wir das tun!)
- –> dann haben wir unsere Präzision erreicht und brechen ab!
Somit haben wir also durch mehrfaches Wiederholen nach und nach die besten Werte für bestimmt / bestimmen wollen!
Discussion | Gradient Descent
[!Bsp]
Unter Betrachtung der Darstellung der Idee von Gradient-Descent, möchten wir jetzt einige Eigenschaften / Aspekte festlegen.
_was können wir über die Lernrate aussagen? Was passiert bei Minimas, die wir suchen?!Was passiert bei nicht-diffbaren Loss-Funktionen?
Lernrate:
- Da sie uns Schritt für Schritt angibt, wie nah wir dem Minima treten, muss sie hinreichend klein sein, damit wir da auch ankommen und nicht Divergenz erreichen!
- Es können hierbei viele - je nach Lernrate - Schritte bis zu einer Konvergenz vergehen!
- Sie kann nur ein lokales Minimum finden –> daher schauen wir uns später etwa Momentum an!
- Loss-Funktion muss ebenfalls diffbar sein!
Logistische Regression
Wir möchten uns nun eine bessere Struktur für die Regression anschauen, was uns hilft die lineare Regression etwas anders zu betrachten bzw zu verbessern.
[!Intuition] Logistische Regression | Intuition
Wir möchten die Logistische Regression in 3 Schritten definieren und durchführen:
welche drei Schritte wären das? #card
- Definieren eines geeigneten Modells
- Klassifizierung von Daten als Regressionsaufgabe formulieren ( Etwa indem wir schauen, wo / wie die Punkte auf einer Map verteilt sind und dann mit Funktionen bestimmte Bereiche einsperren!)
- Geeignete Loss-Funktion für den Gradientenabstieg definieren / beschreiben
Beim beschreiben des Modells möchten wir darauf achten, wie viele bzw wie wir bestimmte Klassifikationen o.ä. umsetzen möchten und daran dann Entscheidungsgrenzen formulieren.
1. Definieren des geeigneten Modell
[!Example] Definieren einer logistischen Regression
Wir möchten jetzt das geeignete Modell bestimmen / definieren.
Im Beispiel betrachten wir etwa eine binäre Klassifikation, also
Dafür werden wir folgende Schritte durchlaufen:
Welche Verteilung können wir für die Klassifikation beschreiben? Was gilt als Entscheidungsgrenze? Wie verfahren wir mit dem Posterior? Was meinen wir mit ogits? #card
Da wir hier eine binäre Klassifikation anschauen, entspricht die WSK-Verteilung einer Bernouill-Verteilung, also
Wir nehmen die Bayes’sche Entscheidungstheorie als Entscheidungsgrenze an!
Ferner können wir somit dem Posterior berechnen, also und entscheiden dann für die wahrscheinlichste Klasse - sofern die Kosten denn gleich sind?!
Das kann man etwa folgend modellieren: $$\begin{aligned} \text{ wähle } $C_{1}$ \text{ wenn } y > 0.5 & \text{sonst } C_{2} \text{ wähle } C_{1} \text{ wenn} \frac{y}{1-y} >1 & \text{ sonst } C_{2} \text{ wähle } C_{1} \text{ wenn } \log \frac{y}{1-y} >0 & \text{ sonst } C_{2} \end{aligned}$$
Und all diese Aussagen sind hier äquivalent!
Man nennt jetzt das Verhältnis von Positiven und Negativen : Odds –> beschreibt dann die Log-odds oder auch logits - Log-Einheiten genannt
2. Klassifizierung als Regressionsaufgabe formulieren
Nachdem wir jetzt also ein Modell - was sich auf einer bestimmten Verteilung aufbaut - formuliert haben, müssen wir nun den Parameter, den wir mit der Regression anschließend lösen möchten, entsprechend umgestalten, sodass er dann mit einer Funktion bestimmt und später minimiert werden kann!
[!Example] Klassifizierung als Regressionsaufgabe formulieren
Wir möchten jetzt das Beispiel unsere binären Klassifikation - einer Bernoulli-Verteilung - so umformulieren, dass es als Regressionsaufgabe dargestellt und anschließend minimiert werden kann!
Wir möchten jetzt folgend parametisieren:
Wir betrachten also:
Wie können wir es jetzt ferner umstrukturieren und daraus eine Funktion beschreiben?! #card
Und somit konnten wir es dann adäquat umformen!
(remember Sigmoid sieht folgend aus):
Definieren einer geeigneten Loss-Funktion für Gradientenabstieg
Nachdem wir jetzt das Modell definiert und die WSK, die wir berechnen wollen, als Regressionsaufgabe formuliert haben, möchten wir jetzt noch die Loss-Funktion definieren, damit wir anschließend entsprechend den Gradientenabstieg durchführen können.
[!Example] definieren einer geeigneten Loss-Funktion
Im Kontext der Bernoulli-Verteilung als binäre Klassifikation haben wir die Klassifikation als Regressions-Funktion folgend aufgeschrieben:
Wie können wir jetzt eine Loss-Funktion bestimmen?Was benötigen wir dafür an daten? Welche Annahme setzen wir hier auch? #card
Wir formulieren zuerst ein Datensatz, mit welchem wir arbeiten würden/werden.
Stichprobenset: wobei
- wenn
- sonst
Wir haben dann folgende Annahme: ist nach der Bernoulli-Verteilung verteilt, wobei die (also der erwartete Wert für die -te Eingabe) die Wahrscheinlichkeit beschreibt!
damit folgern wir also: (Wir haben hier die Eingabe transponiert!)
Wir möchten dann jetzt und bestimmen -> Weil sie uns die Parameter liefern
Wir beschreiben das durch die folgende Loss-Funktion:
Wir sehen hier schon, dass das Produkt zu bilden, schwierig sein wird.
Wir werden dafür dann die Log-WSK verwenden!
Log-Warscheinlichkeiten für Bernoulli = CROSS-ENTROPY-LOSS
[!Feedback] Log-WSK for bernoulli –> CROSS-ENTROPY-LOSS
Das Produkt von Wahrscheinlichkeiten beschreiben ist meist aufwendig / schwer, weswegen wir das mit einer Log Konversion ganz gut umwandeln können, wodurch die Berechnung einfacher wird.
Wir haben jetzt also für ein Beispiel etwa die Bernoulli-Verteilte WSK und dafür noch die Loss-Funktion beschrieben mit:
wie verändert sie sich unter Anwendung der Log-WSK, warum? Wie beschreiben wir jetzt den Cross-Entropy-Loss? #card
Die Logwahrscheinlichkeit wird den Term folgend anpassen:
–> Wir haben damit also den Produktterm verringert.
(Das ist umsetzbar, weil wir hiermit keine Informationen über die Proportionalität der Daten verlieren, also ihre Abhängigkeit weiterhin gleich / erhalten bleibt!)
Wir wollen dann die negative Log-WSK berechnen –> weil wir ja Minimieren möchten!
Ferner folgt damit jetzt der Cross-Entropy-Loss:
Und damit haben wir jetzt einen Gradientenabstieg ermöglicht!
Gradientenabstieg durchfuhren | Minimieren der Parameter
[!Definition] Gradientenabstieg | Minimierung
Nachdem wir jetzt die geeignete Loss-Funktion für die Bernoulli-Verteilung bestimmt haben ( was dem Cross-Entropy-Loss entspricht), möchten wir dann den Gradientenabstieg umsetzen.
Wir haben damit jetzt also folgende Cross-Entropy-Loss beschrieben:
Wir benötigen jetzt noch die Ableitung, also
wie berechnen wir den Gradientenabstieg jetzt? Wie würden wir ihn dann immer aktualisieren? Mit welchem Parameter? #card
Und damit haben wir unseren Gradienten erhalten!
Wenn wir ihn jetzt folgend aktualisieren möchten –> Also uns immer mehr zur optimalen Lösung annähern möchten <– gehen wir wie folgt for:
und unser Initialwert ist:
Wobei ist
Visuell wäre das etwa:
Zusammenfassung
[!Feedback] Lessons Learned
Wir haben jetzt also bestimmte Dinge erreicht / betrachtet:
was konnten wir für den Gradientenabstieg unter Betrachtung eines binären Klassifikations-Modelles lernen? #card
- Wir können ein Klassifikation durch direktes Lernen der Diskriminerungsfunktion umsetzen!
- Der 0-1-Loss erlaubt keine glatte Optimierung
- Wir konnten die bernoulli-Verteilung nutzen, um das Problem in eine Stochastische Frage umzuwandeln!
- Die Sigmoidfunktion hat uns geholfen xd
- Man konnte die Hyperparameter durch den Gradientenabstieg lernen!
Generalisierung
Diese Regression ist nur anwendbar, wenn wir Datenpunkte haben, die man klar durch eine lineare Funktion klassifizieren bzw. halt aufteilen kann!
Eine, die etwa einen Kreis in der Mitte hat und drumherum dann Punkte anderer Klassen sind, werden wir damit nicht wirklich erhalten!
Also etwa:
[!Definition] Generalisierung
Wie können wir das Problem von Daten, die wir hier nicht mit dem Modell klassifizieren können - etwa Kreis mit anderen Punkten drum - dennoch betrachten? Was sind die Schritte dafür? #card
- Wir “heben” die Eingabewerte in einen Merkmalsraum mittels Vektor von Basisfunktionen –> also Translatieren in eine andere Darstellung (ohne die Abhängigkeiten etc zu verlieren!). Dafür wenden wir folgende Funktion an: $$\phi(x) = [ \phi_{1}(x), \dots, \pih_{M}(x) ]^{T}\in \mathbb{R}^M$$
- Wir führen jetzt wieder die logistische Regression mit dem linearen Modell unter Verwendung von nichtlinearen Basisfunktionen durch:
Also wir transfomieren beispielsweise mit –> wir haben eine Kreisgleichung erhalten, von
Visuell also:
Mit der richtigen Basis können die abgebildeten Daten im Merkmalsraum mittels linearer Funktionen klassifiziert werden.
(Natürlich wird das nach und nach schwieriger!)
Multiklassen-Klassifikation
Gerade haben wir das Ganze exemplarisch für Binäre-Klassifikation umgesetzt, also nur mit zwei Klassen . Meist haben wir aber mehr Klassen, die wir für diverse Datenpunkte anwenden / zuordnen möchten!
[!Req] Ansätze für Multi-Class-Classification
Wenn wir jetzt Klassen haben, dann benötigen wir also auch Diskriminanzfunktionen die uns jeweils in verschiedene Klassen einteilen können!
Angenommen wir können diese Klassen durch linear Funktionen trennen, wie würden wir dann vorgehen, um aufzuteilen? #card
Angenommen wir können durch lineare Funktionen trennen, sodass dann: (Wobei )
Dann könnten wir die Logistische Diskriminierung durchführen:
- Weise der Klasse zu, wenn
- also
Visuell etwa:
Problem des Ansatzes
[!Attention] Problem des Klassifikators
Wir haben jetzt also eine Funktion definiert, die viele lineare Funktionen konsultiert und anschließend folgend die Klasse zuweist mit:
Welches Problem erhalten wir? Wie können wir dann alternativ parametrisieren? (baye’sche formel!)? #card
Der Operator kann nicht differenziert werden und lässt uns somit kein Minima suchen/ finden!
Wir brauchen also wieder eine neue Parametrisierung - und wir beginnen wieder mit der Bayes’schen Formel:
und somit erhalten wir dann die normalisierte Exponentiale.
Ferner beschreibt es die multiklassenverallgemeinerung der logistischen Sigmoidfunktion - wie obig binär beschrieben!
Ferner möchten wir dann definieren mit:
und dann werden wir folgend parametrisieren: wobei die Klasse beschreibt!
Softmax-Funktion
Für die weitere Betrachtung benötigen wir das Konzept der Softmax Funktion!
[!Definition]
Wie ist die Softmax-Funktion beschrieben, was macht sie? #card
Wir beschreiben die Softmax-Funktion folgend:
Ihre Eigenschaften:
- sie repräsentiert eine geglättete Version der max-Funktion
- wenn m dann ist
- Sie kann unnormalisierte Werte in Wahrscheinlichkeiten umwandeln (was wir dann benötigen werden, wenn wir also multiple Klassen klassifizieren möchten)
Betrachten wir ein paar Beispiele: Betrachten wir dabei immer einen Logit-Wert (beschrieben mit ), dann die Transformation unter softmax und danach die WSK ()
Regression Loss |
Wir haben bereits die Cross-Entropy für binäre Strukturen definiert.
[!Bsp] Definition Loss für multi-class-classification!
Wir haben zuvor bereits unsere Funktion beschrieben mit:
Die Cross-Entropy war gegeben mit:
–> Also wir erweitern Log-Warscheinlichkeiten für Bernoulli = CROSS-ENTROPY-LOSS um die jeweiligen Klassen und bringen ihre Wichtung mit ein!
Wie leiten wir sie jetzt ab? Wie können wir später weiterhin die Update-Gleichung formulieren (für die Gewichte?)? #card
Die Ableitung der Softmax Funktion wird folgend beschrieben:
wobei hier:
Das heißt je nach Klasse, die wir betrachten, ziehen wir dann immer den erwarteten Wert ab.
Die Update-Gleichung bilden wir dann folgend: