GPT#2 - Programmieren mit ChatGPT

Aufgabe: Einfache und algorithmisch anspruchsvollere Code-Generierung in verschiedenen Programmiersprachen. Hello World mit Datum in Julia, eine Funktion für das Newton-Verfahren in Python. Weitere Experimente, u.a. KI Verfahren in weiteren Beispielen, hier nicht aufgeführt.

Kommentar: ChatGPT generiert die kleineren und größeren Code Snippets hier korrekt (anders als z.B. in #12) und fügt Erläuterungen zu Aufbau und Nutzung mit Beispiel hinzu.

Es wirkt zunächst verblüffend, dass das Sprachmodell sinnvollen Code zu konkreten Aufgaben generieren kann. Andererseits sind die Beispiele Standardfälle, die in Tutorials und Blogs im Internet als Code zu finden sind. (Versuche Google: Python function for Newton Iteration). Dennoch, die Aufbereitung und Darstellung der Antworten zeigt hohe Sprach- und Erklärungskompetenz (um menschliche Begriffe zu verwenden) des Generators. Es wäre zu prüfen, wie die Ergebnisse von Wiederholungen der Prompts aussehen.

Die Frage nach „originärer“ Programmierung wird in #11 noch einmal aufgegriffen, bei dem Versuch einen Prompt zu erstellen für eine Programmieraufgabe, die so evtl. im Internet noch nicht existiert.

Übersetzung der Erläuterungen ins Deutsche mit DeepL.com empfohlen.

Task & Prompt: Bernhard Thomas (B)
Generator: ChatGPT (OpenAI Symbol)
Translator: n/a
Editing: n/a (ChatGPT Originaltext)
Authoring: Bernhard Thomas

 

15.01.2023

bernhard.thomas@interscience.de

 


GPT#1 Bus Stop Romance - ChatGPT Poetry

Aufgabe: Erstellen eines romantischen Gedichts in englischer Sprache. Der kurze Prompt dazu gibt eine Szene vor, die aus einem 60er Jahre Song entlehnt ist.

Kommentar: Dies war mein erster produktiver Versuch einen ggf. für einen Song verwendbaren Text zu erzeugen. (Inzwischen ist Poetry Writing mit ChatGPT überall anzutreffen.) Die Idee zur Szene (Prompt) stammt aus einem schönen Song von den Hollies (1966): Bus Stop. Es ist zunächst überraschend, dass ChatGPT offenbar die Struktur von Gedichten in Versen (4-zeilig) generieren kann und dabei 2-4-Reime berücksichtigt. Das Reimen erscheint verständlich, da das Sprachmodell vermutlich über weit mehr Wörter verfügt als ein einzelner menschlicher Dichter. Die selbst entwickelte Erzähl-Linie der Romanze ist (fast) konsistent und wird (von Lesern) als schön empfunden.

Eine kleine Inkonsistenz der Handlung besteht zwischen Vers 3 und Vers 5: „They walked together“ deutet an, dass sich das Paar vom Bus Stop weg bewegt, bei „So when the bus arrived at last…“ sind beide aber wieder am Bus Stop. Nun ja – sie sind halt ein paar Schritte gegangen, bis der Bus kam. Mit dem letzten Vers deutet sich eine „Neigung“ des Generators an, die man bei vielen generierten Texten findet, am Ende eine Art Fazit, Zusammenfassung zu erstellen.

Lyrics & Music: B. Thomas
Title & Prompt: B. Thomas
Generator: ChatGPT
Translator: n/a
Editing: n/a (ChatGPT Originaltext)
Authoring: B. Thomas
Credits: Prompt inspired by The Hollies: Bus Stop (1966)

 

Write a poem about boy meets girl at a bus stop it starts raining he offers his umbrella girl falls in love with boy

Bus Stop Romance

At the bus stop, a boy and girl met
Beneath a grey and gloomy sky
The rain began to fall, and yet
A spark of love began to fly

He offered her his umbrella
To shield her from the pouring rain
She looked into his eyes and saw
A love that would forever reign

They walked together, side by side
Their steps in perfect sync
The rain became a symphony
As they talked and laughed and linked

They shared their hopes and dreams
Their fears and deepest thoughts
And as the rain began to clear
Their love had been truly wrought

So when the bus arrived at last
They said goodbye with a smile
For they knew they'd meet again
In just a little while

For that one chance encounter
At the bus stop in the rain
Had brought them love forever
And they'd never love in vain

 

13.01.2023

bernhard.thomas@interscience.de


KI im Unterricht - "Die intelligente Obstkasse"

Künstliche Intelligenz im Informatikunterricht - Unterrichtsreihe in einer Klasse 6

Linda Rommerskirchen, Raphaela Sonntag (Konrad-Adenauer-Gymnasium Bonn)

März 2023

In Zusammenarbeit mit der InterScience-Akademie für Algorithmik (ISAfA) haben Linda und Raphaela die ISAfA KI-Story "Obstsalat Teil 1" (s. Übersicht) in eine Unterrichtsreihe für den Informatikuntericht am KAG entwickelt und im Jan / Feb 2023 mit einer 6. Klasse durchgeführt - mit großem Erfolg, wie die ausführliche Evaluation am Ende der Reihe gezeigt hat.

Die detaillierte Dokumentation des Unterrichtsverlaufs und der anschließenden Schülerbefragung haben uns die Autorinnen bereitgestellt und mit Zustimmung der Schulleitung zur Veröffentlichung freigegeben.

Die pdf-Version findet man hier (Link pdf). Kontaktdaten und Hinweise findet man am Ende des Dokuments.

Rückfragen gerne auch direkt an folgende e-mail Adressen:

Raphaela Sonntag: r.sonntag@adenauer-bonn.de
Linda Rommerskirchen: s6liromm@uni-bonn.de

Prof. Dr. Ulrich Trottenberg: ulrich.trottenberg@interscience.de
Dr. Bernhard Thomas: bernhard.thomas@interscience.de

 

 


ChatGPT – Experimente und Erfahrungen mit Open AI’s Generative Pretrained Transformer

- Einleitung zu einer ISAfA-Blog-Serie -

Bernhard Thomas und Ulrich Trottenberg - Januar 2023

 

Die Aufregung ist groß! Nahezu täglich gibt es zurzeit Artikel in den Medien, die einige der jüngsten spektakulären Entwicklungen im Bereich der generativen KI als Zeitenwende lobpreisen oder das Ende der menschlichen Kreativität heraufbeschwören. So insbesondere Open AI’s Sprachmodell ChatGPT. Vortrainiert mit immensen Mengen an vorverarbeiteten Texten, können entsprechende Algorithmen  zu beliebigen Themen per Eingabe von Überschriften, Gliederungspunkten, Stichworten o.ä. (sog. Prompts) Texte unterschiedlichen Typs automatisch erzeugen, die inhaltlich sinnvoll und hochprofessionell wirken und auch von Experten nicht auf Anhieb als KI-erzeugt erkannt werden.

Einige Autoren schreiben diesen Algorithmen oder den sie ausführenden Rechnern ein Bewusstsein (oder gar eine „Seele“) zu, was allerdings durch nichts gerechtfertigt und geradezu aberwitzig ist. Zumal in allen kognitiven und philosophischen Disziplinen weitgehend unklar bleibt, was damit gemeint ist – und so erst recht im Bereich der Informatik. Jeder, der sich auch nur oberflächlich mit der den Algorithmen zugrunde liegenden Mathematik beschäftigt, erkennt sehr schnell die Absurdität einer solchen Zuschreibung. Die zugrundeliegenden mathematischen Prinzipien sind verblüffend simpel, basieren z.B auf dem aus der Schule bekannten Newton-Verfahren, der Kettenregel, einfachen statistischen Methoden usw., angewandt allerdings in Räumen oft extrem hoher Dimension.

Das bedeutet nicht, dass diese neuen, mächtigen generativen Algorithmen per se unbedenklich sind. Die Algorithmen sind Mathematik, also prinzipiell wertfrei. Sie können für höchst wünschenswerte Zwecke verwendet werden, mit großartigen, überraschenden Ergebnissen, wie wir auch Tag für Tag lesen. Sie können aber eben auch für betrügerische, kriminelle, inhumane und politisch problematische Zwecke missbraucht werden, für Diskriminierung, Fake News und Hate Speech. Vor diesen Möglichkeiten wird mit Recht gewarnt. Es macht deutlich, wie wichtig es ist, ein gewisses Verständnis für GPT zu entwickeln ist, wie dringend die Öffentlichkeit und - im Hinblick auf die Zukunft - insbesondere die Kinder und Jugendlichen sachlich aufgeklärt werden müssen. Und wie wichtig der korrekte Umgang mit diesen neuen Möglichkeiten ist.

Die InterScience-Akademie für Algorithmik macht sich zur Aufgabe, Verständnis für aktuelle generative Algorithmen und ihre Einsatzmöglichkeiten zu vermitteln. Sie leistet auch Beiträge zu den damit zusammenhängenden rechtlichen, ethischen, gesellschaftlichen und politischen Fragen. Eine solche Frage betrifft z. B. die Autorenschaft für die automatisch entstehenden Texte und Ergebnisse. Der unumgängliche menschliche Beitrag bei solchen algorithmisch generierten Texten besteht in der gezielten oder kreativen Formulierung der Vorlage (Prompt). Damit ist dann auch die Verantwortung für den generierten Text verbunden. Die Autorenschaft bekommt eine neue Form.

In unserer Blog-Serie präsentieren wir eine Reihe von Experimenten, in denen wir ChatGPT mit unterschiedliche Typen von Aufgaben konfrontieren.  Die teils verblüffenden Ergebnisse versuchen wir zu kommentieren und uns damit ein wenig dem Verständnis zu nähern dafür, was da eigentlich passiert. Wir versuchen dabei auch, die Grenzen der Fähigkeiten des Sprachmodells auszuloten, teilweise durch Wiederholungen, Veränderung von Prompts oder dem Auftrag, Fehler selbst zu korrigieren.

Es ist dabei zu bedenken, dass die Ergebnisse – selbst mit gleichem Prompt – nicht reproduziert werden, sondern bei Wiederholung Varianten erstellt werden. Dies ist ein Effekt des inhärenten Zufallsprozesses.

Es ist weiterhin zu bedenken, dass ChatGPT ein mit immensen Datenmengen vortrainiertes, extrem hochdimensionales Sprachmodell ist, das Input-Text direkt verarbeiten kann. Im Gegensatz dazu sind übliche Data Analytics und ML-Modelle mit Trainingsdaten zunächst zu trainieren, bevor sie sinnvoll auf neue (Test-) Daten angewendet werden können.

Der Zugang zum experimentellen Ausprobieren von ChatGPT kann z.B. so erfolgen

  • Google chatgpt
  • Link ChatGPT: Optimizing …. Aufrufen
  • Button TRY CHATGPT klicken
  • Ggf. Login mit e-mail-Adresse oder mit Google oder MS Konto anmelden
  • Prompt-Eingabe in Editor-Zeile unten auf der Seite

Prompt und Ergebnisse der Experimente sind überwiegend auf Englisch. Übersetzung mit Deepl.com (nicht empfohlen für Poetry und Songtexte) wie folgt:

  • Zu übersetzenden Text in Zwischenablage kopieren (Ctl-c)
  • URL Deepl.com im Browser aufrufen
  • Zielsprache Deutsch (rechte Seite) wählen
  • Zwischenablage links einfügen (Ctl-v), Sprache „Englisch“ wird erkannt
  • Die Übersetzung erscheint rechts

Liste der bisherigen Experimente, die mit ChatGPT als Generator in englischer Sprache geführt wurden, wozu ggf. DeepL als Translator eingesetzt wurde. (Die einzelnen Beispiele werden als eigenstädige Blog-Beiträge gepostet und in diese Übersicht verlinkt.)

  1. Bus Stop Romance – GPT Poetry
  2. Programmieren mit ChatGPT – GPT liefert Programme in gewünschter Progarmmiersprache
  3. Father and Son – Ein Vater-Sohn-Konflikt im Mail-Dialog
  4. Schummelhilfe? – Schön wär’s! GPT löst Textaufgaben mit 3 Unbekannten *)
  5. Smartroom Chatbot – Bob (GPT) versteht Alice’s (Mensch) Gefühle  *)
  6. Unbekannte Programmieraufgabe – Ein Programm, das es (vermutlich) bisher nicht gab.
  7. Rolling down the highway – Song-Text und Musik-Annotation Neil Young Stil
  8. Obst sortieren – ChatGPT als Sprachmodell soll Bananen und Birnen auf Basis Länge und Breite unterscheiden *)
  9. Intelligente Obstkasse – Machine Learning mit ChatGPT *)
  10. Reverse Prompting - Generieren eines Prompts zu vorgegebenem Text
  11. Winds from the past - ChatGPT Co-writing – Eine Story entwicklen im Wechsel zwischen Autor und ChatGPT
  12. Winds from the past - How the story ends – ChatGPT generiert ein mögliches Ende des Story und einen Klappentext
  13. Mensch oder Maschine - Wer war's?
  14. Gerade oder Ungerade? - Ein Modell-Problem für KI *)
  15. Sinn, Sinnlos, Unsinn - ChatGPT verweigert sich

