JGU Logo JGU Logo JGU Logo JGU Logo

Institut für Informatik

Modellierung 2

Michael Wand
David Hartmann
Sommersemester 2022

Lehreinheit 4

Bayes'sche Anwendungen & ein erster Klassifizierer
Letzte Änderung: 02. May 2022, 11:00 Uhr
Abgabe: Montag, der 23.05.2021, 10 Uhr

  /  





Augabe 1: Wahrscheinlichkeit der Momente


Gegeben seien \(n\) Stichproben \(x_1,\dots,x_n\) einer normalverteilten Zufallsvariable mit unbekanntem Mittelwert \(\mu\) und unbekannter Varianz \(\sigma^2\). Leiten Sie eine Formel her, um den wahrscheinlichsten Wert für \(\mu\) und \(\sigma\) zu schätzen, wenn die Daten \(x_1,\dots,x_n\) beobachtet wurden.


Hinweise:

Aufgabe 2: Bayes'scher Weltuntergang


Gegeben Seien zwei Annahmen:

  1. Annahme: Die Weltbevölkerung wächst unaufhaltsam und folgt dabei einer Exponentialkurve. Wir nehmen dabei einfach mal an, dass bei etwa \(10\) Millarden Menschen das Wachstum plötzlich aufhört. (Dies ist eine grobe Schätzung für das, was einige Experten tatsächlich in naher Zukunft erwarten. Siehe etwa hier oder hier.)

    Konkret: Im Jahr 2015 betrug die Weltbevölkerung 7,3 Milliarden Menschen. Im Jahr 1900 betrug die gesamte Weltbevölkerung 1,65 Milliarden. Die Population aller anderen Jahre interpolieren wir nach der Formel \[ \operatorname{Population}(t) = e^{\lambda \cdot (t-t_0)}. \]
  2. Annahme: Die Wahrscheinlichkeit, als einer der Menschen geboren zu werden, sei für alle jemals geborenen Menschen identisch. (Wir schließen Außerirdische und Tiere jeglicher Art von der Rechnung aus).

Aufgabe: Leiten Sie eine Wahrscheinlichkeitsverteilung für die Wahrscheinlichkeit ab, dass die Welt im Jahr \(2021,2022,\dots\) noch existiert, ohne dass die Menschheit ausstirbt oder ein dramatisches Ereignis eintritt, das die Bevölkerungszahl unter die Vorhersagen drückt.


Bemerkung: Das vollständige Weltuntergangsargument, wie es im ersten Link diskutiert wird, ist noch etwas weiter ausgearbeitet worden. Wir rechnen nur das Basisargument nach.

Aufgabe 3: Ein elementarer Klassifizierer — Äpfel und Birnen Bananen vergleichen


Stellen wir uns vor, wir wurden mit der Aufgabe betraut für eine Waage im Supermarkt eine automatische Früchteerkennung zu implementieren. Zum Testen haben wir eine Hand voll Bilder erhalten, wie sie typischerweise von der Waage aufgenommen werden. In dem Archiv befinden sich 36 Bilder von Äpfeln und 35 Bilder von Bananen.

(Wir kümmern uns hier nur um den Prototypen: erkannt werden sollen nur Äpfel und Bananen. ;) )


