KI: Fast alles, was ich darüber weiß (Teil 1)

1. Starke und schwache KI

Künstliche Intelligenz gibt es in zwei (zumindest zur Zeit) verschiedenen Ausprägungen: Starke KI und schwache KI.

Starke KI ist das, was man aus der Science Fiction kennt: Intelligente Computer, die die Herrschaft über die Welt oder das Raumschiff an sich reißen möchten, mit charmantem oder fiesem Charakter, oder die sich großmütig für den Menschen opfern und früher oder später die gleichen Rechte wie Menschen zugestanden kriegen. Das soll ein Computer richtig verstehen, was um ihn und in ihm vorgeht. Darum dreht sich die öffentliche Diskussion zur Zeit gar nicht.

Schwache KI ist all das, von dem man zur Zeit hört: Selbstfahrende Autos; Computer, die besser Schach oder Go spielen als Menschen, Computer, die Gesichter erkennen können, Computerspiele spielen oder Texte automatisch übersetzen können, oder die Gesichter in ganzen Filmen durch andere Gesichter ersetzen können, mit Bewegung und allem. Schwach deshalb, weil die Computer diese Leistungen vollbringen, ohne dabei wirklich zu verstehen, was sie da machen. (Ja, schon gut, philosophische Sache, woher man das weiß, dass sie das nicht verstehen. Man weiß es.) Trotzdem sind diese Leistungen beeindruckend.

Diese KIs können Texte übersetzen und Texte produzieren. Texte produzieren ist leicht: Man nehme einen vorhanden Textkorpus, lasse den Rechner den ein bisschen analysieren, und auf dieser Basis kann der Rechner dann eigene Texte erstellen. Wenn man sich dabei so wenig Mühe gibt wie ich mit einfachen Markow-Ketten, dann kommen dabei allerdings nur ziemliche Unsinnstexte heraus. Wenn man sich mehr Mühe gibt und brandheue KI-Lösungen verwendet, gibt es sehr viel überzeugendere Texte – auch wenn der Computer immer noch nicht versteht, was er da schreibt.

Exkurs: Winograd-Sätze

(Wikipedia dazu.) Das sind Sätze, die als eine Art Weiterentwicklung oder Ergänzung des Turing-Tests gedacht sind. Sie sind alle nach einem strikten Schema aufgebaut. Hier ein Beispiel:

The trophy does not fit in the suitcase because it is too small/large.

Jeden Satz gibt es in zwei Varianten, die sich nur durch ein Wort unterscheiden (“small/large”). Dabei ändert sich die Bedeutung des Pronomens (“it”) mit der Auswahl des einen oder anderen Wortes: In “The trophy does not fit in the suitcase because it is too small” bezieht sich das Pronomen auf “suitcase”, in “The trophy does not fit in the suitcase because it is too large” bezieht es sich auf “trophy”. Solche Sätze gibt es viele. Wenn man wissen will, ob ein Mensch oder eine Maschine den einen oder anderen Satz richtig verstanden hat, fragt man nach dem Bezug des Pronomens.

Eine schnelle Möglichkeit, das zu testen, besteht darin, die Sätze übersetzen zu lassen. Im Französischen oder Deutschen gibt es die Kategorie Genus, so dass in dem Beispielsatz oben das “it” entweder “sie” steht (die Trophäe/die Auszeichnung” oder “er” (der Koffer). Natürlich geht das nicht mit allen Winograd-Sätzen, aber zumindest mit manchen: In Winograd Schemas and Machine Translation: Some Examples (Januar 2020) wird für 37 Satzpaare überprüft, wie korrekt Google Translate und DeepL sie übersetzen.

Bezug nehmen auf frühere Untersuchungen steht als Fazit: “Bottom line: As of January 2020, Winograd Schemas are very hard for machine translation programs, but the programs are beginning to make some inroads on them.” (Und auch wenn diese Sätze richtig übersetzt werden, ist das kein Beweis dafür, dass sie verstanden werden; es funktioniert nur in die eine Richtung.)

2. KI als Algorithmen

Tatsächlich heißt KI (also die schwache, um die es gerade geht) auch nichts anderes als Algorithmus. Michael Brenner hat da mal einen schönen Twitter-Thread dazu geschrieben:

Hier als zusammenhängender Text lesbar (“unrolled”): https://threadreaderapp.com/thread/1236094885905788928.html

Was ich daraus mitgenommen habe, und überspitzt formuliert: Künstliche Intelligenz betrifft Aufgaben, die ein Computer nicht lösen kann, weil man dazu echte Intelligenz braucht. Wenn ein Computer sie dann doch lösen kann, sind sie auch keine KI mehr, weil ein Computer sie ja gelöst hat.

Wenn ein Computer etwas kann, dann sieht man die Mechanik hinter diesem Verhalten, den Algorithmus. Dadurch verschwindet der Mythos des “requiring intelligence”. Also ist es plötzlich “nur noch” Informatik und keine KI mehr.

Anders gesagt, auch aus dem Thread: “As soon as it works, no one calls it AI anymore.” (John McCarthy)

Das Teilgebiet der KI, das ich oben mit schwacher KI meinte, heißt Machine Learning. Da gibt es viele verschiedene Ansätze, nur einer davon ist der mit neuronalen Netzen. Allen Ansätzen ist gemeinsam (Vorsicht: ich bin Laie), dass es quasi bei jedem Algorithmus sehr viele Drehregler gibt, also Dutzende oder Millionen oder Milliarden. Damit der Algorithmus richtig funktioniert, muss man all diese Drehregler richtig einstellen. Leider weiß man natürlich am Anfang nicht, welche Einstellung die jeweils richtige ist. Also setzt man dem Machine-Learning-System eine große Menge an Probe-Datensätzen vor, anhand derer mehr oder weniger automatisch nach und nach die richtigen Einstellungen für die Drehregler getroffen werden. Das ist das Lernen am Maschinellen Lernen. Wenn das System richtig trainiert/eingestellt ist, dann kann es auch mit unbekannten, aber verwandten Datensätzen arbeiten.

(Man unterscheidet dabei supervised learning, unsupervised learning, reinforcment learning, aber darauf gehe ich vielleicht ein anderes Mal ein. Meine Beispiele hier werden wohl meist aus dem supervised learning kommen, also wenn man solange anhand von Daten übt, bei denen die Lösung schon bekannt ist, bis der Algorithmus bei diesen Daten alles richtig macht – in der Hoffnung, dass das bei neuen Daten dann auch der Fall sein wird.)

3. Typische und einfache Aufgaben

So eine KI sollte erkennen können, ob auf einem Foto ein Hund ist oder eine Katze oder keines von beiden. Oder ein Bus! Manchmal stößt man im Web auf Seiten, die sich etwa vor dem Herunterladen vergewissern wollen, ob da wirklich ein Mensch sitzt oder doch eine automatische Abfrage. Dann kriegt man vielleicht so eine Aufgabe gestellt:

Dem intelligente menschlichen Benutzer fällt es leicht, die Busse auf den Bildern zu erkennen. (Also, theoretisch. Praktisch scheitere ich immer wieder an diesen Aufgaben.) Diese reCaptcha genannten Systeme haben zweierlei Aufgabe: a) sie überprüfen, ob da ein Mensch sitzt, und b) sie füttern das System mit Input: Die menschlichen Eingaben werden auch, oder manchmal, dazu genutzt, das KI-System dahinter lernen zu lassen.

Allerdings hat dieses Lernen auch seine Tücken. Wenn ein System lernen soll, Rotkehlchen und Gartenrotschwänze zu unterscheiden, und in allen Übungs-Datensätzen schauen die Rotkehlchen nach links und die Gartenrotschwänze nach rechts schauen, dann unterscheidet das System nach dem Trainieren vielleicht tatsächlich alle Übungs-Datensätze korrekt, aber in der Praxis zeigt sich, dass es gelernt hat, nach links und nach rechts schauende Vögel zu unterscheiden. In Do neural nets dream of electric sheep? wird eine Situation beschrieben, wo eine KI Schafe erkennen sollte, tatsächlich aber gelernt hat, Gras zu erkennen.

Eine weitere Aufgabe ist die, Handschriften zu entziffern. Darauf komme ich später zurück.

Eine kleine Beispielaufgabe

In einer Firma arbeiten 1000 Menschen. Zu jedem Menschen gibt es einen Datensatz mit ganz vielen Daten: Körpergröße und Haarfarbe und Schulbildung und Lieblingsfarbe und so weiter. Außer weiß die Personalabteilung von jedem Menschen, ob er gut arbeitet oder schlecht. Wenn sich jetzt eine neue Mitarbeiterin bewirbt, wäre es nicht schön, voraussagen zu können, ob sie gut arbeiten wird oder schlecht? Kann man vielleicht anhand der vielen Daten, die über eine Person gespeichert sind, herausfinden, wie gut sie arbeiten wird?

(Das Problem ist natürlich bedenklich. Ähnlich auch: Kann ich aus Geschlecht und den Zeugnisnoten eines Schülers oder einer Schülerin voraussagen, welche Charakteristik ich ins Jahreszeugnis eintragen soll? “Die freundliche, etwas zurückhaltende Schülerin…” Note 1 in Sport, sonst immer 3–4, eine 5 in Kunst: ist damit nicht schon alles gesagt über die Charakteristik? Also, in Wirklichkeit hoffentlich nicht, aber es täte mich schon reizen, das mal herauszufinden. Gerne auch dann bestätigt, dass es eben nicht geht.)

Ich möchte das Problem noch weiter vereinfachen, um es anschaulicher machen zu können: Sagen wir, die Datensätze für die Angestellten bestehen nur aus zwei Kriterien: Körpergröße und und Lautstärke. In Wirklichkeit ist die Leistungsfähigkeit von Menschen, was auch immer man darunter versteht, nicht sehr von diesen Faktoren abhängig, deswegen würde die Verteilung etwa so aussehen:

Dabei bedeutet ein weißes Kästchen, das jemand mit dieser Größe und jener Lautstärke sehr leistungsfähig ist, schwarz bedeutet, dass nicht leistungsfähig, grau irgendwo dazwischen. Das ist ziemlich zufällig verteilt und auch ein Computer würde da kein nennenswertes Muster erkennen.

Wir tun jetzt aber mal so, als wäre das anders. Als gäbe es eine einfache Korrelation zwischen Größe, Lautstärke und Leistung. Natürlich würde man diese Korrelation auch als Mensch sehr schnell erkennen. Aber in Wirklichkeit gibt es ja nicht nur diese zwei Faktoren, sondern hunderte weitere, und da erkennt man als Mensch das Muster nicht. Man kann aber eine Maschine anhand der 1000 vorhandenen Datensätze trainieren, dieses Muster zu erkennen und auf weitere, neue Datensätze anzuwenden:

Wenn ich den Datensatz eines neues Mitarbeiters in den Algorithmus eingebe (hunderte Daten, hier vereinfacht: Größe und Lautstärke), der sehr klein und sehr laut ist, dann sagt mir der Algorithmus, dass der leistungsfähig sein wird, zeichnet ihn also schwarz ein, und zwar links oben. Groß und laut dagegen, also rechts oben: eh, grau, weil nur ein Kriterium erfüllt. Groß und still, rechts unten, ganz schwarz – das Gegenteil von dem, was die Firma will. In der Grafik oben habe ich einfach 500 neue Mitarbeiter und Mitarbeiterinnen unterschiedlicher Größe und Lautstärke generiert und die Einschätzungen des Algorithmus grafisch dargestellt. Man erkennt dabei eine Linie, die die weißen und die schwarzen Einschätzungen voneinander trennt.

Der nächste Schritt: Angestellte kriegen ein drittes Kriterium in den Datensatz, neben Größe, Lautstärke jetzt auch noch Klugheit. Wieder tun wir so, als wüssten wir zwar, welche Angestellten leistungsfähig sind, aber nicht, warum. (Dabei lautet die geheime Regel, die der Algorithmus erst sichtbar machen soll: Erfolgreiche Angestellte dürfen nicht zu groß sein, müssen laut sein, und dürfen nicht besonders klug sein.) Wir füttern wieder unseren Algorithmus mit den 1000 Datensätzen, für die wir die Lösung kennen, bis der Algorithmus bei diesen 1000 das richtige Ergebnis ausspuckt – in der Hoffnung, dass er das auch bei neuen, zukünftigen Eingaben machen wird. Grafisch dargestellt sieht das so aus:

Das ist jetzt fast so ähnlich wie zuvor, aber irgendwie etwas weniger sauber. Was macht ein grauer Punkt links oben etwa? Das liegt daran, dass es jetzt drei Kriterien gibt, die zweidimensionale Grafik aber nur die ersten beiden davon darstellt. Trennte vorhin eine Linie im zweidimensionalen Raum den schwarzen vom weißen Bereich, so ist es jetzt eine Ebene, die im dreidimensionalen Raum, einem Würfel etwa, die Bereiche trennt: Alle weißen Punkte sind in einer Ecke des Würfels auf der einen Seite der Ebene, alle schwarzen auf der anderen Seite. Das lässt sich aber nur schlecht darstellen.

