SS 2009 Maschinelles Lernen und Neural Computation
1
Kapitel 5: Der praktische Umgang mit komplexen Lernern
SS 2009 Maschinelles Lernen und Neural Computation
2
Neuronale Netze als semiparametrische Verfahren
• Neuronale Netze sind sehr flexibel, aber haben eine große Anzahl an Freiheitsgraden (Gewichten)
sie benötigen sehr viele Daten für eine vernünftige Modellschätzung
• Modelle sollten möglichst klein gehalten werden• Occams Razor: wenn zwei Modelle das gleiche
vorhersagen, bevorzuge das kleinere• Neuronale Netze unterliegen dem Fluch der
Dimension (nicht beliebig viele Inputs)
SS 2009 Maschinelles Lernen und Neural Computation
3
Overfitting
• Bei zu wenigen Trainingsdaten: Das NN versucht, das Rauschen mitzumodellieren
• „Überanpassung“ (Overfitting): schlechtere Performanz auf neuen Daten (quadratischer Abstand wird größer)
50 Bsp., 15 H.U.
SS 2009 Maschinelles Lernen und Neural Computation
4
Vermeidung von Overfitting
• So viel Daten wie möglich (gute Abdeckung der Verteilung!)
• Modell (Netz) so klein wie möglich halten
• Allgemein: Regularisierung (= Einschränken der effektiven Anzahl der Freiheitsgrade):– Mehrere Durchläufe, Durchschnitt bilden– Strafterm für große Netze, z.B.:– „Pruning“ (Entfernen von Verbindungen)– Early stopping
N
iiwEE
1
2'
SS 2009 Maschinelles Lernen und Neural Computation
5
Überbestimmung des Modells
• Wenn weniger Daten (Beispiele) als Gewichte:Modell ist unterbestimmt(Gewichte könnten frei gewählt werden)
mindestens so viele Beispiele wie Gewichte
• Da Probleme stochastisch: jedes Beispiel trägt nur einen kleinen Teil zum Modell bei (Rauschverteilung)
ein Vielfaches an Beispielen notwendigHeuristik: nBeispiele > 10nGewichte
• Beispiel: 9 Inputs, 500 Beispiele, 1 Output nGewichte = nHU*(9+1), max. 50 Gewichte max. 5 Hidden Units
• Auch wenn benötigtes Modell komplexer ist: es lässt sich mit diesem Datenmaterial nicht ausnutzen
SS 2009 Maschinelles Lernen und Neural Computation
6
Der Fluch der Dimension
• Auch bei neuronalen Netzen steigt der Bedarf an Beispielen überlinear mit der Dimension (Inputs)(~ quadratisch)
• Zahl der Inputmerkmale sollte so klein wie möglich sein
• Obige Heuristik gilt eigentlich nur für kleine Inputanzahl (darüber noch größeres Vielfaches nehmen)
Merkmalselektion
SS 2009 Maschinelles Lernen und Neural Computation
7
Die wesentlichen Schritte
Aufgrund ihrer Eigenschaften erfordern neuronale Netze eine saubere Vorgangsweise:
1. Datensichtung
2. Datenvorverarbeitung
3. Merkmalsselektion
4. Modellschätzung und Modellselektion
5. Vergleich mit einfachen Verfahren
6. Testen auf unabhängigen Daten
7. Interpretation der Ergebnisse
SS 2009 Maschinelles Lernen und Neural Computation
8
Schritt 1: Datensichtung
• Wichtig: sich ein Bild von den Daten machen
• Z.B.: Plotten jedes einzelnen Inputmerkmals
• Ausreißer identifizieren Fälle eliminieren oder auf Werte auf Maximalwert setzen
• Attribute mit wenig Informationsgehalt eliminieren (z.B. wenn es fast immer den gleichen Wert hat)
• Fehlende Werte identifizieren Fälle eliminieren oder auf Werte auf Durchschnitt setzen
SS 2009 Maschinelles Lernen und Neural Computation
9
Hauptkomponentenanalyse
• Principal Component Analysis (PCA):finde die Achsen (Hauptkomponenten), die die größte Varianz abdecken (~ Koordinatentransformation)
• Mathematisch: Eigenvektoren der Kovarianzmatrix• Ermöglicht (tw.) Visualisierung der Daten
PC1PC2
Bsp: Pima Indian Daten
SS 2009 Maschinelles Lernen und Neural Computation
10
Schritt 2: Vorverarbeitung
• Frage: enthalten Inputmerkmale die richtige Information? Transformation (Differenzenbildung, Quotient, komplexere Merkmalsberechnung, etc.)
• Sichtung der neuen Merkmale• Normalisierung (pro Merkmal):
Mittelwert 0, Standardabweichung 1
• (sonst ist Modellschätzung schwierig)
x
xxx
std
mean
SS 2009 Maschinelles Lernen und Neural Computation
11
Schritt 3: Merkmalsselektion• So wenig Inputdimensionen wie möglich!• 1. Heuristik: Korrelationsanalyse:
– Nur diejenigen, die hoch korrelieren– Merkmale weglassen, die mit
anderen hoch korrelieren– Aber: nur “First order” Statistik,
suboptimal
KlasseMerkmale
• 2. Heuristik: PCA– Eigenwerte geben an, wieviel Varianz abgedeckt– z.B. Pima Indian: 2.1, 1.73, 1.03, 0.88, 0.76, 0.68, 0.42, 0.4– Nimm Hauptkomponenten als Input
aber: keine Outputinformation; kann suboptimal sein
SS 2009 Maschinelles Lernen und Neural Computation
12
Verfahren zur „feature selection“
• „Filters“:betrachten einfache Auswahlmodelle (z.B. linear)
• “Wrappers”:Betrachten das Zielmodell (siehe Modellselektion)
• Suchverfahren:– inkrementelles Hinzunehmen– inkrementelles Wegnehmen– “branch and bound”
• Bayes‘sche Evidenz• Optimale Selektion nur, wenn alle Kombinationen
betrachtet!
SS 2009 Maschinelles Lernen und Neural Computation
13
Schritt 4a: Modellschätzung (Training)
• Konj. Gradient oder Quasi-Newton
• Fortschritt des Trainings: Lernkurve (Fehler über Lernzyklen)
• 1 Zyklus („epoch“): ganzes Trainingsset (batch)
• Mehrere Initialisierungen: lokale Minima erkennbar
• Fehler auf unabhängigen Datenset beobachtbar:
• Early Stopping: Abbrechen, wenn Validierungsfehler ansteigt (= overfitting)
Lokales Minimum
SS 2009 Maschinelles Lernen und Neural Computation
14
Schritt 4b: Modellselektion
• Ziel: optimale Modellkomplexität(Anzahl der Hidden Units)
• Da optimales Modell unbekannt:“ausprobieren” und vergleichen
• Immer auf unabhängigen Daten validieren
• Ein einzelner Trainingsdurchlauf hat „Bias“(zu sehr vom Trainingsset abhängig zu optimistisch/pessimistisch)
• Mehrere Durchläufe (mit verschiedenen Trainingssets) notwendig!
SS 2009 Maschinelles Lernen und Neural Computation
15
• Bei beschränkten Datensätzen: n-fache Kreuzvalidierung
• Das ganze n mal (Validierungsset jeweils disjunkt, Trainingssets nicht)
• n Durchläufe, n Netze, n Performanzen auf Validierungssets Durchschnitt (Schätzung ohne Bias), NICHT das beste Netz! Standardabweichung (Konfidenzintervall)
Die n-fache Kreuzvalidierung
...
n-1 Teile zum Training n. Teil zum Testen (Validierung)
n Teile
SS 2009 Maschinelles Lernen und Neural Computation
16
Statistisches Testen
• Vergleich zweier Modelle anhand des Durchschnitts
• Frage: Ist der Unterschied signifikant (oder zufällig)? statistischer Signifikanztest notwendig
• Z.B.: t-test (Test auf Gleichheit der Mittelwerte, setzt Normalverteilung voraus)
• Nullhypothese: Mittelwerte sind gleich
• T-Wert in Tabelle p-Wert(1-Wahrscheinlichkeit, dass Nullhypothese abgelehnt werden kann)
2
varvar
,11
,
21
22112pop
21pop
__
nnf
f
xnxn
nn
xt E
E
21
_
,0 x
Freiheitsgrade
Anzahl Beobachtungen
Varianz
SS 2009 Maschinelles Lernen und Neural Computation
17
Signifikanztests: Allgemeines
• P-Wert sollte maximal 5% sein: p<0.05
• Je niedriger, desto signifikanter
• Wenn keine Signifikanz erreicht:mehr Beobachtungen = Erhöhung von n
• Abstand wird geringer werden
• Multiples Testen:bei p<0.05: Unter 20 Tests ist im Durchschnitt einer dabei, der fälschlicherweise Signifikanz vorhersagt
korrigieren oder höheres Niveau verlangen (z.B. p<0.01)
SS 2009 Maschinelles Lernen und Neural Computation
18
Modellselektion
• Strategie zur optimalen Wahl der Modellkomplexität:– Klein beginnen (z.B. 1 oder 2 Hidden Units)– n-fache Kreuzvalidierung– Jeweils eine Hidden Unit hinzufügen– Akzeptieren, solange (signifikante) Verbesserung
• Keine Regularisierung notwendigOverfitting wird durch Kreuzvalidierung abgefangen(Durchschnittsbildung)
• zu viele Hidden Units zu große Varianz keine Signifikanz
• Das gleiche Verfahren kann auch zur Merkmalsselektion verwendet werden (“wrapper”)
SS 2009 Maschinelles Lernen und Neural Computation
19
Schritt 5: Vergleich mit einfachen Verfahren
• Neuronales Netz sollte immer auch mit einfacher Alternative verglichen werden
• z.B.: lineares Verfahren, k-nearest neighbor• Wie bei Modelleslektion:
– n-fache Kreuzvalidierung– Vergleich der Mittelwerte– Signifikanztest
• Bei kleinen Datensätzen ist lineares Verfahren oft nicht unterlegen!
SS 2009 Maschinelles Lernen und Neural Computation
20
Schritt 6: Testen auf unabhängigen Daten
• Ein Teil der Daten (zufällig gewählt) sollte bis jetzt aufgehoben worden sein
• Testen des besten Modells auf diese Daten• Nach Kreuzvalidierung: am besten alle n Netze
mit Durchschnittsbildung!(= „Komitee“)
• Jetzt nochmalige n-fache Kreuzvalidierung mit besten Modell (Komitee) Schätzung der Routineperformanz + Konfidenzintervall
SS 2009 Maschinelles Lernen und Neural Computation
21
Schritt 7: Interpretation der Ergebnisse
• Quadratischer Fehler alleine sagt oft wenig aus• Rückrechnen auf Originalwerte• Berechnen der Auswirkungen (z.B. Ersparnis)• Regressionsgerade,
Scatter Plot:
– Güte– Ausreißer
SS 2009 Maschinelles Lernen und Neural Computation
22
Auswertung von Klassifikationsergebnissen
• Wenn Klassen ungleich verteilt (unterschiedliche a priori Wahrscheinlichkeiten):Gesamtperformanz ist nicht aussagekräftig
• z.B.: p(c1)=0.2, p(c2)=0.8Immer “Klasse 2” sagen (“naïve rater”) bringt 80% korrekt
Unterscheiden zwischen– Sensitivität (korrekt klassifizierte “Positive” – z.B. Klasse 1)
– Spezifität (korrekt klassifizierte “Negative” – z.B. Klasse 2)
• Wenn 1 Gesamtperformanz notwendig (z.B. zum Vergleich):Durchschnitt der beiden Werte
• naïve rater: Sens=0%, Spez=100%, Durchschnitt: 50%
• Guter Klassifizierer: Sens=80%, Spez=80%, Durchschnitt: 80%
SS 2009 Maschinelles Lernen und Neural Computation
23
Die ROC-Kurve
• Ob höhere Sensitivität oder höhere Spezifität besser ist, entscheidet Anwendung
Sens. vs. Spez. plotten
• zeigt den gesamten Bereich des Klassifizierers an
• naive rater: 45º Gerade
• Je weiter davon entfernt, desto besser
• Gesamtgüte: Fläche unter der ROC-Kurve
„receiver operated characteristics“
SS 2009 Maschinelles Lernen und Neural Computation
24
Zusammenfassung
• Komplexe Lerner erfordern Sorgfalt und saubere Validierung
• Viele Trainingsdurchgänge nötig• Komplexe Lerner sollten nie „blind“ auf Daten
angewandt werden• Bei kleinen Datensätzen sind komplexe Lerner oft
nicht überlegen (auch wenn das Problem theoretisch nichtlinear ist)