Qualitätsmaß:
Bevor wir einen Klassifizierer testen, müssen wir vorher die Qualität eines Klassifizierers definieren. Um etwa Auswendig lernen zu verbieten teilen wir den Datensatz in zwei Teile auf (5 zufällige Bilder bilden) Test- und (die restlichen Bilder den) Trainingsdatensatz. Dabei bilden die Bilder mit ungeradem Index den Trainingsdatensatz und die mit geradem Index den Testdatensatz.
Ein Datenpunkt \((x,y)\) ist dabei stets ein Tupel, bei dem \(x\) ein Bild der Dimension \(d\) (etwa \(d = \text{Bildhöhe} \cdot \text{Bildbreite} \cdot \text{anzahl Farbkanäle}\)) ist und \(y\) die Klasse des Bildes anzeigt. In unserem Fall entspricht die Klasse Apfel dem Wert \(y=0\) und die Klasse Banane dem Wert \(y=1\).
Die Indikatorfunktion \(1_y\) bezeichne dabei die Funktion, die genau dann 1 ist, wenn sie im Wert des Subskript \(y\) ausgewertet wird. Ansonsten nimmt die Funktion den Wert 0 an. \[ 1_y (x) := \left\{ \begin{matrix} 1, & \text{falls } x = y,\\ 0, & \text{sonst } \phantom{x = y,} \end{matrix} \right. \] Den ersten Teil verwenden wir um den Klassifizierer zu „trainieren“, den zweiten Teil nutzen wir, um unser Qualitätsmaß zu testen.
Ein Klassifizierer \(f\) ist dabei besser, je höher dessen Genauigkeit (engl. accuracy) auf dem test set \(T := \left\{(x,y) | x\in \mathbb{R}^d, y \in \{0,1\}\right\}\) ist, \[ \text{accuracy}(T,f) := \frac{1}{|T|} \sum_{(x,y)\in T} 1_y(f(x)). \] (Mit anderen Worten messen wir hier den Anteil an richtigen Klassfizierungen im Datensatz).


Implementieren Sie nun die folgenden drei Klassifizierer und testen Sie die jeweilige Qualität auf dem test-set.

  1. Multivariate Gaußverteilung: Als erstes Visualisieren wir den Datensatz. Bestimmen Sie dazu zu jedem Bild zuerst die mittlere Farbe \((\mu_r,\mu_g,\mu_b)\) und visualisieren Sie so alle Bilder als Punktwolke in 3d (z.B. mit Matplotlib Axes3d.scatter).
    Als nächstes bestimmen wir zu jeder Klasse die Gaußverteilung der Farbe die die wahrscheinlichste Erklärung der Klasse darstellt.
    Um nun zu bestimmen zu welcher Klasse ein Bild gehört, werten wir die Wahrscheinlichkeiten der beiden Gaußverteilungen für die jeweilige Klasse aus und wählen diejenige Klasse, die eine größere Wahrscheinlichkeit für das Bild angibt.
  2. k-Means: Als nächstes testen wir, ob die Klassenmittelwerte \(\mu_y\) einen guten Klassifizierer bilden.

    Bestimmen Sie die pixelweisen Mittelwerte der beide Klassen Apfel & Banane (wenn Sie möchten kann hier durchaus Ihre implementierung des Welford-Algorithmus genutzt werden, dies ist aber nicht unbedingt nötig.) Im Gegensatz zu den Mittelwerten aus Aufgabenteil 1 erhalten Sie hier nicht 3 Werte pro Mittelwert, sondern Bilder der selben Dimension wie der Eingabebilder.

    Wir definieren den Klassifizierer nun so, dass für ein beliebiges Bild \(x\) die Klassie vorhergesagt wird, deren mittleres Bild \(\mu_y\) am nächsten liegt, also \[ f_1(x) := \arg\min_y ||x - \mu_y||_2. \] Hinweis: Der MNIST-Datensatz, der in der letzten Lehreinheit verwendet wurde bestand lediglich aus einem Kanal (die Bilder waren schwarzweiß). Hier sind die Bilder mehrfarbig. Bestimmen Sie hier unbedingt die pixelweisen Mittelwerte, bei denen jede Farbe einzeln berechnet wird.
  3. PCA (Wdh. Modellierung 1): Reduzieren Sie die Dimensionalität der Bilder mit PCA (d. h., projezieren Sie die Bilder auf die 3 Eigenvektoren mit den größten Eigenwerten). Visualisieren Sie die Verteilung der Beispiele im 3D-Eigenraum (dies ist auch eine Punktwolke, aber anders als in Aufgabenteil 1!), und versuchen Sie auch, die Eigenbilder selbst zu visualisieren. Als Klassifizierung kann hier genauso vorgegangen werden wie in Aufgabenteil 1; Gaußverteilung bestimmen und dann die wahrscheinlichste Lösung wählen.

Zuletzt: Überlegen Sie sich, auf welche Art von Features im Bild die jeweiligen Klassifizierer am meisten anspringen.


Optional: