Was ist „KI“?

Mit dem Begriff „Künstliche Intelligenz“ (KI bzw. englisch AI für „Artificial Intelligence“) ist ein nach menschlichen Maßstäben intelligentes Verhalten von IT-Systemen gemeint. Dieses Verhalten erfolgt automatisiert, d.h. es gibt während der Programmlaufzeit keine Steuerung durch Menschen.

Künstliche Intelligenz basiert auf einigen grundlegenden Konzepten, von denen die wichtigsten hier aufgezeigt werden sollen:

   A) Entscheidungsbäume
   B) Mustererkennung
   C) Neuronale Netze
   D) Lernfähigkeit

A) Entscheidungsbäume

Ein wichtiges Grundwerkzeug für KI-Systeme sind Entscheidungsbäume. Mit ihnen hat ein KI-System die Möglichkeit, nach bestimmten Vorgaben Entscheidungen zu fällen, um zu einem Ergebnis zu kommen. Dabei können sich die Vorgaben gegenseitig beeinflussen, was dann zu sehr komplexen Strukturen führt.

Zum Verständnis eine kleine Demonstration:

Denke an ein Tier und beantworte die folgenden Fragen:

 

... (Entscheidungsfindung) ...

... (Schlussfolgerung) ...

Das Bild oben zeigt den Entscheidungsbaum für den Programmablauf.

Entscheidungsbäume werden immer von links nach rechts gelesen und die Symbole sind standardisiert. Neben dem Quadrat für ein sicheres Kriterium gibt es noch einen Kreis für ein unsicheres (evtl. nicht vorhandenes) Kriterium und ein Dreieck für das Ergebnis.

Das Beispiel ist stark vereinfacht und verwendet lediglich drei sichere Kriterien:

  1. Besitzt das Tier ein Fell?
  2. Kann das Tier fliegen?
  3. Handelt es sich um ein Haustier?

Diese drei Kriterien werden nacheinander abgearbeitet. Je nach Zwischenantwort gelangt die Entscheidungsfindung über einen weiteren Abzweig zum nächsten Kriterium, bis schließlich ein Ergebnis feststeht.

Im Beispiel gibt es acht mögliche Ergebnisse. Grund ist, dass geschlossene (Ja-Nein-)Fragen gestellt werden. Jede Frage kann eine von zwei möglichen Antworten haben.
So ergeben sich bis zum Ende 2 x 2 x 2 oder 23 und somit 8 Möglichkeiten.

Hier gelten Fragestellungen immer für alle Zweige, das muss aber nicht immer so sein. Selbstverständlich sind auch Kriterien denkbar, die nur einen bestimmten Zweig betreffen. Aus Gründen der Verständlichkeit wurden solche Fälle hier nicht berücksichtigt.

Für diese Demonstration wurde in JavaScript mit verschachtelten IF- und ELSE-Anweisungen gearbeitet. Der Quellcode kann in einem separaten Tab eingesehen werden: [JavaScript-Code]

Der Quellcode zeigt deutlich, wie umfangreich die Entscheidungsfindung werden kann, wenn noch mehr Kriterien Berücksichtigung finden sollen. Mit jedem weiteren Kriterium verdoppelt sich in diesem Beispiel die Anzahl der möglichen Ergebnisse. Schon bei einer zusätzlichen Frage käme man bereits auf insgesamt 16 unterschiedliche Ergebnisse.

↑ Nach oben ↑

B) Mustererkennung

Jede der drei obigen Entscheidungsfindungen läuft über einen Vergleich. Bei Einsatz ausreichend vieler Vergleiche wird ein System irgendwann in die Lage versetzt, komplexere Muster zu erkennen. Dies ist für eine KI essentiell und wird auch „Heuristik“ genannt.

Vergleichbar ist das mit unserer eigenen Mustererkennung, die manchmal sogar über das Ziel hinausschießt. Beispielsweise, wenn wir in Wolken plötzlich Tiere oder Gesichter erkennen, weil wir eine Wolkenform unbewusst mit realen Objekten vergleichen und dabei eine Ähnlichkeit feststellen.

Ein Beispiel aus dem IT-Alltag:
Früher benötigten Antivirenprogramme regelmäßige Updates, um auch die neuesten Bedrohungen identifizieren zu können. Bekam ein Rechner längere Zeit kein Antiviren-Update, wurde er gegenüber neueren Schadprogrammen mehr und mehr anfällig.

Heute verwenden Antivirenprogramme standardmäßig eine Heuristik. Damit können bisher unbekannte Schadprogramme anhand bestimmter Muster trotzdem relativ sicher erkannt werden:
„Hier ist ein Programm, das ähnlich einem mir bekannten Schadprogramm aufgebaut ist oder sich ähnlich verhält. Ich schlage besser mal Alarm.“

Manchmal kann die Antivirus-Heuristik auch zu einem Fehlalarm führen, z.B. wenn ein Softwareentwickler sein eigenes Programm testet. Das kann dazu führen, dass selbstentwickelte Programme plötzlich in den Quarantäne-Ordner verschoben oder schlimmstenfalls sogar ganz gelöscht werden. Daher bieten gute Antivirenprogramme neben der Lernfähigkeit die Option, die Heuristik temporär zu deaktivieren.

Und gleich noch ein Beispiel aus dem realen Leben:
Die IHK verlangt ebenfalls heuristische Fähigkeiten von Auszubildenden. In so gut wie jeder IT-Abschlussprüfung wird mindestens eine Frage gestellt, bei der man von den Prüflingen hinterher hört: „Das haben wir im Unterricht nie gemacht!“

Tatsächlich wurde die betreffende Lösungsstrategie im Unterricht sehr wohl behandelt. Nur wurde die Frage in der Prüfung unerwartet in einem anderen Zusammenhang gestellt. Der Prüfling soll ein Muster erkennen und die erlernte Lösungsstrategie auf eine für ihn neue Situation übertragen. Die IHK nennt diese Herausforderung übrigens nicht „Heuristik“, sondern „Transferleistung“.

Netter Fakt am Rande:
Im Science-Fiction-Klassiker „2001: Odyssee im Weltraum“ aus dem Jahr 1968 gibt es einen neurotischen Bordcomputer namens HAL. Die Abkürzung steht für „Heuristic ALgorithm“ (heuristischer Programmablauf), was schon damals auf eine KI hindeuten sollte.

↑ Nach oben ↑

C) Neuronale Netze

Würden wir noch viele weitere Kriterien hinzufügen (zur Erinnerung: Jedes weitere Kriterium verdoppelt in obigem Beispiel die Anzahl der möglichen Ergebnisse) und dann auch noch mit offenen Fragen mit jeweils beliebig vielen Antworten arbeiten (z.B. „Welche Farbe hat das Tier?“), dann würde die Anzahl der möglichen Antworten explosiv ansteigen. Quellcodes wären irgendwann so komplex, dass die Programme für ein Ergebnis sehr viel Zeit und Rechenleistung benötigen würden.

An dieser Stelle stoßen herkömmliche Vorgehensweisen an ihre Grenzen. Zur Lösung hat der Mensch mal wieder bei der Natur abgeschaut und die Arbeitsweise von biologischen Gehirnen als Vorlage genutzt.

Ein vielversprechender Lösungsansatz sind „Neuronale Netze“. Dabei arbeitet nicht mehr nur ein einziger Algorithmus alles alleine ab. Vielmehr werden viele Algorithmen (meist auch auf unterschiedlichen Rechnern) parallel eingesetzt und wie die Synapsen unseres Gehirnes kreuz und quer untereinander verbunden. Gemeinsam arbeiten sie an einem Problem und finden aufgrund der Querverbindungen untereinander sehr viel schneller eine Lösung, welche durch die Vielzahl der berücksichtigten Kriterien auch noch wesentlich genauer sein kann.

↑ Nach oben ↑

D) Lernfähigkeit

Für die aktuell rasant voranschreitende Entwicklung von KI-Systemen ist ein weiterer Punkt wichtig: Maschinelles Lernen.

Dabei werden Erfahrungen abgespeichert, auf die das System für spätere Situationen zurückgreifen kann. Letztlich passiert in biologischen Gehirnen nichts anderes.

Auch hier können gekapselte Systeme schnell an ihre Grenzen geraten, denn für gute Entscheidungen müssen möglichst viele gespeicherte Erfahrungen herangezogen werden. Intelligent vernetzte Systeme können nicht nur Speicherkapazität, sondern auch Erfahrungen miteinander teilen.

Diese Tatsache könnte in Zukunft zum Beispiel für das autonome Fahren genutzt werden. Anstatt in jedem Fahrzeug Hochleistungscomputer mit riesiger Speicherkapazität zu verbauen, kommunizieren die Fahrzeuge untereinander. So können sie sich ihre Erkenntnisse z.B. zu Gefahrenstellen untereinander teilen. Die Datenbasis (der „Erfahrungsschatz“) wird damit schneller anwachsen und wesentlich genauer.

Einige Navigationssysteme arbeiten schon heute nach einem ähnlichen Prinzip. Wer schon mal mit „Google Maps“ navigiert hat, kennt die farbigen Staueinblendungen. Dazu sendet jeder Nutzer ständig seine eigene Position und Geschwindigkeit in ein von Google betriebenes Netz. Melden viele Nutzer in einem bestimmten Bereich ein langsameres Vorankommen, erkennt das System aufgrund bisheriger Erfahrungen ein aufkommendes Problem und zeigt allen Nutzern an dieser Stelle umgehend einen zähfließenden Verkehr oder Stau an. Je nach Ausmaß des Problems kann automatisch eine Alternativroute angeboten werden.

Netter Fakt am Rande:
Das Beispielprogramm oben verwendet Eingabe- statt Auswahlfelder für JA und NEIN. Dies kann zu Programmfehlern führen, wenn der Benutzer unerlaubte Eingaben macht.

Geben Sie aber probeweise trotzdem einmal etwas ein, womit das Programm eigentlich nichts anfangen kann, z.B. für JA:

Und für NEIN:

Sie werden feststellen, dass das Programm die Falscheingaben erkennt und sie auf die eigentlich einzugebenden Werte korrigiert.

In diesem Fall wurde das Korrekturverhalten „hard coded“, d.h. im Quellcode fest vorgegeben. Jede Eingabe wird in Kleinschreibung umgewandelt und dann wird nur noch geprüft, ob der erste Buchstabe ein kleines j oder ein kleines n ist. Wird ein anderer Anfangsbuchstabe benutzt oder gar keine Eingabe gemacht, wird das betreffende Feld auf NEIN gesetzt.

Eine lernfähige KI würde keine solche „Hartkodierung“ benötigen. Sie würde bei unerwarteten Eingaben einfach nachfragen, was gemeint war. Und diese Korrektur würde sie dann als Erfahrungswert für zukünftige Nutzereingaben selbst abspeichern. Ab diesem Zeitpunkt könnte sie auch auf Eingaben ohne j oder n an erster Stelle korrekt reagieren und anders als das Beispielprogramm sogar ein „klaro“ als „JA“ identifizieren.

Wie einfach eine rudimentäre Lernfähigkeit für ein IT-System realisiert werden kann, wird im nächsten Projekt demonstriert.

↑ Nach oben ↑