Exkurs: Robert Gernhardt

Mein etwas konstruiertes Beispiels um kleine, laute und dumme Menschen dient natürlich dazu, auf das schöne kurze Gedicht “Trost und Rat” von Robert Gernhardt hinzuweisen. Hier kann man es lesen und auch eine Aufnahme von Gernhardt hören.

Ich zeige das Gedicht gerne in der Schule, weil es a) schön und b) metrisch interessant ist. An sich trochäische Vierheber, es beginnt: “Ja wer wird denn gleich verzweifeln, / weil er klein und laut und dumm ist?” und steigert sich dann dazu, stolz mit dem affirmativen, die Klein‑, Laut- und Dummheit bejahenden Schlussvers zu sagen:

“ich war klein u n d laut u n d dumm.”

Das zweimalige “und” ist gesperrt gedruckt, Signal für die Betonung, und auch vom Sinn her geht es ja genau darum, die beiden “und” zu betonen. Aber an sich ist das Metrum immer noch trochäisch – ein schönes Beispiel für Synkope auch in der Lyrik.

Kurze Vorschau: Was ist, wenn der Algorithmus Leute erkennen soll, die entweder klein oder laut sind, aber auf keinen Fall beides? Das geht natürlich auch. Aber der ganz einfache Algorithmus, den ich nächstes Mal vorstelle, kann das nicht, da muss eine etwas erweiterte Form ran, ähnlich wie für dias jetzt folgende Beispiel.)

Eine weniger kleine Aufgabe

Nehmen wir folgenden Datensatz, bestehend aus 784 Daten:

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,185,159,151,60,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,222,254,254,254,254,241,198,198,198,198,198,198,198,198,170,52,0,0,0,0,0,0,0,0,0,0,0,0,67,114,72,114,163,227,254,225,254,254,254,250,229,254,254,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,66,14,67,67,67,59,21,236,254,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,253,209,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,233,255,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,254,238,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,249,254,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,133,254,187,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,205,248,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,254,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,251,240,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,221,254,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,203,254,219,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,254,254,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,254,115,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,133,254,254,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61,242,254,254,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,121,254,254,219,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,121,254,207,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Die 784 Zahlen könnten für 784 Merkmale der Firmen-Angestellten stehen. Zum Beispiel. Dem Algorithmus ist das egal, für ihn sind das nur Zahlen. Wenn man die 784 Zahlen in einer 28x28-Matrix anordnet, sehen sie so aus:

Und wenn man den Zahlen Farbwerte zuweist (0 weiß, 255 schwarz), dann kann man sich das als Bild zeigen lassen:

Ah! Denn die 784 Zahlen stammen letztlich von einer digitalisierten handschriftlichen “7”. Handschriften zu erkennen ist eine typische Mustererkennungsaufgabe für KI. Bei den Angestellten der Firma gab es nur zwei oder drei Eingabewerte, hier sind es 784, aber im Prinzip ist es das gleiche. Wir als Mensch könnten nie aufschreiben, welche Eigenschaften diese 784 Werte exakt haben müssen, um am Ende als “7” interpretiert zu werden. Aber wir sehen sofort, dass diese 784 Werte eine “7” sind – jedenfalls wenn wir die Werte in geeignete, also grafischer, Form vorgesetzt bekommen. Mit den Zahlen allein könnten wir auch nicht viel anfangen. Ein Algorithmus braucht aber irgendwo ganz fest aufgeschrieben, welche 784 Wertkombinationen für eine “7” stehen, und welche für andere Ziffern, und welche wahrscheinlich gar nicht für Ziffern stehen.

Zum Herumspielen damit gibt es die MNIST-Datenbank (Wikipedia), eine Sammlung von handschriftlichen Ziffern in maschinenfreundlicher Form. Die Sammlung besteht aus 60000 Datensätzen zum Üben und 10000 Datensätzen zum Überprüfen. Anhand der Übungssätze wird, uh, geübt, und wenn der Algorithmus/das KI-System mit diesen 60000 umgehen kann, kann man mit den 10000 zusätzlichen Datensätzen überprüfen, ob das auch mit bislang unbekannten Datensätzen geht.

(Warum diese Trennung? Es besteht ja die Gefahr, dass man den Algorithmus darauf trainiert, exakt die 60000 Ziffernbeispiel zu erkennen, dass er aber versagt bei anderen. Und das Ziel ist ja, dass er beliebige eingescannte Ziffern erkennt. Auch dafür gibt es vielleicht im nächsten Beitrag Beispiele. Und natürlich muss man bei der Auswahl auch aufpassen, dass man nicht nur Rechtshänder hat, nicht nur Privatschulschönschreibende, Männer und Frauen, und so weiter.)