(More to come)

Alle Beispiele mit ChatGPT auf Basis GPT 3.5 (kostenfrei)

*) Anm.: Beispiele aus den „KI-Stories für den Informatikunterricht NRW“ (s. Blog “KI-Modelle für den Informatikunterricht)

Wir werden die Blogs mit einer adäquaten, neuen Autorenschaft-Angabe für generierte Ergebnisse kennzeichnen, wie im Songtext-Beispiel #7:

  • Lyrics & Music: BT
  • Titel & Prompt: BT
  • Generator: ChatGPT
  • Translator: n/a
  • Editing: BT
  • Authoring: BT
  • Credits: Prompt inspired by Neil Young: "Barn"

InterScience-Akademie für Algorithmik

Der vorliegende Blog-Text mit klassischer Autorenangabe ist nicht-generiert (soweit wir wissen).

 


KI-Modelle für den Informatik-Unterricht

Kommentiertes Inhaltsverzeichnis

Bernhard Thomas – Ulrich Trottenberg

Interscience Akademie für Algorithmik

Sept. 2021 – Update Mai, August 2022, Jan, März 2023

Anm.: Das Update Jan 2023 erweitert die KI-Stories explizit um eine Reihe von Beispielen rund um den Einsatz von KI-Sprachmodellen, insbesondere ChatGPT. Viele Beispiele, Experimente und Analysen mit ChatGPT findet man in unserer GPT-Blog-Serie (Link s. [1] am Ende).

 

Das Ziel dieser Serie von KI-Beispielen (KI-Stories) für die Schule ist die Heranführung  an eine Auswahl von KI-Methoden.

Die Motivation ist dabei stets die Frage: Kann eine KI lernen, die vorliegende Aufgabe zu lösen? Präziser heißt das: Mit welcher Methode des maschinellen Lernens und auf welchem Wege kann ein System dies lernen? Geht das überhaupt, und wenn ja, wie gut? Wie macht das der lernende Mensch, als Kind, als Schüler*.

Das Grundkonzept der KI-Stories basiert auf vier praxisorientierten Prinzipien:

  1. Die Aufgabenstellungen für die KI kommen stets aus einem einfachen Kontext, wie er aus dem Schulunterricht oder dem Alltagsleben bekannt ist.
  2. Die KI-Methoden werden im Unterricht mit einfachen Mitteln wie Papier und Farbstift, Geodreieck oder durch Spiele nachvollzogen, d.h. die Schüler* verstehen, indem sie in die Rolle der KI schlüpfen.
  3. Für die KI-Stories werden Python-Programme (sog. Notebooks) bereitgestellt. Im Text werden wesentliche Teile und der Ablauf erklärt. Dies ist gedacht für Lehrer* oder Schüler*, die sich mit der Programmierung befassen wollen.
  4. Zu jeder KI-Story gibt es eine “KI-Toolbox”: Eine Reihe von umgangssprachlichen, verständlichen Befehlen, mit denen die Schüler* intuitiv und interaktiv mit der KI-Aufgabe experimentieren können. Dies ist online per Browser, d.h. ohne lokale Installation, möglich.

Diese Übersicht gibt neben dem Titel  der Story eine kurze Erläuterung des Beispiels.

Die zugehörigen ausführlichen Texte und Programme der Stories sind als Grundlage zu verstehen. Je nach Einsatzzweck (hier: Schule) können daraus zielgruppenspezifisch vollständige Unterrichtseinheiten didaktisch aufbereitet werden. Dabei ist jeweils der Stand der Mathematik-Kompetenz der Jahrgangsstufe / Schulform zu berücksichtigen.

Es kann dagegen für den Unterricht grundsätzlich vermieden werden, die teilweise komplexe Theorie (Mathematik) zu den Verfahren darzustellen und zu erklären. Auch die teilweise exotisch klingenden Bezeichnungen der Methoden werden weitgehend vermieden. (Lediglich Künstliche Neuronale Netz werden gelegentlich erwähnt, da dieser Begriff schon in der Alltagssprache weit verbreitet ist.)

Die Tabelle  A.) zeigt als Übersicht  die Titel der KI-Stories. Die Kennzeichnungen A, S, I deuten an, dass das Beispiel aus dem Bereich des Alltagslebens, dem schulischen Umfeld stammt oder auf einen Internet-Service zurückgreift. Die Reihenfolge der Beispiele in der Übersicht ist dagegen ohne weitere Bedeutung; sie entspricht eher der Entstehungsreihenfolge.

Nur für Interessierte  mit Hintergrundwissen über KI-Methoden ist am Ende in Tabelle B.) eine Übersicht der in den Beispielen verwendeten Verfahren und Varianten als Referenz zusammengestellt. Sie sollte für den Unterricht keine Rolle spielen.

A. Tabelle der Themen

# Thema
01 KI lernt gerade und ungerade Zahlen zu unterscheiden S
02 KI lernt Gleichungen mit 3 Unbekannten lösen (3x3 Teil 1) S
03 Pizza-Bringdienst - KI lernt Vorhersagen zu machen ohne die Lösung zu kennen (3x3 Teil 2) A
04 KI lernt aus Erfahrung Vorhersagen zu machen (3x3 Teil 3) A
05 KI lernt PKWs zu klassifizieren (PKW Teil 1) A
06 KI bestimmt eine PKW Klasseneinteilung selbstständig
ohne Vorgaben
(PKW Teil 2)
A
07 KI lernt Größer und Kleiner zu unterscheiden S
08 KI lernt Obstsorten zu unterscheiden (Obstsalat Teil 1) A
09 Erweiterte Aufgaben für die intelligente Scanner-Kasse (Obstsalat Teil 2) A
10 Scanner-Kasse lernt Obstsorten zu unterscheiden
ohne Vorgaben
(Obstsalat Teil 3)
A
11 KI-Unterstützung: Was ist wichtig? A
12 KI lernt quadratische Gleichungen zu lösen S
13 KI lernt die Umkehrmatrix für Gleichungen mit 3 Unbekannten (3x3 Teil 4) S
14 KI lernt die Formel zur Lösung von quadratischen Gleichungen S
15 KI lernt Zählen (Zählen Teil 1) S
16 KI lernt Abzählen (Zählen Teil 2) S
17 KI lernt Wetter-Apps zu bewerten A
18 Größer/Kleiner unterscheiden lernen – KI-Varianten S
19 Mein Smartes Zimmer - Chatbot lernt Anweisungen zu verstehen und auszuführen A
20 NN lernt Klassifizieren (am Beispiel Obstsorten) A
21 KI lernt die kleinste Zahl aus einer Reihe von Zahlen zu finden S
22 Ein Robot lernt Richtungsmuster zu erkennen (directions Teil 1) A
23 Escape Room: Ein Robot lernt Richtungshinweise auszuwerten
(directions Teil 2)
A
24 Hunting Fox – Weg zum Erfolg finden A
25
Stille Post - international  *)
I
26 Unmögliche Bilder *)
I
27 Drohnen über dem Wald
A
28
Eine Geschichte im Wechsel schreiben **)
I
29
"Bin ich cool oder bin ich blöd" - Rap-Texten **)
I
30 Programmieren mit ChatGPT **) I

*) Vortrainierte KI-Anwendungen mit Internet-Zugang

**) Vortrainiertes KI-Sprachmodell (ChatGPT) mit Internet-Zugang

Stand Jan. 2023: Alle Themen (außer I) mit Jupyter Notebooks, online ausführbar z.B. in Google Colab; kursive Nummern: noch ohne ausführlichen „Story“-Text

#01 KI lernt gerade und ungerade Zahlen zu unterscheiden

Aus vorgelegten 6-stelligen Zahlen soll ein ML-Verfahren lernen, Zahlen nach gerade / ungerade zu klassifizieren. Wie lernt ein Kind diese Unterscheidung? Die „intellektuelle Fähigkeit“ besteht darin, Auffälligkeiten in den Trainingszahlen zu erkennen und diese mit „gerade“ oder „ungerade“ zu verbinden.

KI-Methode: Data Analytics – Categorical Naïve Bayes
Nachvollziehbarkeit: Tabellen, Häufigkeiten auszählen, ggf. mit Excel
Eigene Variationen: Bunte Kärtchen statt Zahlen, Vielfache von 5

 

#02 KI lernt Gleichungen mit 3 Unbekannten lösen (3x3 Teil 1)

Ein Logikrätsel und ein Pizza-Bringdienst bieten 2 Beispiele typischer Textaufgaben, die jeweils zu 3 Gleichungen mit 3 Unbekannten führen. Die ML Lernaufgabe besteht darin, die Lösungen zu finden. Eine ungewöhnliche Verwendung eines einfachen künstlichen neuronalen Netzes (KNN) zur Iteration der Lösung.

KI-Methode: Machine Learning mit KNNs (Lineares Perzeptron), Backpropagation
Nachvollziehbarkeit: Rechnen mit der KNN Struktur, Ausprobieren, Übergang von Text zu Gleichungen, bekannte Lösungsmethode aus dem Unterricht.
Eigene Variationen: Weitere Textaufgaben, 2 Gleichungen mit 2 Unbekannten, einfache lineare Gleichung.

 

 

#03 Pizza-Bringdienst - KI lernt Vorhersagen zu machen ohne die Lösung zu kennen (3x3 Teil 2)

Die Textaufgabe zum Pizza-Bringdienst wird ergänzt durch die Anforderung, Vorhersagen für die nächste Woche abzuleiten. Vorgegeben sind die „Erfahrungen“ der zurückliegenden drei Tage, in Form der 3 Gleichungen. Die klassische Lernaufgabe für ein KNN (lineares Perzeptron).

KI-Methode: Machine Learning mit mehrschichtigen KNNs, Lineare Aktivierung, Backpropagation
Nachvollziehbarkeit: Rechnen mit der KNN Struktur, Ausprobieren
Eigene Variationen: Lösungsberechnung und Anwendung der Ergebnisse auf Vorhersagezeitraum

 

#04 KI lernt aus Erfahrung Vorhersagen zu machen (3x3 Teil 3)

Der Pizza-Bringdienst sammelt Daten über einen längeren Zeitraum und will daraus eine Planungsvorhersage für die nächste Woche erstellen. Variation der Aufgabe #03. Vorgegeben sind die gesammelten „Erfahrungen“  als Trainingsdaten. Planungsdaten folgen aus Anwendung des trainierten ML-Modells auf die nächsten Wochentage (Testdaten).  Die klassische Lernaufgabe für ein KNN-Modell (lineares Perzeptron).

KI-Methode: Machine Learning mit linearem Perzeptron, Backpropagation
Nachvollziehbarkeit: Rechnen mit der KNN Struktur, Ausprobieren, Papier-und-Bleistift-Algorithmus
Eigene Variationen: Spielen mit unterschiedlichen Daten-Szenarien, Aufgabe mit E-Fahrzeugen.

 

#05 KI lernt PKWs zu klassifizieren (PKW Teil 1)

Anhand von drei Kenndaten sollen PKWs als Fahrzeuge der Oberklasse, Mittelklasse, Kompaktklasse oder Kleinwagenklasse klassifiziert werden.  Mit Trainingsbeispielen wird ein Entscheidungsbaum (decision tree) trainiert, der dann für die Klassifikation neuer Fahrzeuge eingesetzt wird. Ebenfalls ein typisches Beispiel für „überwachtes Lernen“ (supervised learning).

KI-Methode: Machine Learning mit Entscheidungsbäumen, Klassifikation
Nachvollziehbarkeit: Aufmalen von Entscheidungsbäumen, Zuordnungen ausprobieren, Korrektur der Verzweigungsbedingungen.
Eigene Variationen: Andere oder mehr Kenndaten, Variation der PKW-Klassen ( 6 bzw. 3), Anwendung auf E-Fahrzeuge.

 

#06 KI bestimmt eine PKW Klasseneinteilung selbstständig ohne Vorgaben (PKW Teil 2)

Ein Fahrzeug anhand von Beispiel-PKWs in vorgegebene Fahrzeugklassen einzuordnen ist eine Sache – geeignete Fahrzeugkategorien für die Einordnung erst einmal festzulegen, ist eine andere, vielleicht schwierigere Sache. Eine “datenanalytische“ Methode der KI findet in den Daten Gruppen, die man als mögliche PKW-Klassen identifizieren kann. Ein typisches Beispiel für „unüberwachtes Lernen“ (unsupervised learning).

KI-Methode: Clustering (k-means), Zentralpunkte
Nachvollziehbarkeit: Imitieren des KI-Verfahrens, Punktdiagramm für 2 Kenndaten, Cluster per Augenmaß durch „Kreise“ abgrenzen und Mittelpunkte einzeichnen.
Eigene Variation: Verschiedene Anzahl Cluster, Gruppenbezeichungen finden, neue Fahrzeuge einzeichnen.

 

#07 KI lernt Größer und Kleiner zu unterscheiden

Lernt jedes Kind – früher oder später. Aber wie lernt es das? Und wie eine KI? Anhand von Zahlenpaaren lernt ein einfaches Neuronales Netz, welche Zahl die größere ist, und kann das danach für neue Zahlenpaare entscheiden. Einigermaßen sicher.

KI-Methode: Lineare Regression, Machine Learning mit KNN, nichtlineare Aktivierung, 2 verschiedene KNN Strukturen.
Nachvollziehbarkeit: Punktdiagramm, KNN rechnerisch auswerten. Raten der Gewichte.
Eigene Variation: KNN-Varianten vergleichen

 

#08 KI lernt Obstsorten zu unterscheiden (Obst Teil 1)

Eine vereinfachte Scanner-Kasse erfasst eine Reihe von Merkmalen bei Obststücken: Breite, Länge, Gewicht und Farbe. Sie soll zunächst lernen, Bananen und Birnen anhand von 2 Merkmalen zu unterscheiden. Das KI-Verfahren lernt anhand von Beispielen Bananen von Birnen zu „trennen“ und entscheidet dann, zu welcher Obstsorte weitere Obststücke gehören.

KI-Methode: SVM-Klassifikation, lineare Trennlinie / Korridor (SVM = „Support Vector Machine“)
Nachvollziehbarkeit: Manueller „Algorithmus“ mit Punktgrafik. Ausprobieren verschiedener gerader Trennlinien.
Eigene Variation:  Gerade Linien, gekrümmte Linien, andere 2 Obstsorten aus dem Datensatz, Preisberechnung durch Scanner-Kasse

 

#09 Erweiterte Aufgaben für die intelligente Scanner-Kasse (Obst Teil 2)

Die „intelligente“ Scanner-Kasse soll nun verschiedene 2 Obstsorten mittels bis zu vier Merkmalen klassifizieren. Welche Merkmale sind am wichtigsten für die Unterscheidung? Wie lernt die Scanner-Kasse alle 4 Obstsorten unterscheiden? Es wird komplizierter, aber im Wesentlichen verwendet sie das gleiche Verfahren wie in Teil 1.

KI-Methode: Lineare SVM-Klassifikation, paarweise und „Eine gegen den Rest“ Separierung, Entscheidungsfunktion
Nachvollziehbarkeit: Vereinfachung (Feature Reduktion), Mehrfach-Trennlinien.
Eigene Variation:  Gerade Linien, gekrümmte Linien, Diskussion der „Lern-Schwierigkeiten“

 

#10 Scanner-Kasse lernt Obstsorten zu unterscheiden ohne Vorgaben (Obst Teil 3)

Die Scanner-Kasse bekommt nur Obststücke vorgelegt ohne Angabe, um welches Obst es sich handelt. Sie lernt anhand der Merkmalsausprägungen, Obststücke zu gruppieren, z.B. in 4 Gruppen und sortiert neue Stücke (anhand der Merkmale) in die Gruppen ein. Das KI-Verfahren bildet die Gruppen nach dem Prinzip der „Ähnlichkeit“ bezogen auf die Merkmalsdaten. Aber - was ist dann was?

KI-Methode: k-Means Clustering, Confusion Matrix, Skalierung
Nachvollziehbarkeit: Grafik mit einfarbigen Punkten, nach Augenmaß umkreisen von zusammengehörigen Punkten in 4 Gruppen
Eigene Variation:  Versuche mit 2 oder 6 Gruppen, Zuordnung: welche ist (z.B.) die Bananen-Gruppe

 

#11 KI-Unterstützung: Was ist wichtig?

Möglichst viele Merkmale sind nicht unbedingt besser für Entscheidungen und machen auch die maschinellen Verfahren komplizierter. Welche Objekt-Merkmale (Features) sind ausschlagegebend für eine Klassifizierung? In Obst Teil 2 wurden zwei von vier Merkmalen durch Probieren als dominierend identifiziert. Auch hierfür kann man eine maschinelle Methode einsetzen.

KI-Methode: PCA (Hauptkomponenten-Analyse), Abbildung auf Feature-Achsen
Nachvollziehbarkeit: In Punktwolken die Richtungen der größten Ausdehnung einzeichnen, Interpretation im Merkmalsraum
Eigene Variation:  Obst-Datensatz variieren. PCA mit 2, 3 oder 4 Komponenten analysieren. Interpretation als Merkmale.

 

#12 KI lernt quadratische Gleichungen zu lösen (QGln Teil 1)

Hier wird nicht die Lösungsformel ausgerechnet, sondern ein (mehrschichtiges) soll KNN lernen, eine Lösung zu finden. Zum Training werden Zahlenpaare vorgegeben, die entstehen, wenn die Gleichung für verschiedene Werte ausprobiert wird. Mit dem Trick, Input (x) und Output (y) des KNN zu vertauschen, kann das KNN trainiert werden, eine Lösung zu berechnen.

KI-Methode: Mehrschichtiges KNN mit sigmoider Aktivierung, universelle Approximationseigenschaft von KNNs
Nachvollziehbarkeit: Zeichnen der Kurve zur Gleichung und der Umkehrung (x,y vertauschen)
Eigene Variation:  Verschiedene quadratische Gleichungen, Fälle mit 1 und 2 Lösungen.

 

#13 KI lernt die Umkehrmatrix für Gleichungen mit 3 Unbekannten (3x3 Teil 4)

Drei Gleichungen mit 3 Unbekannten kann man in der sogenannten Matrix-Form schreiben, d.h. mit einer 3x3 Matrix der Koeffizienten, und der rechten Seite als 3x1 Matrix (Vektor). Ein KNN lernt, die „Umkehrmatrix“ (Inverse) zu bestimmen, mit der man die Lösung direkt ausrechnen kann.

KI-Methode:  Lineares KNN mit „dichter“ Verknüpfung (Dense Layer), universelle Approximationseigenschaft von KNNs
Nachvollziehbarkeit: Probieren, Rechnen, Korrigieren mit Papier und Bleistift
Eigene Variation:  Besondere Matrizenformen, Vergleich mit direkten Lösungsalgorithmen aus dem Unterricht

 

#14 KI lernt die Formel zur Lösung von quadratischen Gleichungen (QGln Teil 2)

Für quadratische Gleichungen gibt es Lösungsformeln, die (a,b,c)- oder die (p,q)-Formel. Das KI-Verfahren (hier wieder ein KNN) soll aus eine Reihe von verschiedenen Gleichungen mit den Koeffizienten a,b,c und vorgegebener Lösung lernen, die Lösung von anderen Gleichungen zu bestimmen. Variante: Ein KNN soll lernen, die entsprechenden Koeffizienten der Lösungsfomel zu bestimmen.

KI-Methode: Mehrschichtiges KNN mit sigmoider Aktivierung, universelle Approximationseigenschaft von KNNs
Nachvollziehbarkeit: Beispielhafte Zuordnung von (a,b,c)-Tripeln zu Lösungen, bzw. zu den Koeffizienten der p-q-Formel
Eigene Variation:  Möglichkeiten grafischer Darstellung

 

#15 KI lernt Zählen (Zählen Teil 1)

Jedes Kind lernt Zählen, von 1 bis 10, von 10 bis Hundert, aber wie? Was kommt nach Eintausendachthundertundzwölf? Gleich zwei KI-Methoden lernen die Nachfolgerregel, eine datananalytische und ein neuronales Netz.

KI-Methode: Zweischichtiges, minimales KNN, Lineare Regression
Nachvollziehbarkeit: Wie hat man Zählen gelernt, Trainingsdaten und grafische Darstellung
Eigene Variation:  Negative Zahlen

 

#16 KI lernt Abzählen (Zählen Teil 2)

Eine andere Art des Zählens: Abzählen von Objekten, z.B. rote Legosteine in einer Box. Wie lernt man das? Für KI ist das keine so einfache Aufgabe. Der Lernprozess besteht aus zwei einfacheren Lern-Phasen, für die u.a. unterschiedliche KI-Methoden zusammen kommen.

KI-Methode: Nicht-lineare SVM + KNN, KNN mit Transfer Learning
Nachvollziehbarkeit: Imitieren der zwei Phasen mit physischen Objekten oder Zahlen
Eigene Variation:  Worte statt Legosteine

 

#17 KI lernt Wetter-Apps zu bewerten

Welche der 4 Wetter-Apps auf dem Smartphone macht die beste Vorhersage für das Wochenende? Erfahrungen über mehrere Wochen werden protokoliert und dienen als Trainingsdaten. Hier gibt es gleich mehrere KI-Methoden, die aus der Erfahrung lernen und Vorhersagen machen, welcher App man trauen sollte.

KI-Methode: Methoden im Vergleich: Naive Bayes, KNN, SVM Classifier, Decision Tree, Reinforcement
Nachvollziehbarkeit: Datenmodell verstehen, Protokolldarstellung, Auszählen für Naive Bayes
Eigene Variation:  Nachhalten der Voraussagen, Nach-Training der Modelle.

(geplant)

 

#18 Größer / Kleiner unterscheiden lernen – KI-Varianten

Anhand dieser einfachen Lernaufgabe werden neben dem nichtlinearen Perzeptron (s. #07) zwei weitere grundlegende Formen von Neuronalen Netzen erläutert: NN mit separaten Inputströmen und klassifizierende NN.

KI-Methode: Regression NN, Categorical NN, separate Inputs, Gewichte-Analyse.
Nachvollziehbarkeit: Nachrechnen der Modelle, Einfluss der Gewichte, Aufgaben-Analogie mittels Farbkärtchen.
Eigene Variation: Farbkärtchen-Lernaufgaben, Übertragung auf Obst-Klassifikation

 

#19 Mein Smartes Zimmer - Chatbot lernt Anweisungen zu verstehen und auszuführen

Ein "smartes Zimmer" (Chatbot) lernt im Dialog verstehen, ob es ein Fenster öffnen oder schließen soll und das Licht an- oder ausschalten soll.

KI-Methode: Einfacher endlicher Automat, variierender Text-Input (keine NLP Verfahren), Reinforcement.
Nachvollziehbarkeit: Datenmodell und Dialog-Ablauf verstehen
Eigene Variation: Erweiterung, anderer Konversationskontext, andere Aktionen

 

#20 Neuronales Netz lernt Klassifizieren von Obstsorten  (Obst Teil 4)

Für die Unterscheidung von Obstsorten soll ein Neuronales Netz lernen, Objekte zu klassifizieren. D.h. die Scanner-Kasse wird mit einer anderen Art von KI als in Teil 1 ausgestattet. Auch hier werden die einzelnen Obststücke durch Breite, Länge, Gewicht und Farbe erfasst, und diese Informationen werden für das Training zusammen mit der Sorte (Klasse) für das NN geeignet aufbereitet.

KI-Methode: Klassifizierendes Neuronales Netz, zwei und mehr Klassen, Wahrscheinlichkeiten
Nachvollziehbarkeit: Berechnen eines Vorwärts-Durchlaufs des NN, grafische Modellierung mit Open Roberta NN. Versuchen, aus einer Reihe von Input-Daten selbst auf die Klasse zu schließen
Eigene Variation: Im Open Roberta NN Gewichte manipulieren. Verschiedene Feature-Kombinationen.

 

#21 KI lernt die kleinste Zahl aus einer Reihe von Zahlen zu finden

Es gilt, die kleinste Zahl aus einer Reihe von z.B. 10 Zahlen zu finden. Und zwar durch Angabe der Position innerhalb der Zahlenreihe.  Kann ein Neuronales Netzt das allein aus vorgelegten Beispielen lernen? Wie würde man das aus Beispielen selbst lernen, d.h. ohne „zu wissen“, dass man die kleinste Zahl suchen soll?

KI-Methode: Klassifizierendes NN, Mehrfach-Klassen, StandardSkalierung, Softmax, one-hot Kodierung
Nachvollziehbarkeit: Ablauf eines Vorwärts-Durchlaufs des NN (ohne Rechnen). Versuchen, aus Zahlenreihen und Vorgabe einer Positionsnummer die Aufgabe zu erkennen
Eigene Variation:  Übergang von Größer/Kleiner zu „Kleinste Zahl finden“. Variation der Aufgabenstellung, z.B. größte Zahl finden, verschiedene Reihenlänge, one-hot Kodierung für Beispielklassen erstellen.

 

#22 Ein Robot lernt Richtungsmuster zu erkennen

Als Vorstufe für die Escape Room Aufgabe (#23) soll eine KI lernen einfache Muster in einem 3x3 Feld zu erkennen Z.B. die beiden Diagonalen. Zunächst werden die Gewichte (Filter) von Hand vorgegeben und modifiziert um das Lernziel zu erreichen. Im zweiten Schritt wird das NN darauf trainiert. Es soll experimentiert und erklärt werden können, warum das NN ein nicht-diagonales Muster als eine der beiden Diagonalen interpretiert.

KI-Methode: Lineares / nichtlineares Perzeptron, einfaches Convolutional NN, Filter
Nachvollziehbarkeit: Verwenden von Schablonen zum Erkennen der Diagonalen. Umsetzung in der OpenRoberta/TF-Playground Umgebung (IAIS), Setzen und modifizieren der Gewichte von Hand. Erklären der Entscheidungen. Variante: Ausschließlich Verwendung von ganzen nicht-negativen Zahlen.
Eigene Variation: Weitere Muster erkennen, 4x4 Feld

 

#23 Escape Room: Ein Robot lernt Richtungsanzeigen erkennen

Ein Robotfahrzeug soll seinen Weg aus einem „Escape Room“  finden, oder durch ein Labyrinth oder durch einen Stadtteil von New York (bildlich). Der Weg ist durch Richtungshinweise markiert. Die KI des Robots muss lernen, die Richtungszeichen zu verstehen, d.h. in die richtige Bewegung umzusetzen.

KI-Methode: Tiefes NN, einfaches Convolutional NN
Nachvollziehbarkeit: Verwenden von Schablonen zum Entdecken und Deuten von Richtungshinweisen, in Bewegungseinheiten übersetzen, kleines Vehikel bewegen je nach Lernstand
Eigene Variation: Gestörte Richtungshinweise, andere / weitere Richtungszeichen, Stoppzeichen, „von A nach B“

 

#24 Hunting Fox – Weg zum Erfolg finden

Ein simuliertes Tier (Fuchs- Robot) erkundet sein Habitat (seine Umwelt) auf der Suche nach Nahrung (Rewards). In Bau-Nähe findet sich nur wenig, aber es gibt einen weiter entfernten Flecken mit reichlich Nahrung. Wie lernt er den Weg dorthin?

KI-Methode: Reinforcement Learning, Q-Learning, Tiefes NN
Nachvollziehbarkeit: Spielerisch auf linearem oder quadratischen Spielplan
Eigene Variation: Veränderliche Rewards, zwei ergiebige Ressourcen in unterschiedlichen Richtungen, Fehlleitende Reward-Verteilung

 

#25 Stille Post - International

Nachrichten werden mit einem intelligenten Internet Service in verschiedene Sprachen übersetzt und weitergeleitet (Sprach-Pipeline). Schüler* verschiedener Muttersprachen lesen, korrigieren oder verfälschen den Text in ihrer Sprache und leiten ihn übersetzt weiter. Was passiert?

Messages are translated and forwarded into different languages using an intelligent Internet service (language pipeline). Students* of different native languages read, correct or falsify the text in their language and forward it translated. What happens?

Mesajlar akıllı bir internet hizmeti (dil hattı) kullanılarak farklı dillere çevrilir ve iletilir. Farklı anadillere sahip öğrenciler* kendi dillerindeki metni okur, düzeltir veya yanlışlar ve çevirisini iletir. Ne oldu?

(Übersetzung DeepL)

Nachvollziehbarkeit: Umgang mit DeepL, Bewertung der Übersetzung einfacher Texte
Eigene Variation: Spiel-Varianten, eigene Übersetzung eines Textes gem. Englischunterricht, Vergleich mit maschineller Übersetzung, Verwendung Sprach-Ein-/Ausgabe auf dem Smartphone in einem Auslandsszenario

 

#26 Unmögliche Bilder

Mittels Texteingabe können mit einem Online KI-Service (DALL-E) Bilder erzeugt werden, teils Phantasie, teils realistisch. Welche “Bildbeschreibung” liefert welche Bilder? Schüler* versuchen, bestimmte Ziel-Bilder so gut wie möglich zu generieren. Die KI versteht nur Englisch, daher Texteingaben vorher mit DeepL (#25) übersetzen.

Nachvollziehbarkeit: Umgang mit DALL-E mini, ggf DALL-E 2, Effekt von Textänderungen, Wiederholungen etc. Versuch, bestimmte Bildergebnisse zu erzeugen
Eigene Variation: Kurzbeschreibung eines realen Bildes /Fotos als Eingabetext.  Verwendung, Tipps und Tricks aus dem Internet herausfinden (da diese Quellen meist auf Englisch sind, empfiehlt sich der Versuch einer automatischen Übersetzung.)

 

#27 Drohnen über dem Wald

Drohnen sollen Umweltschäden an verschiedenen Punkten in einem Waldgebiet fotografieren. Sie fliegen autonom, d.h. selbstgesteuert nach einem Routenplan. Dieser soll alle Punkte genau einmal anfliegen und dabei eine möglichst kurze Strecke zurücklegen, z.B. um mit der Batterieladung auszukommen. Eine KI lernt die beste Route und übermittelt sie an die Drohne als Routenplan.

Nachvollziehbarkeit: An Beispielen wird mit Papier und Farbstift bzw. Zirkel und Lineal versucht, die kürzeste Route “von Hand” zu finden. Das (1-dim) SOM-Verfahren (SelbstOrganisierende Map) kann spielerisch simuliert werden.

Eigene Variationen: Karten aus GoogleMaps, Einsatz zweier oder mehr Drohnen für das gleiche Gebiet. Umrechnung in Zeitaufwand. Einfluß von Wetter, z.B. Wind

 

#28 Eine Geschichte im Wechsel schreiben

Wenn zwei Schüler/innen zusammen eine Geschichte erfinden und im Wechsel aufschreiben, warum nicht auch ein Schüler bzw eine Schülerin im Wechsel mit einem KI-System? ChatGPT ist ein solches und zur Zeit auch in der Schule einsetzbar. Es reagiert auf Vorgaben mit einem Text. So kann im Wechsel zwischen Schüler und Computer eine Geschichte "gesponnen" werden und am Ende in der Klasse vorgestellt werden. (Link: s. [2] am Ende)

Nachvollziehbarkeit: Schüler/innen erfinden ausgehend von einer Anfangsidee eine Geschichte und lernen dabei, dass und wie jeweils die Vorgabe in einem Schritt die Geschichte im nächsten Schritt beeinflußt bzw. steuert. Schüler können "auf ein gemeinsames" Ziel der Geschichte hin arbeiten oder auch "gegeneinander". Diskussion, ob und wie der ChatBot "lernt".

Eigene Variationen: Wechsel reihum zwischen drei Schülern und ChatGPT. Aufforderung, ein mögliches Ende der Geschichte zu generieren. Text für einen Buch-Umschlag generieren lassen.  Feststellen, ob sich ChatGPT an Details der Geschichte "erinnern" kann. Bilder zum Text erstellen lassen, s. #26.

 

#29 "Bin ich cool oder bin ich blöd?" - Rap-Text

Eine emotionale Situation, z.B. Krise in der Schule, im Job, Zoff mit der Clique, Problem in der Liebe oder mit den Eltern etc.,  soll in einem von ChatGPT generierten Rap-Text beschrieben werden. Das Ende geht gut aus: es bahnt sich eine Lösung an. ChatGPT kann online genutzt werden, um Texte in verschiedener Form und Stilrichtungen zu generieren, z.B. Gedichte und Songtexte.  Schüler/innen geben Stichworte und den Stil (Rap) vor, ggf. sogar im Stil eines bekannten Sängers.

Nachvollziehbarkeit: Schüler/innen geben eigene Stimmungen vor ("Das finde ich blöd", "Ich fühle mich gut", "Habe ein Problem mit ...") und prüfen, ob der generierte Text dazu passt. Erstellen vorher einen eigenen Kurz-Text (Rap-Stil, Gedicht, Freitext) und reflektieren, wie sie darauf gekommen sind. Vergleich mit generiertem Text.

Eigene Variationen: In Kleingruppen (2 oder 3 Schüler/innen) gemeinsam einen Rap-Text mit ChatGPT generieren. Ggf. aus eigener Sicht korrigieren bzw. verbessern. Vortrag vor der Klasse, Bewertung. Mit geeignetem Prompt Zusammenfassung eines generierten oder vorhandenen Rap-Text von ChatGPT erstellen lassen. Umkehrung: Zu einem Rap-Text einen Prompt erzeugen lassen. Wie sieht ein Prompt dazu aus?

 

#30 Programmieren mit ChatGPT

Mit ChatGPT kann man auch einfach Computer-Programme generieren. Was das Programm tun soll, ist in der Aufforderung (Prompt) möglichst klar zu beschreiben. Z.B. „Hello World – was für ein schöner Tag heute am <Datum>“ ausgeben. Oder den GGT von zwei Zahlen bestimmen lassen. Auch die Programmiersprache kann man wünschen. Am besten Python. Durch copy&paste z.B. in eine Google Colab Notebook kann das generierte Programm online getestet werden.

Nachvollziehbarkeit: Einfache Programme Befehl für Befehl durchgehen. Ggf. Fehler finden. Programm in Google Colab kopieren und starten: Treten Fehlermeldungen auf? Tut das Programm, was erwartet wird?

Eigene Variationen: Im Prompt Hinweise bzw. Vorgaben machen. Bei fehlerhaftem Programm ChatGPT auffordern, den Fehler zu finden und zu korrigieren. Effekt beobachten von einfachem, unspezifischen Prompt („Schreibe ein Programm, das mir einen guten Tag wünscht“) zu „angereicherten“ Prompts („Schreibe ein Programm, das mir einen guten Tag wünscht und mir dazu sagt, was für einen Tag wir heute haben. Das Programm soll in Python geschrieben sein und mich nach meinem Namen fragen“)

 

B. Tabelle der KI-Methoden (Data Analytics, Machine Learning, Pre-trained Models)

Verfahren Variante Typ Verwendet in:
Entscheidungsbaum Binär Categorical #05, #17
Naive Bayes Categorical #01, #17
Support Vector Machine Linear, multi-class, ovo, ovr Categorical #08, #09
Support Vector Machine Nicht-linear, rbf kernel Categorical #16, #17
K-means Clustering Confusion matrix Categorical #06, #10
Hauptkomponenten-Analyse PCA Feature #11
Feature Regularisierung StandardScaling Feature #10, #20, #21
Encoding One-hot Feat. / Target #18, #20
Lineare Regression Regressional #07, #15
Neuronale Netze Lineares Perzeptron (LP) Regressional #02, #04
Neuronale Netze Multi-layer LP (MLP) Regressional #03, #15
Neuronale Netze Nicht-linear, multi-layer NN Regressional #07, #18
Neuronale Netze MLP, sigmoid Aktivierung Regressional #12, #13, #14
Neuronale Netze One-hot Target Categorical #18, #20
Kombiniert (Transfer Learn.) SVM+KNN, KNN+KNN Cat. / Regr. #16
ChatBot Dialog, ChatGPT, PE*) #19, #28-30
Neuronale Netze CNN (Convolutional NN) Categorical #23
Reinforcement Q-Learning Regr. / Cat. #24
Sprachübersetzung DeepL Online #25
Encoder / Decoder Dall-E 2, GPT, PE*) Online #26
SOM-Netz 1-dim für TSP **) Unsupervised #27
GPT 3.5 GPT, ChatGPT Online #01, #03, #08, #19, #28-30
XAI (Ansätze) Effektanalyse Input / Gewichte Categorical #22, #23

 

Anmerkungen:

  • Jupyter Notebooks, Python Libraries, Durchführung z.B. auf Google Colaboratory Umgebung (Internet / Browser)
  • *) PE - Prompt Engineering
  • **) TSP - Travelling Salesman Problem, Vehicle Routing Problem

Links:

[1] https://interscience-akademie.de/2023/03/02/chatgpt-experimente-und-erfahrungen-mit-open-ais-generative-pretrained-transformer/

[2] https://interscience-akademie.de/2023/03/06/gpt11-winds-from-the-past-chatgpt-co-writing/

 


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/

 


Prozente, Prozente! Oder: Prozente lügen nicht

Prozente? Das kann doch jeder!

  • 10% Rabatt auf 120 Euro sind 12 Euro, also rabattierter Betrag 108 Euro
  • 19% MWSt auf 50 Euro ergeben 59,50 Euro Brutto
  • „Wir schenken Ihnen die Mehrwertsteuer!“ Heißt das 9,50 Euro Abzug vom Kaufpreis – oder 19% Abzug?

Da wird’s schon enger. Wenn etwas x = 59,50 Euro kostet und um 19% reduziert wird, errechnet sich der reduzierte Preis als x – x*0,19 = x*(1-0,19) = x*0,81 = 48,20 Euro. Um auf den ursprünglichen Nettopreis zu kommen, muss man x durch (1+0,19) teilen. Also 59,5/1,19 = 50.

Dieser Unterschied von „rauf“ und „runter“ macht schon  vielen Schwierigkeiten. In der Schule hatte die Prozentrechnung dafür noch gereicht. Es gibt – gerade in Zeiten von Corona – Unmengen von %-Aussagen. Aber was bedeuten sie?

  1. Rauf und runter

Was passiert, wenn wir in Folge abwechselnd 20% auf einen Betrag aufschlagen und dann wieder 20% abziehen? Also, beginnend etwa bei 100 Euro:

  • Plus 20% ergibt 120 Euro
  • Abzüglich 20% ergibt 120 – 24 = 96 Euro
  • Plus 20% ergibt 96 + 20%*96 = 96 + 19,20 = 115,20 Euro
  • Abzüglich 20%, ergibt 92,16 Euro,

Mathematisch gesehen wird bei „Plus“ der aktuelle Betrag mit (1 + 0,2) multipliziert, beim Abzug mit (1 – 0,2). Bei jedem „rauf und runter“ wird also mit (1+0,2)*(1-0,2) = (1-0,04) = 0,96 multipliziert. Das heißt zum einen, 20% rauf und 20% runter ergibt nicht den Ausgangswert, wie man meinen könnte, sondern einen geringeren Wert. Zum anderen: wenn man das wiederholt macht, wird der Wert jedes Mal um den Faktor 0,96 kleiner. Das ist eine exponentielle Folge, die auf Dauer gegen Null geht.

Wenn man sich fragt, wann der Wert sich auf die Hälfte reduziert hat, muss man schon mit Logarithmen arbeiten, oder aber die Folge „simulieren“. Ergebnis: nach 17 Schritten.

  1. Exponentielles Wachstum

Mit Prozenten kann man exponentielles Wachstum, oder dessen Gegenteil, erzeugen. Das ist jedem klar, der mal sein Sparguthaben mit Zinseszins gerechnet hat. Kommen auf einen Betrag von, sagen wir, 100 Euro  -2% Zinsen –  d.h. 2% „Strafzinsen“ -  so ist das Resultat 100 – 0,02*100 = 100*(1-0,02) = 100*0,98. Kommen darauf für einen weiteren Zeitraum ebenfalls 2% Strafzinsen, ergibt das 100*0,98*0,98 = 100*0,98² usw.

Wir haben also exponentielles Wachstum, wenn ein Wert „prozentual“ zunimmt, also mit jedem Zeitschritt K zu K‘ = K*q wird, wobei der Prozentsatz p% in q = 1+p/100 verrechnet wird. Nach t Zeitperioden ist ein Anfangswert K0 auf Kt = K0*q t   gestiegen – oder gefallen, je nachdem ob q > 1 oder q < 1 ist.

Damit haben wir auch eine einfache Erklärung für den Begriff „exponentiell“: Der Wachstumsfaktor für Kt berechnet sich mit t als Exponent.  Bei einem „linearen“ Wachstum hätten wir Kt = K0 + a*t, d.h. t als Faktor der Steigerungsrate (wenn a > 0).

In seinem Blogbeitrag „Exponentielles Wachstum“ (Link) erklärt Ulrich Trottenberg die Bedeutung von Exponentiellem Wachstum im Kontext der Corona Fallzahlen.

  1. Das Prozente-Rauf-und-Runter Spiel

Hier das Rauf-und-Runter als Spiel für zwei Personen (Nullsummenspiel). Zwei Personen X und Y haben je 100 Euro. Sie verabreden folgendes „Spiel“: Ein Zug besteht aus zwei Aktionen

  1. X gibt 20% seines Vermögens an Y
  2. Y gibt 20% seines Vermögens an X

Was passiert? Nach 5 Zügen, nach 10 Zügen? Nach unendlich vielen Zügen? Wer gewinnt und wieviel, in % des Startguthabens?

Hier zunächst die Antworten. Die Begründung findet sich als Anhang am Schluss.

  1. Nach 5 Zügen hat X 109,92 Euro, Y hat 90,08 Euro
  2. Nach 10 Zügen steht es: 110,98 Euro zu 89,02 Euro
  3. Nach unendlich vielen Zügen hat X 111,11 Euro, Y hat 88,89 Euro
  4. X gewinnt
  5. Sein Gewinn ist 11,11 %, der Verlust von Y ist 11,11 %, was klar ist wegen des Nullsummen-Spiels

 

  1. Kleine Zahlen – Große Prozente

Der CDU-Vorstand wählte vor kurzem den CDU Kanzlerkandidaten, in einer Stichwahl zwischen A. Laschet und M. Söder. Die Presse berichtete, dass 77,5 % der Stimmen für Laschet abgegeben wurden. Klingt gut, nach ordentlichen Prozenten. Aber was steckt dahinter?

Tatsächlich bestand der Vorstand aus 46 Mitgliedern, von denen sich 6 enthalten haben und 9 für Söder gestimmt haben. D.h. auf Laschet entfielen 31 Stimmen!

Die 77,5% berücksichtigen nur die Nicht-Enthaltungen. Alternativ wurden 67,4 % errechnet bei Berücksichtigung des gesamten Vorstands. Wir haben hier also zwei Prozentzahlen für das gleiche Ergebnis.

Schlimmer noch: was sollen 77,5% bedeuten, wenn es nur 46 Abstimmende gegeben hat. In Worten wäre eine Bedeutung: „Von je 100 Vorstandsmitgliedern stimmten 77,5 – nein, 67,4 - für Herrn Laschet. Nun gab es aber keine 100 oder mehr Vorstandsmitglieder, sondern nur 46.

Ein Fehler, der sehr häufig gemacht wird, unreflektiert: Kleine Zahlen in Prozente (pro Hundert) umzurechnen. Auch in wissenschaftlichen Arbeiten.

Wenn Sie lesen, dass bei 75% der Probanden ein neues Medikament wirksam war, dann klingt das nach viel. 50% klingt schon nicht mehr so gut. Was, wenn die Wirksamkeitsaussage sich dabei aber auf nur 9 Fälle bezieht?  Bei kleinen Zahlen sind außerdem Zufallsschwankungen üblich. Eine Abweichung um 2 Probanden macht das Ergebnis dann schon zu nur noch 58%. Die %-Zahlen vernebeln hier die Realität.

  1. Große Zahlen – kleine Prozente

Es gibt auch den umgekehrten Effekt.

In den täglichen Corona-Statistiken wird u.a. die Inzidenz angegeben, also die Anzahl Neuinfektionen über die vergangenen 7 Tage je 100.000 Bevölkerung 1). Damit hat man einen guten Vergleichswert, um z.B. die Entwicklung in den verschiedenen Ländern zu vergleichen.

Interessant wären natürlich Feinanalysen, um Bereiche mit besonders hohen oder niedrigen Inzidenzwerten zu erkennen. Die Stadt Köln hat diese Feinanalyse für sämtliche Ortsteile / Veedel veröffentlicht.

Der Bezirk Chorweiler hatte am 26.4. einen Inzidenzwert von 520. Die Ortsteile Hahnwald und Fühlingen 0 und Esch/Auweiler iregndwas zwischen 200 und 300 (Kölner Stadtanzeiger 29.4.2021). Das klingt nach viel für Chorweiler und Esch/Auweiler und wenig für Hahnwald und Fühlingen – weswegen es Chorweiler und Hahnwald auch in die TV-Nachrichten gebracht haben.

Nach Definition des Inzidenzwerts hatten also: Chorweiler 520 Neuinfektion je 100.000 Einwohner, Esch/Auweiler ca. 250, Hahnwald und Fühlingen 0 je 100.000 Einwohner. Allerding, keiner dieser Ortsteile hat nur annähernd 100.000 Einwohner.

Hier eine aktuelle Tabelle mit Zahlen der Stadt Köln mit Daten vom 28.4.2021, die sich insbesondere für die kleinen Ortsteile (Fühlingen, Hahnwald) nach zwei Tagen teilweise drastisch geändert haben:

Ortsteil Einwohner Inzidenz-Zahl
Chorweiler 12.900 543,4
Esch/Auweiler 7.000 168,1
Fühlingen 2.100   47,8
Hahnwald 2.066 145,2
Roggendorf/ Thenhofen 4.500 683,0

 

Die Inzidenzzahlen sollen vergleichbar machen - ok. Bei der Ortsteil-Analyse, oder gar bei Analyse  nach anderen Kriterien (Sozialstatus, Einkommen, Bildungsstand), ergeben sich einige verfälschende Eindrücke oder Scheingenauigkeiten. Ähnlich wie bei den Prozenten der Kanzlerkandidaten-Wahl (bezogen auf 100) ist die Grundgesamtheit hier eine viel kleinere Zahl als die Bezugsgröße 100.000 (Die Inzidenzzahlen sind also Angaben in Tausenstel Prozent oder Milliprozent).

  1. Die Inzidenzzahlen werden oft mit ein, zwei Stellen hinter dem Komma angegeben, was eine Scheingenauigkeit suggeriert.
  2. Hohe Inzidenz auf kleiner Basisgesamtheit suggeriert hohe, teilweise sehr hohe Fallzahlen von Neuinfektionen. Da die Zahl der Basisgesamtheit in der Regel nicht angegeben wird, werden die Inzidenzahlen intuitiv als Maßstab empfunden (Hotspot). Bezogen auf die Einwohnerzahl hat z.B. Roggendorf/Tenhofen mit Inzidenz 683 insgesamt 31 Neuinfektionen über die 7-Tage-Zeitspanne, Chorweiler mit geringerer Inzidenz mehr als das Doppelte (70) an Neuinfektionen, also im Schnitt etwa 10 neue Fälle pro Tag.
  3. Niedrige Inzidenz bei kleinen Basiszahlen kann ebenfalls leicht in die Irre führen. Wenn Hahnwald mit Inzidenz 145 vermerkt ist, bedeutet das 3 neue Fälle in 7 Tagen. Die kleinen Zahlen sind sensibel gegen „Störungen“: Kommt ein Fall hinzu, steigt die Inzidenz auf 210 und Hahnwald wird Hotspot. Fällt ein Fall heraus, sinkt sie auf 97 mit den entsprechenden Konsequenzen. Der Zustand Inzidenz Null ist besonders „instabil“. Eine einzige Neuinfektion treibt den Wert bereits an die 50er-Marke (48,4).
  4. Rangfolge-Darstellungen nach Inzidenzwert suggerieren eine Vergleichbarkeit, die statistisch unsinnig ist, aber immer gerne angewendet wird. Sinnvoller ist eine Rangfolge des Infektionsgeschehens nach Prozent der Bevölkerung. Die Rangfolge ist zwar in beiden Fällen gleich. Für die Prozentzahlen spricht aber, dass Basiszahlen alle deutlich über 100 liegen (aber nie über 100.000), daher ist ein Vergleich unkritisch und aussagekräftiger und die deutlich kleineren %-Zahlen liegen innerhalb des üblichen „normierten“ Wahrnehmungsbereichs von 0 bis 100%.
Ortsteil Einwohner Inzidenz-Zahl Prozent Rang
Chorweiler 12.900 543,4 0,54 % 2
Esch/Auweiler 7.000 168,1 0,19 % 3
Fühlingen 2.100   47,8 0,05 % 5
Hahnwald 2.066 145,2 0,15 % 4
Roggendorf/ Thenhofen 4.500 683,0 0,69 % 1

 

  1. Andere Zahlen, andere Prozente

Die Inzidenzkarte der Stadt Köln zeigt im Drill-Down erfreulicherweise auch die Basiszahlen und mehr für die Ortsteile an, so dass man sich selbst ein Bild „errechnen“ kann.

Üblicherweise werden die Neuinfektionsstatistiken und Inzidenzzahlen aber ohne Bezug zu den entsprechenden täglichen Testzahlen kommuniziert. Stattdessen wird gelegentlich der Verdacht diskutiert (not least by Mr. Trump), dass die „schlechte Entwicklung der Infektionszahlen“ schon durch eine verbesserte Testdichte und Test-Willigkeit zu erklären sei, also ein statistisches Artefakt. Daher wären mitlaufende Zahlen für Test-Anzahl oder Testdichte (Anzahl Tests pro Bevölkerung in %) eine wichtige Information.

In einem Youtube-Video  kritisiert ein Mathematik-Student die Inzidenz-Berechnung als mathematisch falsch. Statt auf 100.000 Bevölkerung müsse man die Inzidenz auf die Anzahl der Tests in einer Bevölkerungsgruppe beziehen. (Der Link wurde inzwischen gelöscht, vermutlich aufgrund kritischer Gegenkommentare. S. z.B. hier.)

Genauer betrachtet, handelt es sich hier jedoch nicht um einen Fehler, sondern lediglich um zwei unterschiedliche Kennzahlen, deren Bedeutung entsprechend differenziert werden muss.

Die Inzidenzzahl bezieht sich auf die Gesamtheit der betrachteten Bevölkerungsgruppe. Als relative Häufigkeit, oder idealisiert als Wahrscheinlichkeit, haben wir hier ein Maß für die apriori-Wahrscheinlichkeit P(+) = Anzahl (+) / Anzahl (Bevölkerung). Die Alternative ist im weitesten Sinne eine Bayes’sche Interpretation der Positiv-Wahrscheinlichkeit, allerdings trivial reduziert zu P(+|Test) = Anzahl (+) / Anzahl (Test), da die positiv Getesteten schlicht eine Teilmenge der Getesteten sind, die wiederum ein Teilmenge der betrachteten Bevölkerung sind.

Wir haben es hier also nicht mit einem Fehler zu tun, sondern mit einer anderen Kenngröße, und man kann darüber diskutieren, welche davon sinnvoller ist. Hier ein Denkansatz dazu:

  • Die „Inzidenz“ bezogen auf die Tests kann a) einen Teil der täglichen Schwankungen erklären und hat b) als Bezugsgröße einen realen Wert statt 100.000, erfüllt damit den Kritikpunkt in 4 besser
  • Die Inzidenz bezogen auf 100.000 einer Bevölkerungsgruppe (auch wenn die real viel kleiner ist) gibt einen Eindruck vom noch möglichen Potenzial an Neuinfektionen und dem Einfluss von Steuerungsmaßnahmen.

Make your choice! I take both.

 

  1. Fälle, Relative Häufigkeiten, Wahrscheinlichkeiten - Prozente, Prozente!

Prozente sind nicht gleich Prozente. Bei der Kanzlerkandidaten-Wahl (s. 3.) entfielen 77,5% der abgegebenen Stimmen auf A.L. Andererseits erhielt A.L. 67,4% der Wahlberechtigten (CDU Präsidium). Zwei unterschiedliche Prozent-Ergebnisse für den gleichen Vorgang. In diesem Fall ist der Unterschied durch die Bezugsgröße (Grundgesamtheit) erklärt und meist geht diese auch in einem sprachlich verfassten Text zur Prozentzahl mit erwähnt.

Allerdings - die sprachliche Ergänzung ist oft nicht eindeutig. Was sind „die abgegebenen Stimmen“, welche Grundgesamtheit bezeichnet dieser Begriff? Zählen die Enthaltungen ebenfalls zu den abgegebenen Stimmen? Gut, wenn man vorher eine Definition gegeben hat.

Aber nicht immer geht das so einfach.

In Zusammenhang mit der Corona-Pandemie werden üblicherweise Todeszahlen „durch oder im Zusammenhang mit Corona“ als Absolutzahlen (Fälle) angegeben. Gelegentlich werden auch Prozentzahlen angegeben, typischerweise nach wissenschaftlichen Festlegungen aus der Epidemiologie. Was ebenfalls zu unterschiedlichen Prozentwerten für das gleiche Geschehen führt. So bekommt man auf die Frage „Wie groß ist (oder war, bis März 2021) die Wahrscheinlichkeit „durch oder im Zusammenhang mit Corona“ zu sterben, unterschiedliche Antworten, selbst bei gleicher Datenlage.

Um das zu illustrieren, gehen wir von folgenden Zahlen aus, die man beim Statistischen Bundesamt bzw. den Meldeämtern beziehen kann:

Rohdaten normiert auf 12 Monate ab 03/20
Population DE N 83.200.000
Gemeldete Todesfälle 2020 gesamt T 982.000
Corona Infektionen gesamt 03/20 – 04/21 (RKI) C 2.754.000
 Corona Todesfälle 03/20 –  04/20 (RKI) D 72.800

Anm.: Die Daten sind auf 12 Monate zurückgerechnet, teilweise ausgehend von Zahlen für 03/20 bis 04/20. Die Symbole N, T, C, D stehen im Folgenden für die Fallzahlen, gelegentlich aber auch als Abkürzung für die Mengen-Bezeichnungen in der linken Spalte.

Die Tabelle zeigt die absoluten Häufigkeiten in „Fällen“. Relative Häufigkeiten werden in Bezug auf eine andere, umfassendere Menge definiert und meist in % angegeben. Die Wahrscheinlichkeit eines Zufalls-Ereignisses wird dagegen in Zahlen von 0,0 bis 1,0 dargestellt – die aber gelegentlich durch Multiplikation mit 100 auch in Prozentangaben umgerechnet wird. Oft wird die Wahrscheinlichkeit eines Ereignisses aus relativen Häufigkeiten empirischen Daten „gesetzt“.

Wenn also gefragt wird: „Wie groß ist die Wahrscheinlichkeit an Corona zu sterben?“ gibt es nach der obigen Tabelle schon mal drei verschiedene Antworten:

  1. Wahrscheinlichkeit ein Corona-Todesfall zu sein: 0,09 %
  2.  Wahrscheinlichkeit als Corona-Patient zu sterben: 2,64 %
  3.  Wahrscheinlichkeit, dass ein Todesfall auf Corona-Erkrankung zurückzuführen ist: 7,41 %

 

Es wird deutlich, dass diese Aussagen sprachlich und in der Bedeutung nur schwer auseinander zu halten und (in den Medien) zu vermitteln sind. Dennoch bedeuten sie Unterschiedliches und haben daher unterschiedliche Werte.

Für Interessierte hier kurz die Erklärung der Ergebnisse. (Die methodische Anmerkung am Schluss erklärt, warum wir hier vereinfachend von Wahrscheinlichkeiten W sprechen.)

Antwort a) ist einfach zu verstehen: W(D) = D/N = 0,0009. D.h.  0,09 % der Bevölkerung sind als Corona-Todesfälle ausgewiesen. Wie sieht es mit b) und c) aus?

Mit der sog. Bayes’schen Betrachtungsweise sind die Unterschiede leicht als sog. „Bedingte Wahrscheinlichkeiten“ zu beschreiben. Das „bedingt“ stellt den Bezug zu einer Menge her, die selbst wiederum Teilmenge der Grundgesamtheit ist. Bei a) ist die „Bezugsmenge“ die Grundgesamtheit selbst, also die Bevölkerung N. Schauen wir mal auf die Teilmengenverhältnisse gemäß deren Bedeutung: T, C, D stehen für Teilmengen der Gesamtbevölkerung. D ist Teilmenge von T und von C, also sind T^D und C^D dasselbe, nämlich D. T und C sind i.a. nicht Teilmengen voneinander. (Das ^ steht für den Mengendurchschnitt).

Antwort b) bedeutet  W(Todesfall, gegeben Corona-Erkrankung) = W(Todesfall und Corona-Erkrankung) / W(Corona-Erkrankung), als Formel: W(T|C) = W(T^C)/W(C).

Setzen wir für die Wahrscheinlichkeiten rechts wieder die relativen Häufigkeiten (in Bezug auf N) ein, dann bekommen wir auf der rechten Seite: (D/N)/(C/N) = D/C = 72.800/2.754.000 = 0,0264 Oder: W(T|C) ist 2,64 % , die Wahrscheinlichkeit zu sterben, wenn man Corona-erkrankt ist.

Antwort c) sagt etwas ganz anderes aus: Die Wahrscheinlichkeit, dass eine Person Corona-erkrankt war, die  gestorben ist. Als bedingte Wahrscheinlichkeit ausgedrückt: W(C|T) = W(C^T)/W(T). Man sieht hier die Änderung der „Bezugsgröße“ im Nenner. Da C^T und T^C die gleiche Schnittmenge bezeichnen, liegt der Unterschied im Nenner, also  W(T), statt W(C) bei b).

Setzen wir für die Wahrscheinlichkeiten rechts wieder die relativen Häufigkeiten (in Bezug auf N) ein, dann bekommen wir auf der rechten Seite: (D/N)/(T/N) = D/T = 72.800/982.000 = 0,0741 Oder: W(C|T) ist 7,41% , die Wahrscheinlichkeit, dass eine Person an Corona erkrankt war, wenn sie gestorben ist.

Die Formulierung mit „wenn“ ist übrigens auch eine gute Möglichkeit zu überprüfen welche Wahrscheinlichkeit man meint: Wahrscheinlichkeit dafür, dass A, wenn B.

Methodische Anmerkung:

Relative Häufigkeiten sind immer in Bezug zu einer Grundmenge zu sehen. So ist nach der obigen Tabelle die relative Häufigkeit der Corona-Todesfälle (D)   D/N = 0,0009 (0,09 %), bezogen auf die Gesamtbevölkerung (N), aber D/C = 0,0264 (2,64 %) bezogen auf die Corona-Erkrankungen.

Mit den entsprechenden Wahrscheinlichkeitsaussagen ist das allerdings so eine Sache. Formal zwar nicht; denn die Grundlagen der W-Rechnung gehen von einer definierten Ergebnismenge (Ergebnisse eines Zufalls-Prozesses) aus, und Wahrscheinlichkeiten sind für Teilmengen davon, „Ereignisse“ genannt, definiert. Der Bezug zur Grundgesamtheit ist also prinzipiell durch die Ergebnismenge implizit vorgegeben, wird aber oft bei Interpretationen „vergessen“.

Wenn man die Formeln für b) und c) in Beziehung setzt:

W(T|C) = W(T^C)/W(C) = W(T^C)*W(T)/(W(C)*W(T)) = W(C|T)*W(T)/W(C)

bekommt man die berühmte Bayes’sche Formel für den Zusammenhang von W(T|C) und deren Umkehrung W(C|T).

 

Anhang: Das Rauf-und-Runter-Spiel

Wir bezeichnen die Guthaben von X bzw. Y nach dem n-ten Zug als xn  und yn. Die Werte nach jeweils der 1. Aktion des n-ten Zuges bezeichnen wir mit x’n und y’n. Das Spiel beginnt mit x0 = y0 = 100 Euro.

Für den n-ten Zug berechnen sich die x- und y-Werte so:

Zug n : Aktion 1

y’n  = yn-1 + 0,2xn-1  und  x’n = xn-1 -  0,2xn-1

Zug n : Aktion 2

                        yn  = y‘n -  0,2y’n  und   xn  = x’n + 0,2y’n

Dieser kleine Algorithmus lässt sich in der Tabellenkalkulation leicht darstellen:

Prozente 20%
x y
n=0 100,00 100,00
n=1 80,00 120,00
104,00 96,00
n=2 83,20 116,80
106,56 93,44
n=3 85,25 114,75
108,20 91,80
n=4 86,56 113,44
109,25 90,75
n=5 87,40 112,60
109,92 90,08
n=6 87,93 112,07
110,35 89,65
n=7 88,28 111,72
110,62 89,38
n=8 88,50 111,50
110,80 89,20
n=9 88,64 111,36
110,91 89,09
n=10 88,73 111,27
110,98 89,02
n unendlich 111,111111 88,8888889

 

Die Werte nach unendlich vielen Zügen ergeben sich, indem man die Iteration „zugweise“ formuliert, also die x‘ und y‘ eliminiert:

Zug n:

yn  = 0,8yn-1 +  0,16xn-1 und   xn  = 0,2yn-1 +  0,84xn-1

Die Konvergenzbedingung - also Werte von x und y, bei denen sich nichts mehr ändert - ist damit einfach das Gleichungssystem

y = 0,8y + 0,16x    und  x = 0,2y + 0,84x

deren Auflösung  für  x = 5/9 * 200 = 111,11 Euro (Gewinner ist X!) und für y = 4/9 *200 = 88,89 Euro ergibt.

 

 


Was macht BitCoin eigentlich zum großen Energiefresser?

Krypto-Währungen und speziell Bitcoin sind inzwischen auch in der seriösen Finanzwelt angekommen und werden mächtig ge-hyped. Selbst große Banken und Unternehmen der Digital-Branche interessieren sich inzwischen für eigene Krypto-Währungen. Gültige Bitcoins entstehen aber nicht durch nationale Zentralbanken sondern „verteilt“. D.h. jeder kann Bitcoins „herstellen“, sofern ein bestimmtes algorithmisches Protokoll dabei beachtet wird.

Eine Anforderung des Bitcoin-Protokolls ist, dass ein sog. „Proof of Work“ nachgewiesen wird; also eigentlich, dass man sich den „Buckel krumm arbeitet“ um ein Bitcoin zu generieren - fast wie beim Gold-Schürfen. Nur müssen hierzu inzwischen riesige Computersysteme ran, um ein „mathematisches Rätsel“ zu lösen, wie es in den Medien oft vereinfachend dargestellt wird. Obwohl das Rätsel an sich mathematisch äußerst simpel ist, ist es mit der Zeit immer schwieriger geworden,  dafür eine Lösung zu finden. Und das erfordert inzwischen enorme Computer-Leistung mit dem entsprechenden Energie-Bedarf.

Worin besteht nun bei Bitcoins das viel zitierte „mathematische Rätsel“, und warum beschäftigt das  inzwischen riesige Computersysteme und verbraucht dabei offenbar Unmengen an Energie?

Das „Rätsel“ – im Bitcoin Kontext Proof of Work genannt - besteht in einer simplen Aufgabe.

Es geht im Prinzip nur darum, eine Zahl zu finden, die unterhalb einer aktuellen Schranke, Target genannt,  liegt. Die Bitcoin-Schranke verändert sich von Zeit zu Zeit nach einem ausgeklügelten Algorithmus, der unter anderem verhindert, dass weltweit zu schnell zu viele Bitcoins generiert werden. (Wer Interesse hat, kann das weiter unten nachlesen.) Wenn die Schranke  z.B. eine Zahl mit 19 Nullen hinter dem Komma ist,  muss der Proof of Work eine Zahl liefern die noch kleiner ist. Klingt einfach, ist es aber nicht! Denn das Finden der Zahl unterliegt einer vorgeschriebenen mathematischen Berechnung und kann nicht einfach „eingegeben“ werden.

Am einfachsten vergleichbar ist das mit einem Zufallszahlengenerator. Der muss so lange neue Zahlen generieren, bis eine davon kleiner als die Schranke ist. Und das kann dauern. Und viele Computer beschäftigen und viel Energie verbrauchen. Zurzeit liegt der Bitcoin-Stromverbrauch etwa zwischen dem von Schweden und der Ukraine (SZ vom 29.4.2021)

In Realität (Bitcoin-Protokoll) werden bei diesen Berechnungen 64-stellige Hexadezimal-Zahlen generiert, die gleichzeitig die Fälschungssicherheit von Transaktionen nach dem Blockchain-Konzept (sog. Block-Hashes) gewährleisten. Bei jeder Berechnung geht auch eine Zufallszahl ein, so dass jedes Mal eine andere Zahl heraus kommt, auch wenn der sonstige Input für die Berechnung gleich bleibt. Die Schranke, mit der das Ergebnis verglichen wird, ist ebenfalls eine Hexadezimal-Zahl, mit vielen Nullen am Anfang der 64 Stellen.

Das war die geniale Idee des bis heute anonym gebliebenen Satoshi Nakamoto, der das Blockchain- und Bitcoin-Konzept 2008 in einem nur 8 Seiten langen Paper veröffentlichte. Daraus stammt das geradezu bescheidene Zitat:

”We define an electronic coin as a chain of digital signatures” (S.N. 2008)

Zu Beginn der Bitcoin-Blockchain, am 03.01.2009, wurde die Schranke auf hex ‘000 000 00 ffff‘  gesetzt. Bis Ende 2009 änderte sie sich nicht. Am 30.12.2009 sank sie auf hex ‘000 000 00 d86a‘, war damit also ein stückweit kleiner geworden. Da war es noch einfach, das „mathematische Rätsel“ zu lösen. Am 12.06.2016 hatte sie bereits 17 vorlaufende Nullen, aktuell sind es 19. Bemerkenswert ist auch, dass dieses "mathematische Rätsel" an sich völlig nutzlos ist, also kein anderes Ziel hat, als hohen Computing-Aufwand zu erfordern.

Inzwischen gibt es eine Vielzahl von anderen Blockchain-Protokollen, die anders als die Bitcoin-Blockchain zur Validierung eines neuen Blocks weniger aufwändige "Proofs" oder Konsens-Verfahren vorschreiben.

In unserem ausführlichen Whitepaper „Yet Another Blockchain Paper“ finden Sie übrigens ausführliche Erklärungen, was eine Blockchain und was insbesondere Krypto-Währungen ausmacht. (Bernhard Thomas, 2016, unter IT-Rebellen.de und eine Aktualisierung 2017 hier auf ISAFA.de. )

 

Ergänzende Vertiefung:

Zum Schluss, wen es interessiert, sei der Algorithmus für die Lösung des „Rätsels“ und für die Anpassung der Schranke kurz erläutert, sowie Beispiele für Schranken aufgeführt.

Der Blockchain „ Mathe-Rätsel“ Wettlauf für Bitcoins:

  • Berechne Hash-Wert von (Hash des letzten Blocks, Neue Transaktionen, Zufallszahl)
  • Prüfe, ob Hash-Wert < Aktueller Schranke
  • Falls nicht: Neuer Versuch mit neuer Zufallszahl
  • Falls ja: Das „Rätsel ist gelöst“, der aktuelle Block ist validiert

Der Wettlauf besteht darin, dass derjenige (Computer), der das aktuelle Rätsel als erstes löst, eine „Belohnung“ in Form von Bitcoins gut geschrieben bekommt. Nur auf diesem Wege „entstehen“ neue Bitcoins. Die Höhe der Belohnung reduziert sich in vordefinierten Zeitabständen.

 

Algorithmus zur Anpassung der Schranke:

Die Schranke (das Target) wird jeweils nach 2016 neuen Blocks angepasst, und zwar so, dass es im Schnitt etwa 10 Minuten dauert, bis weltweit ein neuer Block validiert ist (s. Mathe-Rätsel Wettlauf). Das reguliert automatisch die „Ausgaberate“ neuer Bitcoins, anders als bei Zentralbanken, die ihr Geld beliebig „drucken“ können.

Aus dem Satoshi Nakamoto Paper:

“To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they’re generated too fast, the difficulty increases.”

(Die Difficulty oder Schwierigkeit ist eine Art von Kehrwert der Schranke.)

 

Schranken

Um einen Eindruck für die Entwicklung der Schranke (Target) zu geben, hier die Werte für einige Zeitpunkte. Man beachte die Entwicklung der Anzahl vorlaufender Nullen.

03 Jan 2009, 18:15:05 00000000ffff0000000000000000000000000000000000000000000000000000
18 Dec 2009, 09:56:01 00000000ffff0000000000000000000000000000000000000000000000000000
30 Dec 2009, 06:11:04 00000000d86a0000000000000000000000000000000000000000000000000000
08 Jun 2016, 03:41:58 0000000000000000059ba0000000000000000000000000000000000000000000
01 May 2021, 21:27:02 0000000000000000000da8630000000000000000000000000000000000000000

(Aus https://learnmeabitcoin.com/technical/target)

 

Ergänzendes Informationsmaterial auf dieser Web-Seite

Neben dem ausführlichen Whitepaper gibt es auf dieser Webseite zwei einführende Präsentationen zum Thema Blockchain. Eine mit Blick auf Business Development Möglichkeiten durch Blockchain: Blockchain Technology (CommaSoft). Eine zweite mit etwas mehr technischer Tiefe: Blockchain Technology (Pallas).

 

 


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

 


Q-IBM - Wie man Zugang zum IBM Quanten-Computing bekommt

Die Qubit-Algorithmen dieser Blog-Serie zu verstehen und nachzuvollziehen macht mehr Spaß, wenn wir sie selber erstellen und laufen lassen können. Das geht mit IBM Quantum Experience, einer frei zugänglichen Umgebung, in der man Qubit-Circuits entwerfen und testen kann. Testen auf einem Simulator oder sogar echten IBM Quanten-Computern.

Wie kommt man da dran?

Zugang zur IBM Quantum-Computing-Umgebung

Es findet wie heute üblich, alles im Browser statt (Web-Application). Gesonderte Apps für Smartphone und Tablet gibt es für IBM Q Experience Apps (noch) nicht. Und über den Browser geht es dort nicht so richtig gut. Es wird also ein "richtiges" Gerät -  PC, Laptop, Mac oder ähnliches - empfohlen.

Im Browser gibt man ein
https://quantum-computing.ibm.com/login

Man sieht ... alles auf Englisch, natürlich! Daher ein paar Hinweise.

Beim ersten Mal muss man sich zunächst registrieren. (Später wird man direkt auf seine aktuelle Arbeitsumgebung geführt (s. Dashboard, unten)). Zum Registrieren dient der Link hinter "Create an IBM Account". Damit startet man die Registrierung. Ist erkennbar, dass der Link von einem deutschsprachigen PC aufgerufen wurde, findet der weitere Dialog auf Deutsch statt: "Bei IBM anmelden". "Sie haben noch kein Konto?" - Genau! Deshalb geht es dort weiter: Link "IBMId erstellen" (Die IBMId wird dann bei weiteren Login's gebraucht.)

Nun wird es wieder Englisch: "Sign up for an IBMId" ist die Seite, auf der E-mail, Name und Passwort und Land (Germany) eingegeben werden. Mit "Next" geht's weiter zu "Verify email", d.h. zur Überprüfung, ob die E-mail Adresse gültig ist und im rechtmäßigen Besitz des Users. Es wird dazu ein 7-stelliger Code an die eingetragene E-mail Adresse geschickt.  Also, in der Mailbox nachsehen und die 7 Zeichen in die kleine Box "Verification token" eintragen. Anschließend endlich "Create account" (Konto erstellen) anklicken. Dann erscheint - unvermeidbar - erst noch die Einwilligung zum IBM Konto Datenschutz. Mit "Proceed" bestätigen, und dann ist es schon geschafft.

Danach kann man die Kontoinformationen (E-Mail Adresse, Password) zum Login verwenden: Link-Adresse wie oben und dann auf "Bei IBM anmelden" die E-mail-Adresse eingeben und "Weiter". Wenn gewünscht, kann man vorher das Kästchen "Merken" ankreuzen. Dann noch das Passwort unter "Kennwort" eingeben. Und schon ist man drin!

Halt - nein! Beim ersten Mal muss man noch das IBM Quantum End User Agreement ankreuzen und "Accept & continue" klicken. Das ist halt so üblich, dass man die "Geschäftsbedingungen" akzeptiert. Und wie bei (kosten-)freien Diensten üblich, wird man anschließend gebeten, etwas über sich preis zu geben. "Your institution" ist ein Muss (Sternchen-Feld): hier gibt man  z.B. die Schule an oder irgendwas. Der Rest ist optional: Drop-down Auswahl über seine Vorkenntnisse mit "quantum", Freitext-Feld um anzugeben, was man mit IBM Q Experience machen will, und Auswahl-Liste, welche Informationen man zu IBM Q Experience erhalten will (per E-mail).

Dann endlich "Continue" und jetzt ist man (fast) drin. Wo drin?

Erscheinungsbild (User Interface) der IBM Quantum-Computing-Umgebung

Anfangs oder immer wieder beim Login wird man mit einem Fenster konfrontiert, das uns ein "Get started" Tutorial anbietet. Nicht schlecht, das mal durchzugehen, wenn man Zeit hat oder schon ein wenig mit dem Circuit Composer "gespielt" hat. Mit "Close" lehnen wir das Angebot ab.

Wenn man seine Zugangsdaten gespeichert hat und den gleichen Browser benutzt, wird man schon direkt auf seine aktuelle Arbeitsumgebung geführt (s. Dashboard, unten).

Anm.: Es ist natürlich alles auf Englisch, von daher erfordern die Tutorials und weitere Dokumente möglicherweise Englischkenntnisse, die über das schulische Niveau einer Mittelstufe hinausgehen.

Das User Interface öffnet sich mit einer Welcome-Seite. Neben der Begrüßung findet man dort einige Informationen über das, was man schon gemacht hat: Welche Circuits, welche Ergebnisse (results) anstehen (pending), welche zuletzt angefallen sind (Latest).

Spannend ist die Liste rechts der gerade verfügbaren "Backends". Das sind die Quanten-Computer, die weltweit zur Verfügung stehen (online). Zu jedem Eintrag gibt es Informationen darüber, wo er steht, wieviel Qubits er hat - und wieviel "Jobs" (Programmausführungen) in der Warteschlange stehen. Am Ende der Liste ist der "virtuelle" Quanten-Computer aufgeführt, der ibmq_qasm_simulator, den man aktuell mit bis zu 32 Qubits nutzen kann.

Diese Informationen sind umrahmt von einer Menüleiste mit teilweise kryptischen Symbolen. Die Menüleiste befindet sich links (s. Bild unten).

Einige Menü-Punkte des User Interfaces

Oben in der Ecke deuten drei waagerechte Striche an, dass man hiermit das Menü ausklappen kann, so dass man sehen kann, was die Symbole bedeuten. Hier einige kurz erläutert:

  • Dashboard: So heißt die Welcome Seite
  • Tools | Circuit Composer: Enthält im Kern den grafischen Circuit Composer mit den möglichen Gates und den (einstellbaren) Qubit / Mess-Bit Linien. Seit August 2020 sind hier noch eine ganze Reihe weiterer Widgets (Fensterchen) mit dargestellt.
    • Das für Messergebnisse (Measurement Probabilities) ist für die Blog-Serie interessant.
    • Statevector (Zustandsvektor) zeigt die (theoretischen) Faktoren an (als farbige Säulen), mit denen die verschiedenen Basiszustände in einer Superposition vertreten sind, so wie sie vom Qubit-Algorithmus gerade erzeugt wird. In der Blog-Serie auch als Koordinaten bezeichnet. Im Fachjargon des Quanten-Computing spricht man auch von der Amplitude.
    • Rechts gibt es noch einen Bereich für Dokumente und Tutorial-Empfehlungen. Alternativ (Tabs direkt darüber) kann man sich hier den QASM Skript-Code zur Grafik anzeigen lassen und verändern, oder die aktuelle Job-Übersicht.
    • Das ist leider ziemlich viel auf einmal und wird gegenüber der Vorversion leicht unübersichtlich für unsere Zwecke. Aber man gewöhnt sich daran und kann über den Menüpunkt View einiges "abwählen".
    • Die einzelnen Menüpunkte oben in der Leiste mit ihren Unter-Optionen muss man Zug um Zug kennenlernen. Zuviel, um das alles hier zu erklären. Es wird sicher auch deutschsprachige Tutorials dazu geben.
  • Tools | Quantum Lab: Der Bereich, in dem man Qubit-Algorithmen in Form von Python-Notebooks und mit Verwendung der Qubit-Programmbibliothek Qisqit erstellen und managen kann. Wir hatten ein Beispiel dafür im Kommentar zu Blog Q8.
  • Tools | Results: Zeigt die Übersicht der Resultate von QC-Jobs an.
  • Resources | Docs und Support: IBM Q Experience Dokumentationen, Tutorials und Zugang zu Q&A und anderen Support-Formen.

Der Circuit Composer in Kurzfassung

Ein kurzer Blick auf den Circuit Composer. Er erscheint innerhalb des User-Interfaces mit seiner Menüleiste am linken Rand, wie oben erklärt.

  • Der Circuit Composer hat eine eigene Menüleiste, waagerecht oben im Widget.
  • Im oberen Bereich (Widget) hat man die "Partitur". Die Gates und die Qubit- und Messbit-Linien. Natürlich kann man diese einstellen über Edit.
  • Darunter hat man weitere Widgets, z.B. die Measurement Probabilities, also die theoretische Vorhersage der Messergbnisse. Oder den "Zustandsvektor", der den (Superpositions-) Zustand des Qubit-Systems zeigt. Gezeigt wird der Zustand, der am Ende des Circuits resultieren würde. Alle nicht benötigten Widgets kann man "verstecken", z.B. über View.
  • Über Run Settings und Run on ... kann man den Qubit Circuit starten.
  • Die Ergebnisse findet man unter Jobs, einer von 3 Inhalten, die man in einem Widget ganz rechts darstellen kann. (Im Bild ausgeblendet.) Die anderen beiden enthalten Dokumentationen und Hinweise (Docs) und das QASM Code-Skript zum aktuellen Circuit.
  • Zwischen oberer Menüleiste und den Gates-Symbolen findet man eine typische Pfadangabe: Verzeichnis/Datei. Hier Circuits/Untitled Circuit. D.h. für den gezeigten Circuit haben wir noch keinen Namen vergeben. Das kann man mit dem Stift-Symbol ändern. Der Stift erscheint, wenn sich der Mauszeiger über den Circuit Namen befindet. Das Verzeichnis Circuits ist das Standard-Verzeichnis, in dem man alle seine gespeicherten Circuits (saved) wiederfindet.
  • Die Details und Unterpunkte findet man am besten heraus, indem man sie ausprobiert. Allerdings muss man sich mit einigen englischen Begriffen vertraut machen - was aber nicht so schwierig sein sollte, da die meisten ohnehin auch schon im deutschen Sprachgebrauch verwendet werden.

Wenn diese Zusatzinformation aus dem Kontext von Q8 heraus aufgerufen wurde: hier gehts zurück zu Q8.