Machine Learning - Informatik Uni Leipzig

Werbung
Machine Learning
0. Vorbemerkungen
Was ist Lernen?
Simon: Jede Veränderung eines Systems, die es ihm erlaubt, eine Aufgabe bei der
Wiederholung derselben Aufgabe oder einer Aufgabe derselben Art besser zu lösen.
(nicht immer Lernen involviert, wenn Verbesserung erzielt wird: Wechseln der Klingen eines
Rasenmähers)
Scott: Lernen ist ein Prozeß, bei dem ein System eine abrufbare Repräsentation von
vergangenen Interaktionen mit seiner Umwelt aufbaut.
Michalski: Lernen ist das Konstruieren oder Verändern von Repräsentationen von
Erfahrungen.
Typen des Lernens:
Lernen
empirisches/induktives Lernen:
aus vorgegebenen (oder gefundenen)
Beispielen/Daten werden allgemeine
Regeln oder Prozeduren erzeugt
deduktives/speedup Lernen
Wissensbsis so umstrukturiert,
dass Aufgaben besser erfüllt werden
(z.B. Einfügen von Lemmata)
supervised: Beispiele der Form (x_i, y_i)
gegeben. Zu lernen Funktion f, so dass
f(x_i) = y_i für alle i. f soll angewendet
werden können, um y-Wert für neue x zu
bestimmen.
unsupervised: nur x_i gegeben,
gesucht Regelmäßigkeiten
(z.B. Clustering)
Bemerkung:
Bildbereich der Funktion f kann numerischer Wert sein, aber auch vorgegebene Menge
möglicher Klassen, oder nur Ja/Nein (wenn es um Zugehörigkeit zu vorgegebener
Zielklasse/Zielprädikat geht). Hier letzterer (binärer) Fall im Vordergrund
Logische Sicht:
Beschreibung von Beispielen und Hintergrundwissen durch logische Formeln
gesucht Hypothese H (Definition des Zielprädikats)
folgende Bedingungen müssen gelten:
B Hintergrundwissen
D+ positive Beispiele (Sokrates sterblich, Aristoteles sterblich, ...)
D- negative Beispiele
negierte Formulierung: (Zeus nicht sterblich, Poseidon nicht sterblich,...)
nicht-negierte Formulierung: (Zeus sterblich, Poseidon sterblich,...)
B ∪ {H} |- D+
B ∪ {H} ∪ D- konsistent (negierte Formulierung), oder
B ∪ {H} |- D- (nicht-negierte Formulierung)
(es gibt viele Hypothesen, die diese Bedingungen erfüllen, nicht alle sinnvoll
(z.B sterblich(Sokrates) & sterblich (Aristoteles) & ... )
Sei g das Zielprädikat. Zusammenhang mit Funktion f:
f(c) = Yes falls B ∪ {H} |- g(c)
No sonst
1. Decision Tree Learning: Folien
Weiteres Beispiel:
Nr. Sonne?
Film?
Freundin-da? Klausur bald? Zielprädikat?
1
2
3
4
5
nein
ja
nein
nein
nein
nein
nein
ja
nein
nein
ja
nein
nein
nein
nein
ja
ja
ja
nein
ja
nein
nein
nein
nein
ja
2. Version Space Learning: Folien
3. Induktive Logikprogrammierung (ICL, de Raedt)
gegeben:
Menge positiver Beispiele P für g(X1, ..., Xn), Menge negativer Beispiele N für g
[jeweils als Prolog-Fakten der Gestalt g(c1, ..., cn)]
Hintergrundwissen B (Prolog-Regeln)
gesucht: Menge H von Regeln, die Zielprädikat definieren:
B ∪ H |- p für alle p aus P; B ∪ H |- n für kein n aus N
Algorithmus:
find_hypothesis(P,N)
;;liefert Regelmenge H für pos. Beispiele P und negative N
H := {};
while P ≠ {} do
r := find_a_rule(P,N);
H := H ∪{r};
P := {p ∈ P | nicht B ∪ {r} |- p }
output H.
find_a_rule(P,N)
;;liefert Regel, die einige positive Beispiele abdeckt, kein negatives
head := g(X1,...,Xn), wobei g das Prädikatensymbol in P und n seine Stelligkeit ist
body := true
while B ∪ {head :- body}|- n für ein negatives Beispiel n do
l := zulässiges Literal lit mit maximalem heuristischem Wert für head :- body, lit;
body := body, l;
output(head :- body)
Heuristischer Wert einer Regel: z. B. abhängig von Zahl der positiven Beispiele, die erfasst,
und negativen Beispiele, die ausgeschlossen werden.
Beispiel:
Hintergrundwissen B:
parent(ann,mary). parent(ann,tom). parent(tom,eve). parent(eve,ian)
female(ann). female(mary). female(eve)
Beispiele:
P: daughter(mary,ann). daughter(eve,tom).
N: daughter(tom,ann). daughter(eve,ann).
Annahmen:
heuristischer Wert = Anzahl positiver abgedeckter – Anzahl negativer
zulässige Literale solche, in denen nur Variablen als Argumente vorkommen
Aufruf von find_a_rule(P,N) konstruiert folgende bodies:
body1:
initialisiert mit true
beide negativen Beispiele werden aus
daughter(X1,X2) :- true abgeleitet
body2:
Alternativen: female(X1), female(X2), parent(X1,X2),
parent(X2,X1)
heur. Wert: 2-1
1-2
0-0
2-1
1. und 4. Alternative gleich gut, nehmen wir
female(X1)
negatives Beispiel daughter(eve,ann) wird aus B und
daughter(X1,X2) :- female(X1) abgeleitet
body3:
Auswertung ergibt max. heuristischen Wert für parent(X2,X1):
kein negatives Beispiel mehr abgeleitet aus B und
daughter(X1,X2) :- female(X1), parent(X2,X1)
diese Regel wird also ausgegeben
da diese Regel alle positiven Beispiele abdeckt -> fertig
Immenser Suchraum: Einschränkung der Literale, die betrachtet werden, notwendig.
4. Instance Based Learning (Case Based Reasoning)
Bisher: Lernen der gesuchten Funktion/Klassifikation durch Erzeugen allgemeiner Regeln:
Beispiele:
(x1, y1)
...
(xn, yn)
Í
Regeln:
y1(x) :- Bedingung
...
ym(x) :- Bedingung
neues Objekt xi: y-Wert durch Anwendung der erzeugten Regeln ermittelt
kann man nicht den Wert gleich aus den Beispielen ablesen?
Ja, wenn es geeignetes Ähnlichkeitsmaß zwischen Objekten/Fällen gibt:
Idee: f(xi) = yj falls das Paar (xj,yj) in den Beispielen enthalten ist und xj das Objekt in den
Beispielen ist, das xi am ähnlichsten ist.
Zur Erhöhung der Zuverlässigkeit werden oft die k nächsten Objekte betrachtet:
sim(xi,xj) liefert numerisches Maß der Ähnlichkeit zweier Objekte/Fälle
gegeben: Menge von Beispielpaaren (xi,yi).
Sei x ein neues Objekt, N die Menge der k Paare (xi,yi), für die sim(x,xi) am größten ist.
Der für x prognostizierte Wert yi ist der y-Wert, für den der folgende Ausdruck maximal wird:
Σ(xi,yi) ∈ N sim(x,xi)
Beispiel: k = 4, die x ähnlichsten Beispiele sind
(x1,a)
(x2,a)
(x3,a)
(x4,b)
es gelte sim(x,x1) = sim(x,x2) = sim(x,x3) = 1 und sim(x,x4) = 2
Damit:
Σ(xi,a) ∈ N sim(x,xi) = 3
Σ(xi,b) ∈ N sim(x,xi) = 2
Der für x prognostizierte Wert ist also a (obwohl x4 näher an x liegt). Für k = 1 wäre der Wert
also b gewesen.
Ähnliche Ideen liegen dem fallbasierten Schließen (case based reasoning) zugrunde:
Datenbank mit vorliegenden Fällen (jeweils Problem mit Lösung)
neuer Fall F. Suche den F ähnlichsten Fall F’ und verwende die Lösung von F’.
gegebenenfalls muss Lösung noch an F angepasst werden.
Hauptproblem: was ist das geeignete Ähnlichkeitsmaß?
Knowledge Discovery in Databases (KDD) und Data Mining
Begriffe teils synonym verwendet, teils Data Mining als ein spezieller Teilaspekt von KDD
KDD is the non-trivial process of identifying valid, novel, potentially useful, and ultimately
understandable patterns in data (Fayyad et al.)
Pattern: statement in a given language that describes (relationships among) the facts in a
subset of the given data and is (in some sense) simpler than the enumeration of all facts in the
subset.
(Gleichungen, Regeln, Cluster, Entscheidungsbäume, ...)
Ziel: Entdecken nützlicher Information in großen Datenmengen
Prozeß hochgradig interaktiv (Benutzer von KDD-tools muß Domäne gründlich verstehen um
richtige Teilmenge der Daten sowie Kriterien für Interessantheit zu wählen) und iterativ, da
etwa Resultate des data mining zu neuer Aufbereitung der Daten führen können.
Gebiet etabliert seit 1990
Der KDD-Prozeß:
Mannila
1.
2.
3.
4.
5.
understanding the domain
preparing the data set
discovering patterns (data mining)
postprocessing of patterns
putting results to use
1. gewisses Vorverständnis unerläßlich, vielversprechend, wenn es Experten gibt, aber
zugrundeliegende Eigenschaften der Domäne sich häufig ändern (Käufergewohnheiten)
2. Auswahl der Datenquellen, Integration heterogener Daten, Fehlerbehandlung, fehlende
Werte etc.
3. Techniken aus Statistik und Machine Learning verwendet
4. Auswahl/Ordnen der gefundenen Patterns, Visualisierung, etc.
5. Anwendung
Hier Focus auf 3.
Zushang KDD – Machine Learning: Methoden des ML (etwa decision tree learning, rule
induction) Kern des data mining. Unterschiedliche Focussierung in den communities: große
Mengen einfacher Daten, Prozeßcharakter vs. Einzelner Lernschritt, bloße Daten vs.
angenommene Regularität, bescheidene vs. große Ziele,
Typische Data Mining Aufgaben
Gegeben Menge von Datenbankeinträgen :
Klassifikation:Vorhersage eines Attributwertes (target attribute) aus den anderen
Clustering: Einteilen der Objekte in Klassen ähnlicher Objekte
Assoziation: Finden von Zusammenhängen zwischen häufig vorkommenden itemsets
(kein target)
(Warenkorb: wer Brot kauft, kauft auch häufig Butter, wer Wurst und Senf
kauft, kauft auch häufig Bier)
Anwendungen: Gesundheitswesen, wissenschaftliche Daten, Finanzdaten ...
Bsp.: SKICAT (Sky Image Cataloging and Analysis Tool), 3 terabyte Bilddaten, klassifiziert
2 Milliarden Himmelsobjekte (Sterne/Galaxien), 40 Attribute pro Objekt, basiert auf decision
tree learning, statistische Optimierung über mehrere gelernte Bäume, 94% korrekte
Klassifizierung
Entdecken von Assoziationsregeln in binären Daten
R = {A1, ..., Ap} binäre Attribute
Eine Relation r = {t1, ..., tn} über Schema R ist eine Matrix mit p Spalten und n Reihen, jede
Reihe Vektor aus 0 und 1.
Beispiele:
Studentendatenbank, R Kurse, n Studenten, 1 in (s,c) bedeutet Student s hat Kurs c belegt.
Oder: Kunde n hat Produkt k gekauft; Publikation p zitiert Publikation p‘, ...
Assoziationsregel X => B, X ⊆ R, B ∈ R\X
Intuitiv: wenn ein Objekt die Eigenschaften in X hat, dann (meist) auch Eigenschaft B
Gegeben W ⊆ R,
s(W,r) ist die Häufigkeit von W in r: Anteil der Zeilen die für alle Attribute in W Wert 1
haben (nicht Anzahl!).
Häufigkeit einer Regel X => B: s (X ∪ {B}, r)
Konfidenz einer Regel X => B: s (X ∪ {B}, r) / s(X, r)
Aufgabe: finde alle Regeln X => B mit Häufigkeit ≥ σ und Konfidenz ≥ θ.
In realistischen Retail Anwendungen ca:
106 Zeilen, 5000 Spalten
σ = 10-2 - 10-5 Hunderte oder Tausende von Regeln zu finden
Suchraum exponentiell in Anzahl der Attribute (beliebige Teilmengen als body)
X frequent set in r falls s(X,r) ≥ σ.
Wenn frequent sets bestimmt, Bestimmung Assoziationsregeln einfach:
Für jeden frequent set X und B ∈ X, teste ob X \ {B} => B genügend hohe Konfidenz hat.
Wie findet man frequent sets? Ausnutzen der Eigenschaft: Teilmengen von frequent sets sind
frequent.
Starte mit einelementigen Mengen
Finde die, die frequent sind,
bilde daraus 2 elementige Mengen etc., bis keine neuen mehr gefunden
eine n-elementige Menge ist Kandidat nur wenn alle ihre n-1-elementigen Teilmengen (n
Stück) frequent sind
C := {{A} | A ∈ R};
F := {};
i := 1;
While C ≠ {} do
F‘ := the sets X ∈ C that are frequent;
F := F ∪ F‘;
i := i+1;
C := the sets of size i such that each subset of size i-1 is in F‘
od
output F
Beispiel: items A, B ,C, D, E, F. Die Mengen {A,B,C} und {C,D,E} sowie alle ihre
Teilmengen seien frequent, sonst keine frequent sets:
C1: {A}, {B}, {C}, {D}, {E}, {F}
F1: {A}, {B}, {C}, {D}, {E}
C2: {A, B}, {A,C}, {A,D}, {A,E}, {B,C}, {B,D}, {B,E}, {C,D}, {C,E}, {D,E}
F2: F1 + {A, B}, {A,C}, {B,C}, {C,D}, {C,E}, {D,E}
C3: {A, B, C}, {C, D, E}
F3: F2 + {A, B, C}, {C, D, E}
C4: leer
Wieviele mögliche Assoziationsregeln gibt es? aus jedem mindestens 2-elementigen set
können alle Elemente als Regelköpfe ausgewählt werden: also 2 * 6 + 3 * 2 = 18
In typischen Fällen hat der größte frequent set bis zu 10 Elemente (damit sind mindestens alle
210 Teilmengen auch frequent sets !!)
Funktioniert für bis zu mehreren Dutzend Millionen Beispielen (Zeilen), falls nicht zu viele
frequent sets vorkommen.
Algorithmen können viel Zeit verbrauchen, da keinerlei Echtzeitverhalten erforderlich.
Herunterladen