KI-Algorithmen im Informatik-Unterricht

Ulrich Trottenberg und Bernhard Thomas

Das Schulministerium NRW fördert seit dem 01.07.2021 das Projekt

KI-Algorithmen im Informatik-Unterricht – mit praktischem Einsatz auf der Open Roberta Plattform und in der Robotik.

Projektparter sind:

- die Universität zu Köln, mit dem Institut für Mathematikdidaktik und dem Department Mathematik/Informatik,

- das Fraunhofer-Institut für Intelligente Analyse- und Informationssysteme IAIS sowie

- die InterScience-Akademie für Algorithmik GmbH.

Ein übergeordnetes Ziel des Projekts ist die Schaffung grundlegenden Verständnisses für algorithmische Prinzipien im Rahmen der Digitalen Bildung in NRW. Die Schülerinnen und Schüler sollen die fundamentale Bedeutung der Algorithmik für alle digitalen Prozesse erkennen: Algorithmen liegen allen Computerprogrammen zugrunde, steuern Netze und die beteiligten Agenten und sie verarbeiten und analysieren Daten aus den unterschiedlichsten Quellen.

Das Projekt geht auf die von Ulrich Trottenberg initiierte Aktion „Algorithmen im Schulunterricht“ der InterScience-Akademie für Algorithmik GmbH (bis 2019 InterScience GmbH) und das gleichnamige Seminar für Lehramtsstudierende zurück. Dieses Seminar, das seit mehr als 10 Jahren an der Universität zu Köln stattfindet, wird auch im Projekt eine wesentliche Rolle spielen.

Das Projekt entwickelt die Grundlagen für eine didaktisch aufbereitete Vermittlung von Fähigkeiten zur aktiven Gestaltung und Anwendung moderner Algorithmen für das aktuelle Schwerpunktthemas der Künstlichen Intelligenz. Es umfasst die dazu erforderlichen Informatik-Konzepte, Verfahrens- und Anwendungskenntnisse und, soweit möglich, einfache Plug&Play Programmiererfahrung. Dabei beschränkt sich der Unterricht nicht auf diese technisch-inhaltlichen KI-Aspekte - ein essentielles Unterrichtsziel ist immer auch der Erwerb von Bewertungskompetenz für die einschlägigen Algorithmen und deren Anwendungen, d.h. der Fähigkeit zu einer adäquaten Einschätzung ihrer Chancen und Risiken, sowie für die ethischen Aspekte KI-algorithmischer Entwicklungen.

Ausgangspunkt der Projektentwicklung sind die informatischen Lehrinhalte für die Schülerinnen und Schüler der Klassen 5 und 6 im Rahmen des mit Schuljahr 2021/22 in NRW eingeführten Pflichtfachs Informatik. Die hierbei vorgesehenen, elementaren KI-Methoden werden so ausgewählt und spezifiziert, dass sie im Schuleinsatz dem (mathematischen und informatischen) Wissensstand der Schülerinnen und Schüler nach Jahrgangsstufe und Schulform entsprechen.

Eine Besonderheit der Projekt-Zielsetzung ist der altersgemäße, spielerische Einstieg in die KI-algorithmische Praxis durch die intuitive Umsetzung von einfachen Methoden des Maschinellen Lernens. Die grafische „Plug&Play“ Programmier-Plattform Open Roberta Lab ermöglicht idealerweise die Gestaltung und Veränderungen von Künstlichen Neuronalen Netzen (KNN) zur Steuerung von einfachen Fahrzeugen und damit die „Hands-on“-Erfahrung mit KI-eingebundenen (realen und virtuellen) Robotern und Mikrocontrollern (Embedded Devices).

Die Zielsetzung der Landesregierung, das Pflichtfach Informatik in allen Schulformen der Klassen 5 und 6 einzuführen, wird im Projekt durch die Beteiligung des Instituts für Mathematikdidaktik (IMD) sichergestellt. Das Institut widmet sich mit seinem mathematisch-informatischen Schwerpunkt insbesondere den nicht-gymnasialen Lehrämtern und erarbeitet Materialien zur Erschließung von KI-algorithmischen Inhalten, insbesondere auch für Schülerinnen und Schülern mit besonderen Lernbedarfen.

 

Zu den formalen Aspekten der Projektbewilligung:

Der bereits in 2020 dem Ministerium vorgelegte Projektantrag wurde in der (endgültigen) Fassung schließlich im Juli 2021 mit einer Laufzeit vom 01.7.2021 bis 31.12.2022 bewilligt.

Relativ zu den weitgehenden, höchst innovativen Zielen des Projekts hält sich der finanzielle Rahmen der Förderung mit ca. 300T€/Jahr sehr in Grenzen.

Dass der Projektstart erst zum 01.07.2021 erfolgt ist, hängt mit unklaren, rein ministerial-bürokratischen Prozeduren zusammen. Obwohl die Projektinitiative und die Ausarbeitung Projektantrags durch eine persönliche Anfrage des zuständigen Staatssekretärs bei der InterScience-Akademie für Algorithmik GmbH bereits Ende 2019 angeregt worden war, stellte sich erst in der Schlussphase der Diskussionen mit den zuständigen Referaten heraus, dass das Schulministerium aus haftungs- und vergaberechlichen Gründen endgültig keine Möglichkeit sieht, die – vom Ministerium ausdrücklich erwünschten - Arbeiten der InterScience-Akademie für Algorithmik GmbH (ISAfA) finanziell zu unterstützen. Dabei hatte die ISAfA GmbH von Beginn der Diskussionen an verbindlich erklärt, im Rahmen des Projekts vollständig gemeinnützig zu agieren und mit dem Projekt keinerlei Gewinnerzielungsabsicht zu verbinden. Erst nachdem die Initiatoren des Projekts, die Geschäftsführer der ISAfA, erklärt hatten, für ihre Beiträge zum Projekt Arbeiten auf eine finanzielle Förderung vollständig zu verzichten, konnte das Projekt kurzfristig bewilligt werden.

Aus Sicht der Initiatoren des Projekts liegt hier ein struktureller ministerial-bürokratischer Mangel vor, der kurzfristig ausgeräumt werden muss, um in der Digitalen Bildung nicht noch weiter zurückzufallen.

 


Naive Bayes Modell löst das Even-Odd Learning Problem

KI im Informatikunterricht

Dieser Beitrag kann als Grundlage für die Einführung des Themas „Künstliche Intelligenz“ im Schulunterricht eingesetzt werden. Er illustriert „Maschinelles Lernen“ anhand einer für die Schüler* einfach verständlichen Aufgabe mittels einer Data Analytics Methode: Naive-Bayes. Die Aufgabe kann mit „Papier und Bleistift“ durchgeführt werden. Die Voraussetzungen beschränken sich auf Erstellen von Tabellen, Auszählen von Häufigkeiten und Berechnung von relativen Häufigkeiten.

 

Die Blogserie „Six not so easy pieces for AI” (Sechs nicht so einfache Aufgaben für AI) begann in 2019  mit der einfachen Fragestellung, ob AI in der Lage ist,  eine der einfachsten „intellektuellen“ Leistungen zu erbringen, nämlich zu lernen, ob eine Zahl gerade oder ungerade ist. (Siehe hier.)

Abstrakte Fragestellung - Allgemeines Schema

Hier bedeuten die einzelnen Attribute des Input-Vektors die  Dezimalstellen einer ganzen Zahl, beginnend bei den „Einern“ ganz rechts. Der Wertebereich (Kategorien-Labels) ist jeweils 0,1,…,9. Die Response im Supervised Learning gibt jeweils an, ob die Zahl gerade oder ungerade ist. Die entsprechenden Klassen sind 0 (für Gerade) und 1 (für Ungerade). Im trainierten Zustand gibt R die „Vorhersage“ für eine Testzahl.

Es ist wichtig zu bedenken, dass ein "lernendes KI-System" hier kein Konzept von Zahlen, Dezimalstellen und deren Bedeutung innerhalb einer Zahl (z.B. Einer, Zehner etc.) hat.  Die Inputs sind für das System nichts weiter als eine Liste von Ziffern.

Das Training-Szenario

Als Training-Daten wird eine Anzahl von ganzen positiven Zahlen in Form einer Liste der einzelnen Dezimalstellen samt der richtigen Klassifikation in gerade / ungerade vorgegeben.

Als Testdaten werden einzelne Zahlen oder ein Set von Zahlen in dieser Form ohne Klassifikation verwendet. Diese sind nicht in den „Lernvorgang“ eingegangen. Das Ergebnis (Prediction) kann mit dem wahren Wert verglichen werden.

