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.

Maximum-Likelihood-Schätzung (MLE)


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!)

Bernoulli-Verteilung

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:

  1. Initialisiere die Grundgewichte
  2. Berechne den Loss einmalig, also
  3. Wiederhole jetzt folgenden Schritt (bis wir unsere Präzision erreicht haben!)
  4. (Update also die Gewichte, wobei hier die Lernrate angibt, wie schnell wir das tun!)
  5. –> 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

  1. Definieren eines geeigneten Modells
  2. 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!)
  3. 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

  1. 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$$
  2. 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: