Computational Intelligence Herausgegeben von Prof. Dr. Wolfgang Bibel, Technische Universität Darmstadt Prof. Dr. Rudolf Kruse, Otto-von-Guericke-Universität Magdeburg Prof. Dr. Bernhard Nebel, Albert-Ludwigs-Universität Freiburg
Die Reihe Computational Intelligence wird herausgegeben von Prof. Dr. Wolfgang Bibel, Prof. Dr. Rudolf Kruse und Prof. Dr. Bernhard Nebel. Aus den Kinderschuhen der Künstlichen Intelligenz entwachsen bietet die Reihe breitgefächertes Wissen von den Grundlagen bis in die Anwendung, herausgegeben von namhaften Vertretern ihres Faches. Computational Intelligence hat das weitgesteckte Ziel, das Verständnis und die Realisierung intelligenten Verhaltens voranzutreiben. Die Bücher der Reihe behandeln Themen aus den Gebieten wie z.b. Künstliche Intelligenz, Softcomputing, Robotik, Neuro- und Kognitionswissenschaften. Es geht sowohl um die Grundlagen (in Verbindung mit Mathematik, Informatik, Ingenieurs- und Wirtschaftswissenschaften, Biologie und Psychologie) wie auch um Anwendungen (z.b. Hardware, Software, Webtechnologie, Marketing, Vertrieb, Entscheidungsfindung). Hierzu bietet die Reihe Lehrbücher, Handbücher und solche Werke, die maßgebliche Themengebiete kompetent, umfassend und aktuell repräsentieren. Weitere Bände dieser Reihe finden Sie unter http://www.springer.com/series/12572
Wolfgang Ertel Grundkurs Künstliche Intelligenz Eine praxisorientierte Einführung 4., überarbeitete Auflage
Wolfgang Ertel Institut für Künstliche Intelligenz, Hochschule Ravensburg-Weingarten Weingarten, Deutschland Computational Intelligence ISBN 978-3-658-13548-5 DOI 10.1007/978-3-658-13549-2 ISBN 978-3-658-13549-2 (ebook) Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg Springer Fachmedien Wiesbaden 2008, 2009, 2013, 2016 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. Springer Vieweg ist Teil von Springer Nature Die eingetragene Gesellschaft ist Springer Fachmedien Wiesbaden GmbH
Vorwort zur vierten Auflage Nach 60 Jahren ist die Künstliche Intelligenz (KI) nun in der Industrie und im Bewusstsein der Bevölkerung angekommen. Die beeindruckenden Erfolge und die dabei verwendeten neuen Methoden der KI sind so relevant, dass sie auch in einem Grundkurs kurz beschrieben werden sollten. Auf etwa dreißig neuen Seiten berichte ich vor allem über Deep Learning, eine konsequente Weiterentwicklung von neuronalen Netzen, die es der Bildverarbeitung nun erstmals ermöglicht, auf Pixelbildern fast beliebige Objekte zu erkennen. Davon profitiert unter anderem auch ein Computerprogramm, das erstmals einen der weltbesten Spieler im Go schlagen konnte. In dem neuen Abschnitt über Deep Learning darf auch ein kurzer Bericht über das faszinierende neue Teilgebiet der Kreativität nicht fehlen. Erstmals können neuronale Netze kreativ Texte, Musikstücke und Gemälde, zum Beispiel im Stil von alten Meistern, generieren. Diese Erfolge basieren auf vielen Jahren Forschung an neuronalen Netzen und maschinellem Lernen. Die praktische KI hat sich zu einer Ingenieursdisziplin entwickelt, in der die Programme teilweise in großen industriellen Teams mit Experten der verschiedenen Spezialthemen entwickelt werden. Selbstfahrende Autos, Serviceroboter und Smart Homes alles KI-Anwendungen werden unser Leben stark verändern. Neben großen Lichtblicken wird es auch Schattenseiten geben. In einer Zeit des rasanten technologischen Fortschritts haben wir die Grenzen des Wachstums längst überschritten. Wir müssen uns daher bei jeder Erfindung Gedanken über die Nachhaltigkeit ihrer Anwendung machen. In Kap. 1 möchte ich dazu einige Denkanstöße geben. Neu im Buch sind auch zwei praktische Beispiele zur Erklärung der wichtigen Bayes- Formel und ihrer Relevanz im Alltag sowie ein Abschnitt über die Messung der Qualität von Clustering-Ergebnissen. Schließlich wird bei den Suchverfahren der Zyklencheck analysiert, die Routenplanung für Auto-Navigationssysteme als Anwendung dargestellt und Monte Carlo Tree Search kurz eingeführt. Alle bekannten Fehler wurden korrigiert und an vielen Stellen Aktualisierungen vorgenommen. Von Herzen bedanken möchte ich mich bei den Lesern, die mir Feedback gegeben haben und bei allen, die durch Korrekturlesen und Anregungen mit zu dieser Neuauflage beigetragen haben. Besonders hervorheben möchte ich Adrian Batzill für die Messungen V
VI Vorwort zur vierten Auflage und Graphen zur Routenplanung sowie bei Nicole Dathe, Markus Schneider, Robin Lehmann, Ankita Agrawal, Wenzel Massag, Lars Berge, Jonas Lang und Richard Cubek. Ravensburg, April 2016 Wolfgang Ertel
Vorwort zur dritten Auflage In Kap. 8 gibt es nun zwei neue Abschnitte. Das wichtige Thema Kreuzvalidierung erhält in Abschn. 8.5 endlich den verdienten Raum. In Abschn. 8.8 über One-Class-Learning werden Verfahren zum Lernen von Klassifikatoren beschrieben, wenn nur Daten einer Klasse verfügbar sind. Neben der Fehlerkorrektur wurden an vielen Stellen Aktualisierungen vorgenommen sowie die Literaturliste ergänzt um wichtige neue Standardwerke wie etwa [Bis06]. Die Geschichte der KI wurde ergänzt um die ganz wichtige aktuelle Strömung hin zu autonomen Maschinen und Robotern. Kap. 6 wurde ergänzt durch neue Trends bei Schachcomputern. Interessant ist, dass die neuesten Entwicklungen beim Schach nicht mehr auf Hardwareleistung, sondern auf lernfähige KI setzen. Die Nearest Neighbour-Methoden in Kap. 8 wurden ergänzt durch ein anschauliches Beispiel. Ravensburg, März 2013 Wolfgang Ertel VII
Vorwort zur zweiten Auflage Ich bedanke mich bei allen Lesern des Buches und ganz besonders bei Richard Cubek für Kommentare, Kritik und die Meldung von Fehlern. Neben der Fehlerkorrektur waren an einigen Stellen Ergänzungen und Änderungen angebracht. So überarbeitete ich zum Beispiel die Beschreibung der Normalformtransformation für prädikatenlogische Formeln und fügte beim Perzeptron ergänzende Erklärungen ein. Die Beschreibung des Backpropagation-Algorithmus wurde durch Pseudocode verbessert und die Einführung in das Clustering ergänzte ich zur Veranschaulichung durch ein Bild. Das Kapitel zehn zum Lernen durch Verstärkung wurde erweitert um einige wichtige Strömungen in der aktuellen Forschung und zusätzliche Anwendungen. Ich hoffe, dadurch die Faszination der künstlichen Intelligenz noch ein wenig besser vermitteln zu können. Ravensburg, Mai 2009 Wolfgang Ertel IX
Vorwort zur ersten Auflage Mit dem Verstehen von Intelligenz und dem Bau intelligenter Systeme gibt sich die Künstliche Intelligenz (KI) ein Ziel vor. Die auf dem Weg zu diesem Ziel zu verwendenden Methoden und Formalismen sind aber nicht festgelegt, was dazu geführt hat, dass die KI heute aus einer Vielzahl von Teildisziplinen besteht. Die Schwierigkeit bei einem KI- Grundkurs liegt darin, einen Überblick über möglichst alle Teilgebiete zu vermitteln, ohne allzu viel Verlust an Tiefe und Exaktheit. Das Buch von Russell und Norvig [RN03] definiert heute quasi den Standard zur Einführung in die KI. Da dieses Buch aber mit 1327 Seiten in der deutschen Ausgabe für die meisten Studierenden zu umfangreich und zu teuer ist, waren die Vorgaben für das zu schreibende Buch klar: Es sollte eine für Studierende erschwingliche Einführung in die moderne KI zum Selbststudium oder als Grundlage für eine vierstündige Vorlesung mit maximal 300 Seiten werden. Das Ergebnis liegt nun hier vor. Bei einem Umfang von ca. 300 Seiten kann ein dermaßen umfangreiches Gebiet wie die KI nicht vollständig behandelt werden. Damit das Buch nicht zu einer Inhaltsangabe wird, habe ich versucht, in jedem der Teilgebiete Agenten, Logik, Suche, Schließen mit Unsicherheit, maschinelles Lernen und Neuronale Netze an einigen Stellen etwas in die Tiefe zu gehen und konkrete Algorithmen und Anwendungen vorzustellen. Nicht im Detail behandelt werden die Gebiete Bildverarbeitung, Fuzzy-Logik, und die Verarbeitung natürlicher Sprache. Das für die gesamte Informatik wichtige Gebiet der Bildverarbeitung stellt eine eigenständige Disziplin mit sehr guten Lehrbüchern, zum Beispiel [Jäh05] dar. Einen ähnlichen Status hat die Verarbeitung natürlicher Sprache. Beim Erkennen und auch beim Erzeugen von Texten und gesprochener Sprache kommen unter anderem Methoden aus der Logik, dem probabilistischen Schließen sowie neuronale Netze zur Anwendung. Insofern gehört dieses Gebiet zur KI. Andererseits ist auch die Computerlinguistik ein eigenes umfangreiches Teilgebiet der Informatik mit vielen Gemeinsamkeiten zu formalen Sprachen. Wir werden in diesem Buch an einigen Stellen auf entsprechende Systeme hinweisen, aber keine systematische Einführung bereitstellen. Für eine erste Einführung in dieses Gebiet verweisen wir auf die Kapitel 22 und 23 in [RN03]. Die Fuzzy-Logik, beziehungsweise die Fuzzy-Mengentheorie hat sich aufgrund ihrer primären Anwendungen in der Automatisierungstechnik zu einem Teilgebiet der Re- XI
XII Vorwort zur ersten Auflage gelungstechnik entwickelt und wird auch in entsprechenden Büchern und Vorlesungen behandelt. Daher verzichten wir hier auf eine Einführung. In dem unten dargestellten Graphen sind die Abhängigkeiten der Kapitel des Buches grob skizziert. Um die Darstellung übersichtlich zu halten, wurde Kap. 1 mit der für alle weiteren Kapitel grundlegenden Einführung nicht eingezeichnet. Ein dicker Pfeil von Kap. 2 nach 3 zum Beispiel bedeutet, dass die Aussagenlogik für das Verständnis der Prädikatenlogik vorausgesetzt wird. Der dünne Pfeil von Kap. 9 nach 10 bedeutet, dass Neuronale Netze für das Verständnis des Lernens durch Verstärkung hilfreich sind, aber nicht dringend benötigt werden. Dünne Rückwärtspfeile sollen deutlich machen, dass spätere Kapitel das Verständnis schon gelernter Themen vertiefen können. 2 3 4 5 6 7 8 9 10 Das Buch wendet sich an Studierende der Informatik und anderer technisch naturwissenschaftlicher Fächer und setzt überwiegend nur Mathematikkenntnisse der Oberstufe voraus. An einigen Stellen werden Kenntnisse aus der linearen Algebra und der mehrdimensionalen Analysis benötigt. Zu einem tieferen Verständnis der Inhalte ist die aktive Beschäftigung mit den Übungen unerlässlich. Das bedeutet, dass die Musterlösung nur nach intensiver Beschäftigung mit der jeweiligen Aufgabe zur Kontrolle konsultiert werden sollte, getreu dem Motto Studium ohne Hingabe schadet dem Gehirn von Leonardo da Vinci. Etwas schwierigere Aufgaben sind mit, besonders schwierige mit markiert. Aufgaben, die Programmier- oder spezielle Informatikkenntnisse erfordern, sind mit gekennzeichnet. Auf der Webseite zum Buch unter http://www.hs-weingarten.de/~ertel/kibuch sind digitale Materialen zu den Übungen wie zum Beispiel Trainingsdaten für Lernalgorithmen, eine Seite mit Verweisen auf die im Buch erwähnten KI-Programme, eine Liste mit Links zu den behandelten Themen, eine anklickbare Liste der Literaturverweise, eine Errataliste und Präsentationsfolien für Dozenten zu finden. Ich möchte den Leser bitten, Anregungen, Kritik und Hinweise auf Fehler direkt an ertel@hs-weingarten.de zu senden. Bedanken möchte ich mich an erster Stelle bei meiner Frau Evelyn, die mir den Rücken frei hielt für das Schreiben. Ein besonderer Dank geht an Wolfgang Bibel und an Chris Lobenschuss, die das Manuskript sehr sorgfältig korrigierten. Ihre Anmerkungen und Diskussionen führten zu vielen Verbesserungen und Ergänzungen. Für das Korrekturlesen und andere wertvolle Dienste möchte ich mich bedanken bei Celal Döven, Joachim Feßler, Nico Hochgeschwender, Paul Kirner, Wilfried Meister, Norbert Perk, Peter Radtke, Markus Schneider, Manfred Schramm, Uli Stärk, Michel Tokic, Arne Usadel und allen interessierten Studierenden. Mein Dank geht auch an Florian Mast für die überaus gelungenen
Vorwort zur ersten Auflage XIII Cartoons und die sehr effektive Zusammenarbeit. Für die kooperative und fruchtbare Zusammenarbeit mit dem Vieweg Verlag bedanke ich mich bei Günter Schulz und Sybille Thelen. Ravensburg, September 2007 Wolfgang Ertel
Inhaltsverzeichnis 1 Einführung... 1 1.1 Was ist Künstliche Intelligenz... 1 1.2 Geschichte der KI... 6 1.3 KI und Gesellschaft... 12 1.4 Agenten... 18 1.5 Wissensbasierte Systeme... 20 1.6 Übungen... 22 2 Aussagenlogik... 25 2.1 Syntax... 25 2.2 Semantik... 26 2.3 Beweisverfahren... 29 2.4 Resolution... 33 2.5 Hornklauseln... 37 2.6 Berechenbarkeit und Komplexität... 39 2.7 Anwendungen und Grenzen... 40 2.8 Übungen... 40 3 Prädikatenlogik erster Stufe... 43 3.1 Syntax... 44 3.2 Semantik... 45 3.3 Quantoren und Normalformen... 50 3.4 Beweiskalküle... 54 3.5 Resolution... 55 3.6 Automatische Theorembeweiser... 61 3.7 Mathematische Beispiele... 62 3.8 Anwendungen... 65 3.9 Zusammenfassung... 68 3.10 Übungen... 68 XV
XVI Inhaltsverzeichnis 4 Grenzen der Logik... 71 4.1 Das Suchraumproblem... 71 4.2 Entscheidbarkeit und Unvollständigkeit... 73 4.3 Der fliegende Pinguin... 75 4.4 Modellierung von Unsicherheit... 78 4.5 Übungen... 79 5 Logikprogrammierung mit Prolog... 81 5.1 Prolog-Systeme und Implementierungen... 82 5.2 Einfache Beispiele... 82 5.3 Ablaufsteuerung und prozedurale Elemente... 85 5.4 Listen... 87 5.5 Selbstmodifizierende Programme... 89 5.6 Ein Planungsbeispiel... 90 5.7 Constraint Logic Programming... 92 5.8 Zusammenfassung... 94 5.9 Übungen... 95 6 Suchen, Spielen und Probleme lösen... 99 6.1 Einführung... 99 6.2 Uninformierte Suche... 106 6.3 Heuristische Suche... 112 6.4 Spiele mit Gegner... 123 6.5 Heuristische Bewertungsfunktionen... 128 6.6 Stand der Forschung... 130 6.7 Übungen... 133 7 Schließen mit Unsicherheit... 137 7.1 Rechnen mit Wahrscheinlichkeiten... 139 7.2 Die Methode der Maximalen Entropie... 148 7.3 LEXMED, ein Expertensystem für Appendizitisdiagnose... 157 7.4 Schließen mit Bayes-Netzen... 172 7.5 Zusammenfassung... 185 7.6 Übungen... 186 8 Maschinelles Lernen und Data Mining... 191 8.1 Datenanalyse... 197 8.2 Das Perzeptron, ein linearer Klassifizierer... 199 8.3 Nearest Neighbour-Methoden... 206 8.4 Lernen von Entscheidungsbäumen... 217 8.5 Kreuzvalidierung und Überanpassung... 232 8.6 Lernen von Bayes-Netzen... 234 8.7 Der Naive-Bayes-Klassifizierer... 237
Inhaltsverzeichnis XVII 8.8 One-Class-Learning... 242 8.9 Clustering... 244 8.10 Data Mining in der Praxis... 253 8.11 Zusammenfassung... 257 8.12 Übungen... 259 9 Neuronale Netze... 265 9.1 Von der Biologie zur Simulation... 266 9.2 Hopfield-Netze... 271 9.3 Neuronale Assoziativspeicher... 277 9.4 Lineare Netze mit minimalem Fehler... 284 9.5 Der Backpropagation-Algorithmus... 291 9.6 Support-Vektor-Maschinen... 298 9.7 Deep Learning... 299 9.8 Kreativität... 305 9.9 Anwendungen von Neuronalen Netzen... 308 9.10 Zusammenfassung und Ausblick... 308 9.11 Übungen... 309 10 Lernen durch Verstärkung (Reinforcement Learning)... 313 10.1 Einführung... 313 10.2 Die Aufgabenstellung... 316 10.3 Uninformierte kombinatorische Suche... 317 10.4 Wert-Iteration und Dynamische Programmierung... 319 10.5 Ein lernender Laufroboter und seine Simulation... 322 10.6 Q-Lernen... 324 10.7 Erkunden und Verwerten... 328 10.8 Approximation, Generalisierung und Konvergenz... 329 10.9 Anwendungen... 330 10.10 AlphaGo, der Durchbruch beim Go-Spiel... 331 10.11 Fluch der Dimensionen... 333 10.12 Zusammenfassung und Ausblick... 334 10.13 Übungen... 335 11 Lösungen zu den Übungen... 337 11.1 Einführung... 337 11.2 Aussagenlogik... 338 11.3 Prädikatenlogik... 340 11.4 Grenzen der Logik... 342 11.5 Prolog... 342 11.6 Suchen, Spielen und Probleme lösen... 344 11.7 Schließen mit Unsicherheit... 347
XVIII Inhaltsverzeichnis 11.8 Maschinelles Lernen und Data Mining... 354 11.9 Neuronale Netze... 362 11.10 Lernen durch Verstärkung... 364 Literatur... 367 Sachverzeichnis... 379