Einführung - Till Hänisch

Werbung
Künstliche Intelligenz
(c) Till Hänisch 2003,2013, DHBW Heidenheim
Mittwoch, 8. Januar 14
Definition
•
“Künstliche Intelligenz (KI) läßt sich als der Zweig der Informatik definieren,
der mit der Automatisierung intelligenten Verhaltens befaßt ist.” (Luger)
•
Zweig der Informatik
•
•
•
•
•
Algorithmen
Programmiersprachen
usw.
Was ist “intelligentes Verhalten” ? Intelligenz ?
•
•
Mittwoch, 8. Januar 14
Datenstrukturen
Begabung, Fähigkeiten, Kreativität, Wissen, Bewußtsein ?
Fragen über Fragen, alle offen !!
Turing Test
•
•
Imitationsspiel, Turing, Computing machinery and intelligence, 1950
•
Eigenschaften des Tests:
•
•
Mittwoch, 8. Januar 14
Mensch und Computer werden (über Tastatur, Bildschirm) von einem
Menschen befragt. Dieser muß entscheiden, wer ist Mensch, wer ist
Computer. Wenn nicht möglich (oder falsch) folgt, Computer ist intelligent.
•
Objektives Kriterium zur Erkennung von (künstlicher) Intelligenz:Vergleich
mit menschlicher Reaktion auf Fragen
•
•
Vermeidung philosophischer Fallstricke (Bewußtsein usw.)
Reduktion auf Sprache, dadurch Abstraktion über Aussehen, motorische
Fähigkeiten usw.
Sprachverständnis ist (deshalb ?) wichtiger Teilaspekt der KI
Bots, etwa ELIZA, ALICE
•
•
•
eine der zentralen Fragen der KI: Was ist Intelligenz ?
•
Erläuterung anhand von
KI dient (auch) zur Überprüfung von Theorien zur Intelligenz !
KI ist “Sammlung von Methodologien, die von KI-Wissenschaftlern untersucht
werden” (Luger)
•
•
•
historischer Entwicklung
“Methoden zur Lösung interessanter Probleme” (Hänisch)
•
•
•
Mittwoch, 8. Januar 14
Beispielen
die nicht nur auf ein spezielles Problem angewandt werden können
(allgemeine) Methoden zur Lösung von Problemen
die nicht (ohne weiteres) als deterministischer Algorithmus beschrieben
werden können (emergentes Verhalten)
Historie
•
•
•
•
Aufklärung, Philosophie, Trennung von Körper und Geist (Descartes)
•
formale Logik:
“Alles Denken ist Berechnung” (Hobbes)
Formalisierung der Beschreibung der Welt (Leibnitz, Euler), Graphentheorie
Logik (Boole): “... die Grundgesetze derjenigen geistigen Operationen zu
erforschen, die für das Schließen verantwortlich sind: ihnen Ausdruck zu
verleihen in der formalen Sprache eines Kalküls und auf dieser Grundlage
eine Wissenschaft der Logik zu begründen und deren Methode zu
unterrichten” (aus Luger)
•
•
•
Mittwoch, 8. Januar 14
logische Aussagen (wahr/falsch)
Operationen (AND, OR, NOT)
allgemein gültige Aussagen X AND X = X, usw.
•
Prädikatenlogik (Frege)
•
•
Mittwoch, 8. Januar 14
Wissensrepräsentation
Grundlage von Expertensystemen
•
Idee: (Vollständige) Beschreibung der Welt durch (wahre) Aussagen und
logische Verknüpfungen möglich
•
Leicht erschüttert durch Erkenntnisse zur Vollständigkeit der Mathematik
•
“It may therefore be surmised that these axioms and rules
of inference are also sufficient to decide all mathematical
questions which can in any way at all be expressed
formally in the systems concerned. It is shown below that
this is not the case,...” (Gödel, ON FORMALLY
UNDECIDABLE PROPOSITIONS OF PRINCIPIA
MATHEMATICA AND RELATED SYSTEMS)
•
“R is the set of all sets which are not members of
themselves. Thus the statement: "Set R is a member of
itself" is indeterminate.” (Betrand Russell)
•
Beschreibung der Welt durch logische Aussagen und Schlüsse ist schwierig !!!
•
•
•
•
•
•
Mittwoch, 8. Januar 14
prinzipielle Probleme
viele Regeln, hohe Komplexität
hat man auch in der KI gemerkt, deshalb
andere Modelle zur Beschreibung
Biologische und soziale Modelle
•
•
•
•
GOFAI (Good Old Fashion Artificial Intelligence)
Agentensysteme
neuronale Netze
genetische Algorithmen
“ganz andere” Ansätze: Statistik, Chaostheorie usw
Anwendungen
•
Spiele
•
•
•
•
•
Mittwoch, 8. Januar 14
wenige, klare Regeln
große Suchräume
Heuristiken
Maschinelles Schließen
•
•
Dame, Schach usw.
formale Logik, PROLOG
Expertensysteme
MYCIN
•
•
•
•
Mittwoch, 8. Januar 14
Diagnose bakterieller Erkrankungen, Therapievorschläge zum Einsatz von
Antibiotika
>> What is the patients name?
John Doe.
>> Male or Female?
Male.
>> Age?
55.
>> Let's call the most recent positive culture C1. From what site was
C1 taken?
From the blood.
...
>> My recommendation is as follows: give gentamycin using a dose of
119 mg (1.7mg/kg) q8h IV [or IM] for 10 days. Modify dose in renal
failure. Also, give clindamycin using a dose of 595 mg (8.5 mg/kg)
q6h IV [or IM] for 14 days.
Schließen auf Basis unsicheren Wissens
Ergebnis teilw. besser als (menschliche) Ärzte. Probleme: Akzeptanz, wenn
Fehldiagnose, wer haftet ? usw. Erklärt, auf Basis welcher Regeln Entscheidung
getroffen wurde, dadurch nachvollziehbar
Sprache
•
richtige Aussprache von geschriebenem Text (NetTalk, Mitte 80’er, neuronales
Netz)
•
Verstehen von Sprache ist komplex
•
Mittwoch, 8. Januar 14
•
•
nicht nur die Wörter, sondern auch der Kontext muß verstanden werden
•
klassisches Problem von Übersetzungsprogrammen, “Service-Satz 1 (SP1)
des Internet Explorers 6 stellt einen neuen Standard im Privatleben, in der
Zuverlässigkeit und in der Flexibilität ein. Gekommen sehen Sie, wie
Internet Explorer die Weise auf dem Netz führt.” (Übersetzung von
google)
Analyse von Syntax (Grammatik) i.w. auf Basis von Regeln, Sematik
(Bedeutung) benötigt den Kontext
In der Anwendung sind meist einfachere Systeme (ELIZA, ALICE) erfolgreich
Robotik
•
•
Wie steuert man einen Roboter ?
Wahl von Wegen usw. --> Planung
•
•
•
•
Zerlegung in Teilschritte
Reise zur BA Dresden: (zum Ulmer Bahnhof, nach Dresden, zur BA)
wie macht man das automatisch (Algorithmus) ? --> Wissen über
Problemdomäne nötig
Agentensysteme
•
Mittwoch, 8. Januar 14
viele Freiheitsgrade
hierarchische Problemzerlegung
•
•
•
z.B. Bewegung durch Raum
•
•
Emergentes Rechnen
Strategie zur Problemlösung wird nicht explizit kodiert
lernfähiges System wird mit Beispielen trainiert (”lernt”)
•
•
•
•
Analogie zum menschlichen Lernen
neuronale Netze
Problem: Gründe für eingeschlagenen Lösungsweg sind nicht mehr
nachvollziehbar
System aus vielen interagierenden Komponenten löst Problem selbstständig
•
•
•
einfache Regeln
Kommunikation, Sozialverhalten
(Multi-) Agentensysteme
•
Mittwoch, 8. Januar 14
Zusammenfassung
•
Verwendung von Computern für Schließen, Mustererkennung, Lernen
(Inferenz)
•
Probleme, die sich nicht für algorithmische Lösung eignen (heuristische
Suche,...)
•
•
•
•
•
•
Problemlösungsverfahren auf Basis unscharfer Informationen
Qualitative Merkmale von Situationen
(semantische) Bedeutung, (syntaktische) Form
“ausreichende” Lösungen, wenn exakte/optimale Lösung unmöglich/zu teuer
Einsatz bereichsspezifischen Wissens
Metawissen zur Steuerung der Problemlösung
nach Luger
Mittwoch, 8. Januar 14
Mittwoch, 8. Januar 14
Mittwoch, 8. Januar 14
Literatur
Mittwoch, 8. Januar 14
•
•
Luger, Künstliche Intelligenz, Addison Wesley, 2001
•
•
Clocksin, Mellish, Programming in PROLOG, Springer, 1987
•
•
Ferber, Multi-Agent Systems, Addison Wesley, 1999
•
Alberts, Bray, Lewis, Raff, Roberts, Watson, Molecular Biology of the Cell,
Garland Publishing, 1994
Bigus, Bigus, Intelligente Agenten mit Java programmieren, Addison Wesley,
2001
Lange, Oshima, Programming and Deploying Java Mobile Agents with Aglets,
Addison Wesley, 1998
Fogel, Corne, Evolutionary Computation in Bioinformatics, Morgan Kaufman,
2003
Labyrinth
Ausgehend von einem Raum soll Ausgang gesucht werden
Start z.B. in Raum 1
(Allgemeines Problem: In einem Graphen soll Weg zwischen zwei
Knoten gefunden werden, z.B. Weg zwischen zwei Städten,...)
Wie ?
Mittwoch, 8. Januar 14
breadth first
Ausgehend vom Startknoten
besuche alle direkt verbundenen Knoten
prüfe jeweils, ob am Ziel
Implementierung:
Liste der zu besuchenden Räume (enthält zunächst den Startknoten) wird abgearbeitet
Für jedes Element dieser Liste:
Füge jeden direkt verbundenen Knoten der Liste hinzu
Anmerkung: Bei nicht gerichteten Graphen (Wege sind in beiden Richtungen “begehbar”)
muss eine Liste der bereits besuchten Knoten geführt werden, um Schleifen zu vermeiden
Mittwoch, 8. Januar 14
depth first
Ausgehend vom Startknoten
Für jeden möglichen Weg:
bin ich am Ziel ? --> fertig, sonst
geht’s von hier aus nicht weiter ? --> abbrechen, sonst
nimm diesen als Startknoten und suche ab dort
z.B. Start in 1, Weg:
1->0, von 0 aus keine Lösung --> zurück
1->3, 3->2, keine Lösung, 3->4, 4->5, fertig
backtracking: Wenn eingeschlagener Weg nicht weiterführt,
zurück und Alternative probieren (trial and error)
Witz dabei: Explizite Suchtechnik ist nicht (!) vorgegeben, Lösung des Problems
erfolgt durch “ausprobieren”
Implementierung durch Rekursion
Mittwoch, 8. Januar 14
backtracking
Wichtige Problemlösungsstrategie, funktioniert in vielen Fällen, z.B. “Springerproblem”
Springer soll - ausgehend von einer Startposition - so
über Schachbrett bewegt werden, dass alle Felder genau
einmal berührt werden
Allgemeine Lösung:
- Fange (irgendwo) an
- Bin ich fertig ? wenn nein, dann
- Wähle nächsten Zug (nächste Alternative, nächsten Knoten,...)
- Wenn gültiger Zug (erlaubter Zug, Springer auf dem Schachbrett,...)
- Zeichne diesen Zug auf
- Löse von dieser Startposition ausgehend
- Wenn Lösung so nicht möglich, gehe zurück und lösche die Aufzeichnung
Implementierung (einfach) durch Rekursion
Mittwoch, 8. Januar 14
private boolean _solve(int aX, int aY, int Round)
{
if (Round == Size*Size) return true;
for (int i=0;i<8;i++)
{
int testX = aX + ZuegeX[i];
int testY = aY + ZuegeY[i];
if ((testX >= 0) && (testY >= 0) &&
(testX < Size) && (testY < Size) &&
(Feld[testX][testY] == 0))
{
Feld[testX][testY] = Round;
if (!_solve(testX,testY,Round+1))
{
Feld[testX][testY]=0;
}
else
return true;
}
}
return false;
}
OfficeMac:~/Maze] till% time java Springer
0.300u 0.140s 0:00.53 83.0%
0+0k 0+0io 0pf+0w
[OfficeMac:~/Maze] till% time java Springer 6
0.530u 0.110s 0:00.75 85.3%
0+0k 0+0io 0pf+0w
[OfficeMac:~/Maze] till% time java Springer 7
6.850u 0.150s 0:07.12 98.3%
0+0k 0+0io 0pf+0w
[OfficeMac:~/Maze] till% time java Springer 8
7.910u 0.160s 0:08.20 98.4%
0+0k 0+0io 0pf+0w
[OfficeMac:~/Maze] till% time java Springer 9
^C6715.320u 32.260s 2:05:40.80 89.4%
0+0k 0+0io 0pf+0w
nach 2 Stunden abgebrochen
Mittwoch, 8. Januar 14
PROLOG
Warum backtracking immer neu programmieren ?
door(0,1).
door(1,2).
door(2,3).
door(2,4).
door(4,5).
way(X,X).
way(X,Y) :- door(X,T),way(T,Y).
| ?- consult('maze.pl').
compiling /Users/admin/Desktop/KI/Maze/
maze.pl for byte code...
/Users/admin/Desktop/KI/Maze/maze.pl
compiled, 9 lines read - 962 bytes
written, 116 ms
(10 ms) yes
| ?- way(0,5).
true ?
(10 ms) yes
| ?- way(1,7).
no
| ?Mittwoch, 8. Januar 14
| ?- way(0,5).
1
1 Call:
2
2 Call:
2
2 Exit:
3
2 Call:
4
3 Call:
4
3 Exit:
5
3 Call:
6
4 Call:
6
4 Exit:
7
4 Call:
8
5 Call:
8
5 Fail:
7
4 Fail:
6
4 Redo:
6
4 Exit:
7
4 Call:
8
5 Call:
8
5 Exit:
9
5 Call:
9
5 Exit:
7
4 Exit:
5
3 Exit:
3
2 Exit:
1
1 Exit:
true ?
Mittwoch, 8. Januar 14
way(0,5) ?
door(0,_79) ?
door(0,1) ?
way(1,5) ?
door(1,_128) ?
door(1,2) ?
way(2,5) ?
door(2,_177) ?
door(2,3) ?
way(3,5) ?
door(3,_226) ?
door(3,_214) ?
way(3,5) ?
door(2,3) ?
door(2,4) ?
way(4,5) ?
door(4,_226) ?
door(4,5) ?
way(5,5) ?
way(5,5) ?
way(4,5) ?
way(2,5) ?
way(1,5) ?
way(0,5) ?
backtracking !
PROLOG Beispiel
female(susi).
female(gabi).
male(hans).
male(klaus).
parents(susi,gabi,hans).
parents(klaus,gabi,hans).
sister_of(X,Y) :female(X),
parents(X,F,M),
parents(Y,F,M).
| ?- sister_of(susi,hans).
no
| ?- sister_of(susi,klaus).
yes
| ?- sister_of(X,klaus).
X = susi ?
yes
| ?-
Mittwoch, 8. Januar 14
“klassische” Anwendung:
regelbasierte Systeme,
Prädikatenlogik, z.B.
Beweis von Theoremen,...
komplexeres Beispiel
d( X, X, 1 ):- !.
d( C, X, 0 ):- atomic(C).
d( U+V, X, R ):d( U, X, A ),
d( V, X, B ),
R = A + B.
usw.
| ?- consult('diff.pl').
| ?- d(x*x,x,D).
D = x*1+x*1
| ?- d(x*sin(x),x,D).
D = x*(1*cos(x))+sin(x)*1 ?
| ?- d(sin(x),y,D).
D = 0*cos(x) ?
| ?-
Mittwoch, 8. Januar 14
Zugehörige Unterlagen
Herunterladen