data_mining:large_datasets

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:

  • x: Größe Trainingsset
  • y: Fehler

Plotten von

  • J_CV(theta)
  • J_train(theta)
  • Wenn Lücke ⇒ High Variance (Mehr Daten)
  • Wenn nah beieinander ⇒ High Bias (Mehr Hidden units, mehr Features zur Verbesserung)

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

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.

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

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
}
  • data_mining/large_datasets.txt
  • Last modified: 2014/09/06 12:45
  • by phreazer