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

Kapitel 1 - Künstliche Intelligenz

Dieses Kapitel gibt eine allgemeine Einführung in das Gebiet der künstlichen Intelligenz und klärt einige grundlegende Begriffe.

  • Was ist, was kann künstliche Intelligenz?
  • Struktur des Buches
  • Intelligenten Agenten
  • Künstliche Intelligenz und Wissensmanagement
  • Übungen

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.
  • Die KI-Zeitschrift.
Kapitel 2 - Wissensrepräsentation und -verarbeitung

Kapitel 2 - Wissensrepräsentation und -verarbeitung

Dieses Kapitel befasst sich mit der Wissensrepräsentation und -verarbeitung.

Beispiele

2.1 Logik

2.2 Regelverarbeitung

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

Links

Lösungshinweise

Logik

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

Kapitel 3 - Problemlösung mittels Suche

In diesem Kapitel werden Suchverfahren behandelt.

Beispiele

  • Die Dateien zum Wasserbeispiel. Hier ist das Suchprogramm. 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

Kapitel 4 - Prolog

Kapitel 4 - Prolog

Dieses Kapitel gibt eine Einführung in die logische Programmierung mittels Prolog.

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:

Einige weitere Beispiele (nicht aus unserem Buch)

Links

Kapitel 5 - Neuronale Netze

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

  • 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].
Kapitel 6 - Vorwärts gerichtete neuronale Netze

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

Links

  • 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.
Kapitel 7 - Wettbewerbslernen

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

  • DemoGnG - die Software von Bernd Fritzke für die Veranschaulichung von SOM oder neuronalen Gasen: https://www.demogng.de

Kapitel 8 - Autoassoziative Netze

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

Kapitel 9 - Entwicklung neuronaler Netze

Kapitel 9 - Entwicklung neuronaler Netze

Inhalt

  • Datenanalyse-Software
  • JavaNNS
  • Implementation neuronaler Netze
    • Einsatz von Array-Datenstrukturen
    • Der objektorientierte Ansatz
  • Implementieren mit TensorFlow

Beispiele

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