Skriptum zum ersten Teil der Einführung in die Wissensverarbeitung

Werbung
Skriptum zum ersten Teil der Einführung in
die Wissensverarbeitung
Prof. Dr. Wolfgang Maass
Institut für Grundlagen der Informationsverarbeitung
Technische Universität Graz
5. März 2008
Achtung: Dies Skriptum ist nicht geeignet für ein Selbststudium. Es fasst lediglich
einige Definitionen und Formeln zusammen, welche in der Vorlesung erläutert werden. Das
Lesen (oder auswendig lernen) dieses Skriptums ist nicht ausreichend für ein Verstehen
der Materie (bzw. zum Bestehen der Prüfung). In der Prüfung wird auch Material aus
der Vorlesung gefragt, welches nicht in diesem Skriptum steht.
1
Grundbegriffe des Maschinellen Lernens (ML)
Die Fähigkeit zum Lernen ist traditionell ein wichtiges Unterscheidungsmerkmal zwischen
lebendigen Organismen und unbelebter Materie. In dieser LV untersuchen wir Methoden,
die es dem Computer ermöglichen, diese Barriere zu durchstoßen und zu lernen. Um
diese Methoden zu verstehen ist es zuerst einmal erforderlich, dass wir analysieren, was
“Lernen” überhaupt ist. Wenn man genauer hinschaut, dann sehen wir, dass wir recht
verschiedenartige Tätigkeiten als Lernen bezeichnen:
a) gesprochene Sprache verstehen lernen, oder lernen das Gesicht eines Freundes wiederzuerkennen, oder lernen aufgrund diagnostischer Messdaten eines Patienten zu
beurteilen, welche Krankheiten dieser Patient hat, oder lernen eine Rezession vorherzusagen (→ classification learning).
b) lernen, einen Aktienkurs vorherzusagen (→ regression).
c) lernen, zu erkennen, wenn unser Auto ein ungewöhnliches Geräusch macht (→ unsupervised learning).
d) Surfing lernen, oder in Spiegelschrift schreiben lernen (→ adaptive control, motor
learning).
1
e) lernen, einen vom Schilehrer gefahrenen Bogen in derselben Haltung nachzufahren
(→ imitation learning).
f) eine erfolgreiche Strategie lernen, um ein Spiel zu gewinnen, oder in einem größeren
Kontext: lernen zu überleben (→ reinforcement learning).
g) Vokabeln lernen (→ memory management).
Keine dieser Arten des Lernens sind unerreichbar für eine Maschine, aber sie erfordern
jeweils verschiedene Techniken. In dieser LV werden wir uns auf a) und b) konzentrieren,
also Lernen von Klassifikationen und Regression (beides sind Spezialfälle des sogenannten
supervised learning) sowie c) (unsupervised learning).
Man könnte meinen, dass, wenn man einmal richtig verstanden hat, wie “Lernen” geht
und dies dann im Computer implementiert hat, der Computer dann bald alle genannten
Typen des Lernens beherrscht. Das ist bisher nicht gelungen. Ein Blick in die Biologie
lässt die Schwierigkeit dieses Problems erahnen, weil es für jede Art von Lernen einige
Tierarten gibt, die diese beherrschen und andere, die sie nicht beherrschen.
1.1
Ein Mathematisches Modell für Lernen (genauer gesagt: für
Klassifikation und Regression)
Die Environment des Lerners wird modelliert durch ein Wahrscheinlichkeitsmaß (:= WM)
P auf einer Menge der Form A × B.1 Jedes Paar ha, bi ∈ A × B wird interpretiert als
ein Beispiel eines konkreten Lernproblems. Im Fall eines Klassifikationsproblems ist B
eine diskrete Menge. Zum Beispiel im Fall von Gesichtserkennung ist A die Menge aller
Fotografien von Gesichtern, die vorkommen können und B ist die Menge der Namen
von den Personen, deren Gesichter zu erkennen sind (möglicherweise ergänzt durch ein
zusätzliches Element “don’t know”). Ein Paar ha, bi ∈ A × B ist in diesem Beispiel eine
Fotografie a eines Gesichtes zusammen mit dem Namen der betreffenden Person. Das
Wahrscheinlichkeitsmaß P gibt für jedes Paar ha, bi ∈ A × B die Wahrscheinlichkeit
P (ha, bi) an, mit der die Person b vor die betreffende Kamera tritt und das Bild a in der
Kamera erzeugt.2
Lernen besteht in der einfachsten Version (offline Lernen) aus einer Trainingsphase und
einer anschließenden Test- oder Performancephase. Während der Trainingsphase wird eine
Liste L = hha1 , b1 i, ha2 , b2 i, . . . , hal , bl ii von l Trainingsbeispielen gemäß dem WM P aus
A × B gezogen. Die Aufgabe des Lerners ist, aufgrund dieser Beispiele L eine Hypothese
HL zu erzeugen. Eine solche Hypothese ist mathematisch betrachtet eine Funktion von A
1
Erinnerung: A × B := {ha, bi : a ∈ A und b ∈ B} ist die Menge aller geordneten Paare mit der
ersten Komponente aus A und der zweiten Komponente aus B.
2
Wir nehmen in dieser LV meist an, dass jede für uns interessante Teilmenge M von A × B messbar
ist, sodass deren Wahrscheinlichkeitsmaß P (M ) definiert ist. Oft kann man annehmen, dass A und B
endliche Mengen sind, sodass ohne mathematische Komplikationen jede Teilmenge M ⊆ A×B als messbar
betrachtet werden kann.
2
nach B, also HL : A → B. Das ist sinnvoll, denn wenn in der anschließenden Testphase
ein Bild a eines Gesichtes von der Kamera ausgegeben wird, so gibt HL (a) ∈ B einen
(geratenen) Namen der Person an, um deren Gesicht es sich handelt.
Die Qualität einer jeden Hypothese H : A → B wird für Klassifikationsprobleme anhand
ihres sogenannten wahren Fehlers (true error) gemessen:
errorP (H) := P ({ha, bi : H(a) 6= b}) .
In interessanten Anwendungen ist die Menge A in der Regel extrem groß, sodass man
diesen wahren Fehler errorP (H) einer Hypothese nicht genau bestimmen kann. Man
kann aber eine Liste Tk = hhai , bi i : 1 ≤ i ≤ ki von k Testbeispielen gemäß P aus A × B
ziehen und den empirischen Fehler
#{i ∈ {1, . . . , k} : H(ai ) 6= bi }
k
der Hypothese H für diese Liste Tk von k Testbeispielen ausrechnen. Es gilt
errorTk (H) :=
lim errorTk (H) = errorP (H) ,
k→∞
wobei aber die präzise Bedeutung dieser Aussage Begriffe aus der Wahrscheinlichkeitstheorie erfordert, weil die Terme errorTk (H) Zufallsvariablen bezeichnen.
Bei einem Regressionsproblem ist die Menge B in der Regel eine (recht große) Teilmenge von R, z.B. B = [0, 1]. Es wird hier der “Fehler” einer Hypothese H : A → B in
der Regel durch den mittleren quadratischen Fehler (MSE: mean squared error) gemessen.
Dabei ist
MSEP (H) := E((b − H(a))2 )
der wahre mittlere quadratische Fehler von H, und
Pk
(bi − H(ai ))2
MSETk (H) := i=1
k
der empirische mittlere quadratische Fehler einer Hypothese H auf einer Liste Tk
von k Testbeispielen hai , bi i. Es gilt auch in diesem Fall, dass für jede Hypothese H
MSETk (H) gegen MSEP (H) konvergiert für k → ∞.
Gelegentlich betrachtet man auch simultane Regression für mehrere Variablen, z.B. mit
B = Rk für k > 1. In diesem Fall ist eine Hypothese H eine Funktion von A nach Rk .
Wenn man bj für die j-te Komponente eines Vektors b ∈ Rk schreibt, so kann man den
wahren mittleren Fehler von H komponentenweise definieren:
MSEP (H) :=
k
X
E(bj − H(a)j )2 .
j=1
Diese Definition wird zum Beispiel benutzt um den Fehler eines Neuronalen Netzes mit
mehreren Neuronen auf der letzten Schicht zu definieren.
Beachte: Erfolgreiches Lernen ist nur dann möglich, wenn das WM, das die Trainingsbeispiele erzeugt, das selbe ist (oder sehr ähnlich ist), wie das, welches die Testbeispiele
erzeugt.
3
1.2
Analyse des wahren Fehlers errorP (H) und des empirischen
Fehlers errorTk (H) einer Hypothese H für ein Klassifikationsproblem mittels Methoden der Wahrscheinlichkeitstheorie
Fixiere eine beliebige Hypothese H. Dann kann man p := errorP (H) auffassen als die
Wahrscheinlichkeit, dass H(a) 6= b gilt für ein zufällig (gemäß P ) gezogenes Paar ha, bi.
Bei dem Vergleich von H(a) und b handelt es sich um ein Bernoulli-Experiment
(“Münzwurf”) für eine Zufallsvariable Y , da nur die beiden Fälle H(a) = b (Y = 0)
und H(a) 6= b (Y = 1) auftreten können. Der Erwartungswert E(Y ) hat den Wert
errorP (H) = p, und die Varianz V ar(Y ) den Wert p · (1 − p). Die Ermittlung des
empirischen Fehlers errorTk (H) für eine Testmenge Tk , bestehend aus k gemäß P gezogenen Paaren hai , bi i, kann also aufgefasst werden als k unabhängige Wiederholungen
k
eines Bernoulli-Experiments, d.h. man ermittelt den Wert von X := Y1 +...+Y
für identisch
k
(wie Y ) verteilte unabhängige Zufallsvariablen Y1 , . . . , Yk . Dabei ist die Wahrscheinlichkeit, dass die Hypothese H bei k Testbeispielen genau m Fehler macht, gegeben durch
die Binomialverteilung
k
pm · (1 − p)k−m .
m
Dies ist die Wahrscheinlichkeit, dass Y1 + . . . + Yk = ♯ {i ∈ {1, . . . , k} : H(ai ) 6= bi } den
Wert m hat. Ferner gilt E(♯ {i ∈ {1, . . . , k} : H(ai ) 6= bi }) = p·k (weil der Erwartungswert
stets additiv ist für Summen von Zufallsvariablen), also E(errorTk (H)) = E(X) = p·k
= p,
k
und
V ar(♯ {i ∈ {1, . . . , k} : H(ai ) 6= bi }) = k · p · (1 − p) (weil die Varianz additiv ist für Summen von unabhängigen Zufallsvariablen). Ferner ist V ar(X) = k12 V ar(Y1 + . . . + Yk ),
also V ar(X) = k1 · p · (1 − p).
Gemäß der Tschebyschev-Ungleichung3
σ2
für jede Zufallsvariable X mit E(X) = µ und V ar(X) = σ 2
2
ε
k
gilt für X : = errorTk (H) = Y1 +...+Y
mit E(X) = errorP (H) und V ar(X) = k1 ·
k
errorP (H) · (1 − errorP (H)) dass
W ( | X − µ | ≥ ε) ≤
W (| errorTk (H) − errorP (H) | ≥ ε)
≤
errorP (H) · (1 − errorP (H))
k · ε2
.
Für jeden festen Wert von ε > 0 konvergiert diese Wahrscheinlichkeit gegen 0 für k → ∞.
Mittels einer anderen Abschätzung (Chernoff-Bound) erhält man sogar einen exponentiell schnellen Abfall dieser Wahrscheinlichkeit mit wachsender Anzahl k von Beispielen
in einer Testmenge Tk :
W (errorTk (H) ≥ errorP (H) + ε) ≤ e−2kε
R
3
folgt aus W ( | X − µ | ≥ ε) · ε2 ≤ | X − µ |2 dW = σ 2
4
2
und
W (errorTk (H) ≤ errorP (H) − ε) ≤ e−2kε
2
also
W (|errorTk (H) − errorP (H)| ≥ ε) ≤ 2 e−2kε
2
für beliebige k ∈ N und ε > 0.
1.3
Anmerkungen
Ein Lerner (oder Lernalgorithmus) C ist in diesem mathematischen Modell für Lernen
eine Funktion, die jeder Liste L von Beispielen aus A × B eine Hypothese HL : A → B
zuordnet.4 Jeder praktische Lernalgorithmus kann nur Hypothesen HL : A → B aus einer
bestimmten Hypothesenklasse H erzeugen. Die Qualität eines Lernalgorithmus C wird
zum einen daran gemessen, ob es in der Hypothesenklasse H aus der er Hypothesen erzeugt
überhaupt eine Hypothese H gibt mit niedrigem wahren Fehler errorP (H) (“expressibility
of H”). Zum anderen wird die Qualität eines Lernalgorithmus C daran gemessen, wie groß
die Chance ist, dass C schon für eine relativ kurze Liste L von Trainingsbeispielen eine
Hypothese HL in H ausgibt, deren wahrer Fehler errorP (HL ) nicht viel größer ist als
der empirische Fehler errorL(HL ). Jede einzelne dieser Anforderungen kann mit einer
geeigneten Wahl der Hypothesenklasse H leicht erfüllt werden (wie?), aber es ist meist
weniger leicht beide gemeinsam für eine Hypothesenklasse zu erfüllen.
Beachte, dass es für einen guten Lernalgorithmus C nicht ausreicht, dass errorL (HL ) sehr
klein ist, denn das ist oft relativ leicht zu erreichen, z.B. indem der Lerner die Beispiele
in L “auswendig lernt”, also
b,
falls ha, bi in L
HL (a) =
don’t care, sonst .
Ferner: Selbst wenn die Hypothesenklasse H beliebig groß ist, kann man nicht unbedingt
inf H∈H errorP (H) = 0 erwarten. Das WM P kann so geartet sein, dass es für manche
a ∈ A Werte b1 , b2 ∈ B mit b1 6= b2 gibt sodass P (ha, b1 i) > 0 und P (ha, b2 i) > 0.
Im medizinischen Bereich (Diagnose) tritt dies dann auf, wenn es zwei Personen gibt,
die dieselben diagnostischen Messdaten haben, aber die eine hat eine Krankheit, die die
andere Person nicht hat.
Validation Sets: Manchmal benutzt man beim maschinellen Lernen eine Teilmenge V
der Trainingsbeispiele als validation set, d.h. als ”interne Testmenge”. Diese kann z.B.
dazu benutzt werden um abzuschätzen, welche von zwei Hypothesen H1 , H2 (die durch
Anwendung von zwei verschiedenen Lernalgorithmen auf die Trainingsbeispiele in L, die
nicht in V sind, erzeugt wurden) voraussichtlich auf zukünftigen (echten) Testdaten T
weniger Fehler machen wird. Der Lerner C gibt dann diejenige der beiden Hypothesen
4
∞
S
In streng mathematischer Terminologie ist also ein Lernalgorithmus C eine Funktion von (A × B)∗ :=
(A × B)l nach B A (B A = Menge aller Funktionen von A nach B).
l=1
5
H1 , H2 als die endgültige Hypothese HL aus, welche auf V den geringeren Fehler hat.
Validation sets werden z.B. bei der Crossvalidation (siehe Abschnitt 3.2) benutzt.
Typische Situation im Maschinellen Lernen: Es gibt zu wenige Trainingsbeispiele.
6
2
Lernen mit Neuronalen Netzen
Informationsverarbeitung im menschlichen Gehirn wird mittels ca. 1010 hierfür spezialisierten Zellen (Neurone oder Nervenzellen) durchgeführt. Das Input/Output Verhalten
eines Neurons wird oft durch das folgende sehr einfache Modell simuliert (obwohl es die
Arbeitsweise eines Neurons sehr ungenau wiedergibt, weil ein Neuron in Wirklichkeit Folgen von Pulsen, sogenannte spikes, ausgibt):
.
x .
.
.
x .
x1
2
w1
w2
.
A
(å
d
i =1
wi x i
)
wd
d
Abbildung 1: Input und Output eines künstlichen Neurons.
w1 , . . . , wd sind interne Parameter (Gewichte) des Neurons, die beim “Lernen” verändert
werden können und A : R → R ist eine vom Benutzer fest gewählte Aktivierungsfunktion des Neurons.
Inputs: d analoge (oder binäre) Zahlen x1 , . . . , xd
(Anmerkung: im Gehirn ist d ≈ 104 für ein typisches
Neuron).
P
Output: eine analoge (oder binäre) Zahl A( di=1 wi xi ).
Als Aktivierungsfunktion A wählt man in der Regel eine der folgenden 3 Funktionen (siehe
Abb. 2):
1. A(x) = x (in MATLAB: purelin). Man bezeichnet das Neuron dann als lineares
Gatter.
2. A(x) = 1+e1−x (in MATLAB: logsig). Man bezeichnet das Neuron dann als sigmoides Gatter.
1, falls x ≥ 0
3. A(x) =
0, sonst
,
( in MATLAB : hardlim ).
Man bezeichnet diese dritte Funktion als Sprungfunktion (engl: Heaviside function) und
das damit entstehende Gatter als Schwellengatter oder McCulloch-Pitts Neuron
(nach McCulloch und Pitts, die dieses Neuronmodell 1943 als erstes Modell für die Informationsverarbeitungsfunktion eines biologischen Neurons vorschlugen). Beachte, dass
7
lineares Gatter
sigmoides Gatter
5
1
2.5
A(x)
A(x)
A(x) = 1 -x
1+e
0.5
A(x)=x
0
0
-0.5
-2.5
-1
-5
-5
-2.5
0
2.5
5
-5
-2.5
0
x
2.5
5
x
Schwellengatter
1
A(x)
0.5
0
-0.5
-1
-5
-2.5
0
2.5
5
x
Abbildung 2: Aktivierungsfunktionen für verschiedene Gatter
diese Aktivierungsfunktion A als einzige binären Output liefert (selbst, wenn die Inputs
x1 , . . . , xd analog sind).
Schaltkreise, die aus Gattern einer dieser drei Arten (oder verwandten Arten) bestehen,
werden als künstliche Neuronale Netze (kurz: NN) bezeichnet. Diese Schaltkreise
haben mit den Schaltkreisen von Neuronen in unserem Gehirn gemeinsam, dass sie nicht
programmiert werden. Stattdessen werden die Werte ihrer Gewichte – und damit ihr
Input/Outputverhalten – durch einen Lernalgorithmus (angewendet auf eine Liste von
Trainingsbeispielen) bestimmt.
In der Regel möchte man die Freiheit haben, einen Input-unabhängigen Offset w0 zu definieren (dessen Wert auch durch den Lernalgorithmus bestimmt wird), sodass der Output
d
P
des Neurons die Form A( wi xi + w0 ) hat. Um die Schreibweise zu vereinfachen, nimmt
i=1
man meist an, dass x0 eine künstlich hinzugefügte 0-te Inputkomponente ist, die den konstanten Wert 1 hat (für alle Inputs). Die Defaultannahme ist daher im Folgenden, dass
die erste Komponente a der Beispiele ha, bi die Form a = hx1 , x2 , . . . , xd i hat, dass das
NN aber genau genommen den Input x = h1, x1 , x2 , . . . , xd i an Stelle von a erhält.5 Unter
5
Man kann zum Beispiel x− für den ursprünglichen Vektor hx1 , x2 , . . . , xd i schreiben, wenn hierfür
eine separate Notation erforderlich ist.
8
dieser Annahme ist
d
X
wi xi + w0 =
i=1
d
X
wi xi ,
i=0
sodass das Offset w0 formal das Gewicht für die 0-te Inputkomponente x0 darstellt. Da
d
d
P
P
wi xi + w0 ≥ 0 ⇐⇒
wi xi ≥ −w0 , wird −w0 manchmal auch als Schwelle bezeichnet
i=1
i=1
(siehe “Schwellengatter”).
Ein (künstliches) neuronales Netz ist ein Schaltkreis bestehend aus künstlichen Neuronen. Es werden sowohl gerichtete (feedforward) Schaltkreise neuronaler Netze betrachtet, als auch rekurrente (recurrent) Schaltkreise mit Rückkopplungen. Wir untersuchen
in dieser LV nur den erstgenannten einfacheren Typ, sogar nur einen Spezialfall, in dem
der Schaltkreis aus endlich vielen Schichten s = 1, . . . , S besteht und alle Kanten von
Neuronen auf einer Schicht s zu Neuronen auf Schicht s + 1 verlaufen. Die Nummer S
der letzten Schicht wird als Tiefe des neuronalen Netzes bezeichnet. Die Neuronen auf
Schicht 1 erhalten die Input Variablen x1 , . . . , xd als Input. Im Zeitschritt i wird der Output der Neurone in Schicht i berechnet. Der Output der Neurone auf der letzten Schicht S,
der nach Zeitschritt S vorliegt, bildet den Output N (x1 , . . . , xd ) eines neuronalen Netzes
N für Input hx1 , . . . , xd i. Aus historischen Gründen werden neuronale Netze mit S > 1
Schichten oft als multi-layer-perceptrons (MLP) bezeichnet.
Theorem 2.1 Jede Boolesche Funktion f : {0, 1}d → {0, 1}m kann durch einen Schwellenschaltkreis (also durch ein neuronales Netz bestehend aus Schwellengattern) der Tiefe
2 berechnet werden.
Theorem 2.2 Zu jeder kontinuierlichen Funktion f : [0, 1]d → [0, 1]m und jedem ε > 0
gibt es ein neuronales Netz N der Tiefe 2, bestehend aus sigmoiden Gattern auf Schicht
1 und linearen (oder sigmoiden) Gattern auf Schicht 2, welches die Funktion f mit der
Genauigkeit ε approximiert, d.h.
für alle hx1 , . . . , xd i ∈ [0, 1]d gilt k f (x1 , . . . , xd ) − N (x1 , . . . , xd ) k ≤ ε .
2.1
Lösung von Klassifikationsproblemen mit neuronalen Netzen
Für ein binäres Klassifikationsproblem (d.h. P ist ein WM auf A × B mit B = {0, 1})
kann man wie für Regressionsprobleme ein neuronales Netz mit einem Output Gatter trainieren. Man rundet den analogen Output eines linearen oder sigmoiden Output Gatters,
um diesen als “Klassifikation” mit Werten in {0, 1} zu interpretieren. Für Klassifikationsprobleme mit K > 2 Klassen verwendet man meist ein neuronales Netz mit K Output
Gattern und fasst jeweils die Nummer des Output Gatters, das für einen Netzwerk Input x den höchsten Wert ausgibt, als die Klassifikation von diesem Input x auf. Beim
Trainieren wird der Soll-Output des betreffenden Gatters auf 1 gesetzt, die anderen auf
0.
9
Für binäre Klassifikationsprobleme kann man auch ein einzelnes Schwellengatter verwenden. Als Lernregel verwendet man dafür meist die Perzeptron Lernregel:
wneu = walt − (A(walt · x) − b) · x
für Beispiele hx, bi mit b ∈ {0, 1}, wobei A die Sprungfunktion ist.
Theorem 2.3 Falls die Liste L = hha1 , b1 i, . . . , hal , bl ii von Beispielen aus Rd × {0, 1}
die Eigenschaft hat, dass die Mengen M1 := {ai : bi = 1} und M0 := {ai : bi = 0}
linear trennbar sind, so macht die Perzeptron Lernregel beim wiederholten Durchlaufen
der Liste L höchstens endlich viele Fehler. Sie findet also nach endlich vielen Schritten
eine Hypothese H mit errorL (H) = 0.
2.2
Regression mit einem linearen Gatter (= lineare Regression)
Sei nun P ein WM auf A × B = Rd × R. Die Beispiele sind dann von der Form ha, bi mit
a ∈ Rd und b ∈ R. Wir betrachten als erstes das Regressionsproblem mit der einfachsten,
aber trotzdem sehr wichtigen Hypothesenklasse H bestehend aus der Menge aller linearen
Abbildungen H von Rd nach R. Das Ziel ist also, eine lineare Abbildung H zu finden,
die MSEP (H) möglichst klein macht. Dabei kann jede lineare Abbildung H : Rd →
R durch d + 1 Parameter w0 , . . . , wd ∈ R charakterisiert werden mit der Eigenschaft
d
d
P
P
H(x1 , . . . , xd ) =
wi xi + w0 =
wi xi (letztere Gleichung benutzt die vorher erläuterte
i=1
i=0
Konvention mit x0 := 1). Wir schreiben Hw für die so charakterisierte lineare Abbildung
H.
Das Standardverfahren um eine Hypothese H ∈ H zu finden mit möglichst geringem Wert
von MSEP (H) geht wie folgt vor:
1. Man zieht eine “genügend lange” Liste L = hhx(1), b1 i, . . . , hx(l), bl ii von l Trainingsbeispielen6 (wobei wir später verstehen lernen, was “genügend lang” heißt; als
Daumenregel sollte l mindestens so gross sein wie die Anzahl der Parameter, durch
die eine Hypothese H in H festgelegt wird – in diesem Fall also d + 1).
2. Man ermittelt eine Hypothese H in H, für die MSEL (H) möglichst klein wird.
Den 2. Schritt kann man oft sehr direkt ausführen: indem man die Funktion E(w) :=
MSEL (Hw ) (für eine feste Liste L) mittels Gradientenabstieg minimiert. Man ersetzt also
iterativ wneu = walt + ∆w, mit ∆w = −α ∇E(w) (wobei α die momentane Schrittweite
des Gradientenabstiegs ist). Dazu ist erforderlich, dass der Gradient ∇E(w) existiert (und
praktisch ausgerechnet werden kann). Das ist offensichtlich nur möglich, wenn MSEL (Hw )
“glatt” von w abhängt, bei neuronalen Netzen mit linearen oder sigmoiden Gattern ist
6
Die d Komponenten des i-ten Attributvektors x(i) werden mit x1 (i), . . . , xd (i) bezeichnet.
10
dies aber stets der Fall. Im hier diskutierten konkreten Fall von Regression mit linearen
Gattern gilt:
Pl
(w · x(i) − bi )2
,
MSEL (Hw ) = i=1
l
also
P
2 li=1 (w · x(i) − bi ) · xj (i)
∂
MSEL (Hw ) =
.
∂wj
l
Um einen Schritt im Gradientenabstieg durchzuführen, kann man also einfach jedes Gewicht wjalt (für j = 0, . . . , d) ersetzen durch
wjneu = wjalt − α ·
l
X
(walt · x(i) − bi ) · xj (i) ,
i=1
wobei α > 0 die Schrittlänge des Gradientenabstiegs reguliert.7 (Frage: Was sind mögliche
Vor- und Nachteile einer großen Schrittlänge?).
Anstatt eines Batch-Updates kann man auch die Trainingsbeispiele einzeln durchgehen
und Online für das i-te Trainingsbeispiel die Gewichtskorrektur
wjneu = wjalt − α(walt · x(i) − bi ) · xj (i),
j = 0, . . . , d
durchführen, für i = 1, . . . , l. Dies bezeichnet man oft als stochastischen Gradientenabstieg für MSEL (Hw ), weil die (zufällige) Reihenfolge der Trainingsbeispiele einen
zusätzlichen Einfluss auf die Gewichtsänderung gewinnt.
7
Der Faktor 2/l wurde hier in die Konstante α mit einbezogen.
11
Anmerkung:
1. Charakteristisch für die hergeleitete Lernregel ist, dass die Gewichtsänderung durch
ein Produkt definiert wird, wobei der eine Faktor die Abweichung des tatsächlichen Outputs des Gatters von dessen Soll-Output beschreibt, der andere Faktor die Input-Komponente mit der dieses Gewicht multipliziert wird. Produkte
dieser Art treten sehr häufig auf bei Lernregeln für neuronale Netze.
2. Für den Spezialfall von linearen Hypothesen Hw kann man in der Regel einen Vektor
w, der MSEL (Hw ) = (Xw − b)T (Xw − b) minimiert, auch explizit ausrechnen:
mittels der Formel
w = (X T · X)−1 · X T · b .
Dies ist die Lösung der Gleichung ∇w (X · w − b)T (X · w − b) = 0, weil ∇w (Xw −
b)T (Xw − b) = 2X T (Xw − b).
Hierbei ist X eine Matrix, deren Zeilen die Attributvektoren x(i) der Trainingsbeispiele hx(i), bi i sind, und
b := hb1 , . . . , bl iT .
Es gilt: X T · X ist invertierbar, falls die Spalten von X linear unabhängig sind.
3. Für lineare Hypothesen Hw gilt: Jeder Gewichtsvektor w, der ein lokales Minimum
von MSE(Hw ) bildet, ist gleichzeitig ein globales Minimum von MSE(Hw ).
2.3
Regression mit mehrschichtigen neuronalen Netzen: die Backprop Regel
Für viele in der Praxis auftretende WMe P auf Rd × R gibt es keine lineare Hypothese H
die einen geringen Wert von MSEP (H) erzielt. Das Theorem 2.2 gibt in diesem Fall die
Zuversicht dafür, dass mehrschichtige neuronale Netze Hypothesen H darstellen können,
die wesentlich bessere Werte von MSEP (H) erzielen. Wenn alle Gewichte eines mehrschichtigen neuronalen Netzes N in einen Parametervektor w zusammengefasst werden,
so kann man die durch das neuronale Netz N dargestellte Funktion (im Fall von d Inputs
und 1 Output von N ) wieder als Funktion Hw : Rd → R schreiben. Lernen für ein solches
neuronales Netz kann dann wieder zurückgeführt werden auf die Minimierung des empirischen Fehlers E(w) := MSEL (Hw ) für eine gemäß P gezogene Liste L von Trainingsbeispielen. Man führt wieder Gradientenabstieg aus, also wneu = walt − α · ∇E(w). Der
einzige Unterschied besteht darin, dass einige Komponenten ∂w∂ j MSEL (Hw ) von ∇E(w)
kompliziertere Formeln erfordern (gemäß der Kettenregel beim Differenzieren), weil der
Netzwerk-Output Hw (x1 , . . . , xd ) (= Output des Gatters auf der letzten Schicht S) nur
indirekt von den Gewichten wj von Gattern auf Schichten s < S abhängt.
Bei mehrschichtigen neuronalen Netzen erreicht man beim Gradientenabstieg für MSE(Hw )
bestenfalls ein lokales Minimum (charakterisiert durch ∇w MSE(Hw ) = 0). Es ist keine
rechnerisch durchführbare Methode bekannt, mit der man stets zu einem globalen Minimum gelangt.
12
Backprop Lernregel für ein neuronales Netz mit S Schichten
Wir nehmen an, dass die Inputs eines jeden Neurons j auf einer Schicht s aus Outputs
von Neuronen i auf Schicht s − 1 (im Fall s > 1) oder Input Variablen xi (im Fall s = 1)
bestehen, wobei das betreffende Gewicht für diese Kante mit wji bezeichnet wird. Wir
setzen wji ≡ 0 (also auch ∆wji = 0) falls Neuron i (oder Input Variable xi ) keinen Input
für Neuron j liefert.
Wir beschreiben hier zuerst die Online Version für ein einziges weiteres Trainingsbeispiel
hhx1 , . . . , xd i, bi aus Rd × R :
1. Für jedes Neuron j setzen wir (für einen gewissen Parameter α > 0):
neu = w alt + α · d(j) · o(i) ,
wji
ji
wobei o(i) der Output des Neurons i für Netzwerk Input hx1 , . . . , xd i (bzw. o(i) = xi ,
falls Neuron j auf Schicht 1 liegt) und d(j) die “Fehlerzuweisung” für Neuron j
darstellt.
P alt
2. d(j) = (b − o(j)) · A′j ( wji
· o(i)) für das Output-Gatter j auf Schicht S.
i
3. d(j) =
P
k
alt · A′ (P w alt · o(i)) für alle anderen Gatter j.
d(k) · wkj
j
ji
i
Dabei ist Aj die Aktivierungsfunktion von Neuron j. In den Übungen wird gezeigt, dass
diese Lernregel einen stochastischen Gradientenabstieg erzeugt, also α · d(j) · o(i) ist
proportional zu − ∂w∂ji ((Hw (x) − b)2 ). Dabei ist die “Fehlerzuweisung” d(j) für Neuron
P alt
w
· o(i) derjenige Ausj proportional zu − ∂ ((H (x) − b)2 ), wobei net(j) :=
net(j)
w
i
ji
druck ist auf welchen die Aktivierungsfunktion Aj von Neuron j für den gegenwärtigen
Netzwerk Input x angewendet wird. Durch “Nachdifferenzieren” erhält man den Faktor
o(i) = ∂w∂ji (net(j)), mit welchem d(j) in der obigen Lernregel multipliziert wird.
Für die Offline Version von Backprop geht man durch eine Liste von Trainingsbeispielen und rechnet für jedes Trainingsbeispiel und jedes Gewicht wji die Gewichtsänderung
neu − w alt aus, implementiert sie aber noch nicht. Erst nachdem die ganze
∆wji = wji
ji
Liste durchgegangen wurde, führt man für jedes Gewicht wji die Summe aller vorher berechneten ∆wji als Gewichtsänderung durch. Dieser gesamte Vorgang wird als Epoche
(epoch) beim Lernen bezeichnet. In der Regel muss man recht viele Epochen durchführen,
bis ein festgelegtes Abbruch-Kriterium (stopping criterion) erfüllt ist. Ein häufig verwendetes Abbruch-Kriterium benutzt eine zusätzliche gemäß dem WM P gezogene Liste
V von Trainingsbeispielen (validation set). Das Trainieren wird abgebrochen, sobald
der empirische MSE auf V signifikant zu steigen beginnt (diese Regel wird oft als early
stopping bezeichnet).
Frage: Wie könnte man das Steigen des MSE auf V rational erklären?
13
Speedup von Backprop
neu = w alt + α · d(j) · o(i) durch
In der Regel ersetzt man die Lernregel wji
ji
neu = w alt + α · d(j) · o(i) + β · (w alt − w uralt ) ,
wji
ji
ji
ji
uralt der Wert von w war, bevor er zu w alt geändert wurde (β > 0 ist eine geeigwobei wji
ji
ji
nete Konstante). Durch diesen zusätzlichen Impuls-Term (momentum term) werden
gemeinsame Trends in mehreren aufeinanderfolgenden Gewichtsänderungen verstärkt und
sich widersprechende abgeschwächt. Visualisierung des Gradientenabstiegs mittels Höhenlinien für die durch E(w) definierte Hügellandschaft:
Talboden
Ohne Impuls-Term
Mit Impuls-Term
Abbildung 3: Gradienten-Abstieg ohne und mit Impuls-Term
Zusätzlich wird oft die Lernrate α während des Lernens verändert. Zum Beispiel wird die
Lernrate verringert, wenn man erreichen möchte, dass man auch in relativ engen “Tälern”
von E(w) zum Talboden gelangt.
Anstelle von Backprop können auch andere Verfahren der numerischen Mathematik verwendet werden, die geeignet sind, schnell ein lokales Minimum der Funktion E(w) zu
finden (z.B. conjugate gradient, oder Levenberg-Marquart).
14
3
Was ist eigentlich “Lernen” (im Fall von Klassifikation und Regression)?
Angenommen, wir haben eine endliche Menge von Beispielen ha, bi für ein Klassifikationsoder Regressionsproblem, die wir in eine Liste L von l Trainingsbeispielen und eine Liste T
von k Testbeispielen aufgeteilt haben. Nehmen wir ferner an, dass wir eine Familie (Hi )i∈N
von Hypothesenklassen haben mit Hi ⊆ Hi+1 für alle i, sowie für jede Hypothesenklasse
Hi einen Lernalgorithmus Ci, der nach dem Trainieren jeweils eine Hypothese aus Hi
ausgibt.
Konkretes Beispiel: Hi besteht aus allen neuronalen Netzen der Tiefe 2 mit i Neuronen
auf Schicht 1, und Ci ist der Backprop-Lernalgorithmus angewendet auf solche Netze.
Frage: Welches i sollen wir wählen, wenn unser Ziel ist, dass Ai angewendet auf L eine
Hypothese Hi := Ci (L) aus Hi ausgibt, sodass errorT (Hi) (bzw. MSET (Hi ) im Fall eines
Regressionsproblems) möglichst klein ist?
Frage: Weshalb wendet man nicht direkt Ci auf T anstatt L an, wenn unser Ziel ist, dass
der Fehler der ausgegebenen Hypothese auf T möglichst klein sein soll?
Typische Situation:
error
errorT (Ci(L))
errorL (Ci(L))
i0
i
Abbildung 4: Typischer Verlauf der Fehler der Hypothese Ci (L) auf Trainingsmenge L
und Testmenge T in Abhängigkeit von der Größe der Hypothesenklasse Hi . Die Hypothesenklasse Hio würde in diesem Fall das beste Ergebnis liefern.
Frage: Wie kann man intuitiv verstehen, dass errorT (Ci (L)) für große i wieder ansteigt?
Eine etwas vage Antwort: Je größer Hi ist, umso mehr Hypothesen gibt es in Hi , die
errorL (Hi) klein machen, aber hohe Werte für errorT (Hi ) liefern.
Ein lehrreiches Beispiel: Regression mit Polynomen. Es sei Hi die Klasse aller Poly15
nome des Grades ≤ i in einer Variablen.
Abbildung 5: Illustration von möglichem Overfitting bei Verwendung eines Polynom
höheren Grades (anstatt einer Geraden) bei einem Regressionsproblem
Frage: Was ist zu erwarten, wenn man i = 1 setzt und Hi aus Hi so gewählt wird, dass
MSEL (Hi ) minimiert wird?
Zu beachten: sup |MSEL (H) − MSET (H)| wächst bei diesem Beispiel mit größer
H∈Hi
werdendem i stark an. Das ist sogar meist der Fall, nicht nur bei dem Beispiel mit
Hi = {Polynome von Grad ≤ i} oder dem Beispiel Hi = {neuronale Netze der Tiefe 2
mit i Neuronen auf Schicht 1}. Daher kann man das größere Risiko beim Lernen mit Hypothesenklassen Hi für großes i so beschreiben: Wir können zwar in Hi mehr Hypothesen
Hi finden mit geringem MSEL (Hi ), aber gleichzeitig wächst mit i auch das Risiko, ein
Hi zu erwischen, bei dem MSEL (Hi ) und MSET (Hi ) weit auseinander klaffen.
Mögliche Nachteile der Verwendung von zu großen Hypothesenklassen hat man schon seit
vielen Jahrhunderten in der Naturwissenschaft beobachtet: beim Bestreben quantitative Naturgesetze zu finden, die die Ergebnisse von neuen Beobachtungen möglichst gut
vorhersagen.
Occam’s Razor (von William von Occam, 14. Jahrhundert): Bevorzuge, wenn immer
möglich, die einfachere Hypothese.
16
Albert Einsteins Regel: Ein Naturgesetz soll einfach sein, aber nicht zu einfach.
Minimum Description Length (MDL) Principle: Wähle eine Hypothese H zur
Erklärung von Daten L so, dass die Summe
(minimale Bit-Länge der Beschreibung von H) + (minimale Bit-Länge der Beschreibung
der Abweichung der Daten L von der Vorhersage H)
möglichst klein ist.
Welche Hypothese H gemäß dem letztgenannten Prinzip optimal ist, hängt natürlich ab
von dem Formalismus den man benutzt, um Hypothesen H und Abweichungen von Daten
L zu kodieren. Eine theoretisch optimale Kodierung wäre gemäß der Informationstheorie
eine Kodierung, bei der
(minimale Bit-Länge der Beschreibung von H) = − log2 p(H)
und
(minimale Bit-Länge der Beschreibung der Abweichung der Daten L
von der Vorhersage H) = − log2 p(L|H) ,
wobei p(H) die Wahrscheinlichkeit des Auftretens von H ist. Ferner ist p(L|H) die Wahrscheinlichkeit, dass die Daten L erzeugt werden, wenn H die “wahre” Hypothese ist. Diese
Wahrscheinlichkeiten p(H) und p(L|H) (sowie p(H|L)) machen nur in der subjektiven
Wahrscheinlichkeitstheorie von Bayes Sinn, bei der Wahrscheinlichkeiten nicht unbedingt
nur Grenzwerte von relativen Häufigkeiten darstellen müssen, sondern auch einen subjektiven Glauben an die Richtigkeit von gewissen Annahmen quantifizieren können.8 Das
bekannte Theorem von Bayes
p(A|B) =
p(B|A) · p(A)
p(B)
gilt aber für beliebige Ereignisse A, B (mit p(B) 6= 0) auch in der üblichen Wahrscheinlichkeitstheorie.
Die im Minimal Description Length (MDL) Prinzip genannte Summe hat dann gemäß
dem Theorem von Bayes den Wert
− log2 p(H) − log2 p(L|H) = − log2 (p(H) · p(L|H)) = − log2 (L ∩ H)
8
Es ist dann −
P
H
p(H) · log2 p(H) die durchschnittliche zur Beschreibung der Hypothese H benötigte
Anzahl von Bits. Dieser Term wird als die Entropie der Verteilung p bezeichnet. Gleichzeitig misst dieser
Term die durchschnittliche Information (in bits), welche erforderlich ist, um das Ergebnis einer Ziehung
einer Hypothese H gemäß der Verteilung p mitzuteilen.
17
= − log2 (p(H|L) · p(L)) = − log2 p(H|L) − log2 p(L) .
Wenn man für vorgegebene Daten L (also für fixes log2 p(L)) eine Hypothese wählt, die
die im MDL-Prinzip auftretende Summe minimiert, so wählt man also “automatisch”
eine Hypothese H, welche p(H|L) maximiert. Das ist offensichtlich die optimale Wahl
im Rahmen einer subjektiven Wahrscheinlichkeitstheorie. Man nennt ein solches H eine
maximum a posteriori (MAP) Hypothese.
Das MDL-Prinzip ist von Interesse als abstraktes Ziel beim Entwurf von neuen Lernalgorithmen. Bei Anwendungen des maschinellen Lernens auf Klassifikationsprobleme, insbesondere bei der Wahl der richtigen Hypothesenklasse Hi , hilft einem aber eher die
Betrachtung der VC-Dimension dieser Hypothesenklassen, die wir im Abschnitt 3.1 kurz
erläutern. Weitere praktisch anwendbare Methoden sind mittels sogenannter Regularisierungstheorien entwickelt worden, bei der die praktisch nicht berechenbare “minimale
Bit-Länge einer Hypothese H” des MDL-Prinzips durch eine effizient berechenbare Zahl
ersetzt wird, die auf andere Weise die “Komplexität” einer Hypothese H misst. Zum Beispiel kann dieser Term die Anzahl der Gewichte mit Wert 6= 0 in einer fixen großen neuronalen Netzwerk-Architektur messen, oder die Anzahl der Gatter in einem RBF-Netzwerk,
oder die Nicht-Glattheit der durch das neuronale Netz berechneten Funktion. Man bezeichnet solch einen Term als Regularisierungsterm. Der zweite Term im MDL-Prinzip
wird in einer Regularisierungstheorie ebenfalls durch einen praktisch berechenbaren Term
ersetzt, der misst, wie gut die Hypothese an die Daten L angepasst ist (z.B. MSE von
H auf L im Fall eines Regressionsproblems). In der so entstehenden Summe aus zwei
Termen wird der Regularisierungsterm meist mit einem Faktor λ > 0 multipliziert, durch
dessen Größe der Benutzer festlegen kann, wieviel Gewicht er auf die “Einfachheit” der
Hypothese H und wieviel Gewicht er auf deren Angepasstheit an die Daten L legt.
Beachte: Erst durch einen Regularisierungsterm entsteht aus einem Interpolationsproblem ein Lernproblem. “Auswendig Lernen” verursacht in der Regel einen hohen Wert des
Regularisierungsterms. Das entspricht der intuitiven Auffassung, dass Lernen nur dann
stattfindet, wenn die in den Daten L vorhandene Information komprimiert wird, z.B.
indem man die dahinter liegenden Prinzipien erfasst.
3.1
Die VC-Dimension einer Hypothesenklasse und das Uniforme Konvergenz Theorem
Man kann jeder Hypothesenklasse H für ein Klassifikationsproblem eine Zahl VC-dim(H)
aus N ∪ {∞} zuordnen, die intuitiv gesprochen misst, wie viele Freiheitsgrade man hat
bei der Wahl einer Hypothese H aus H, oder genauer gesagt auf wie großen Mengen S
von Beispielen ha, bi (mit beliebigen Target-Klassifikationen b ∈ {0, 1}) eine Hypothese
H aus H gefunden werden kann, die 0 Fehler auf S macht.9
9
Offensichtlich ist das nur möglich für konsistente Mengen S von Beispielen, für die es zu jedem a
höchstens ein b mit ha, bi ∈ S gibt.
18
Definition der Vapnik-Chervonenkis Dimension (VC-Dimension)
Wir betrachten eine beliebige Klasse H von Funktionen H : A → {0, 1}.
VC- dim(H) := max {s ∈ N : es gibt eine Menge S ⊆ A mit s Elementen,
die von H zersplittert wird}.
Man sagt, dass eine Menge S ⊆ A von H zersplittert wird, falls es zu jeder Funktion
f : S → {0, 1} ein H ∈ H gibt, sodass f (a) = H(a) für alle a ∈ S.
Abbildung 6: Nachweis, dass die Menge S := {h0, 0i, h1, 0i, h0, 1i} ⊆ R2 von der Hypothesenklasse HSG2 (= Klasse aller Halbebenen H) zersplittert wird. Falls H(x) = 1 so ist
der betreffende Gitterpunkt x jeweils mit einem Kreuz markiert.
Aus der Definition folgt sofort das VC-dim(H) ≤ log2 |H| für jede endliche Hypothesenklasse H bestehend aus |H| Hypothesen. Aber auch die unendlich große durch Schwellengatter über R2 definierte Hypothesenklasse HSG2 hat eine endliche VC-Dimension:
VC-dim(HSG2 ) = 3. (In Abbildung 6 wird gezeigt, dass eine konkrete Menge S bestehend
aus den 3 Punkten h0, 0i, h0, 1i, h1, 0i im R2 von HSG2 zersplittert werden kann, woraus
VC-dim(HSG2 ) ≥ 3 folgt). Mit einem anderen Argument kann man beweisen, dass VCdim(HSG2 ) < 4; also VC-dim(HSG2 ) = 3. Es ist in diesem Fall die VC-Dimension gleich
der Anzahl der Parameter oder Freiheitsgrade, die man hat, um eine konkrete Hypothese
H ∈ HSG2 festzulegen. Das gilt auch für die Klasse HSGd der durch Schwellengatter über
Rd definierten Hypothesen für beliebige d ≥ 1: man hat hier stets VC-dim(HSGd ) = d + 1.
Es kann aber die VC-Dimension von mehrschichtigen Schwellenschaltkreisen sogar größer
sein als die Anzahl der darin auftretenden Gewichte.10 Die einfache Heuristik
10
W. Maass. Neural nets with superlinear VC-dimension. Neural Computation, 6:877-884, 1994.
http://www.igi.tugraz.at/maass/publications.html
19
VC-Dimension (H) = (Anzahl der freien Parameter bei der Wahl einer Hypothese aus H)
stimmt also nicht für alle Hypothesenklassen H.
Beispiele und Abschätzungen der VC-Dimension für neuronale Netze findet man in [Bartlett, P./Maass, W., 2003]11 (online erhältlich als # 139 auf http://www.igi.tugraz.at/
maass/publications.html).
In Abhängigkeit von dieser Größe VC-dim(H) kann man nun abschätzen, wie viele Beispiele in der Trainingsmenge L sein müssen, damit beim Lernen mit Hypothesenklasse H
die Wahrscheinlichkeit gering gehalten werden kann, dass errorL(H) und errorP (H) stark
voneinander abweichen für die vom Lernalgorithmus aus H ausgewählte Hypothese H.
Man geht hierbei von der pessimistischen Annahme aus, dass man nur dann zuversichtlich
sein kann, dass die vom Lernalgorithmus Ai ausgegebene Hypothese Hi = Ai (L) ∈ Hi
nicht nur auf L, sondern auch auf einer genügend großen Testmenge T einen geringen Fehler hat (man sagt dann “H generalizes well”), falls sup |errorL (H) − errorP (H)| klein
H∈Hi
ist.
Uniformes Konvergenz Theorem:
Es sei P ein beliebiges Wahrscheinlichkeitsmaß auf A × B (mit B = {0, 1}) und H sei
eine beliebige (endlich oder unendlich große) Menge von Hypothesen H : A → B. Wenn
man nun für beliebige ε, δ > 0 eine Menge L von mindestens
1
1
1
(constant · VC- dim(H) + ln + ln )
2
ε
ε
δ
Trainingsbeispiele gemäß P zieht, so gilt mit Wahrscheinlichkeit ≥ 1 − δ, dass
sup |errorL(H) − errorP (H)| ≤ ε .
H∈H
Dabei ist “constant” eine Konstante > 0, von der angenommen wird, dass sie einen Wert
nahe bei 1 hat (man konnte dies aber noch nicht beweisen).
Der Beweis dieses Theorems ist recht aufwendig. Die wesentliche Eigenschaft der VCDimension, die man hier ausnutzt, ist, dass für jede Teilmenge X von A mit einer beliebigen Anzahl m von Elementen höchstens mVC- dim(H) der 2m Funktionen von X nach
{0, 1} durch Hypothesen H ∈ H definiert werden können.12 In anderen Worten: die Anzahl
der durch H induzierten Funktionen von X nach {0, 1} wächst nur polynomiell (anstatt
exponentiell) mit der Anzahl m der Elemente der Teilmenge X von A.
11
Peter L. Bartlett and W. Maass. Vapnik-Chervonenkis Dimension of Neural Nets. In M. A. Arbib,
editor, The Handbook of Brain Theory and Neural Networks, pages 1188-1192. MIT Press (Cambridge),
2nd edition, 2003.
VC- dim(H)
12
. Für VC-dim(H) ≥ 3 ist dies ≤ mVC- dim(H) .
Die genaue Abschätzung ist VC- e·m
dim(H)
20
3.2
Praktische Überlegungen zur Wahl der Hypothesenklasse,
Trainings- und Testmenge
Die VC-Dimension einer Hypothesenklasse Hi kann oft recht grob abgeschätzt werden
durch die Anzahl der Parameter deren Werte bei der Wahl einer bestimmten Hypothese
H ∈ Hi festgelegt werden müssen, also zum Beispiel mit der Anzahl der Gewichte eines neuronalen Netzes. Das Uniforme Konvergenz Theorem verlangt, dass die Größe der
Trainingsmenge mindestens so groß wie die VC-Dimension sein sollte. Das ist eine recht
nützliche ”Daumenregel”.
Im Grunde müsste man ja gemäß dem Uniformen Konvergenz Theorem sogar noch eine
viel größere Trainingsmenge haben. In der Regel riskiert man aber, diese Forderung nicht
zu erfüllen. Man kann die Größe dieses Risikos mit Hilfe einer validation set V , die aus der
Trainingsmenge L gezogen wird, selbst abschätzen. Bezeichnen wir diejenigen Trainingsbeispiele aus L die nicht in V kommen mit L̃. Dann liegt errorV (Hi ) mit großer Wahrscheinlichkeit nahe bei errorP (Hi ) für die vom Lernalgorithmus Ci aus Hi ausgewählte
Hypothese Hi := Ci (L̃). Man vergleicht also einfach errorV (Hi ) mit errorL̃(Hi ). Falls
errorV (Hi ) beträchtlich größer ist als errorL̃ (Hi ) bezeichnet man dies als Overfitting,
und iteriert das Ganze für eine kleinere Hypothesenklasse Hi′ mit i′ < i. Man nimmt
in diesem Fall an, dass man sich im rechten Teil von Abbildung 4 befindet. Andernfalls,
wenn errorV (Hi ) nicht viel größer als errorL̃ (Hi ) ist, aber errorV (Hi ) noch zu hoch ist
(Underfitting), kann man es sogar wagen, zu einer größeren Hypothesenklasse Hi′ mit
i′ > i zu gehen, in der Hoffnung, dass errorT (Hi′ ) < errorV (Hi ).
Wir nutzen hier aus, dass gemäß der Tschebyschev-Ungleichung und der Chernoff-Bound
für genügend große validation sets die Wahrscheinlichkeit recht klein ist, dass errorV (H)
und errorP (H) stark voneinander abweichen (siehe Abschnitt 1.2).
Meist hat man nur eine fixe Anzahl m von Beispielen für ein Klassifizierungsproblem, und
man möchte daraus gerne sowohl eine Trainingsmenge, als auch ein validation set mit mehr
als m/2 Beispielen generieren. Das wird mittels k-fold Crossvalidation für ein beliebig
fixiertes k ∈ N mit 2 ≤ k ≤ m “fast” erreicht. Man teilt bei diesem Verfahren die Liste L
aller Beispiele zufällig in k disjunkte Teilfolgen L1 , . . . , Lk auf. Sei L(j) die Liste, die aus
allen Beispielen in L außer denen in Lj besteht. Man berechnet dann mit dem gewählten
Lernalgorithmus Ci die Hypothese Ci (L(j) ) ∈ Hi für diese Teilmenge L(j) , bestehend aus
m− mk Beispielen, und testet sie auf dem validation set Lj , bestehend aus m
Beispielen. Da
k
dieses validation set für große k in der Regel zu klein ist, iteriert man das Ganze für j =
1, . . . , k, um besser abschätzen zu können, ob man Hi zu groß (Overfitting) oder zu klein
k
P
errorLj (Ci (L(j) )) minimiert
(Underfitting) gewählt hat. Man wählt dann i so, dass k1
j=1
wird (in der Erwartung, dass dieser Durchschnitt eine genügend gute Abschätzung für
k
P
1
errorP (Ci (L(j) )) ergibt, oder sogar für errorP (Ci(L)) mit L = L1 ∪ . . . ∪ Lk ).
k
j=1
Im Extremfall k = m, bei dem jedes Lj nur aus einem Beispiel besteht, und daher jede
Hypothese Ci (L(j) ) nur für ein einziges Beispiel getestet wird, bezeichnet man dieses
21
Verfahren als Leave-One-Out Crossvalidation. Das ist eine Standardmethode, die
man anwendet, wenn nur ein paar Hundert Beispiele (oder sogar noch weniger Beispiele)
zur Verfügung stehen.
22
4
Wichtige Algorithmen zur Lösung von Klassifikationsproblemen
Wir beschreiben hier kurz drei Lernalgorithmen für Klassifikationsprobleme, die derzeit
als die erfolgreichsten betrachtet werden. Welchen dieser Algorithmen man wählt, hängt
von der zur Verfügung stehenden Rechenzeit beim Trainieren bzw. Anwenden, sowie von
dem Wert, den man auf eine intuitive Interpretierbarkeit der ausgegebenen Hypothese
legt, ab.
4.1
Der Nearest-Neighbor Algorithmus
Wir betrachten ein Klassifikationsproblem, gegeben durch ein WM P auf einer Menge A×
B mit A
=
X1 × . . . × Xd . Für je zwei Beispiele hhx1 , . . . , xd i, bi,
hhx̃1 , . . . , x̃d i, b̃i aus A × B kann man den Abstand der beiden Attributvektoren zum
Beispiel durch den folgenden Term messen:
v
u d
uX
d(xi , x̃i )
D(hx1 , . . . , xd i, hx̃1 , . . . , x̃d i) := t
i=1
mit

 (xi − x̃i )2 , falls |Xi | = ∞ und Xi ⊆ R
