Bernd Thomas
Beck et al.
Published in
3 min readNov 13, 2019

--

5.4 Erkenntnisse und Diskussion

1. Die Lösung (d.h. die trainierten Gewichtssets) entwickelt sich mit der Konvergenz von Loss und Accuracy auf einen eindeutigen Modell-Zustand hin, der der theoretisch ableitbaren Lösung entspricht — anders als bei den keras Modellen für das Lernen von Gerade/Ungerade.

2. Die beiden Teil-Modelle, ebenso wie die Gesamt-Modelle, können zusammen mit den trainierten Gewichten als eine Art “regelfreier” Algorithmus zur Berechnung von tiefen Quersummen bzw. der Teilbarkeit durch 3 (bzw. 9) oder der Reduktionen und der Teilbarkeit durch 7 angesehen werden.

3. Es ist daher interessant, diese mehrschichtigen NNs im Vergleich zu Formeln und zu Berechnungsalgorithmen zu betrachten.

  • Eine Formel (bzw. Funktion) wie etwa x mod 3 (bzw. y = x mod 3) dient der direkten Berechnung des Ergebnisses bzw. kann auch "unausgerechnet" als arithmetisches Objekt verwendet werden. Die Berechnung kann i.A. in Schritte aufgelöst werden, etwa als Division mit Rest, und damit in einen Algorithmus (terminierende Abfolge von Schritten) überführt werden.
  • Ein etwas anderer Algorithmus mit gleichem Ziel wird mit den Schritten gebildet:
Erstellen der Ziffernfolgt einer Zahl
-> Berechnung der iterierten Quersumme (oder Reduktion, im Falle 7)
-> Abruf der zu den entsprechenden Ergebnissen (Ziffer oder Doppelziffer) gespeicherten Klassifikation. Hier sind einzeln definierte Schritte als Verarbeitungsregeln festgelegt.
  • Ein auf das Ziel perfekt trainiertes Artificial Neural Network (oder allgemein, ML-Modell) führt die Bestimmung der Teilbarkeitsklasse ebenfalls determiniert durch. NN-Struktur und trainierte Gewichte zusammen formulieren einen feststehenden Algorithmus, der allerdings keine aufgabenspezifischen Arbeitsschritte formuliert, sondern, quasi amorph, durch generische Arbeitsschritte mittels der trainierten oder theoretisch abgeleiteten Gewichte das Ergebnis herstellt.
  • Das Besondere an ANNs ist aber, dass dieser Algorithmus erlernt wird, d.h. von einem Zustand des Nicht-Könnens in den Lösungszustand überführt werden kann (wenn alles gut geht!) — und zwar durch “Erfahrung” aus den Trainingsdaten.

4. Die Architektur der bisher erfolgreich trainierbaren NNs sind allerdings aus der Kenntnis einfacher (Teil-)Algorithmen zur Bestimmung von Vielfachen heraus entwickelt worden. D.h. die “intellektuelle Leistung” des KI Systems geht auf eine intellektuelle Meta-Leistung des Entwicklers zurück. Es ist aber durchaus vorstellbar, dass diese NNs — vor allem in Form der mit keras beschriebenen Strukturen - durch "Zufall" oder "Ausprobieren" entstanden sein könnten.

5. Die Umwandlung von Zahlen in Ziffernfolgen muss hier als Input-Daten-Transformation für die einzelnen Schichten akzeptiert werden, analog Standardisierung und Normalisierung bei anderen Aufgaben. Es wäre interessant, die Umwandlung ebenfalls “erlernbar” zu machen und damit ein geschlossenes RNN zu definieren. (Ein NN für diese Art von “Featuring” ist mir noch nicht gelungen.)

6. Die Entwicklung von Algorithmen in Form von Abfolgen von Anweisungen (Schritten) ist sicher auch als ML Leistung denkbar, etwa im Sinne von linguistischen Aufgaben und Reinforced Learning.

7. Die Anzahl der Quersummen- oder Reduktions-Schichten kann optional als fester problemspezifischer Parameter implementiert werden oder “adaptiv” (fallspezifisch), d.h. als die Anzahl der Schritte, die notwendig sind, bis die Quersumme einer Input-Zahl einstellig wird (analog für die Reduktion). Programmiertechnisch ist die adaptive Variante die elegantere. Aus “puristischer” ML-Sicht ist dagegen die Variante des festen Systemparameters (Meta-Parameter feste Anzahl Layer) vorzuziehen. Damit wird Training und Prediction von einem definierten einheitlichen Modell für alle (zugelassenen) Inputs durchgeführt, während in der adaptiven Variante die Modell-Struktur Input-abhängig wird. Die Leistung als starkes ML-System ist in beiden Fällen gleich.

8. Wie in 4.4 gezeigt, ist das Lernen der Unterscheidung von geraden und ungeraden Zahlen mit dem gleichen NN Modell unabhängig davon möglich, in welchem Zahlensystem (dezimal, oktal, hexadezimal etc.) die Zahlen dargestellt werden. Zumindest bei geradzahliger Zahlenbasis. Bei ungeradzahliger Zahlenbasis (z.B. 3 — ternär, 5 — quinär) ist allerdings die (tiefe) Quesummenbildung erforderlich: Eine Zahl im Quinär-System (z.B.) ist gerade, wenn ihre (quinäre) Quesumme gerade ist. Wir können in diesen Fällen also mit dem Modell aus 5.2 auch die Unterscheidung von Gerade und Ungerade trainieren. Dazu muss allerdings die Umwandlung in Ziffernfolgen (s. Punkt 5) im entsprechenden Zahlensystem erfolgen, d.h. die Input-Transformation to_digits(X,n_pos,base) muss um das Ziel-Zahlensystem baseerweitert werden, was in Python leicht gelingt.

Im folgenden Teil 6 untersuchen wir unsere Erfahrungen mit einfachen mathematischen Lern-Aufgaben unter dem Aspekt der universal approximation property, d.h. dass jede (stetige) Funktion durch ein geeignetes multi-layer ANN beliebig genau approximiert werden kann. Vielleicht hätten wir uns ja die Frage “ML zu dumm, gerade und ungerade Zahlen unterscheiden zu lernen?” sparen können.

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

Zurück auf Anfang

bernhard.thomas@becketal.com
www.becketal.com

--

--

Bernd Thomas
Beck et al.

Dr. Bernhard Thomas — Mathematics, Theor. Biology, Computational Sciences, AI and advanced Technologies for the Enterprise. Beck et al. Consultant