Table of Contents

Large Dataset

Wie kann man feststellen, ob ein Algo mit mehr Daten besser funktioniert?

Plotten einer Learning Curve für verschiedene m. Wenn Algorithmus hohe Varianz bei kleinem m hat, ist dies der Fall.

Learning Curve:

Plotten von

Algorithmen

Batch gradient descent

“Batch” - Alle Trainingsbeispiele berücksichtigen (also m).

Stochastic gradient descent

1. Randomly shuffle dataset
2. Repeat {
     for i=1, ..., m
       for j=0, ..., n
         theta_j = theta_j - alpha (h_theta(x^{(i)}-y^{(i)})x_j^(i)
       }
      }
    }

Wandert in die Nähe des globalen Minimums. Mehrfache Ausführung von 2.

Konvergenz

Plotten der Kostenfunktion als Funktion der Zahl von Iterationen.

$\text{cost}(\theta,(x^{(i)},y^{(i)})) = 1/2 (h_\theta(x^{(i)})-y^{(i)})^2$ Berechnen dieser Kosten vor updaten von \theta. Jede 1000 Iterationen plotte Kostenfkt. im Mittel über letzte 1000 Beispiele.

1000 Kurve mit Noise. 5000, glatter aber nur alle 5000 ein Punkt.

Wenn Kurve ansteigt ⇒ Divergenz ⇒ kleineres Alpha wählen.

Alpha

Langsam \alpha senken, um zu konvergieren.

Mini-Batch Gradient Descent

Verwende b = mini-batch size (typisch: 2-100) Beispiele in jeder Iteration.

Online Learning

Wenn kontinuierlicher Datenzufluss.

Lernen von $p(y=1|x;\theta)$ um Preis zu optimieren.

Repeat forever {
  Get (x,y) corresponding to user.
  Update \theta using (x,y)
    \theta_j = \theta_j - \alpha (h_\theta(x)-y) x_j
}