9 Ausgewählte Themen
30. Vorlesung: Bemerkungen zum maschinellen Lernen
$ % & ' ( ) * + % , % ) - . / 0 1 2 3 / 4 / 5 5 / + 6 7 * . 4 * & ) , 8
*John McCarthy Marvin Minsky Nathaniel Rochester Claude Shannon
Dartmouth College*
! "
9
Was ist „Lernen“?
9
Lernen und Inferenz
9
Lernen aus Beispielen und Gegenbeispielen
:
Lernen des Konzepts „arch“ (Bogen) in einem semantischen Netzwerk
9
Lernende Interface-Agenten
:
am Beispiel der Anpassung an Benutzerpräferenzen
<
”Lernen ist jede Veränderung eines Systems, die es ihm erlaubt, eine Aufgabe bei der Wiederholung derselben Aufgabe oder einer Aufgabe derselben Art besser zu lösen.”
(Simon 1983: Why should machines learn?)
Kritik: auch Veränderungen erfaßt, die
man gemeinhin nicht als Lernen bezeichnen würde.
<
”Lernen ist ein Prozeß, bei dem ein System eine abrufbare Re- präsentation von vergangenen Interaktionen mit seiner Umwelt aufbaut.”
(Scott 1983, Learning: The construction of a posteriori knowledge structures)
<
”Lernen ist das Konstruieren oder Verändern von Repräsen- tationen von Erfahrungen.”
(Michalski 1986: Understanding the nature of learning)
! " =
Modus ponens
Gegeben (if
p q
) undp
gilt schließe, daßq
gilt.Universelle Einsetzung
Gegeben
(forall(x) (Px))
gilt schließe, daß( P a )
für jede Konstantea
gilt.
Abduktives Schließen
Gegeben q und (if p q ) gilt schließe, daß p gilt.
Kein legaler Schluß in der Logik, aber benutzt, um Hypothesen zu generieren.
Induktives Schließen
Gegeben (Pa), (Pb), ... gilt
schließe, daß (forall(x) Px)) gilt.
Kein legaler Schluß in der Logik, aber eine der Grundlagen von Lernen.
! " ?
Adam ist ein Mensch. Adam ist sterblich.
Eva ist ein Mensch. Eva ist sterblich.
Jochen ist ein Mensch. Jochen ist sterblich.
Meike ist ein Mensch. Meike ist sterblich.
__________________________________________
?x ist ein Mensch --> ?x ist sterblich
“statistische Rechtfertigung”
Verwendung (Vorhersage aufgrund der induzierten Aussage) ist deduktiv:
Sokrates ist ein Mensch. Sokrates ist sterblich.
Ein leicht hebbares, stehendes Gefäß ist ein Becher.
Dieses Objekt hat einen flachen Boden, einen Henkel an der Seite und ist leicht. Dieses Objekt ist ein Becher.
Es ist leicht hebbar, weil es leicht ist und einen Henkel hat. Es steht, weil es einen flachen Boden hat.
“kausale Rechtfertigung”
Alle Gefäße, die leicht sind, einen Henkel haben und einen flachen Boden, sind Becher.
! " A
?x ist ein Mensch --> ?x ist sterblich Sokrates ist sterblich.
__________________________________________
Sokrates ist ein Mensch.
Aufgrund einiger Gemeinsamkeiten werden alle anderen Eigenschaften übernommen.
Dieser Schluß ist (wie die Induktion) nicht wahrheitserhaltend, sondern nur “falschheitserhaltend”:
• Wenn Sokrates nicht sterblich ist, ist er auch kein Mensch.
• Wenn es einen Menschen gibt, der nicht sterblich ist, sind auch nicht alle Menschen sterblich.
Winston’s Lernprogramm (1975)
Beispiele und ähnliche Gegenbeispiele:
“knapp verfehlte” (“near misses”)
Induktionsheuristiken (u.a.):
• Require-link
• Forbid-link
• Climb-Tree Arch
Near miss
Arch Near miss
! " B B
Arch
Near miss
support support
left-of
Arch
left-of
Near miss
must-support must-support
left-of
Arch
Arch
Near miss
Arch
must-support must-support
left-of
Near miss
must-support must-support
touch left-of
touch
must-support must-support Arch
must-not-touch left-of
must-not-touch
! " B
Arch (with brick)
Arch
(with wedge)
must-support must-support
must-not-touch left-of
must-not-touch
Brick
Block
is-a
must-support must-support
must-not-touch left-of
must-not-touch
Wedge
Block
is-a
must-support must-support
must-not-touch left-of
must-not-touch
Block
must-be-a
Beschreibung:
(parts a {a1, a2, a3})
(on a1 a2) (on a1 a3) (not (touch a2 a3)) (inst a1 brick) (inst a2 brick) (inst a3 brick) (inst a arch)
Beschreibung:
(parts b {b1, b2, b3})
(not (on b1 b2)) (not (on b1 b3)) (not (touch b2 b3)) (inst b1 brick) (inst b2 brick) (inst b3 brick)
(not (inst b arch))
Beschreibung:
(parts c {c1, c2, c3})
(on c1 c2) (on c1 c3) (touch c2 c3) (inst c1 brick) (inst c2 brick) (inst c3 brick) (not (inst c arch))
Beschreibung:
(parts d {d1, d2, d3})
(on d1 d2) (on d1 d3) (not (touch d2 d3)) (inst d1 wedge) (inst d2 brick) (inst d3 brick) (inst d arch)
a2 a3 a a1
b2 b3 b1 b
c2 c3 c c1
d2 d3 d d1
Gelernte Definition von "arch":
(if (and (parts ?x {?x1, ?x2, ?x3}) (on ?x1 ?x2) (on ?x1 ?x3) (not (touch ?x2 ?x3)) (inst ?x1 block)
(inst ?x2 brick) (inst ?x3 brick)) (inst ?x arch))
! " B = 9
akquirieren automatisch Wissen über Benutzer/Applikation
9
benutzen ML-Techniken wie Lernen durch Beobachtung, durch Beispiele etc.
9
speichern häufig benutzerspezifische Daten in expliziten Benutzermodellen (Kritikpunkt!)
Unser Ansatz:
9
Multiagenten-Lernen erlaubt Benutzeradaption ohne explizite Benutzermodelle
(z.B. Kozierok & Maes 1993)
Idee: Einzelne Agenten in einer Agentur qualifizieren sich im Verlauf von Auftrags- abwicklungen durch Erfolg und Mißerfolg.
Hierdurch spielt sich das Agentur-“Team”
auf individuelle Benutzerpräferenzen ein.
Das „Wissen“ über Benutzerpräferenzen ist im Team verteilt vorhanden
=> keine expliziten Benutzermodelle!
! " B ?
Multi-Agenten-Kommunikations-Subsystem (MAKS) in VIENA
Agenten:
eigenständige Prozesse, verteilt auf Rechnernetz Kommunikation:
– asynchron, nachrichtenbezogen, nichtblockierend
(Client-Server-Konzept)
– realisiert z.B. mit Remote Procedure Call
(weitere Realisierungen wurden entwickelt)
Die aufgabenspezifische Synchronisation erfolgt auf -> Kooperationsebene
[ \ ]^ _ `a ]bc b d ]_ e_ f_ eg
NACHRICHT ==
(KENNUNG, | Benutzerauftragsnr. + chronologische Nr.
ABSENDER, | Name des absendenden Agenten EMPFÄNGER, | einzelner Agent oder Agentur
TYP, | Kooperationstyp aus {KP1, KP2, KP3, KP4}
BEZUG, | Kennung der ursächlichen Nachricht ZEITSTEMPEL, | Entstehungszeit der Nachricht
LÖSUNGSZEIT, | Vorgabe einer maximalen Lösungszeit
INHALT) | eigentliche Meldungsdaten (appl.spezifisch)
C D E F G HIJ K L M N O J PQ G R J M R J H S T M K PIU V Q J M W M PJ IIU N J M X Y h
In VIENA vier Kooperationstypen:
KP1: Kooperationsauftrag ohne Ergebnisrückgabe KP2: Kooperationsauftrag mit Ergebnisrückgabe
KP3: Kooperationsausschreibung ohne Ergebnisrückgabe KP4: Kooperationsausschreibung mit Ergebnisrückgabe
[ \ ]^ _ `a ]bc b d ]_ e_ f_ eg
Kombination verschiedener Kooperationsmodelle in VIENA
im wesentlichen Vertragsverhandlung (Contract-Net), jedoch differenzierbar (z.B. Master-Slave) durch die Kooperationstypen
Grundsätzliches Protokollschema
• Ausschreibung einer Aufgabe
• Erstellung von Angeboten
• Angebotsannahme/-ablehnung (Auftragsvergabe)
• Übergabe der Auftragsergebnisse
Bidder1
Bidder2
Con- tractor
task postingtask posting bid
bid rejection
bid
task allocat ion
Interface Agency
C D E F G HIJ K L M N O J PQ G R J M R J H S T M K PIU V Q J M W M PJ IIU N J M X i Y
Basis für Benutzeradaption:
j
Agenten ähnlicher
Funktionalität organisiert in Unteragenturen
j
jede Unteragentur:
aufgabenbezogene Klasse von Benutzerpräferenzen
j
jeder Agent einer Unteragentur:
bestimmte Benutzerpräferenz dieser Klasse
Ziel: Dynamische Anpassung an Präferenzen unterschiedlicher Benutzer bzw. wechselnde Präferenzen individueller Benutzer
[ \ ]^ _ `a ]bc b d ]_ e_ f_ eg
Lernmethode: implizit positives und explizit negatives Feedback Erfolg von Auftragnehmern: Quantität und Qualität von Ergebnissen credit(t) = (zuversicht(t), erf_bearb_auf(t), bearb_auf(t), auf(t))
Lernschritte (Grundidee):
• Einstellung von credit-Werten gemäß Benutzer-Feedback
• Aktivierung von Agenten mit maximalen credits
=> bestgeeignete Agenten erhalten Vorrang
Bidder1
Bidder2
Con- tractor
task postingtask posting bid (credit1) bid rejection
bid (credit2) task allocat
ion
Interface Agency
C D E F G HIJ K L M N O J PQ G R J M R J H S T M K PIU V Q J M W M PJ IIU N J M X i C k
Agenten als Auftragnehmer
l
führen credit-Vektoren für unterschiedliche Auftraggeber
l
stellen credit-Vektoren Auftraggebern in Angeboten zur Verfügung
l
aktualisieren letzte drei Vektorkomponenten auf Basis akquirierter Nachrichtendaten
daten(t) = (kennung(t), absender(t), empfänger(t), typ(t), inhalt(t))
l
aktualisieren zuversicht auf Basis bereits berechneter Komponenten und bestimmter Schwellwerte
k
Agenten als Auftraggeber
l
evaluieren und vergleichen alle Angebote mittels Heuristiken etc.
credit(t) = (zuversicht(t), erf_bearb_auf(t), bearb_auf(t), auf(t))
[ \ ]^ _ `a ]bc b d ]_ e_ f_ eg
k
Kap. 16 in Winston: Artificial Intelligence
k
Kap. 3 in Görz: Einführung in die künstliche Intelligenz
k
speziell zum Multiagenten-Lernen:
l