Manche Leute, die sich auskennen, halten diese Sammlung aus verschiedenen Gründen für ernsthafte Forschung ungeeignet. Aber sie ist verbreitet, und mir geht es ja nur ums Spielen. Allerdings ist die Sammlung in ihrer ursprünglichen Form unhandlich, deshalb ist es schön, dass Joseph Redmon sich die Mühe gemacht hat, zwei (große) csv-Dateien mit dem MNIST-Datensätzen zu erstellen und zum Herunterladen anzubieten.

Das Programm, das ich mir geschrieben habe, und mit dem ich ein bisschen KI spiele, spuckt mir nach noch gar nicht mal so ausführlichem Training mit 10000 Übungsziffern für die oben gezeigte 7 (die erste Ziffer des Testsatzes) folgendes Ergebnis aus:

Ziffer: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Ausgabe: 0.07 | 0.00 | 0.04 | 0.10 | 0.00 | 0.00 | 0.00 | 0.47 | 0.10 | 0.13
--> vermutung: 7
--> tatsaechlich: 7

Das heißt, am ehesten hält das System die Eingangsdaten für eine “7”, und ist sich dabei immerhin zu 47% sicher; ansonsten gibt es keine aussichtsreichen Kandidaten. Brav.

Die erste falsch identifizierte Ziffer ist die hier, die neunte des Testsatzes:

Ziffer: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Ausgabe: 0.06 | 0.04 | 0.09 | 0.01 | 0.00 | 0.04 | 0.60 | 0.04 | 0.02 | 0.00
--> vermutung: 6
--> tatsaechlich: 5

Das heißt, mit 60% hat das System die Eingangsdaten als “6” identifiziert, ansonsten gibt es keine aussichtsreichen Kandidaten. Zugegeben, die Ziffer sieht schon halbwegs wie eine “6” aus, dennoch hätte ich mich gefreut, wenn mein System der “5” wenigstens eine größere Wahrscheinlichkeit zugeordnet hätte. Nun ja, vielleicht hätte ich noch mehr üben sollen, mit noch mehr Datensätzen. Aber das braucht alles Rechenzeit. Wenn man dann mal die richtigen Einstellungen für den Algorithmus hat (ein kleines neuronales Netz übrigens), dann geht das Rechnen und Entscheiden für beliebige neue Eingaben schnell. Aber auf die richtigen Einstellungen zu kommen, das ist eben aufwändig.

Aber dazu mehr in der Fortsetzung, wo es ums Technische geht. (Auch nicht sehr: Perzeptron, einfache neuronale Netze mit einer versteckten Ebene, ein paar Beispielaufgaben, die mir gelungen sind oder an denen ich gescheitert bin.) Dort dann auch Links.

