WS 2015/16: Syntaktische und Statistische Mustererkennung - Übungen

Übungsmodalitäten

Die Übungen zu Syntaktischer und Statistischer Mustererkennung sind in Gruppen zu 2 bis 3 Leuten zu absolvieren. Die Abgabe der Beispiele hat bis zum jeweiligen Abgabetermin (im Regelfall der Tag vor Präsentation/Besprechung der Ergebnisse 12:00) per e-mail zu erfolgen. Die Email hat neben den Namen, Matrikelnummern und Studienkennzahlen der Gruppenmitglieder ein Dokument (in beliebiger Form: PDF, plain-text, Word, OpenOffice, etc.) zu enthalten, in welchem alle gestellten Fragen beantwortet sind und die wesentlichen Schritte zur Erreichung des Ergebnisses dokumentiert und nachvollziehbar sind. Zur Dokumentation des Ergebnisses können auch Datenfiles, Programmcode, Scripts, Transkripte von Matlab oder R Sessions, Grafiken, etc. beigefügt werden. Diese müssen dann entsprechend im Hauptdokument referenziert werden.

Software

Die Übung ist derart gestaltet, dass die Aufgaben einerseits mit "Papier und Bleistift", andererseits unter der Verwendung von Software für statistische Auswertungen und Maschinelles Lernen gelöst werden können. Als Software bieten sich R oder Matlab sowie WEKA an. Es ist den Übungsteilnehmern freigestellt, andere Software zu verwenden oder Algorithmen selbst von Hand zu (re-)implementieren, sofern deren Verwendung zu richtigen nachvollziehbaren Ergebnissen führt.

Übung 1, Abgabe bis 16.11.2016 24:00

1. Mustererkennungsaufgabe (10 Pkt)

Analysieren Sie einen Mustererkennungsprozess. Suchen Sie nach einer interessanten Anwendung, die Aufgaben der Mustererkennung als zentralen Bestandteil beinhaltet. Es sollte am besten eine Aufgabe gewählt werden für welche auch Daten zur Verfügung stehen bzw. im Rahmen dieser Übungsaufgabe von Ihnen generiert werden können. Das Internet und insbesondere diverse Data Repository Websites stellen eine reiche Fundgrube für interessante Datenquellen dar. Es ist Ihnen aber freigestellt, die Daten auch selbst zu erheben/aufzunehmen.
Die in den Vorlesungsunterlagen erwähnten Aufgaben und Daten dürfen nicht für diese Aufgabe gewählt werden.
Beschreiben Sie die Mustererkennungsaufgabe unter Berücksichtigung der einzelnen Schritte eines Mustererkennungsprozesses (Umwelt-Aufnahme-Vorverarbeitung-Merkmalsextraktion-Merkmalsreduktion-Trainingsdaten-Lernen-Klassifikation (oder Regression, Clustering, ...)-Beschreibung). Es sollen alle Schritte des Prozesses berücksichtigt werden und ihre Umsetzung im gewählten Mustererkennungsprozess angerissen werden. Weisen Sie auf verwendete Methoden hin und beschreiben Sie ggf. Abweichungen von den üblichen Prozessschritten. Die einzelnen Schritte sollen nur so genau im Detail beschrieben werden, soweit dies auch für die Aufgabe und die gewählten Daten möglich ist. Falls Ihnen für manche Teile unzureichende Information vorliegt, stellen Sie Spekulationen über mögliche Verarbeitungensschritte an.

2. Entscheidungsbäume (4+4 Pkt)

  1. Erstellen Sie einen (beliebigen, mind. Tiefe 2) Entscheidungsbaum für folgende Daten (zur Vorhersage des Attributs play-tennis). Bestimmen Sie den Fehler Ihres Baumes auf den Trainingsdaten.

    play-tennisoutlooktemperaturehumiditywind
    nosunnyhothighweak
    nosunnyhothighstrong
    yesovercasthothighweak
    yesrainmildhighweak
    yesraincoolnormalweak
    noraincoolnormalstrong
    yesovercastmildhighstrong
    nosunnymildhighweak
    yessunnycoolnormalweak
    yesrainmildnormalweak
    yessunnymildnormalstrong
    yesovercasthotnormalweak
    yesovercastcoolnormalstrong
    NoRainMildHighstrong

  2. Ihnen stehen (zur Vereinfachung nur) die Attribute outlook und wind für die Entscheidung im Wurzelknoten des Entscheidungsbaumes zur Auswahl. Welches sollten Sie wählen? Berechnen Sie den Informationgain IG(Y|X) = H(Y) - H(Y | X), konkret IG(play-tennis|outlook) und IG(play-tennis|wind), um Ihre Entscheidung zu begründen.


3. Entscheidungsbaum II (4+3+3 Pkt)

