Künstliche Intelligenz
Ein Grundlagenbuch: Konzepte der Künstlichen Intelligenz ganz praktisch
Unser Buch bietet eine Einführung in die Künstlichen Intelligenz (KI) und richtet sich an:
- Studenten der Informatik und "Bindestrich"-Informatiken,
- Studenten mit Nebenfach Informatik,
- Informatik-Lehrer,
- alle, die Interesse an der Künstlichen Intelligenz haben und wissen wollen, was dahintersteckt.
Eine Einführung in die Künstlichen Intelligenz ist häufig Teil des Bachelor-Programmes. Aber auch für Master-Studenten sind je nach Curriculum KI-Themen relevant und unser Buch hoffentlich eine Hilfe.
Diese Seite ergänzt unser Buch. Sie finden:
- Beispiele und Aufgaben
- Demo-Software
- weiterführende Verweise
Kapitel 1 - Künstliche Intelligenz
Seit ChatGPT hat die Diskussion über Nutzen und Gefahren der Künstlichen Intelligenz (KI) deutlich zugenommen. Im ersten Kapitel geben wir eine allgemeine Einführung in das Gebiet der künstlichen Intelligenz und klären einige Begriffe.
- Was ist, was kann künstliche Intelligenz?
- Was sind symbolverarbeitende sowie konnektionisitsche KI?
- Geschichte der KI und wie geht es weiter?
Beispiele
- Der erste(?) maschinelle Kommunikationspartner: Eliza von Joseph Weizenbaum, hier als Prolog-Datei:[1] Eliza kann auch im Editor Emacs (Unix/Linux) ausprobiert werden: ESC x doctor
- Einige Knobelaufgaben, die jeweils einen kleinen Weltausschnitt darstellen, in dem eine Lösung mittels KI-Techniken gefunden werden kann:
Ein typisches Zuordnungsproblem (aus PM 11/92): Edmunds Zuckerrohrplantage wird nicht in Island sein. Richard Spinnerlein besitzt kein Grundstück in Alaska. Gauckelmann, der nicht Moritz heißt, will seine Orangen weder in Island noch in Grönland ernten. Stefan, der nicht Träumling heißt, hat sich ein großes Grundstück in Grönland gekauft; er will aber keine Baumwolle anpflanzen. Wanwerk hat zu einem äußerst günstigen Preis ein großes Grundstück in Sibirien erworben. Wer hat welchen Vornamen und baut wo welche Frucht an?
Wer hat welchen Beruf? Müller, Meier und Lehmann wohnen in unserer Straße. Der eine ist Maler, der andere Klempner und der dritte Tischler. Unlängst wollte der Maler seinen Bekannten, den Tischler, um die Anfertigung eines Möbelstücks bitten. Man sagte ihm, dass der Tischler jetzt im Hause des Klempners arbeitet. Außerdem ist bekannt,dass Meier noch nie von Lehmann gehört hat.
Ein Planungsproblem: Vier Personen wollen nachts eine Hängebrücke benutzen. Aus Sicherheitsgründen muss dabei eine Taschenlampe benutzt werden. Die Batterie der Lampe reicht genau für 60 Minuten. Außerdem dürfen höchstens 2 Personen gleichzeitig auf der Hängebrücke sein. Die Lampe kann nicht zurückgeworfen werden, sie muss übergeben werden. Die Personen sind unterschiedlich schnell: Anna: 5 min; Boris: 10 min; Clara: 20 min; Dirk: 25 min; Wie gelangen alle über die Brücke?
Gibt es einen Vorstand? Sechs Mann, nennen wir sie A, B, C, D, E, F, wurden in die engere Wahl gezogen für die Funktion des Vorsitzenden, des Stellvertreters und des Sekretärs der Gesellschaft der Freunde von logischen Aufgaben. Aber die Bestimmung dieser drei erwies sich als nicht so leicht, weil jeder der sechs gewisse Ansprüche stellte: A will nicht zur Leitung gehören, wenn E nicht Vorsitzender wird. B will nicht zur Leitung gehören, wenn er über C stehen soll. B will unter gar keinen Umständen zusammen mit F arbeiten. C will nicht mitarbeiten, wenn der Leitung E und F zusammen angehören. C wird nicht mitarbeiten,wenn F Vorsitzender oder B Sekretär ist. D wird nicht mit C oder E arbeiten, wenn er dem einen oder anderen unterstellt ist. E will nicht Stellvertreter sein. E will nicht Sekretär sein, wenn D Mitglied der Leitung ist. E will nicht zusammen mit A arbeiten, wenn F nicht der Leitung angehört. F will nur mitarbeiten, wenn er oder C Vorsitzender wird. Wie wurden die Posten verteilt ?
Links
- Mit Alan Turing kann man sich ruhig etwas mehr befassen.
- Der Loebner-Preis wird im Wettbewerb um das beste Programm im Turing-Test vergeben. Hier der Gewinner-Bot der letzten Jahre: Mitsuku.
- Und natürlich der inteeligente Gesprächspartner ChatGPT
- Die KI-Zeitschrift.
Kapitel 2 - Wissensrepräsentation und -verarbeitung
Dieses Kapitel befasst sich mit der Wissensrepräsentation und -verarbeitung.
Beispiele
2.1 Logik
- Die Dateien zum AL/PL-Beweiser in SWI-Prolog: Beweiser, Beispieldatei, README-Datei.
2.2 Regelverarbeitung
- Wissensdarstellung mittels Regeln wird heute unter dem Namen Business Rules in betriebswirtschaftlichen Anwendungen eingesetzt:
- Mehre Beispiele für Business-Rules-Anwendungen
- http://www.businessrulesgroup.org
- Liste von Systemen: https://www.trustradius.com/business-rules-management-brms
- Drools ist ein frei verfügbares System für die Entwicklung von Regel-Anwendungen: https://www.drools.org
- Die Dateien für die Vorwärtsverkettung und eine Vorlage für das Käfigbeispiel.
2.3 Semantische Netze und Frames
- Semantische Netze stellen die Grundlage für Wissensnetze dar:
- Die Firma Ontopia bietet ihr Produkt zur Entwicklung von Wissensnetz kostenlos zum Download an.
- Auf den Seiten der Firma intelligent views GmbH findet man Einführungen in das Thema sowie ein Demo-Netz.
- Ein Auto-Frame in PROLOG. Sie benötigen hierzu LPA-Prolog.
2.4 Vages Wissen
- Die Dateien zum Balance-Problem (in Excel): Stab2, Stab3, Stab4, Stab5.
- Die Ferienplanung (in Excel).
Links
Lösungshinweise
- Einige Hinweise zu den Übungsaufgaben den (auch für die 5. Auflage und die 4.Auflage).
Logik
- Mehr zu Gottlob Frege findet sich auf den Seiten des Gottlob-Frege-Zentrums.
- Eine Reihe von Beweisern
Semantische Netze und Frames
- CMU AI Repository on KR: Includes several KR systems: COLAB, several frame systems (FRAMEWRK, FRL, FROBS, KR, PARMENID), KNOWBEL, ONTIC, RHET, SNePS, URANUS, and several KL-ONE-based systems (BACK, CEC, DP, MOTEL).
Vages Wissen
- Informationen u.a. zu Fuzzy
Kapitel 3 - Problemlösung mittels Suche
In diesem Kapitel werden Suchverfahren behandelt.
Beispiele
- Die Dateien zum Wasserbeispiel. Hier sind die Dateien zum Suchprogramm: bspsuche.bsp, kisuche.pl und suchbaum.pl.
- Implementiert sind hier die Strategien: Tiefen-, Breiten-, Besten-Suche, Hill climbing, Nearest Neighbour. Die jeweilige Strategie kann man in der Beispiel-Datei einstellen. Der Aufruf erfolgt mittels suche(X). Im Gegensatz zum Buch muss man hier nicht das Pädikat nachfolger/2, welches alle Nachfolger berechnet, definieren. Es reicht, dass man die Zustandsübergänge mittels zustandsuebergang/2 definiert.
- Hinweis: Sollten Sie SWI-Prolog nutzen, so laden Sie bitte als erstes diese Datei, die eine Anpassung auf SWI-Prolog vornimmt.
- Die Dateien zur A-Stern-Suche: A-Stern-Programm, ein kleines Beispiel. Der Aufruf erfolgt mittels astern(X). Im Gegensatz zum Buch muss man hier nicht das Prädikat nachfolger/2, welches alle Nachfolger berechnet, definieren. Es reicht, dass man die Zustandsübergänge mittels zustandsuebergang/2 definiert.
- Hinweis: Falls Sie SWI-Prolog nutzen, so laden Sie bitte als erstes diese Datei, die eine Anpassung an SWI-Prolog vornimmt.
- Die Datei zum Steine-Beispiel mittels A-Stern-Suche.
Links
- Lösungshinweise: Einige Hinweise zu den Übungsaufgaben den (auch für die 5. Auflage und die 4.Auflage).
- Eine Seite mit allgemeinen Infos zu KI-Themen und im besonderen zur Suche.
- Eine Animation von Tiefe-zuerst-Suche.
- Eine Animation von Breite-zuerst-Suche.
- Eine ganze Reihe von Animationen u.a. zum Thema Suche.
- Einige schöne Links, auch zum Thema Suche.
Korrekturen
- Auf Seite 126 in der 5. Auflage schreiben wir lax, dass die Komplexität n! exponentiell steigt. Das ist nicht korrekt, denn eine exponentielle Funktion ist als rn (mit einem festen r) definiert. n! überholt aber JEDE solche Funktion. Deshalb trennt man nochmal zwischen exponentieller und faktorieller Komplexität. Aus Sicht der Informatik ist dies jedoch eher nebensächlich, da alles, was komplexer als polynomiell ist, einfach furchtbar ist.
Kapitel 4 - Wissensverarbeitung mit Prolog
Dieses Kapitel gibt eine Einführung führt in die logische Programmierung mittels Prolog ein und nutzt PROLOG für die Verarbeitung von Wissen
Inhalt
- Logische Programmierung
- Deklarative Programmierung vs. prozedurales Programmierung
- Grundstruktur von Prolog-Programmen
- einfache Prolog-Programme, Fakten und Regeln
- Rekursion
- Listen-Prädikate
Beispiele
Hier finden Sie die Dateien zu folgenden Beispielen aus unserem Buch:
- Familie, Familie (neue Version)
- Geometrie-Beispiel
- Listen-Beziehungen in Prolog
- Arithmetik
- Einkommen-Beispiel
- Färbe-Problem
- Türme von Hanoi
- Stabile Paare.
Links
- Lösungshinweise: Einige Hinweise zu den Übungsaufgaben den (auch für die 5. Auflage und die 4.Auflage).
Korrekturen
- Einige Prädikate haben sich in SWI-Prolog geändert. Es kann also passieren, dass es ab einer bestimmten SWI-Prolog-Version zu Abweichungen kommt.
- delete/3 ist nun mit den Parametern Liste, Element, Resultatsliste definiert. Die Semantik hat sich auch geändert. delete/3 löscht ALLE Elemente. Dem delete/3 im Buch entspricht das Prädikat select/3 in SWI-Prolog.
- remove/3 gibt es nicht mehr. Dies entspricht dem SWI-Prolog-Prädikat select/3.
Kapitel 5 - Neuronale Netze
Dieses Kapitel führt in die neuronalen Netze ein.
Inhalt
- Das künstliche Neuron
- Architekturen
- Arbeitsweise
- Übungen
Beispiele
- Das Neuron für die UND-Funktion als EXCEL-Tabelle (Falls nur kritische Zeichen zu sehen sind, dann kann mit shift+mausklick oder der rechten Maustaste die Datei kopiert werden.)
- Eine Beispiel-Frage: Wie sind die Gewichte und der Schwellwert bei mehr als zwei Eingaben (n>2) für die UND- (ODER-) Funktion zu gestalten?
Links
- Der JavaNNS ist eine in Java implementierte Oberfläche für den SNNS.
- Günter Daniel Rey und Fabian Beck: Eine Einführung in Neuronale Netze
- 20 Questions - 20Q is a true neural network. The answers to questions stimulate target nodes (objects), which in turn stimulate the next question to ask. The "brain" is about as complex as an insect's brain [1].
- Neuronale Netze können gut im Data Mining Cup eingesetzt werden.
Kapitel 6 - Vorwärts gerichtete neuronale Netze
Gegenstand dieses Kapitels sind die vorwärts gerichteten Netze.
Inhalt
- Das Perzeptron
- Backpropagation-Netze
- Typische Anwendungen
- Datenvorverarbeitung
- Netzgröße und Optimierungen
- Partiell rückgekoppelte Netze
- Convolutional Neural Networks (Deep Learning)
Übungen sind jedem Abschnitt zugeordnet.
Beispiele
- Ein Tabellenblatt zur Veranschaulichung der Delta-Regel
- Das neuronale Netz für die XOR-Funktion
- Das neuronale Netz für die XOR-Funktion hier mit Makros für das Backpropagation-Lernen .
- Hilfsprogramme:
- NoisePattern.java zum Verrauschen von Daten einer SNNS-Pattern-Datei.
- RandomPattern.java erzeugt eine SNNS-Pattern-Datei mit zufälligen Daten.
- Die Daten zur Klassifizierung von Bankkunden
Links
- Der JavaNNS ist eine in Java implementierte Oberfläche für den SNNS.
- Jedes Jahr werden Künstliche Neuronale Netze von uns eingesetzt, um Aufgaben im Data Mining zu lösen:
- Machen Sie mit beim Data-Mining-Cup: Jedes Jahr wird eine interessante Aufgabe gestellt, die auch sehr gut mit künstlichen neuronalen Netzen bearbeitet werden kann.
- "Simplify AI" ist ein Projekt der Univ. Oldenburg. Es lassen sich leicht CNN zusammenbauen und Bild-Klassifikationen testen: http://ai.uol.de
- Hier kann man eine Ziffer malen und das CNN damit testen: https://www.neuralnetz.de
Kapitel 7 - Wettbewerbslernen
Inhalt
- Selbstorganisierende Karte
- Architektur und Arbeitsweise
- Training
- Visualisierung einer Karte und deren Verhalten
- Übungen
- Neuronale Gase
- Architektur und Arbeitsweise
- Wachsenden neuronale Gase
- Übungen
- Adaptive Resonanz Theorie (ART)
- Das Plastizitäts-Stabilitäts-Dilemma
- Struktur eines ART-Netzes
- Das Besipiel Würfelmuster
- Arbeitsweise
- Übungen
Beispiele
- Die TSP-Demo wurde von Wismarer Studenten implementiert und erlaubt den Vergleich verschiedener Algorithmen zur Lösung des Rundreiseproblems (Traveling Salesman Problem), darunter auch eine selbstorganisierende Karte.
- Das Beispiel SOM-Demo als ZIP-Datei für BlueJ.
- SokoWismar ist eine von Studenten entwickelte Demo-Software für eine SelbstOrganisierende KOhonen-Karte.
Links
- Der JavaNNS ist eine in Java implementierte Oberfläche für den SNNS.
- DemoGnG - die Software von Bernd Fritzke für die Veranschaulichung von SOM oder neuronalen Gasen: https://www.demogng.de
Kapitel 8 - Autoassoziative Netze
Inhalt
- Hopfield-Netze
- Wiedererkennung von Mustern
- Energie-Niveau eines Netzes
- Lösung von Optimierungsproblemen
- Die Boltzmann-Maschine
- Übungen
Beispiele
- DIe Wiedererkennung von Mustern als Tabellenkalkulation.
- Die Studenten A. Günther und A. Wiehnke haben eine Hopfield-Demo zur Wiedererkennungvon Mustern programmiert (WS 2000/2001). Start des jar-Files mittels Doppelklick oder über die Kommandozeile
>java -jar Hopfield.jar
(download)
Links
- Der JavaNNS ist eine in Java implementierte Oberfläche für den SNNS.
- Eine kommerzielle Boltzmann-Maschine: der Attrasoft Predictor
Kapitel 9 - Entwicklung neuronaler Netze
Inhalt
- Datenanalyse-Software
- JavaNNS
- Implementation neuronaler Netze
- Einsatz von Array-Datenstrukturen
- Der objektorientierte Ansatz
- Implementieren mit TensorFlow
Beispiele
- Hilfsprogramme:
- NoisePattern.java zum Verrauschen von Daten einer SNNS-Pattern-Datei.
- RandomPattern.java erzeugt eine SNNS-Pattern-Datei mit zufälligen Daten.
Für die im Buch dargestellten Java-Klassen stellen wir hier keine vorgefertigten Java-Dateien bereit. Ebensowenig für den Ansatz mit Python und TensorFlow. Wir sind der Meinung, dass das eigene Entwickeln einer Klasse, selbst das reine Abtippen, einen größeren Lernerfolg in Richtung Programmierung sowie für das Verständnis neuronaler Netze bringt.
Links
- Der JavaNNS ist eine in Java implementierte Oberfläche für den SNNS.
- Systeme zum Entwickeln und zum Einsatz Künstlicher Neuronaler Netze:
- Konstanz Information Miner (KNIME)
- RapidMiner [>>]
- Waikato Environment for Knowledge Analysis (WEKA): http://www.cs.waikato.ac.nz/~ml/weka/
- Mehr zu TensorFlow https://www.tensorflow.org/tutorials