4 Antworten auf „KI: Fast alles, was ich darüber weiß (Teil 1)“

  1. Netter Artikel!

    Also ganz ehrlich, diese “5” hätte ich auch als “6” gelesen. :D

    Mein Hauptproblem bei Handschrifterkennungsprogrammen (z.B. auf meinem Smartphone, aber auch auf dem Touchpad eines zwei Jahre alten Audi) ist, dass sie in der Regel auf ein einzelnes Handschriftsystem trainiert sind, idR das englische.
    Das Problem dabei ist: Dort wird ein senkrechter Strich als “1” erwartet, nicht etwa wie ich das schreibe ein senkrechter Strich mit einem kleinen “Dach”. Sobald auch nur ein Hauch eines Hakens dran ist, hält der Algorithmus das ganze für eine Sieben.

    Meine sieben wiederum wird oft gar nicht als sieben erkannt, weil man in der englischen Standard-Handschrift die sieben ohne den Querstrich schreibt. Der Algorithmus erkennt oft entweder gar nichts, oder eine acht. (ein Überkreuzen der Linien kommt nur bei vieren und achten vor).

    Es empfiehlt sich außerdem nicht, eine “Informatikernull” mit Diagonalstrich zu schreiben, das wird auch eine acht.

    Zur KI allgemein:
    Wenn man sich damit beschäftigt, dann ist glaube ich das wichtigste das hängenbleiben muss in der Tat:

    1. das mit der schwachen und starken KI. Manchmal liest man auch “allgemeine KI” bzw. “spezielle KI” anstatt stark bzw. schwach.
    Wir haben in den letzten 20 Jahren große Fortschritte in der letzteren gemacht, aber bei der ersteren sind wir noch lächerlich schlecht.

    2. Bias. Gerade bei neuralen Netzwerken ist das eingesetzte “Lernmaterial”, also die Daten zum trainieren der KI, das Problem schlechthin. Als z.B. Google mit der öffentlichen API für seine Bilderkennungsalgorithmen angefangen hat, wurden dunkelhäutige Menschen ab und an mal als “Gorilla” erkannt, und alle möglichen Gegenstände wurden als “Hund” klassifiziert. Das kam einfach davon, dass Google sehr viele Tierbilder zum einlernen des neuralen Netzes verwendet hat. Die KI ist weder rassistisch noch von Hunden besessen, sie hat eben Muster denen sie folgt. Wenn sie richtig eingelernt wurde, sehr kontrolliert und mit so wenig Bias wie irgend möglich, dann kann sie sehr gute Ergebnisse liefern.

    3. Sowohl die Computergläubigkeit (“muss richtig sein, hat ein Computer gemacht”) als auch die Computerungläubigkeit (“würde ich nicht trauen, hat ein Computer gemacht”), die sich in der öffentlichen Wahrnehmung abzuwechseln scheinen oder sogar – abhängig von der Anwendung der KI – koexistieren, können berechtigt sein. Denn letzten Endes ist selbst bei einer auf ihrem Gebiet perfekt funktionierenden KI der Bediener/Anwender immer noch ein Mensch. Wenn die KI zum Beispiel für einen Zweck eingesetzt wird, der ihrem ursprünglichen sehr ähnlich, aber eben nicht ganz gleich ist, oder (siehe oben) mit ungenügenden Daten trainiert wurde, oder der Bediener/Anwender ihre inhärenten Eigenschaften nicht kennt und/oder ihre Ergebnisse interpretiert, dann kann trotz korrekter KI das Ergebnis katastrophal schlecht sein.
    So ähnlich wie bei Statistik. Die meisten Statistiken sind NICHT gefälscht, aber ihre Ergebnisse können in die eine oder andere Richtung interpretiert werden.

    Gruß
    Aginor

  2. Hallo Thomas,

    wunderschön, wie du den Stoff so vereinfachst, dass die Materie verständlich wird. Für mich als Techniker sind die resultierenden Neuronalen Netze (NN) in der Umsetzung der Theorie nichts anderes als hochparallele Rechnernetze, deren Knoten stark vereinfachte Rechner sind, auf denen eine Software zur Anpassung und Anwendung der internen Gewichtungen drauf ist. “Programmieren” erfolgt hier nicht linear durch zeilenweises Schreiben von Programmen, sondern durch Anlegen von Zielwerten während der Konfigurationsphase, anhand deren die Anpassungsfunktionen die internen Gewichte der Knoten so verändern, dass sich die Ausgabewerte der Knoten mit jeder Lernschleife peu-a-peu in Richtung der gewünschten Zielwerte bewegen. Dies als Lernen zu bezeichnen, ist ein mächtiges Wort für einen eigentlich ziemlich trivialen Konfigurationsvorgang.

    Frage an den Meister der Visualisierung: Hast du eine Idee, wie man das Muster so ausrichtet, dass eine KI es erkennen kann? Wenn die Schrift z.B. um 45° verdreht liegt, erkennt das NN viele Zahlen / Buchstaben nicht oder falsch. Bei Gesichtern dieselbe Frage: Wie erkennt ein NN ein Gesicht in einem großen Bild? Die KI weiß nicht, wo genau das Gesicht liegt und wie groß es ist.

    Viele Grüße,
    Froschkönig

  3. Ach! Du hier! Schön von dir zu hören!

    Genau so betrachte ich NN auch. Und ja, wenn man sich das so anschaut, ist die KI erst einmal ganz schlicht. Aber ja, wenn man genug davon hat, kommen beeindruckende Leistungen heraus.

    Ist 45°gedrehte Schrift ein Problem? Ich nehme an, wenn man das NN mit gedrehter Schrift trainiert, wird es sie auch leicht erkennen – es geht also darum, wie ein NN, das gerade Schrift gelernt hat, auch gedrehte zu erkennen: keine Ahnung, ebenso bei der Gesichtserkennung, wo das ja ein typisches Problem sein dürfte. Bis ich wieder experimentieren kann, brauche ich aber erst wieder Ferien…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.