Lernen Sie mittes WEKA Entscheidungsbäume für diese Daten zur Vorhersage von "miles per gallon".

  1. Laden Sie die Daten in den WEKA Explorer und bereiten Sie diese für das Entscheidungsbaumlernen vor, im besonderen das Attribut mpg (Konvertierung in Nominalwerte notwendig!). Verwenden Sie hierfür die Filterfunktionen (z.B. discretize) und achten Sie dabei auf vernünftig gewählte Parameter und darauf, dass andere Attribute nicht verändert werden. (Entscheiden Sie selbst, wie viele diskrete Klassen Sie unterscheiden möchten, aber mind. 2). Dokumentieren Sie Ihre Schritte und Entscheidungen und speichern Sie das modifizierte Datenset.

  2. Verwenden Sie den Entscheidungsbaumalgorithmus J48 (eine Implementierung von C4.5) zum Lernen von Entscheidungsbäumen für die Klassifikation des Attributs mpg. Beschreiben Sie kurz die Struktur des gefundenen Baums.

  3. Untersuchen Sie grob den Einfluss von Parametern von J48 und Einstellungen zu Trainings/Testset auf die erzeugten Entscheidungsbäume. Zeigen Sie, wie sich das Bias-Varianz-Dilemma manifestiert. Generieren Sie einen Entscheidungsbaum, der "overfitted" ist und einen der übergeneralisiert.

Übung 2, Abgabe bis 21.12.2016 24:00

4. Bayes'sche Entscheidungstheorie und Anwendungen (5 Pkt)

Eine weit verbreitete Art einen Klassifikator darzustellen ist mit Hilfe von Diskriminantenfunktionen gi(x).
Der Klassifikator weist einem Merkmalsvektor x die Klasse ωi zu, wenn gi(x) > gj(x) für alle j <> i.
Betrachten Sie zwei normalverteilte Klassen:
normal distribution (Formel für Normalverteilung)
mit Standardabweichung σ = 1 und A Priori-Wahrscheinlickeiten P(ω1) = P(ω2).
Berechnen Sie einen Klassifikator mit minimalem (bayes'schem) Fehler folgendermaßen: Leiten Sie aus obiger Gleichung die A-Posteriori Wahrscheinlichkeit P(ωi|x) ab. Definieren Sie anschließend die logarithmische Diskriminantenfunktion gi(x) = log P(ωi | x).
Verwenden Sie die logarithmischen Form der Diskriminatenfunktion um in allgemeiner Form die Entscheidungsgrenze zu berechnen, d.h. den Wert von x für den g1(x) = g2(x) ist.
Verifizieren Sie Ihr Ergebnis für μ1 = 2 und μ2 = 4. Geben Sie Klassifikationsregeln in Form von Wenn-Dann Regeln an.

5. Anwendungen der Bayes'schen Entscheidungstheorie (4+4+6 Pkt)

  1. Dr. X ist Mediziner und an Statistik interessiert. Er verwendet einen bestimmten Test um zu bestimmen, ob sein Patient Y an Krebs erkrankt ist. Leider ist der Test nicht 100% zuverlässig. Genaugenommen zeigt der Test nur in 98% aller Krebsfälle diese auch an. Im Fall dass der Patient nicht Krebs hat, besteht immer noch eine 3%-ige Wahrscheinlichkeit, dass der Test dennoch positiv ausfällt. Im Schnitt haben 0,8% der Gesamtbevölkerung Krebs.

    Wie hoch ist die Wahrscheinlichkeit, dass Patient Y Krebs hat, wenn der Test positiv ist? Nach dem positiven Ergebnis, beschließt der Arzt, den Test zu wiederholen. Der zweite Test ist ebenfalls positiv. Wie hoch ist die Wahrscheinlichkeit nun? (Unter der Annahme, dass die Tests statistisch unabhängig sind.)

  2. Sie installieren Ihr neues Bildverarbeitungssystem in einer Chipfabrik, das 95% aller kaputten Chips entdeckt, allerdings auch bei 1% der funktionsfähigen Chips Alarm schlägt. Insgesamt sind 1% aller Chips Ausschuß. Die Herstellungskosten für einen Chip betragen 5 EUR, der Verkaufpreis 20 EUR. Die Folgekosten für einen irrtümlich durchgelassenen kaputten Chip sind sehr hoch, nämlich 1995 EUR. Ihr Chef will von Ihnen das erwartete Gesamtrisiko bei Anwendung der optimalen Bayes-Entscheidungsregel wissen, d.h. wieviel Gewinn oder Verlust er in diesem Fall pro Chip machen wird.

  3. Eine Fabrik in der normalerweise Apfelsaft produziert wird, wird in Kriegsjahren dazu verwendet, auch Handgranaten herzustellen. Äpfel und Granaten werden auch demselben Förderband bewegt. An einer Stelle werden Äpfel von Granaten aufgrund ihres Gewichts getrennt, erstere zu Saft verarbeitet, letztere sorgfältig verpackt und verschickt.
    Im Schnitt wiegt ein Apfel 100g mit einer Standardabweichung von 30g und eine Handgranate 250g mit einer Standardabweichung von 5g. Insgesamt sind 80% aller Gegenstände auf dem Förderband Äpfel.
    Berechnen Sie eine Klassifikationsregel für Gegenstände auf dem Förderband um die Wahrscheinlichkeit eines Klassifikationsfehlers zu minimieren.

    Es ist einsichtig, dass die Fehlklassifikation einer Handgranate als Apfel höchst gefährlich ist. Folglich definieren wir das Risiko (Kosten) einer Klassifikation: Fehlklassifikation einer Granate als Apfel ist 100, Fehlklassifikation eines Apfels als Granate ist 1. Die korrekte Klassifikation hat keine (0) Kosten.
    Berechnen Sie eine Klassifikationsregel, welche das Gesamtrisiko minimiert. Wie unterscheidet sich diese Klassifikationsregel von der vorherigen, fehlerminimierenden?

6. Naive Bayes (5 Pkt)

Folgende Trainingsdaten liegen für gestohlene Autos vor:
Example ID Color Type Origin Stolen?
1 Red Sports Domestic Yes
2 Red Sports Domestic No
3 Red Sports Domestic Yes
4 Yellow Sports Domestic No
5 Yellow Sports Imported Yes
6 Yellow SUV Imported No
7 Yellow SUV Imported Yes
8 Yellow SUV Domestic No
9 Red SUV Imported No
10 Red Sports Imported Yes
Ist ein Fahrzeug mit den Attributen Red Domestic SUV mit Hilfe eines Naiven Bayesschen Klassifikators als gestohlen oder als nicht gestohlen zu klassifizieren? Berechnen Sie dazu die benötigten Einzelverteilungen unter Verwendung von Laplace'scher Glättung zur Vermeidung von Null Wahrscheinlichkeiten.

7. Wahrscheinlichkeitsdichteschätzung (6 Pkt)

Die Datei samples.rda enthält ingesamt 70 Beobachtungen für 2 unterschiedliche Klassen. Laden Sie die Daten nach R oder in ein anderes Tool ihrer Wahl (load('samples.rda') lädt die Daten in die Variable d) und berechnen Sie die Likelihood für die beiden Testpunkte (6/4) und (4/0) auf folgende beide Arten.

  1. Parametrisch: Maximum Likelihood Estimate
    Gehen Sie davon aus, dass beide Klassen von einer bivariaten Normalverteilung generiert wurden. Schätzen Sie mittels der R Funktion mlest aus dem Package mvnmle Mittelwert und Kovarianz für jede der beiden Klassen. Berechnen Sie anschließend die Likelihood (siehe Funktion dmvnorm) für jeden der beiden gefragten Punkte und jede der beiden Klassen.

  2. Nichtparametrisch: Parzen-Window
    Diesmal haben Sie keine Information über die klassenbedingte Verteilung, deshalb wählen Sie einen nichtparametrischen Ansatz. Verwenden Sie die Funktion bkde2D aus dem package KernSmooth zur Dichteschätzung. bkde2D benötigt die Angabe eines Bandbreitevektors c(bx,by). Probieren Sie verschiedene Bandbreiten und beurteilen Sie diese anhand des Contourplots der geschätzen Dichtefunktion. (Hinweis: est <- bkde2D(....); contour(est$x1,est$x2, est$fhat) ).
    Wählen Sie eine konkrete Schätzung und bestimmen Sie wie für Aufgabe a) die Likelihood für beide Punkte und jede der beiden Klassen. (Hinweis: Finden Sie die korrekte Zelle in est$fhat indem Sie zuerst die richtige Zeile und Spalte in est$x1 bzw. est$x2 finden.)

  3. Klassifikation
    Wie würden die beiden Punkte in jedem der beiden Ansätze klassifiziert? Basiert Ihre Antwort auf Maximum Likelihood (ML) oder Maximum Posteriori (MAP)? Wie sieht jeweils die andere Möglichkeit aus?

