Beck et al.
Published in

Beck et al.

Even or odd? Easy for me— using notebook

Über die intellektuellen Fähigkeiten künftiger KI wird reichlich diskutiert, spekuliert und debattiert. Dazu gehört sicher auch die der Lernfähigkeit.

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. Das haben Technologie-Fortschritte so an sich.

Wie sieht es aber umgekehrt mit einfachen “intellektuellen” Fähigkeiten aus, die schon jedes Kind zu leisten lernt? Zum Beispiel einfachste mathematische Fähigkeiten wie, gerade und ungerade Zahlen zu unterscheiden.

Die Reihe der folgenden Beiträge entstand unter einem gewissen kritischen Vorurteil (oder der Hypothese), nämlich dass KI, oder besser ML, “zu doof ist”, um selbst Gerade und Ungerade unterscheiden zu lernen. Betonung auf Lernen — nicht auf Können.

Sie, der Leser, können sicherlich gerade und ungerade (ganze) Zahlen unterscheiden, egal was Ihnen vorgelegt wird. Wie machen Sie das? Und wissen Sie noch, wie und wann Sie das gelernt haben?

Natürlich kann man einen simplen Algorithmus implementieren, eine arithmetische Rechenvorschrift vorgeben oder sich alle geraden Zahlen merken bzw. in einer Datenbank ablegen. (Naja, nicht alle, aber beliebig viele.) Damit kann man Gerade von Ungerade unterscheiden. Meine Anforderung hier ist aber die wie bei Kindern: bevor sie etwas können, haben sie es lernen müssen. Irgendwie. Und sie sind nicht “zu doof” das zu lernen (höchstens unwillig).

In einer Abfolge von 6 Teilen mit abgeschlossenen Abschnitten will ich hier meine praktischen Erfahrungen und teilweise überraschenden Erkenntnisse darstellen, die ich bei der Überwindung meines “Vorurteils” gemacht habe. Dabei werden zwischendurch auch einige grundsätzliche, theoretische Abschnitte das Geschehen reflektieren. Natürlich ist das Lernen von Gerade/Ungerade und naheliegender verwandter Aufgaben nicht ganz so trivial, wie es auf den ersten Blick scheint. Darauf werde ich an passender Stelle jeweils eingehen.

Ursprünglich sind Aufgabenstellungen, Vorgehensweisen, Ergebnisse und Diskussionen der folgenden Abschnitte in Form von so genannten Jupyter Notebooks (für Python) entstanden. Der erzählende Text wird dabei unterstützt durch kurze Python Code-Blöcke, in denen die beschriebenen Ideen überprüft werden können. Leser, die Interesse haben, das eine oder andere auszuprobieren und zu verändern, können die “notebooks” als *.ipynb Dateien abrufen (in Kürze). Die verwendeten Bibliotheken sind dort in den jeweiligen Abschnitten erwähnt — im Wesentlichen numpy, matplotlib, sklearn und keras/Tensorflow.

Anm.: Der Titel spielt — mit einem Augenzwinkern — an auf Richard Feynman, dem großartigen Physiker und Erzähler.

bernhard.thomas@becketal.com
www.becketal.com
www.im-pulse.info

Weiter lesen: 1.Machine Learning — zu dumm, um gerade und ungerade Zahlen zu unterscheiden?

Read Abstract Zusammenfassung

Aus dieser einfachen Fragestellung hat sich inzwischen eine ganze Reihe von weiteren Fragen und Ideen ergeben, sodass die “Six not so easy pieces” eine umfangreichere Serie geworden sind. Daher füge ich hier zur Orientierung eine Übersicht ein.

Sechs nicht so einfache Aufgaben für KI — Einleitung und Start

Six Not-So-Easy Pieces — for AI — Abstract (EN, DE)

1.Machine Learning — zu dumm, um gerade und ungerade Zahlen zu unterscheiden?

1.1 “Lernen mit Kernen” — Nichtlineare Transformation in einen höher-dimensionalen Raum

1.2 Der Transformationtrick ist Fake!

2 Gerade / Ungerade Klassifikation Lernen mit einem statistischen Verfahren

2.1 Data Analysis Methoden

2.2 Ein Chi-Square Classifier, Fit und Prediction

2.3 Unabhängigkeit und Robustheit — Erweiterte Anwendung des Chi-Square Verfahrens

3 Gerade / Ungerade Klassifikation Lernen mit Neuronalen Netzen

3.1 Gerade / Ungerade Lernen mit Neuronalen Netzten — Naiver Versuch, Variationen und Brute Force

3.2 Ein erfolgreiches NN für ein Teilproblem der Gerade/Ungerade Klassifikatinsaufgabe

3.3 Das zweite Teilproblem: Gerade-/Ungerade-Klassifikation einstelliger Zahlen

3.4 Erkenntnisse

4 Neuronale Netze lernen gerade und ungerade Zahlen zu unterscheiden

4.1 Ein kombiniertes NN zur Gerade/Ungerade-Klassifikation von Zahlen

4.2 Ein keras / TensorFlow NN Modell zum Lernen der Gerade-/Ungerade-Klassifikation

4.3 Embedding — Das Gerade-/Ungerade-Problem als Text-Analyse

4.4 Gerade / Ungerade Klassifikation unabhängig vom Zahlensystem

4.5 Vertrauensfragen — 5 gerade sein lassen

5 Neuronale Netze für Vielfache von 3 und anderen Zahlen

5.1 Pre-Training: Ein einfaches Perzeptron lernt, die einfache Quersumme einer Zahl zu berechnen.

5.2 Transfer Learning Recurrent Modell und Training eines Gesamt-Modells für Vielfache von 3 (und 9)

5.3 Ein NN mit Transfer Learning lernt Vielfache von 7 erkennen

5.4 Erkenntnisse und Diskussion

5.5 Lückenschluss — Ein NN zum Konvertieren von Zahlen in Ziffernfolgen

5.6 Das NN-Modell zur Klassifikation von Vielfachen von 3 als vollständiges Deep NN

5.7 Zwei mal Drei ist Sechs — Ein keras/tf Modell lernt Vielfache von 6 und mehr

6 Machine Learning und die „Universelle Approximations-Eigenschaft“ Neuronaler Netze

6.1 Ein kubisches Polynom als Beispiel für die NN-Approximation nicht-linearer Funktionen

6.2 NN-Modelle lernen Wurzeln und Quadrate

6.3 Pythagoras lernen

6.4 Multiplizieren Lernen — problematisch für NN

Bonus-Track A zu 6.4: Formel-basierte Neuronale Netze zur Multiplikation
A1: Das 5-Neuronen Modell für die Multiplikation nach M. Tegmark “Leben 3.0”
A2: Ein nahezu perfektes Neuronales Netz für die Multiplikation
A3: Ein 4-Neuronen-Modell für die Multiplikation

6.5 Das sin**2 Problem revisited

6.6 Boolesche Funktionen und Quanten-Gates — Neuronale Netze lernern Logik

6.7 Neuronale Netzt zum Lernen von Treppenfunktionen

6.8 Mehr einfache Aufgaben: Zählen lernen

--

--

*Arbeiten ist Zusammenarbeiten*. Von Menschen, Daten, Infrastrukturen. Dafür stehen wir.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store