0
, falls |Xi | < ∞ und xi = x̃i
d(xi , x̃i ) :=

1
, falls |Xi | < ∞ und xi =
6 x̃i .
Der Nearest-Neighbor Algorithmus gibt für eine Trainingsmenge L die folgende Hypothese
H : A → B aus:
H(hx1 , . . . , xd i) ist die Klasse b̃ von demjenigen Beispiel hhx̃1 , . . . , x̃d i, b̃i
in L, für das D(hx1 , . . . , xd i, hx̃1 , . . . , x̃d i) minimal ist.
Diese Form des Algorithmus wird oft mit IB1 bezeichnet. In einer IBk genannten Variante
(für eine beliebige ungerade natürliche Zahl k) sucht man zu hx1 , . . . , xd i diejenigen k Beispiele hhx̃1 , . . . , x̃d i, b̃i in L für die D (hx1 , . . . , xd i, hx̃1 , . . . , x̃d i) minimal ist, und definiert
H (hx1 , . . . , xd i) als die unter diesen k Beispielen am häufigsten auftretende Klasse b̃.
Vorteile dieses Algorithmus:
1. Die Komplexität der Hypothese wird automatisch an die Komplexität der Trainingsmenge angepasst.
2. Es können laufend weitere Beispiele in die Hypothese eingebaut werden, oder auch
andere Beispiele entfernt werden.
23
Nachteile dieses Algorithmus:
1. Bei der Anwendung der Hypothese zur Klassifikation neuer Beispiele wird relativ
große Rechenzeit benötigt (falls L sehr groß ist). In einer IB2 genannten Variante
des Algorithmus werden daher nur diejenigen Beispiele aus L zur Klassifikation
neuer Beispiele verwendet, die nicht schon mittels der vorhergehenden Beispiele in
L richtig klassifiziert werden konnten. Das kann aber dahin führen, dass fehlerhafte
Beispiele besonders großen Einfluss gewinnen.
2. Falls einige der Attribute xi in Wirklichkeit irrelevant sind für die Klassifikation, so
schwächen sie die Leistung von diesem Lernalgorithmus.
3. Die numerischen Attribute müssen vorher vom Benutzer geeignet skaliert werden.
4.2
Lernen mit Entscheidungsbäumen
Falls zum Beispiel A = {gelb, rot, blau} × R2 und B = {0, 1}, so definiert der folgende
Entscheidungsbaum eine Hypothese H : A → B (wobei der Attributvektor aus A mit
hx1 , x2 , x3 i bezeichnet wird):
x2
<5
5
x1
x3
17
>17
gelb
x2
0
1
1,5
> 1,5
0
1
rot
blau
0
1
Wir besprechen im Folgenden den Lernalgorithmus C4.5. Dieser erzeugt für beliebige
Trainingsmengen zu einem Klassifikationsproblem, gegeben durch ein WM P auf einer
Menge A × B mit |B| < ∞, einen dazu passenden Entscheidungsbaum.13 Dabei wird
vorausgesetzt, dass A die Form X1 × . . . × Xd hat, mit Xi = R oder |Xi | < ∞ für
i = 1, . . . , d.
Def.: Ein Entscheidungsbaum (EB) für Beispiele aus A × B mit A = X1 × . . . × Xd und
|B| < ∞ ist ein Baum14 , dessen Knoten und Kanten in folgender Weise bezeichnet sind:
13
Wir schreiben |B| für die Anzahl der Elemente einer Menge B und auch |L| für die Anzahl der
Elemente einer Folge L.
14
Ein Baum ist in der Mathematik ein endlicher gerichteter Graph mit den Eigenschaften
24
1. Jedes Blatt ist mit einem Element b ∈ B bezeichnet.
2. Jeder innere Knoten ist mit einem Attribut xi (i ∈ {1, . . . , d}) bezeichnet.
3. Für einen mit einem Attribut xi bezeichneten Knoten sind die von diesem Knoten
ausgehenden Kanten mit disjunkten Teilmengen M1 , . . . , Mk des Wertebereichs15 Xi
k
S
für dieses Attribut xi bezeichnet, sodass Xi =
Mj .
j=1
Jeder von C4.5 erzeugte EB hat zusätzlich die Eigenschaften, dass
• im Fall |Xi | < ∞ die von einem mit xi bezeichneten Knoten ausgehenden Kanten
mit Mengen Mj ⊆ Xi ∪ {missing value} bezeichnet sind sodass |Mj | = 1
• im Fall |Xi | = ∞ die von einem mit xi bezeichneten Knoten ausgehenden Kanten mit
Mengen M1 , M2 bezeichnet sind die Intervalle von R darstellen, sowie möglicherweise
mit M3 = {missing value}.
Frage: Zu welchen Folgen L von Beispielen aus A × B gibt es einen EB H, sodass
errorL (H) = 0?
Frage: Was kann man von einem Lernalgorithmus erwarten, der nach Möglichkeit zu
jeder Folge L einen EB H mit errorL(H) = 0 erzeugt?
Wir nehmen im Folgenden an, dass eine Liste L von Trainingsbeispielen gegeben ist. Der
Lernalgorithmus C4.5 erzeugt aus L in zwei Phasen einen EB:
1. Phase: Erzeugung eines EB’s H ′ , sodass errorL (H ′) möglichst klein ist, wobei gleichzeitig auch darauf geschaut wird, dass H ′ möglichst geringe Tiefe hat.
2. Phase: Zurückschneiden von H ′ (“Pruning”).
Skizze der 1. Phase:16 Der Entscheidungsbaum wird schrittweise, beginnend bei der
Wurzel w, definiert. Für einen Knoten v des schon entwickelten Baumes schreiben wir
Lv für die Teilfolge derjenigen Beispiele in der Trainingsfolge L, die zu diesem Knoten
hinführen. Falls alle Beispiele in Lv zur selben Klasse b gehören, macht man v zu einem
Blatt des EB mit Bezeichnung b. Andernfalls wird ein sogenanntes splitting criterion
angewendet, um zu entscheiden, mit welchem Attribut xi der Knoten v bezeichnet wird,
und im Fall Xi = R welche Mengen Mj die von v ausgehenden Kanten bezeichnen sollen.
1. Es gibt genau einen Knoten, in dem keine Kante endet (die “Wurzel” des Baumes).
2. In jedem von der Wurzel verschiedenen Knoten endet genau eine Kante.
3. Jeder Knoten ist von der Wurzel auf einem gerichteten Pfad erreichbar.
Ein Knoten eines Baumes wird als innerer Knoten bezeichnet, falls von ihm eine Kante ausgeht,
andernfalls als Blatt. Die Tiefe eines Baumes ist die maximale Länge eines gerichteten Pfades darin.
15
Oft wird der Wertebereich um ein zusätzliches Element “missing value” ergänzt, also z.B. X2 =
R ∪ {missing value}.
16
Mehr Details findet man unter http://yoda.cis.temple.edu:8080/UGAIWWW/lectures/C45/
25
Das Ziel ist, xi so zu wählen, dass durch die Abfragung dieses Attributs die Entropie
der Klassen in Lv möglichst stark reduziert wird. Diese Entropie erreicht den geringst
möglichsten Wert 0 genau dann, wenn alle Beispiele in Lv zur selben Klasse gehören (dann
kann man den Knoten zu einem Blatt des EB machen). Diese Entropie ist maximal, wenn
jede Klasse in Lv gleich häufig auftritt.
Die Entropie der Klassen in Lv wird quantifiziert durch den Term
X
Entropie(Lv ) := −
pLv (b) · log2 pLv (b) ,
b∈B
wobei
pLv (b) := Anzahl der Elemente in Lv aus der Klasse b .
Anzahl aller Elemente in der Folge Lv
Die durchschnittliche Reduktion der Entropie durch Abfragung des Attributs xi an Knoten
v, mit unmittelbar darunter entstehenden neuen Knoten v1 , . . . , vm , kann demnach durch
den Term
m
X
|Lvj |
Entropie(Lvj )
Entropie(Lv ) −
|Lv |
j=1
quantifiziert werden. Im Wesentlichen wählt C4.5 die Bezeichnung xi für Knoten v (und
die Bezeichnungen der Kanten, die von v ausgehen) so, dass diese Reduktion der Entropie
am Knoten v maximal ist.17
Skizze der 2. Phase: C4.5 geht zu jedem Knoten v des in der 1. Phase konstruierten
Baumes, der kein Blatt ist, angefangen bei denjenigen Knoten, deren direkte Nachfolger
alle Blätter sind, und prüft (mittels eines heuristischen Kriteriums), ob die am Knoten v
durchgeführte Spaltung der Folge Lv statistisch signifikant ist, d.h. durch genügend viele
Beispiele in Lv gestützt wird. Falls sie nicht statistisch signifikant ist, wird die Verzweigung
bei Knoten v wieder eliminiert, und v wird zu einem Blatt gemacht, mit der am häufigsten
in Lv vorkommenden Klasse als Bezeichnung.
Vorteile des Lernalgorithmus C4.5:
1. Intuitive Interpretierbarkeit der von C4.5 ausgegebenen Hypothese (zum Beispiel
im Vergleich der durch Backprop für neuronale Netze errechneten Hypothese), falls
der ausgegebene EB nicht zu groß ist.
17
Um zu vermeiden, dass der Algorithmus Attribute xi mit einer großen Zahl m von diskreten Werten
(z.B. xi = “Geburtsdatum”) übermäßig bevorzugt, wählt C4.5 in Wirklichkeit dasjenige xi , welches den
Quotienten
P
|Lvj |
Entropie(Lv ) − m
j=1 |Lv | Entropie(Lvj )
m |L |
P
|Lvj |
vj
−
|Lv | · log2 |Lv |
j=1
maximiert. Der Ausdruck im Nenner ist die Entropie der Verteilung von Lv auf Lv1 , . . . , Lvm . Falls zum
Beispiel alle Lvj gleich groß sind, hat diese Entropie den Wert log2 m.
26
2. Durch das Pruning wird die Komplexität der Hypothese automatisch an die Komplexität der Trainingsmenge angepasst, um Overfitting zu vermeiden.
3. Falls ein Klassifikationsproblem sehr viele Attribute hat, werden oft nur einige dieser
Attribute im von C4.5 ausgegebenen EB abgefragt. Man bekommt also zusätzliche
Nebeninformation darüber, welche Attribute am wichtigsten sind für die Klassifikation.
4. C4.5 benötigt relativ wenig Rechenzeit.
5. Man kann die resultierende Hypothese (Entscheidungsbaum) auch in der Form von
Regeln formulieren.
Gelegentliche Nachteile von C4.5:
1. Das Pruning ist oft nicht radikal genug. Für einige Standard Klassifikationsprobleme
wurde gezeigt, dass es EBe der Tiefe 1 oder 2 mit relativ kleinen wahren Fehlern
gibt, während C4.5 für dieselben Klassifikationsprobleme recht große EBe ausgibt,
die kaum noch intuitiv interpretierbar sind, und auch keinen wesentlich geringeren
wahren Fehler haben.
2. Falls man viele Attribute mit kontinuierlichen Werten hat, erzielt ein Lernalgorithmus wie Backprop oft bessere Ergebnisse (weshalb?).
4.3
Support Vector Machines (SVMs)
Varianten des in diesem Abschnitt vorgestellten Lernalgorithmus erzielen gegenwärtig bei
Klassifikationsproblemen in der Regel die besten Ergebnisse. Allerdings erfordert dieser
Lernalgorithmus beträchtliche Rechenzeit.
Wir greifen zunächst einen in Abschnitt 2 diskutierten Ansatz wieder auf: Lernen mit
einem Perzeptron, d.h. mit dem einfachst möglichen neuronalen Netz. Hierbei verwendeten
wir Hypothesen der Form
Hw : = {x ∈ Rd : w · x ≥ 0}
für WMe P auf Rd × {0, 1}. Der große Nachteil dieser Hypothesenklasse ist, dass für viele
praktisch auftretende Trainingsfolgen L für Klassifikationsprobleme die Mengen
POS : = {x ∈ Rd : hx, 1i tritt in L auf}
und
NEG : = {x ∈ Rd : hx, 0i tritt in L auf}
nicht linear trennbar sind, d.h. es gibt keine Hypothese Hw , sodass x ∈ Hw für alle
x ∈ POS und x 6∈ Hw für alle x ∈ NEG. Schlimmer noch, es kommt häufig vor, dass jede
Hypothese der Form Hw einen so großen Wert von errorL(Hw ) erzielt, dass sie praktisch
27
nicht brauchbar ist. Ferner kann man einen Gewichtsvektor Hw , der errorL(Hw ) minimiert
praktisch nicht berechnen, weil dieses Problem NP-vollständig ist.
Oft sind diese Mengen POS, NEG aber gut trennbar durch Hypothesen H, die mittels
quadratischer Ausdrücke, oder allgemeiner Polynome eines endlichen Grades p, definiert
sind. Nehmen wir zum Beispiel an, dass POS, NEG ⊆ Rd durch eine quadratische Menge
der Form
d
X
X
d
wij xi xj +
wi xi + w0 ≥ 0}
{x ∈ R :
i=1
1≤i≤j≤d
d
+d
getrennt werden können. Betrachten wir die Projektion Φ : R → R für d : =
2
definiert durch Φ(x) = hx1 , . . . , xd , x1 · x1 , . . . , xi · xj , . . . , xd · xd i. Dann sind die durch
′
diese Projektion Φ in den höher-dimensionalen Raum Rd projizierten Mengen18 Φ[POS],
Φ[NEG] linear trennbar.
d
d′
′
Dieser Effekt wird beim Lernen mit Support Vector Machines massiv ausgenutzt: es zeigt
sich, dass für fast alle in der Praxis auftretenden Klassifikationsprobleme P bzw. Trainingsfolgen L die Mengen Φ[POS], Φ[NEG] linear trennbar (oder fast linear trennbar)
sind für geeignete nichtlineare Projektionen Φ der Attributvektoren x in genügend hoch′
dimensionale Räume Rd .
Frage: Wieso sind lineare Projektionen Φ wenig aussichtsreich?
Diese Beobachtung erlaubt einem, das ursprüngliche Klassifikationsproblem im Rd auf
′
ein Klassifikationsproblem im Rd zurückzuführen, bei dem es reicht, lineare Hypothesen
′
der Form Hw mit w ∈ Rd zu betrachten. Das löst aber noch nicht automatisch das
durch das WM P auf Rd × {0, 1} definierte Lernproblem, denn wenn d′ sehr groß ist,
muss man mit Overfitting rechnen. Aus diesem Grund reduziert man die Vielfalt der in
′
Frage kommenden Hypothesen Hw mit w ∈ Rd durch eine zusätzliche Forderung: Man
verlangt nicht nur, dass Hw die Mengen Φ[POS] und Φ[NEG] trennt, sondern dass die
′
durch Hw definierte trennende Hyperebene {x ∈ Rd : Hw (x) = 0} einen möglichst großen
Abstand (margin) von den beiden Mengen Φ[POS], Φ[NEG] erzielt. Das schränkt die in
Frage kommenden Hypothesen drastisch ein, denn während es bei linear trennbaren Mengen Φ[POS], Φ[NEG] stets unendlich viele trennende Hyperebenen Hw gibt, gibt es nur
genau eine trennende Hyperebene Hopt , für die der minimale Abstand zu Elementen von
Φ[POS] ∪ Φ[NEG] einen maximalen Wert erreicht. Man nennt diese eindeutig bestimmte
Hyperebene Hopt die maximal margin Hyperebene für das durch Φ[POS], Φ[NEG]
definierte Klassifikationsproblem. Hopt hat die zusätzliche Eigenschaft, dass sie stets in
der Form
k
X
d′
Hopt = {z ∈ R :
αi · Φ(x(i)) · z + α0 = 0}
i=1
für endlich viele support vectors Φ(x(i)) mit x(i) ∈ POS ∪ NEG geschrieben werden
18
Falls f eine Abbildung von einer Menge M in eine Menge S ist, und X ⊆ M , so schreiben wir f [X]
für {f (x) : x ∈ X}.
28
kann.19 Diese Hyperebene Hopt definiert über dem Raum der Attributvektoren x ∈ Rd
den maximal margin classifier
d
MMCopt := {x ∈ R :
k
X
αi Φ(x(i)) · Φ(x) + α0 ≥ 0}.
i=1
Die Koeffizienten αi dieses maximal margin classifiers MMCopt können durch Lösung eines konvexen quadratischen Optimierungsproblems explizit berechnet werden, was aber
leider beträchtliche Rechenzeit erfordert. Es ist hier kein iteratives Verfahren wie bei der
Perzeptron Lernregel (siehe Abschnitt 2.3) erforderlich. Das quadratische Optimierungsproblem hat bei einer Liste L = {hx(1), b1 i, . . . , hx(m), bm i} von Trainingsbeispielen die
folgende Form:
Maximiere
m
P
αi −
i=1
1
2
m
P
αi αj bi bj Φ(x(i)) · Φ(x(j))
i,j=1
unter den Nebenbedingungen
0 ≤ αi ≤ C, i = 1, . . . , m und
m
P
αi bi = 0.
i=1
Dabei ist C > 0 eine vom Benutzer zu wählende Konstante, die festlegt, wieviel Wert der
Benutzer zum Einen auf die Minimierung der Anzahl der falsch klassifizierten Beispiele
Φ(x(i)) legt (wenn ihm dies wichtig ist, wählt er einen großen Wert C), und zum Anderen
auf die Maximierung des minimalen Abstands der trennenden Hyperebene von einem
richtig klassifizierten Beispiel.
′
Für Anwendungen wesentlich ist die Wahl einer geeigneten Projektion Φ : Rd → Rd des
′
Klassifizierungsproblems in einen hoch-dimensionalen Raum Rd , sodass Φ[P OS], Φ[NEG]
möglichst gut linear trennbar sind. Dabei nutzt man aus, dass man bei Verwendung einer
beliebigen Projektion Φ für die Berechnung und Anwendung von Hopt lediglich Produkte
der Form
k(x, y) : = Φ(x) · Φ(y)
für x, y ∈ Rd ausrechnen muss. Auch der durch Hopt induzierte maximal margin classifier
MMCopt für die Attributvektoren x ∈ Rd von Testbeispielen kann ohne Berechnung von
Φ nur mittels dieser Funktion k : Rd × Rd → R definiert werden:
d
MMCopt = {x ∈ R :
k
X
αi · k(x(i), x) + α0 ≥ 0} ,
i=1
wobei die Koeffizienten αi durch die Lösung des genannten quadratischen Optimierungsproblems definiert sind.
19
Oft sind die x(i) der in der Definition dieser Hypothese H implizit auftretenden support vectors
Φ(x(i)) auch für das intuitive Verstehen des zu Grunde liegenden Klassifikationsproblems P nützlich,
weil diese x(i) als charakteristische Grenzfälle interpretiert werden können.
29
Für viele wichtige Projektionen Φ kann man diese als kernel bezeichnete Funktion k :
Rd ×Rd → R sehr leicht ausrechnen. Im Fall, dass Φ(x) für ein beliebiges p ∈ N der Vektor
bestehend aus allen Produkten des Grades ≤ p von Komponenten von x ist (sodass
jedes Polynom vom Grad ≤ p in den Komponenten von x als gewichtete Summe von
Komponenten von Φ(x) geschrieben werden kann), ist zum Beispiel
k(x, y) = (x · y)p .
Aufgrund solcher “kernel-tricks” kann man sich sogar leisten, mit Projektionen Φ in
unendlich-dimensionale Räumen zu arbeiten. Ein Beispiel ist der häufig verwendete RBFkernel (RBF = radial basis function)
− k x − y k2
k(x, y) := exp
2σ 2
dessen zugehörige Projektion Φ : Rd → R∞ die Eigenschaft hat, dass für beliebige, paarweis verschiedene Attributvektoren x(1), . . . , x(m) (mit beliebig großem m ∈ N) die hochprojizierten Vektoren Φ(x(1)), . . . , Φ(x(m)) stets linear unabhängig sind. Dies hat die
attraktive Konsequenz, dass Φ[P OS], Φ[NEG] stets linear trennbar sind, falls die Trainingsfolge L widerspruchsfrei ist [weshalb?].
Nähere Informationen über die Wahl von kernels sowie geeignete Software findet man auf
http://www.kernel-machines.org/index.html.
Abschließend möchten wir noch einmal die drei wesentlichen Ideen beim Design des SVMLernalgorithmus zusammenfassen:
1. Nichtlineare Projektion der Attribut-Vektoren in einen hochdimensionalen Raum,
um die Trennbarkeit der Klassen durch lineare Hyperebenen zu verbessern.
2. Vermeidung des dadurch verursachten Overfitting Problems (aufgrund der i. A. sehr
großen Zahl der freien Parameter einer Hyperebene im hochdimensionalen Raum)
durch eine zusätzliche Anforderung an die gesuchte Hyperebene, welche die Zahl
ihrer Freiheitsgrade reduziert: Wahl der maximal margin Hyperebene.
3. Vermeidung der durch Verwendung eines hochdimensionalen Raums zu erwartenden
rechnerischen Probleme durch den kernel-trick, welcher die Berechnung der maximal margin Hyperebene im hochdimensionalen Raum auf die Lösung eines konvexen
quadratischen Optimierungsproblems im Raum der ursprünglichen Attributvektoren reduziert.
30
5
Grundbegriffe der Aussagenlogik
Die Aussagenlogik wird auch als Boolesche Logik bezeichnet. Sie ist eng verknüpft mit
der Theorie von Booleschen (d.h. digitalen) Schaltkreisen.
Wir verwenden a, b, c, . . . als Variablen mit Werten in {0, 1}. Solche Variablen werden
auch als Boolesche Variablen bezeichnet. Man kann sie gleichzeitig auffassen als Variablen
für den Wahrheitswert einer Aussage (“1” entspricht “wahr”, “0” entspricht “falsch”).
Eine Funktion f wird als Boolesche Funktion bezeichnet, falls sie von der Form f :
{0, 1}n → {0, 1}m ist, für irgendwelche n, m ∈ N (wir konzentrieren uns auf den Fall
m = 1 im Folgenden). Wir definieren N := {1, 2, . . .} und N0 := N ∪ {0}.
Beispiele:
a) ∧ (“UND”, “Konjunktion”) ist eine Boolesche Funktion von {0, 1}2 in {0, 1}, definiert durch ∧(a, b) = a · b. Ihr “Output” hat also den Wert 1 genau dann wenn
a = b = 1.
Anmerkung:
Man schreibt in der Logik meist a ∧ b anstatt ∧(a, b).
b) ∨ (“ODER”, “Disjunktion”) ist eine Boolesche Funktion von {0, 1}2 in {0, 1}, definiert durch ∨(a, b) = max(a, b).
Anmerkungen:
• Man schreibt in der Logik meist a ∨ b anstatt ∨(a, b).
• Diese Definition von “ODER” entspricht dem üblichen Gebrauch von “oder” in
der Mathematik: a ∨ b ist wahr (d.h.= 1) wenn mindestens eines von a, b wahr
(d.h. = 1) ist. Wir werden “oder” in dieser Lehrveranstaltung nur in dieser
Bedeutung verwenden.
• Achtung: In der Umgangssprache verwendet man “oder” manchmal abweichend
im Sinne von “entweder ... oder”, also als Bezeichnung für die Boolesche Funktion
L
: {0, 1}2 → {0, 1} definiert durch
L
1 , falls a + b = 1
(a, b) :
=
0 , sonst .
c) ¬ (“NOT”, “Negation”) ist eine neue Boolesche Funktion von {0, 1} in {0, 1}, definiert durch ¬ a := 1 − a.
Definition 5.1 Eine Boolesche Formel (= “aussagenlogische Formel”) ist ein aus Booleschen Variablen a, b, c, . . . und Booleschen Funktionen ∧, ∨, ¬ zusammengesetzter Ausdruck. Etwas präziser kann man Boolesche Formeln durch die folgende induktive Definition
definieren:
31
1. a, b, c, . . . sind Boolesche Formeln.
2. Falls A, B Boolesche Formeln sind, so sind auch (A ∧ B), (A ∨ B), (¬ A) Boolesche
Formeln.
Anmerkung zur formalen Struktur dieser Definition: Eine induktive Definition (einer Klasse von Zeichenreihen) geht so vor, dass sie zunächst festlegt, für welche kürzeren
Zeichenreihen diese Definition zutrifft. Danach legt sie fest, für welche längeren Zeichenreihen diese Definition zutrifft, wobei vorausgesetzt wird, dass man schon “weiß”, für welche
kürzeren Zeichenreihen diese Definition zutrifft.
Beispiel für eine Boolesche Formel:
F (a1 , a2 , a3 ) :≡ (¬ ((¬ a1 ) ∨ a2 )) ∧ (a1 ∧ (¬ a3 ))
Anmerkung zu Notation
Wir schreiben “:≡” um mitzuteilen, daß wir den Ausdruck auf der linken Seite definieren
als die auf der rechten Seite stehende Zeichenreihe.
Wir schreiben “≡” um mitzuteilen, daß die links und rechts von diesem Zeichen stehenden
Zeichenreihen identisch sind.
Diese Verwendung von “:≡” und “≡” ist nicht allgemein üblich, und manche Autoren
benutzen hierfür auch andere Symbole (z.B. “=”). Wir verwenden “=” um mitzuteilen,
daß die links und rechts davon stehenden Ausdrücke die gleiche Zahl bezeichnen (Beispiel:
(1 + 1)/5 = 0, 4). Wir verwenden “⇔” um mitzuteilen, daß die links und rechts davon
stehenden Ausdrücke äquivalente logische Formeln sind (z.B. A∨B ⇔ B ∨A). Der Begriff
der Äquivalenz von logischen Formeln wird später genau definiert.
Der Zusatz von “:” auf der linken Seite von ≡, =, ⇔ macht deutlich, daß der Ausdruck
auf der linken Seite bisher noch keine Bedeutung hat und hier erst definiert wird als die
auf der rechten Seite stehende Zeichenreihe, Zahl oder logische Formel. Diese zusätzliche Information ist oft nützlich, aber diese Schreibweise wird nicht von allen Autoren
verwendet.
In dieser “Anmerkung zur Notation” haben wir nützliche Abkürzungen der “Metasprache” diskutiert, also der Sprache, in der wir über logische und mathematische Formeln
reden. Dagegen sind ∨, ¬ etc. in erster Linie formale Symbole der logischen Formeln selbst
(also der “Objektsprache”). Leider benutzt man in der Praxis meist dieselben Symbole für
diese beiden verschiedenen Sprachebenen. Zum Beispiel verwendet man aus Bequemlichkeit dieselben Symbole ∨, ¬ auch in der Metasprache als Abkürzung für “oder”, “nicht”.
Ebenso wird “=” sowohl in der Metasprache als auch in der Objektsprache verwendet.
Das führt zu keinen Mißverständnissen solange klar ist, ob der betreffende Ausdruck zur
Objekt- oder Metasprache gehört.
Definition 5.2 Eine Wahrheitsbelegung für eine Boolesche Formel F ist eine Abbildung
(= Funktion) A die jeder in F auftretenden Booleschen Variablen einen Wert aus {0, 1}
zuordnet.
32
Wir schreiben A(F ) für den Wahrheitswert der dadurch der gesamten Formel F zugeordnet wird (gemäß den Regeln A(A∧B) = A(A)∧A(B), A(A∨B) = A(A)∨A(B), A(¬ A) =
¬ A(A)).
Definition 5.3 F sei eine beliebige Boolesche Formel.
a) F ist allgemeingültig falls A(F ) = 1 für jede Wahrheitsbelegung A für F .
b) F ist erfüllbar falls A(F ) = 1 für mindestens eine Wahrheitsbelegung A für F .
Anmerkungen:
• Allgemeingültige Boolesche Formeln werden auch als Tautologien bezeichnet.
• Wir werden vermeiden, darüber zu sprechen, ob eine Formel F gültig ist oder nicht,
weil die umgangssprachliche Verwendung des Begriffs “gültig” ungenau ist.
Konvention: Falls trotzdem jemand (z.B. in der Lösung eines Übungsproblems)
das Adjektiv “gültig” verwendet, werden wir es stets als Abkürzung für “allgemeingültig” auffassen.
• Es gilt offensichtlich für jede Boolesche Formel F :
F ist allgemeingültig genau dann, wenn ¬ F nicht erfüllbar ist.
[Empfehlung: falls Ihnen dies nicht vollkommen klar ist, sollten Sie noch einmal die
vorhergehenden Definitionen genau durchlesen.]
Definition 5.4 Man nennt zwei Boolesche Formeln F, G äquivalent (in Zeichen: F ⇔ G)
falls A(F ) = A(G) für jede Wahrheitsbelegung A für F und G.
Beispiel: A ∨ B ⇔ ¬ ((¬ A) ∧ (¬ B)) für beliebige Boolesche Formeln A, B.
Anmerkungen:
Das vorhergehende Beispiel zeigt, daß das ODER in Booleschen Formeln eigentlich überflüssig ist, weil es mittels UND und NOT definiert werden kann.
Die Implikation “→” wird meist mittels ODER und NOT definiert:
A → B :≡ ¬ A ∨ B .
Ferner definiert man
A ↔ B :≡ (A → B) ∧ (B → A).
5.0.1
Konvention zur Klammerersparnis:
¬ bindet stärker als ∨, ∧.
∨, ∧ binden stärker als →, ↔.
Daher kann man anstatt ((¬ A) ∧ B) → C einfacher schreiben: ¬ A ∧ B → C.
33
Anmerkung zur Notation:
Wir verwenden “⇒” als Symbol der Metasprache: um mitzuteilen, daß jede Wahrheitsbelegung, die die Formel links davon wahr macht, auch die Formel rechts davon wahr macht.
Dies Symbol “⇒” sollte unterschieden werden von dem soeben definierten Symbol “→”,
das Teil der Objektsprache ist. Andere Autoren treffen hier oft andere Konventionen.
Oft verwendet man auch dieselben Symbole für Objekt- und Metasprache. Man sollte
sich aber trotzdem stets im Klaren sein, zu welcher dieser Sprach-Ebenen ein konkretes
Symbol gehört.
5.0.2
Einige wichtige Äquivalenzen:
¬¬ A ⇔ A
¬ (A ∨ B) ⇔ ¬ A ∧ ¬ B
deMorgansche Regel
¬ (A ∧ B) ⇔ ¬ A ∨ ¬ B
deMorgansche Regel
A → B ⇔ ¬B → ¬A
Kontraposition
A∨B ⇔B∨A
Kommutativgesetz
A∧B ⇔B∧A
Kommutativgesetz
A ∨ (B ∧ C) ⇔ (A ∨ B) ∧ (A ∨ C)
Distributivgesetz
A ∧ (B ∨ C) ⇔ (A ∧ B) ∨ (A ∧ C)
Distributivgesetz
A ∨ (B ∨ C) ⇔ (A ∨ B) ∨ C
Assoziativgesetz
A∨A⇔A
A∧A⇔A
A ∧ (A ∨ B) ⇔ A
A ∨ (A ∧ B) ⇔ A
Konvention: Aufgrund der Assoziativgesetze ist für eine Kette ((A1 ∨A2 ) ∨A3 ) ∨. . .∨An
von Disjunktionen deren Klammerung nicht wichtig. Daher schreibt man stattdessen oft
n
n
W
V
einfach
Ai . Analog schreibt man statt ((A1 ∧ A2 ) ∧ A3 ) ∧ . . . ∧ An oft einfach
Ai .
i=1
i=1
Definition 5.5 Man bezeichnet Boolesche Variablen a, b, c, . . . sowie Negationen ¬ a, ¬ b,
¬ c, . . . von Booleschen Variablen als Literale. Man sagt, daß eine Boolesche Formel in
n
W
disjunktiver Normalform ist, falls sie von der Form
Ai ist – wobei jedes Ai eine (bei=1
liebig lange) Konjunktion von Literalen ist (d.h. jedes Ai ist von der Form
m
V
j=1
L1 , . . . , Lm Literale sind).
34
Lj wobei
Satz 5.1
a) Es sei b1 , . . . , bn eine beliebige Folge von Bits (d.h. Zahlen in {0, 1}) und es sei
a1 , . . . , an eine beliebige Folge von n verschiedenen Booleschen Variablen. Dann hat
n
V
die Konjunktion K :≡
Li der Literale Li mit
i=1
Li :≡
ai , falls bi = 1
¬ ai , falls bi = 0
die folgende Eigenschaft:
Es gibt genau eine Wahrheitsbelegung A für K mit A(K) = 1. Sie ist definiert durch
1 , falls bi = 1
A(ai ) =
0 , falls bi = 0 .
b) Zu jeder Booleschen Formel F gibt es eine Boolesche Formel D in disjunktiver
Normalform sodaß F ⇔ D.
Beweis: Wir überlassen den Beweis von a) dem geneigten Leser. (Wenn er Schwierigkeiten dabei hat: vorhergehende Seiten noch einmal durcharbeiten.).
Man kann b) aus a) wie folgt herleiten: Es sei a1 , . . . , an eine Liste aller in F auftretenden Booleschen Variablen. Es sei A1 , . . . , Ak eine Liste aller Wahrheitsbelegungen A von
a1 , . . . , an sodaß A(F ) = 1. Definiere Literale Lji für i = 1, . . . , n und j = 1, . . . , k wie
folgt:
ai , falls Aj (ai ) = 1
j
Li :=
¬ ai , falls Aj (ai ) = 0 .
n
V
Dann hat für jedes j ∈ {1, . . . , k} gemäß a) die Konjunktion K j :≡
Lji die Eigenschaft,
i=1
daß Aj die einzige Wahrheitsbelegung für K j ist, die K j wahr macht.
Wir definieren D als
k
W
K j . Diese Formel D ist offensichtlich in disjunktiver Normalform.
j=1
Ferner gilt für jede Wahrheitsbelegung A von a1 , . . . , an :
A(D) = 1 ⇔ es gibt ein K j mit A(K j ) = 1 ⇔ A = Aj für ein j ∈ {1, . . . , k} ⇔ A(F ) = 1.
Daher gilt D ⇔ F .
Satz 5.2 Zu jeder Funktion f : {0, 1}n → {0, 1} gibt es eine Boolesche Formel D mit
Booleschen Variablen a1 , . . . , an in disjunktiver Normalform, sodaß für alle Wahrheitsbelegungen A für D gilt:
A(D) = 1 genau dann, wenn f (A(a1 ), . . . , A(an )) = 1.
[In Worten: jede Boolesche Funktion kann durch eine Boolesche Formel in
disjunktiver Normalform definiert werden.]
35
Beweis: Man argumentiert wie beim Beweis von Teil b) des vorhergehenden Satzes. Aber
man definiert hier A1 , . . . , Ak als die Liste aller Wahrheitsbelegungen A von a1 , . . . , an
sodaß f (A(a1 ), . . . , A(an )) = 1.
Anmerkung zur konjunktiven Normalform: V
Man sagt, daß eine Boolesche Formel
in konjunktiver Normalform ist falls sie die Form ni=1 Ai hat, wobei jede Formel Ai eine (beliebig lange) Disjunktion von Literalen ist. Gemäß den erwähnten Äquivalenzen
ist die Negation einer Formel in disjunktiver Normalform äquivalent zu einer Formel in
konjunktiver Normalform. Daher kann man aus dem vorhergehenden Satz leicht folgern
[Weshalb?]: jede Boolesche Formel ist äquivalent zu einer Formel in konjunktiver Normalform.
Anmerkungen zur Beziehung zwischen Booleschen Formeln und Booleschen
Schaltkreisen:
a) Man kann jede Boolesche Formel F (mit Booleschen Variablen a1 , . . . , an ) auch auffassen als einen Booleschen Schaltkreis mit Inputs a1 , . . . , an und Gatter für ∧, ∨, ¬.
Jede Wahrheitsbelegung A für die Formel F entspricht dann genau einer Zuordnung
von Bits zu den Inputs a1 , . . . , an dieses Schaltkreises.
Beispiel: Die Formel F :≡ (¬ a1 ∧ a2 ) ∨ (¬ a2 ∧ a3 ) kann man identifizieren mit dem
folgenden Booleschen Schaltkreis: Für jede Wahrheitsbelegung A für F gibt dieser
Inputs
a2
a1
a3
Output
Schaltkreis für Input A den Output A(F ).
b) Zu jedem Booleschen Schaltkreis C mit n binären Inputs und einem binären Output
bestehend aus Gattern ∧, ∨, ¬ gibt es eine Boolesche Formel F , sodaß A(F ) = 1
genau dann gilt, wenn A einem Input von C entspricht, für den C den Output 1
gibt. [Dies folgt aus Satz 1.1.2, weil C eine Boolesche Funktion f : {0, 1}n → {0, 1}
definiert.] Es kommt aber vor, daß jede solche Formel F mehr “Junktoren” ∧, ∨, ¬
36
verwenden muß als Gatter in C vorkommen. Dies wird unter anderem dadurch
verursacht, daß der Output eines Gatters in C gleichzeitig als Input für mehrere
andere Gatter in C verwendet werden kann.
Beispiel: Der folgende Schaltkreis besteht aus 4 Gattern. In der Booleschen Formel
a1
a2
a3
a4
F die diesem Schaltkreis entspricht tritt die Teilformel a1 ∧ a2 zweimal auf, obwohl
im Schaltkreis nur ein Gatter auftritt das a1 ∧ a2 berechnet:
F :≡ ((a1 ∧ a2 ) ∨ a3 ) ∧ ((a1 ∧ a2 ) ∨ a4 ) .
Die Formel F hat also 5 Junktoren.
37
Grundlegendes Problem beim Einsatz von Computern zur Ermittlung der Allgemeingültigkeit einer Formel F : Es gibt einen einfachen Algorithmus mit dessen Hilfe
ein Computer in endlich vielen Rechenschritten feststellen kann, ob eine Formel F allgemeingültig ist [welchen kennen Sie?]. Es ist aber kein Algorithmus bekannt, dessen Anzahl
von Rechenschritten stets polynomiell in der Länge von F ist (also ≤ p(|F |), wobei F die
Länge der Zeichenreihe F ist, für ein Polynom p).
Schlimmer noch, es gibt wenig Hoffnung, dass solch ein Algorithmus jemals gefunden wird.
Dies folgt aus der Tatsache, dass das Problem festzustellen, ob eine Formel F erfüllbar
ist, NP -vollständig ist. Würde daher ein Algorithmus gefunden, der in polynomieller Zeit
entscheidet, ob eine Formel F erfüllbar ist, so könnte jedes Problem in der Komplexitätsklasse NP (z.B. das berühmte Traveling Salesman Problem, aber auch Faktorisierung von
Primzahlen) in polynomieller Zeit gelöst werden.
Definition 5.6 Ein Entscheidungsproblem A : {0, 1}∗ → {0, 1} ist in der Komplexitätsklasse P , falls es einen Algorithmus gibt, der für jedes x ∈ {0, 1}∗ in ≤ p(|x|) Rechenschritten den Wert von A(x) ausrechnet (wobei p ein Polynom ist).
Ein Entscheidungsproblem B : {0, 1}∗ → {0, 1} ist in der Komplexitätsklasse NP , falls es
in der Form
B(x) = 1 ⇔ ∃y(|y| ≤ p(|x|) und A(x, y) = 1)
geschrieben werden kann für ein Polynom p und ein beliebiges Entscheidungsproblem A
aus der Klasse P .
Ein Entscheidungsproblem B ist NP -vollständig, falls es zur Komplexitätsklasse NP
gehört und zusätzlich zu jedem anderen Entscheidungsproblem C aus dieser Klasse NP
eine Funktion f existiert, welche durch einen (deterministischen) Algorithmus mit polynomieller Rechenzeit berechnet werden kann, sodass
C(x) = 1 ⇔ B(f (x)) = 1
für alle x ∈ {0, 1}∗ .
Anmerkung:
• Falls jemand für irgendein NP -vollständiges Problem B beweisen würde, dass B
zur Komplexitätsklasse P gehört, so würde NP = P folgen [weshalb?]
• Die Frage, ob P = NP oder P 6= NP ist das wichtigste offene Problem der Theoretischen Informatik (wobei klar ist, dass P ⊆ NP ).
• Die “Künstliche Intelligenz” leidet darunter, dass für viele wichtige Entscheidungsprobleme (z.B.: folgt Aussage A aus den Fakten F1 und F2 ?) kein Algorithmus mit
polynomieller Laufzeit bekannt ist.
38
Inferenz Kalküle
Es gibt viele verschiedene syntaktische Kalküle, um zu beweisen, dass eine Formel F allgemeingültig ist. Der in der Informatik am häufigsten verwendete Kalkül ist der ResolutionsKalkül, der nur eine einzige Regel benötigt. Genauer gesagt, ist dies ein syntaktischer
Kalkül um zu beweisen, dass eine Formel G unerfüllbar ist (es gilt offensichtlich: F allgemeingültig ⇔ ¬F unerfüllbar).
In dem Resolutionskalkül muss die Formel G zunächst in konjunktive
Wk Normalform umgeformt werden, also in eine Konkunktion von Formeln der Form i=1 Li , wobei jedes Li
ein Literal ist (Formeln dieser Form werden im Resolutionskalkül als Klauseln bezeichnet
und oft einfach als Menge {L1 , . . . , Lk } geschrieben). G wird hier aufgefasst als Menge von
Klauseln. Die Resolutionsregel erlaubt es, aus zwei Klauseln K1 , K2 , wobei ein Literal L in
K1 auftritt und gleichzeitig ¬L in K2 auftritt, eine neue Klausel (K1 −{L})∪(K2 −{¬L})
zu erzeugen.
Theorem 5.7 Eine Formel G ist unerfüllbar ⇔ man kann in endlich vielen Schritten
aus den Klauseln von G die leere Klausel erzeugen.
Bemerkung: Man kann die leere Klausel nur aus zwei Klauseln der Form {L} und {¬L},
also aus einem Widerspruch, erzeugen.
39
6
Grundbegriffe der Prädikatenlogik
Die Prädikatenlogik ist die formale Sprache der Mathematik und Informatik. Sie ist eine
Erweiterung der Booleschen Logik. Man verwendet für beliebige i ∈ N zusätzlich die
Symbole xi für Variablen (dies sind Variablen für Objekte), Symbole fik für k-stellige
Funktionen (k ∈ N ∪ {0}), Symbole Pik für k-stellige Prädikate (k ∈ N ∪ {0}), einem
Symbol “=” für ein 2-stelliges Prädikat (“Gleichheitszeichen”), sowie Quantoren ∃, ∀.
Die nachfolgenden Definitionen sind großenteils enthalten in dem empfehlenswerten Buch
“Logik für Informatiker” von Uwe Schöning (BI-Wissenschaftsverlag Mannheim, 1992).
Mittels Funktionszeichen (möglicherweise hintereinandergeschaltet) angewendet auf Variablen für Objekte können neue formale Bezeichnungen für Objekte erzeugt werden, die
als Terme bezeichnet werden:
Definition 6.1 (Definition eines Termes)
1. Jede Variable xi ist ein Term.
2. Falls fik ein Symbol für eine k-stellige Funktion ist, und t1 , . . . , tk sind Terme, so ist
auch fik (t1 , . . . , tk ) ein Term.
Anmerkungen:
Neben xi verwenden wir x, y, z, u, v (auch mit Indizes) . . . als Variablen für Objekte.
0-stellige Funktionssymbole spielen die Rolle von Konstanten für gewisse Objekte.
Beispiel: f73 (x2 , f11 (x3 ), f50 ) ist ein Term, und f50 ist eine Konstante.
Mittels Prädikatszeichen angewendet auf Terme, aussagenlogischer Verknüpfungen ¬, ∧, ∨,
sowie Quantoren können eine große Vielfalt von formalen Ausdrücken für Aussagen erzeugt werden, die man in der Logik als Formeln (Englisch: formulas) bezeichnet.
Definition 6.2 (Definition einer Formel)
1. Falls t1 , . . . , tk Terme sind und Pik ein Symbol für ein k-stelliges Prädikat ist, so ist
Pik (t1 , . . . , tk ) eine Formel.
2. Falls F eine Formel ist, so ist auch ¬ F eine Formel.
3. Falls F, G Formeln sind, so sind auch (F ∧ G) und (F ∨ G) Formeln.
4. Falls xi eine Variable und F eine Formel ist, so sind auch ∃ xi F und ∀ xi F Formeln.
Beispiel für eine Formel: ∀ x∃ y(P 1(y) ∨ ∃ zP 2 (z, f 2 (x, y)))
Bemerkungen:
40
1. Man bezeichnet die nach 1. in Definition 1.2.2 gebildeten Formeln als atomare Formeln.
2. F → G ist eine Abkürzung für ¬ F ∨ G, wie in der Booleschen Logik.
Definition 6.3 Ein Auftreten einer Variablen xi in einer Formel F wird als gebunden
bezeichnet, falls es innerhalb einer Teilformel der Form ∃ xi G oder ∀ xi G von F liegt.
Andernfalls wird dieses Auftreten von xi in F als frei bezeichnet.
Durch den ersten Quantor in einer Teilformel ∃xi G oder ∀xi G werden alle Auftreten von
xi in G gebunden, die frei in G auftreten.
Beispiel:
F : ≡ (f (xj ) = xi ∨ ∃ xi (P (f (xi)))
↑
↑
↑
freies Auftreten
gebundenes Auftreten
von xi in der Formel F .
Eine Formel ohne freie Variablen wird als Aussage bezeichnet. Man kann die Variablen
a, b, c, . . . der Booleschen Logik als Variablen auffassen die für beliebige Aussagen stehen.
6.0.3
Semantik der Prädikatenlogik (Schöning S. 54–60)
Eine Struktur A ist ein Paar (UA , IA ). Dabei ist UA eine Menge (das “Universum” der
Struktur, die Variablen xi laufen über die Elemente von UA ), und IA ist eine Abbildung
(“Interpretation”) die einigen k-stelligen Prädikatssymbolen Pik jeweils eine beliebige Teilmenge Pik,A von (UA )k , also eine Menge von k-tupeln hu1 , . . . , uk i bestehend aus Elementen
von UA (d.h. k-stellige Prädikate über UA ) zuordnet, die einigen k-stelligen Funktionssymbolen fik jeweils eine beliebige k-stellige Funktion fik,A von (UA )k in UA zuordnet, und
die einigen Variablen xi beliebige Elemente xA
i in UA zuordnet. Dem 2-stelligen Prädikatssymbol “=” wird in jeder Struktur A stets die Menge {hx, xi|x ∈ UA } zugeordnet.
Beispiel: UA := {1, . . . , 10}, IA ordnet dem Prädikatensymbol “≤” die Menge {hx, yi|x, y ∈
UA und x = y + 2} zu. Dann ist A = (UA , IA ) eine Struktur.
Frage: Dann ist z.B. 5 ≤ 3 in dieser Struktur. Ist das erlaubt?
Man sagt, daß A = (UA , IA ) eine zu einer Formel F passende Struktur ist, falls jedem in F
auftretenden Prädikatensymbol Pik durch IA ein k-stelliges Prädikat Pik,A über UA , jedem
in F auftretenden Funktionssymbol fik durch IA eine Funktion fik,A : (UA )k → UA , und
jeder in F frei auftretenden Variablen xi durch IA ein Element xA
i von UA zugeordnet ist.
In diesem Fall wird jedem in F auftretenden Term t ohne gebundene Variablen aufgrund
der folgenden Regeln ein Element A(t) ∈ UA zugeordnet:
41
• Falls t eine Variable xi ist, dann ist A(t) := xA
i .
• Falls t von der Form fik (t1 , . . . , tk ) ist, so ist A(t) := fik,A (A(t1 ), . . . , A(tk )).
Definition 6.4 Falls A eine zu F passende Struktur ist, so ordnet sie der Formel F einen
Wahrheitswert A(F ) ∈ {0, 1} zu:
1. Falls F eine atomare Formel Pik (t1 , . . . , tk ) ist, so ist
1 , falls hA(t1 ), . . . , A(tk )i ∈ Pik,A
A(F ) =
0 , sonst .
2. Falls F von der Form ¬G ist, so ist
A(F ) = 1 − A(G).
3. Falls F von der Form G ∧ H ist, so ist
A(F ) = A(G)A(H).
4. Falls F die Form ∀ xi G hat, so ist A(F ) = 1 falls für alle d ∈ UA gilt: A[xi/d] (G) = 1.
Falls F die Form ∃ xi G hat, so ist A(F ) = 1, falls es mindestens ein d ∈ UA gibt,
sodaß A[xi/d] (G) = 1.
(Hierbei ist A[xi/d] eine leicht veränderte Struktur, die zwar dasselbe Universum UA
wie die Struktur A besitzt, aber der Variablen xi anstatt xA
i das Element d ∈ UA
zuordnet, und sonst genau dieselben Zuordnungen wie A trifft.)
Definition 6.5 Eine Formel F der Prädikatenlogik heißt erfüllbar, falls es eine zu F
passende Struktur A gibt mit A(F ) = 1. [Man sagt dann, daß A ein Modell von F ist,
geschrieben: A |= F .]
F heißt allgemeingültig, falls A(F ) = 1 für jede zu F passende Struktur (Schöning sagt
stattdessen “gültig”).
Zwei Formeln F und G heißen äquivalent (in Zeichen: F ⇔ G), falls für jede zu F und
G passende Struktur A gilt: A(F ) = A(G).
Bemerkung: Wie in der Booleschen Logik gilt auch in der Prädikatenlogik für jede
Formel F : F ist allgemeingültig genau dann wenn ¬ F nicht erfüllbar ist.
Beispiel: ∀ xP (x) ist erfüllbar, aber nicht allgemeingültig.
Um zu beweisen, daß ∀ xP (x) erfüllbar ist, betrachte eine beliebige Struktur
A = (UA , IA ) mit P A := UA .
42
Dann gilt A |= ∀ xP (x), d.h. A ist ein Modell der Formel ∀ xP (x).
Um zu beweisen, daß ∀ xP (x) nicht allgemeingültig ist, betrachte eine beliebige Struktur
A = (UA , IA ) mit P A 6⊆ UA .
Sei c in UA − P A . Dann gilt A(∀ xP (x)) = 0 weil A[x/c] (P (x)) = 0. (Letzteres folgt aus
c∈
/ P A ).
Anmerkung: Falls xj nicht in G auftritt, so ist ∃ xi G äquivalent zu ∃ xj G[xi /xj ], wobei G[xi /xj ] diejenige Formel ist die man aus G erhält, wenn man jedes freie Auftreten
von xi in G durch xj ersetzt (“gebundene Umbenennung”). Durch mehrfache gebundene
Umbenennung kann man zu jeder Formel F eine äquivalente Formel H erzeugen in der
• alle Quantoren verschiedene Variablen binden.
• keine Variable sowohl frei als auch gebunden in H auftritt.
Man nennt eine Formel H mit diesen Eigenschaften bereinigt.
Theorem 6.6 (Schöning S. 61) Für beliebige Formeln F, G und Variablen x, y gilt:
1. ¬ ∀ xF ⇔ ∃ x¬F
¬ ∃ xF ⇔ ∀ x¬F
2. Falls x nicht frei vorkommt in G, so gilt:
∧ G)
∨ G)
∧ G)
∨ G)
.
∀ xF ∧ ∀ xG ⇔ ∀ x(F ∧ G)
∃ xF ∨ ∃ xG ⇔ ∃ x(F ∨ G)
.
(∀ xF
(∀ xF
(∃ xF
(∃ xF
∧ G)
∨ G)
∧ G)
∨ G)
⇔
⇔
⇔
⇔
∀ x(F
∀ x(F
∃ x(F
∃ x(F
3. Es gilt stets
4. Es gilt stets
∀ x∀ yF ⇔ ∀ y∀ xF
∃ x∃ yF ⇔ ∃ y∃ xF
.
Es gelten zusätzlich die Äquivalenzen der Aussagenlogik (siehe S. 6, 7).
Definition 6.7 F ist in Pränexform falls F die Form Q1 xi1 Q2 xi2 . . . Qn xin G hat, wobei
Qj ∈ {∃, ∀}, xij ∈ {xi |i ∈ N}, und in G kein Quantor vorkommt.
43
In diesem Fall besteht G aus atomaren Formeln der Struktur P k (t1 , . . . , tk ), die durch
¬, ∧, ∨ verknüpft sind.
Frage: Kann man G auch in DNF bringen?
Bemerkung:
Die Umformung einer Formel F in Pränexform ist nicht eindeutig. Zum Beispiel sind
∃ x∀ y(F ∨ G) und ∀ y∃ x(F ∨ G) beides Pränexformen der Formel ∃ xF ∨ ∀ yG – vorausgesetzt, daß x nicht in G und y nicht in F auftritt. In diesem Spezialfall sind dann auch
∃ x∀ y(F ∨ G) und ∀ y∃ x(F ∨ G) äquivalent, obwohl dies im Allgemeinen nicht gilt.
Um nachzuweisen, daß solche Formeln im Allgemeinen nicht äquivalent sind, betrachte
zum Beispiel die konkreten Formeln ∃ x∀ y(x > y ∨ x = y) und ∀ y∃ x(x > y ∨ x = y),
sowie die Struktur A mit UA = N, die dem Prädikatssymbol > die Menge {hx, yi : x >
y} ⊆ N × N zuordnet. Es gilt dann
A |= ∀y∃x(x > y ∨ x = y)
,
aber nicht A |= ∃x∀y(x > y ∨ x = y).
Anmerkung zum Begriff der Logischen Folgerung in der Prädikatenlogik:
Wir schreiben F ⇒ G (“F impliziert G”) falls für jede zu F und G passende Struktur A
gilt: Falls A(F ) = 1, so ist auch A(G) = 1.
Wir können hier nur eine sehr einfache Regel vorstellen, mit deren Hilfe man manchmal
die Gültigkeit der Implikation F ⇒ G für Formeln F und G der Prädikatenlogik aus der
Gültigkeit einer Implikation F ′ ⇒ G′ für gewisse andere Formeln F ′ , G′ der Booleschen
Logik folgen kann. Nehmen wir an, daß F und G in Pränexform sind, daß beide genau
denselben Quantorenblock haben, und daß F̃ und G̃ die auf die Quantorenblöcke in F und
G folgenden aussagenlogischen Verknüpfungen von atomaren Formeln sind. Wir ersetzen
jetzt jede atomare Formel in F̃ und G̃ durch eine andere Boolesche Variable, wobei aber
mehrmals auftretende identische atomare Formeln durch identische Boolesche Variablen
ersetzt werden. Wir nennen die auf diese Weise aus F̃ und Ḡ hervorgehenden Booleschen
Formeln F ′ und G′ . Falls für diese Booleschen Formeln F ′ ⇒ G′ gilt, so gilt auch in der
Prädikatenlogik F ⇒ G.
Beispiel: Es gilt in der Prädikatenlogik
∀x ∃y(P 2(x, y)) ⇒ ∀x ∃y(P 2(x, y) ∨ x = y)
[weil a ⇒ a ∨ b in der Booleschen Logik gilt].
Skolem-Normalform: Man kann beweisen, dass man mittels der Hinzufügung von unendlich vielen neuen Funktionszeichen erreichen kann, dass jede Formel äquivalent ist zu
einer Formel in Pränexform, bei der keine Existenzquantoren mehr auftreten.
Beispiel: ∀x∀y∃z P (x, y, z) wird dann äquivalent zu ∀x∀y P (x, y, f (x, y)), wobei f ein
neues Funktionszeichen ist.
44
Resolutionssatz für die Prädikatenlogik: (s. Schöning, p. 91)
Eine Aussage (d.h., Formel ohne freie Variablen) der Form
∀y1 ∀y2 . . . ∀yk F
mit F in konjunktiver Normalform (ohne Quantoren) ist unerfüllbar genau dann, wenn
die leere Klausel mittels Resolution erzeugt werden kann aus denjenigen Klauseln, die
man durch Einsetzung beliebiger Terme ti für alle Auftreten einer Variablen yi in einer
Klausel von F erhält.
Bemerkung: Es gibt keinen Algorithmus, der uns erlaubt, für beliebige Aussagen F der
Prädikatenlogik in endlich vielen Rechenschritten zu entscheiden, ob F allgemeingültig ist.
Wir werden nun zwei Beispiele für konkrete Anwendungen der Prädikatenlogik diskutieren, eines aus dem Bereich der Mathematik und eines aus dem Bereich der Informatik.
Beispiel 1: Die Sprache der Arithmetik,
genauer: der Theorie der natürlichen Zahlen
Wir betrachten eine Sprache, die neben den Variablen xi besteht aus
0
• einem 0-stelligen Funktionssymbol fNull
1
• einem 1-stelligen Funktionssymbol fNachfolger
2
• einem 2-stelligen Funktionssymbol fAdd
2
• einem 2-stelligen Funktionssymbol fMult
• einem 2-stelligen Prädikatssymbol = (Gleichheitszeichen)
• einem 2-stelligen Prädikatssymbol P<2 (“kleiner als”)
Wir betrachten zu dieser Sprache die folgende Struktur A = (UA , IA ):
• UA := N ∪ {0}
0
• IA (fNull
) := 0
1
• IA (fNachfolger
) := {hn, n + 1i | n ∈ N}
[Anmerkung: Dies ist eine Funktion, die jedem n ∈ N die nächstgrößere Zahl n + 1
zuordnet.]
2
• IA (fAdd
) := {hk, m, ni | k, m, n ∈ N und k + m = n}
2
• IA (fMult
) := {hk, m, ni | k, m, n ∈ N und k · m = n}
45
• IA (=) := {hk, mi | k, m ∈ N und k = m}
• IA (P<2 ) := {hk, mi | k, m ∈ N und k < m} .
Falls man zusätzlich A(x5 ) := 2 und A(x8 ) := 3 definiert, so ist A eine zu der Formel
F :≡ ∀y ∃z(x5 + y < z ∧ x8 · x5 = z)
passende Struktur.
Was ist A(F )? Gemäß 4. in Definition 1.2.4 gilt A(F ) = 1 genau dann wenn für G :≡
∃z(x5 + y < z ∧ x8 · x5 = z) gilt:
A[y/d] (G) = 1
für alle d ∈ UA = N. Dabei ist A[y/d] eine Variante von A, die der Variablen y die Zahl
d ∈ N zuordnet. Wir betrachten zusätzlich die Struktur A[y/d][z/d′] für eine beliebige Zahl
d′ ∈ N. Dieses ist eine Variante der Struktur A[y/d] bei der der Variablen z die Zahl d′
zugeordnet wird. Ebenfalls nach Teil 4. der Definition 1.2.3 gilt, daß A[y/d] (G) = 1 genau
dann wenn es eine Zahl d′ ∈ N gibt, sodaß A[y/d][z/d′ ] (x5 + y < z ∧ x8 · x5 = z) = 1. Für
den Term x5 + y gilt A[y/d][z/d′ ] (x5 + y) = 2 + d. Also ist A[y/d][z/d′ ] (x5 + y < z) = 1 genau
dann wenn 2 + d < d′ . Ferner ist A[y/d][z/d′ ] (x8 · x5 = z) = 1 genau dann wenn 3 · 2 = d′ ist.
Demnach ist A(F ) = 1 genau dann wenn es für alle natürlichen Zahlen d eine natürliche
Zahl d′ gibt, sodaß 2 + d < d′ ∧ 3 · 2 = d′ . Dies ist falsch, weil es zum Beispiel für d:=10
ein solches d′ nicht gibt. Also ist A(F ) = 0.
Anmerkung: Es gibt viele andere, sogar unendlich viele weitere Strukturen A für die
in diesem Beispiel betrachtete Sprache der Arithmetik. Dies rührt daher, daß man für
das Universum UA der Struktur A eine beliebige Menge wählen darf (z.B. man kann
auch UA = {1, 2, 3, 4, 5}, UA = {a, b, c, }, oder UA = R wählen), und daß zusätzlich die
Interpretation IA der Variablen, Funktionssymbole und Prädikatensymbole der Sprache
der Arithmetik über jedem dieser möglichen Universen UA beliebig gewählt werden darf.
Selbst für den Fall UA = N darf man die Interpretation dieser Symbole beliebig wählen,
0
0
) = 0. Eine Formel F aus der Sprache
) = 3, anstatt IA (fNull
also zum Beispiel IA (fNull
der Arithmetik ist nur dann allgemeingültig, wenn sie in allen Strukturen für F gilt.
0
) nicht allgemeingültig, denn sie ist ja zum
Daher ist die Formel F :≡ ¬∃ x(x < fNull
0
Beispiel in einer Struktur A mit UA = N und IA (fNull
) = 3 nicht wahr (formal: es gilt
0
A(¬∃ x(x < fNull )) = 0 für diese Struktur A).
Beispiel 2: Eine formale Sprache zur Analyse von Sprachen, also
von Mengen von Zeichenreihen
0
Wir betrachten eine Sprache, die neben den Variablen xi , fNull
und den 2-stelligen Prädi2
katszeichen “=” und P< besteht aus:
46
0
• einem 0-stelligen Funktionssymbol fNull
1
• einem 1-stelligen Funktionssymbol fLänge
• einem 2-stelligen Funktionssymbol fZ2 (wobei Z an das Zusammenfügen (=concatenation) von Zeichenreihen erinnert)
• einem 2-stelligen Funktionssymbol fP2 (wobei P an das Potenzieren von Zeichenreihen erinnert)
• drei 1-stelligen Prädikatensymbolen P11 , P21 , P31.
Man ist besonders interessiert daran, welche Formeln dieser Sprache in der folgenden
Struktur A wahr sind:
• UA := N ∪ {0} ∪ Σ∗ (für ein beliebiges endliches Alphabet Σ).
0
• IA (fNull
) := 0
1
• IA (fLänge
) := {hs, | s | i | s ∈ Σ∗ }
• IA (fZ1 ) := {hx, y, xyi | x, y ∈ Σ∗ }
• IA (fP2 ) := {hx, i, xi i | x ∈ Σ∗ und i ∈ N ∪ {0}}.
• {x ∈ UA | x ∈ P11 } := N ∪ {0}
• {x ∈ UA | x ∈ P21 } := Σ∗
• {x ∈ UA | x ∈ P31 } := A
(für eine gewisse Sprache A ⊆ Σ∗ )
• IA (=) := {hx, xi | x ∈ N ∪ {0} ∪ Σ∗ }
• IA (P<2 ) := {hk, mi | k, m ∈ N ∪ {0} und k < m}.
Das Pumping Lemma (=Theorem 1.37 im Buch von Sipser) besagt, daß wenn die Menge
A ⊆ Σ∗ regulär ist, dann gilt für die soeben definierte Struktur A:
A(F ) = 1 für die Formel
1
(x2 ), x1 )∨ ∃ x3 ∃ x4 ∃ x5 (x2 = fZ2 (fZ2 (x3 , x4 ), x5 )∧
F :≡ ∃ x1 (P11 (x1 )∧∀ x2 (¬P21 (x2 )∨P<2 (fLänge
0
1
1
∀ x6 (¬P11 (x6 )∨P31 (fZ2 (fZ2 (x3 , fP2 (x4 , x6 )), x5 )))∧P<2 (fNull
, fLänge
(x4 ))∧¬P<2 (x1 , fLänge
(fZ2 (x3 ,
x4 )))))).
Wir werden lernen, diese Formel F inhaltlich zu interpretieren. Um aber zu entscheiden,
zu welcher anderen Formel diese Formel F logisch äquivalent ist, ist es in erster Linie
wichtig, ihre formale logische Struktur zu kennen.
1. Gödelscher Satz: Es gibt Aussagen F welche ⌈ ich bin nicht beweisbar⌉ in der Sprache der Arithmetik ausdrücken, sodass weder F noch ¬F aus den Axiomen der Arithmetik
47
folgt.
2. Gödelscher Satz: Für die meisten, formalen Systeme S der Mathematik gilt: Die
arithmetische Formalisierung der Aussage ⌈ S ist widerspruchsf rei ⌉ kann im formalen
System S nicht bewiesen werden.
48
Herunterladen