Die ML Methode

Als ML-Methode verwenden wir hier, anders als in der erwähnten Blog-Serie, ein Naive-Bayes Verfahren. Kurz erläutert, wertet das NB-Verfahren die Trainingsdaten aus und bestimmt – mittels der Bayes-Formel - die bedingte Wahrscheinlichkeit dafür, dass, gegeben eine m-stellige Zahl (Input-Vektor), das Ergebnis R=0 ("gerade") ist. Entsprechend für R=1 ("ungerade"):

P(R=0|a0 a1 … am)

Der Input-Vektor ist einfach die Ziffernfolge der Zahl, wobei für die Dezimalstellen untereinander keine Abhängigkeit besteht. (Grundannahme für die Gültigkeit von „Naive“ Bayes.)

Im „gelernten“ Zustand kann das Modell (auch Classifier genannt) für unbekannte Zahlen b = b0 b1 … bm entscheiden, ob diese gerade oder ungerade ist, anhand der berechneten Wahrscheinlichkeiten P(R=0|b) und P(R=1|b) – je nachdem, welche der Wahrscheinlichkeiten größer ist.

(In der Regel reichen wenige Zahlen für das Training aus, sofern man die sog. Glättung im Classifier „ausschaltet“. Die Glättung kompensiert Fälle, in denen eventuell einzelne Werte in den Input-Daten nicht vorkommen (missing data), und sich damit Schwierigkeiten in der Auswertung ergeben können.)

Für unser gerade-ungerade-Lernen Problem zeigt sich, dass die o.a. Wahrscheinlichkeiten P entweder 0.0 oder 1.0 sind. Im Sinne der Blogserie haben wir es hier also mit „starkem Lernen“ zu tun.

Ist das Lernverfahren auch „robust“? In der Blogserie hatten wir damit  ein Lernverfahren gekennzeichnet, das ein gewisses Maß an Fehlern in den Trainingsdaten vertragen kann und trotzdem „richtig“ lernt. Und dabei auch die Fehler „richtigstellt“ (im Code-Beispiel: 5% Zufallsstörung)

Da die Input-Werte ganzzahlig (Kategorien) sind (0,..9) und die Response-Klassen ebenfalls (0,1), setzen wir hier die Variante CategoricalNB() aus der scikit-learn Toolbox an.

Outline des Algorithmus „Gerade/Ungerade Lernen“

Als Programm liegt dieses Beispiel als ein Jupyter Notebook vor, ablauffähig und mit kleinen Zwischentexte zur Erläuterung. Wegen Problemen bei der Kompatibilität der Dokumentenformate liegt das Notebook als html-Datei hier: NB_even-odd_problem_notebook

Der übliche, grobe Ablauf ist wie folgt:

  1. Problem Defintion: Beschreibung der Aufgabe als Text
  2. Problem-Dimensionen und Datensatzumfang (Code-Zelle)
  3. Parameter für Problem-Varianten (optional, Code)
  4. Generierung des Datensets: (Code-Zellen) Inputzahlen per Zufallsgenerator, dargestellt als Liste von Dezimalziffern je Zeile, davon N Zeilen (Matrix-Struktur Nx6). Zugehörige Klassifikation (R-Werte) als Liste von 0 und 1 für jede Matrix-Zeile (Zahl). Beispiel:
  5. Datenset-Aufteilung Tranings-/Testdaten: z.B. 70% zu 30% (Code)
  6. Categorical Naive Bayes Modell: Modell-Defintion und Training (g_u_model.fit()) mit den Trainingsdaten (Code)
  7. Ergebnisse: 7.1Test-Beispiele, 7.2 Genauigkeit der Klassifikation durch das Modell für Trainings- und Testdaten, 7.3 „Innere“ Daten des trainierten Modells (s. Code-Zellen)
  8. (Optional) Aufgaben-Varianten: 8.1 Verfälschen der Klassifikationen in den Trainingsdaten zur einem kleinen Prozentsatz per Zufall. 8.2 Probieren, Teilbarkeit durch 5 zu lernen. (Code Zellen)
  9. (Optional) Experimentieren: Teilbarkeit durch 3, 4 o.ä. Warum funktioniert Naiv-Bayes hier nicht?

Links zu NaiveBayes Methoden

https://scikit-learn.org/stable/modules/naive_bayes.html

https://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.CategoricalNB.html

https://www.analyticsvidhya.com/blog/2017/09/naive-bayes-explained/

 


Six not so easy pieces for AI

In einer Artikelserie für die weit verbreitete Zeitungsbeilage PRISMA hatte Ulrich vor einiger Zeit schon versucht, KI und die Konsequenzen allgemein verständlich darzustellen. Die Serie beginnt mit dem Beitrag "Künstliche Intelligenz I: Von Menschen für Menschen geschaffen".

Die Frage, worin die Intelligenz von KI-Systemen besteht, ob KI-Systeme selbstständige Intelligenz entwickeln können, oder man ihnen intellektuelle Fähigkeiten zusprechen kann, wird zurzeit heftiger denn je diskutiert – nicht nur in Kreisen der „Techniker“ sondern auch in den Gesellschafts- und Cognitiv-Wissenschaften.

Beginnen wir mit einigen aktuellen  Zitaten zu Intelligenz und Künstlicher Intelligenz –  drei plausible aus Millionen von möglichen Zitaten.


„Allgemeine Künstliche Intelligenz: AKI – ein System, das alle intellektuellen Fähigkeiten eines Menschen in sich vereint.“ ([KI, S. 39]

„Wenn Maschinen oder Computer kognitive oder geistige Fähigkeiten zeigen, die denen des Menschen ähneln, so nennt man das Künstliche Intelligenz. Bei diesen Fähigkeiten kann es sich z.B. um Lernen aus Erfahrung handeln oder um die Lösung von Problemen.“ [KI]

In einem Fernseh-Interview [MG] definiert Markus Gabriel erstmalig "Intelligenz" als die Fähigkeit, für ein Problem eine Lösung zu finden. Er ergänzt: das setzt voraus dass man überhaupt ein Problem hat (oder erkennt). Und zu KI, recht restriktiv: in der KI sind es die Menschen, die die Probleme definieren, nicht die KI-Systeme / Algorithmen. Folglich sind KI-Systeme - trotz des "I" im Namen - nicht intelligent.


Es geht offenbar nicht nur darum, eine Aufgabe zu bewältigen, sondern um die Fähigkeit der Lösungsfindung.

Die intellektuelle „Intelligenz“ eines KI Systems besteht  nicht (so sehr) in der Fähigkeit ein Problem zu lösen, sondern in der Fähigkeit, Lösungen für ein Problem zu finden. Das bedeutet im konkreten Fall, die Fähigkeit, die Lösung einer Aufgabe zu erlernen  – weniger, sie nur auf eine Aufgabe anzuwenden. Ein Algorithmus, der z.B. den größten gemeinsamen Teiler (ggT)  von zwei Zahlen bestimmt, löst diese Aufgabe. Er kann das. Ein Algorithmus, der lernt, wie der ggT. von zwei Zahlen bestimmt wird, hat eine ganz andere „intellektuelle“ Aufgabe. Menschenskinder lernen das spätestens als Schüler früher oder später.

Offenbar ist Erfahrung eine wesentliche Voraussetzung für die Lösungsfindung. Erfahrung kann vermittelt werden, durch Lehrer:innen, durch Beispiele (Daten) oder durch eigene, wiederholte Beobachtungen entstehen.

Sofern das System, das lernt, ein menschliches Artefakt ist (Programm, Computer, Robot) spricht man von Machine Learning -  für Lebewesen verwendet man eher den Begriff „Animal Learning and Cognition“, aber das ist ein anderes Thema.

Ohne Zweifel ist heute die Leistungsfähigkeit spezieller KI Methoden, insbesondere des Maschinellen Lernens (ML), spezialisiert für bestimmte Aufgaben der Erkennung, Analyse und Klassifizierung den vergleichbaren menschlichen Fähigkeiten weit überlegen, dank der Fortschritte in der Computer- und Algorithmen-Entwicklung. Aber das haben Technologie-Fortschritte so an sich. Einen schon atemberaubenden Einblick in die Hochleistungssysteme und algorithmischen Techniken von ML Verfahren, insbesondere mit Tiefen Neuronalen Netzen, findet man in dem kürzlich erschienen Buch [KI].

Die Lernfähigkeit als (quasi-)intellektuelle Fähigkeit künstlicher Systeme zeichnet also Systeme aus, die sich vom Zustand des Nicht-Lösen-Könnens in den des Lösen-Könnens entwickeln können. Klingt kompliziert, ist es auch – wie soll das gehen? In der KI Praxis hat man dafür, dank der enormen Rechenleistung von Spezial-Computern und der Intelligenz von ML-Wissenschaftlern, Verfahren entwickelt und verfeinert, die diese Lernfähigkeit in Form von hochdimensionalen Parameter-Anpassungen gewinnen.

Das heißt aber auch, dass hier nicht ein „KI-System“ diese Lernfähigkeit entwickelt, sondern dass diese zunächst einmal durch enorme menschliche intellektuelle Leistungen – von Mathematikern, Informatikern, SW-Ingenieuren usw. – in Algorithmen oder technischen Systemen vorbereitet wird.

Man kann zwar  „höhere“ KI-Systeme mit ML-Methoden ausstatten, die sich die algorithmischen Komponenten nach bestimmten Zielvorgaben selbst zusammenstellen, etwa der, das Lernen für eine bestimmte Problemklasse zu optimieren oder Erklärungen für bestimmte Ergebnisse zu liefern. Insofern kann man davon sprechen, dass sich die sogenannte Schwache KI (z.B. Machine Learning, Robot-Steuerung) durch Vielseitigkeit und Lernleistung in Richtung Starker KI (intellektuelle Leistungen) entwickelt. Aber auch das beruht primär auf menschlicher Intelligenz, sowohl was die Meta-Problemstellung betrifft als auch die algorithmischen Verfahren.  Das KI-System kann dabei das Ausprobieren verschiedener Strukturen und Anpassen von sog. Hyperparametern automatisieren.

(Anmerkung: Das sieht nach einem „infiniten Regress“ Problem für die Allgemeine Künstliche Intelligenz aus. Was fehlt, ist ein Prinzip der Entwicklung. Etwa ein Evolutionsprinzip (Genetische Variation, Selektion), das ja offensichtlich erfolgreich zu Animal Learning and Cognition und insbesondere zur  menschlichen Intelligenz als Maß aller Dinge geführt hat.)

In der Blog-Serie „Sechs nicht so einfache Aufgaben für KI“  haben wir der KI ein paar einfachste, anspruchslose Aufgaben vorgelegt, die jedes Kind zu bewältigen lernt. Sie sind der Verstehbarkeit halber aus der Mathematik gewählt. Also etwa das Zählen, oder gerade und ungerade Zahlen zu unterscheiden. Wir wollten daran sehen, wie es um die Lernfähigkeit bestellt ist, was man als Entwickler dazu beitragen muss, welche Qualitäten des Lernens man dabei entdecken kann und, was KI daraus lernen kann, wie Kinder diese Aufgaben – vermutlich – zu lösen lernen.

Die Blog-Serie ist auf Medium für Beck et al. GmbH, München, auf Deutsch veröffentlicht. Den Einstieg findet man in dem kurzen Einführungsblog: Sechs nicht so einfache Aufgaben für KI, oder über die Webseite von https://becketal.com unter #our_blog. Im Laufe der Zeit (2019) war die Serie ordentlich angewachsen, weshalb der Einführungsblog-Beitrag am Ende auch ein Verzeichnis aller Beiträge der Serie enthält, in der empfohlenen Lesereihenfolge und direkt bzw. untereinander verlinkt.

Noch ein Hinweis: Die Beiträge sind in Form so genannter Jupyter Notebooks (für Python) entstanden. D.h. der erzählende Text wird unterstützt durch kurze Python-basierte Code-Blöcke (unter Verwendung einschlägiger Packages wie keras / Tensorflow für Neuronale-Netze-Modelle). Mit denen können die beschriebenen Ideen bei Interesse nachgebildet werden.

Zum Abschluss noch ein älteres Zitat, nicht weniger bedeutend als die aktuellen:


"I propose to consider the question, "'Can machines think?' This should begin with definitions of the meaning of the terms 'machine' and 'think'. The definition might be framed so as to reflect so far as possible the normal use of the words, but this attitude is dangerous..." [AT]


[KI] G. Paaß, D. Hecker: Künstliche Intelligenz Springer 2021

[MG] Markus Gabriel: Sendung aspekte vom 12.3.2021

[AT] Alan Turing: Computing Machinery and Intelligence, Oxford University Press, 1950