NN/MLP: Ist meine Trainer-Ausgabe falsch gewählt?

Also, das NN erkennt Bilder und der Trainer erwartet:

{
  "pngprefix": "sep1_",
  "nrouts": 24,
  "w": 200,
  "h": 20,
  "maxiterations": 100,
  "issquareouts": false,
  "makegrey": false,
  "tolearn": {
    "sep1_44b2af7f.png": [
      0.16,
      0.25,
      0.315,
      0.405,
      0.465,
      0.59,
      0.685,
      0.74,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
    ],
    "sep1_9ba226e0.png": [
      0.22,
      0.315,
      0.41,
      0.5,
      0.6,
      0.685,
      0.77,
      0.88,
      0.965,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
    ],
    "sep1_58d815ec.png": [
      0.125,
      0.18,
      0.24,
      0.3,
      0.36,
      0.415,
      0.475,
      0.55,
      0.61,
      0.65,
      0.69,
      0.75,
      0.815,
      0.87,
      0.935,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
    ],
    "sep1_9af89658.png": [
      0.085,
      0.125,
      0.165,
      0.205,
      0.245,
      0.285,
      0.325,
      0.38,
      0.42,
      0.445,
      0.475,
      0.515,
      0.56,
      0.605,
      0.645,
      0.69,
      0.74,
      0.795,
      0.855,
      0.905,
      0.0,
      0.0,
      0.0,
      0.0
    ],
    "sep1_dcc6a401.png": [
      0.195,
      0.28,
      0.4,
      0.525,
      0.645,
      0.77,
      0.825,
      0.945,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
    ],
    "sep1_734ad32a.png": [
      0.145,
      0.24,
      0.38,
      0.475,
      0.535,
      0.64,
      0.745,
      0.795,
      0.88,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
    ],
    "sep1_98a5bf4f.png": [
      0.125,
      0.185,
      0.24,
      0.295,
      0.36,
      0.415,
      0.475,
      0.55,
      0.61,
      0.645,
      0.69,
      0.75,
      0.81,
      0.875,
      0.935,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
    ]
  }
}

Wie man sieht, gibt es immer 24 Outputs, aber die Outputswerte sind unterschiedlich lang, steigen monoton an und die restlichen Werte sind 0.

Das NN soll berechnen, wann in einem Text der nächste Buchstabe anfängt.


Beispiele:

ex3

Hier ist es schon ganz gut, obwohl das ‘k’ etwas aus dem Bild ragt.

ex1

Hier ist’s schwer, ein Teil des 't’s ragt mit in das ‘l’, obwohl viel Leerraum nach dem ‘t’.

ex2

Hier erkennt er das ‘a’ noch nicht…


Hab ich die Trainingsdatenoutputs richtig gewählt?

Heftig, mit hinzugefügten Nullen hab ich es intuitiv richtiggemacht:

Machine Learning: Single input to variable number of outputs - Data Science Stack Exchange :

… The maximum number of output is 6. So you could transform your data into something like: <1, [1,0,0,0,0,0]>, <2, [1, 1,0,0,0,0]>, <3, [2, 1,0,0,0,0]>, <4, [1, 2, 1, 1,0,0]>, <5, [1, 1, 1, 2, 2, 1]> …


Weiß jemand, ob man mehr NN s „chainen“ kann?