Übung 3, Abgabe bis 18.1.2017 24:00

8. Distanzfunktion für Strings (10 Pkt)

Verwenden Sie den auf Wikipedia beschriebenen Algorithmus zur Berechnung der Levenshtein-Distanz zwischen einer Ihrer Matrikelnummern und 9525534 sowie 1829723. Berechnen Sie nicht nur Distanz sondern stellen Sie auch die Tabelle dar.
Finden Sie zwei Zeichenketten für welche Levenshtein-Distanz und Damerau-Levenshtein-Distanz unterschiedliche Ergebnisse liefern. Berechnen Sie die beiden Distanzen und präsentieren Sie auch die Tabelle, welche im Rahmen der Berechnung erstellt wird.

9. Strukturelle Muster (10 Pkt)


Definieren Sie eine Menge von strukturellen Elementen (Musterprimitiven) und ein System (z.B. Grammatik) zur Beschreibung der Relationen zwischen diesen Primitiven. Definieren Sie das System derart, dass "humanoide Muster" (3. Spalte) von den anderen unterschieden werden können.

Zeigen Sie wie die Analyse eines "humanoiden" und eines anderen Musters aussehen kann.

10. String Factoring (10 Pkt)

Verwenden Sie das Verfahren aus der VO (6. Einheit, Slides 39-44), um Regeln für die Zeichenkette "abcababcddabdada" zu bestimmen. Wählen Sie als maximale Länge der Regeln 2 Zeichen.

Wenden Sie die Regeln dann auf "abcadadcddabdaad" und "abcbdbdcddabdada" an und bestimmen die Residuen.