Maschinelles Lernen: Einzelne Eingabe auf variable Anzahl von Ausgaben

8

Gibt es einen Algorithmus für maschinelles Lernen, der eine einzelne Eingabe einer Ausgabeliste variabler Länge zuordnet? Wenn ja, gibt es Implementierungen des Algorithmus für den öffentlichen Gebrauch? Wenn nicht, was empfehlen Sie als Problemumgehung?

In meinem Fall ist die Eingabe ein einzelner Skalar und die Ausgabe ist eine Liste von Skalaren mit variabler Länge. Angenommen, ich wollte eine Liste von Einsen mit der Länge der Liste als Eingabe ausgeben. Dann könnte <Eingabe, Ausgabe> <1, [1]>, <2, [1, 1]> usw. sein. Eine kleine Änderung würde die Quadratwurzel der Länge liefern, in welchem ​​Fall <2, [1, 1 , 1, 1]> wäre eine Antwort. Hinweis: Der Eingang muss nicht direkt mit dem Ausgang verbunden sein.


Angenommen, ich möchte für ein komplexeres Beispiel die Look-and-Say-Sequenz lernen . Gültige <Eingabe, Ausgabe> -Paare wären: <1, [1]>, <2, [1, 1]>, <3, [2, 1]>, <4, [1, 2, 1, 1] >, <5, [1, 1, 1, 2, 2, 1]> usw. Mein Problem ist auch insofern ähnlich, als ich weitere Beispiele generieren kann. Ich bin nicht auf eine begrenzte Anzahl von Beispielen beschränkt.

ricksmt
quelle
Können Sie ein Beispiel geben, was Sie meinen? Ich bin verwirrt, ob Sie nach einer einzelnen Eingabevariablen fragen, die mehreren verschiedenen Ausgabevariablen zugeordnet ist, oder nach einer einzelnen Eingabevariablen, die einer Liste derselben Variablen zugeordnet ist.
NBartley
2
Alle Beispiele, die Sie bisher gezeigt haben, haben eine einzige Ausgabe, die deterministisch einer Liste mit variabler Länge zugeordnet werden kann. Hier ist die einzelne Eingabe / einzelne Ausgabe: <1,1>, <2,2>, <2,4> und ein einfaches deterministisches Skript kann daraus <1, [1]>, <2, [1,1 machen ]>, <2, [1,1,1,1]>. Ich schlage vor, Sie teilen das Problem in das maschinelle Lernstück und das deterministische Stück auf.
AN6U5
Danke für die zusätzlichen Informationen. Ich glaube jedoch nicht, dass genügend Informationen bereitgestellt werden, um eine Antwort zu formulieren, die über eine heuristische Diskussion auf hoher Ebene hinausgeht, wie aus der bereitgestellten Antwort hervorgeht. Die unbegrenzte Grenze schließt Klassifizierungsalgorithmen aus, wie unten erläutert, sodass dies eher wie ein Problem für ein Hidden-Markov-Modell aussieht. In dem von Ihnen angegebenen Beispiel fehlt jedoch noch eine statistische Komponente, die auf eine Lösung durch eine statistische Lernmethode hinweist. Ist die "Look-and-Say-Sequenz" das eigentliche Problem oder gibt es einen statistisch verteilten Datensatz, mit dem Sie wirklich arbeiten?
AN6U5
Das eigentliche Problem, das mich interessiert, ist die Collatz Conjuecture . Welche Erkenntnisse kann ich insbesondere aus einem Lernalgorithmus gewinnen, der versucht, < Mersenne-Zahl , Hagelkörner-Sequenz> zu lernen ?
Ricksmt
1
Off-Topic, weil die Frage ein deterministisches Problem der reinen Mathematik ist, das unter dem Deckmantel des maschinellen Lernens neu gefasst wurde. Es wird keine statistische Stichprobe bereitgestellt, sondern es wird auf eine kleine Menge von Fällen aus einer unendlichen mathematischen Reihe verwiesen. Das OP hofft, eine nichtlineare Beziehung zwischen dem Eingabe-Feature und der Liste der Primzahlen wiederherzustellen, die der Mersenne-Nummer des Eingabe-Features entsprechen. Dies ist weder gut gestellt noch fällt es in die datenwissenschaftliche Themenliste.
AN6U5

Antworten:

2

Ich würde versuchen, einen Multilabel-Klassifizierungsalgorithmus festzulegen und den Ausgabestandard durch Hinzufügen von Nullen festzulegen . Wenn Ihre Daten also so sind: <1, 1 >, <2, [1, 1]>, <3, [2, 1]>, <4, [1, 2, 1, 1]>, <5 , [1, 1, 1, 2, 2, 1]>. Die maximale Anzahl der Ausgaben beträgt 6. Sie können Ihre Daten also in folgende Elemente umwandeln: <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]>

Eine andere Option, die mir einfällt, ist das dynamische Hinzufügen des Limits. Angenommen, Sie haben Ihr Trainings- und Test-Set. Sie können nach der größten Länge suchen und einen Algorithmus erstellen, der beiden Datensätzen die Nullen hinzufügt. Angenommen, neue Daten, die Sie vorhersagen möchten, haben eine größere Länge. Dann müssen Sie das gesamte Training neu berechnen und mit diesen neuen Tests testen. Sie können sogar überprüfen, wie sich die Erweiterung des Grenzwerts auf Ihr Modell auswirkt.

Hoaphumanoid
quelle
Dies ist nicht möglich, wenn es keine maximale Länge gibt, richtig?
Ricksmt
Ja, das ist ein Problem, wenn Sie kein Limit haben. Lassen Sie mich die Antwort bearbeiten
hoaphumanoid
Das ist eine vernünftige Problemumgehung. Irgendeine Antwort auf die erste Frage? Gibt es einen Algorithmus, der eine unterschiedliche Anzahl von Ausgaben erzeugen kann?
Ricksmt
Es tut mir leid, aber es fällt mir nicht ein. Ich weiß nicht, wie eine variable Ausgabe mathematisch verwaltet werden kann. Ich habe immer mit festen Ein- und Ausgängen gearbeitet.
Hoaphumanoid
Keine Sorge. Ich habe noch nie von einem solchen Algorithmus gehört, daher bin ich nicht überrascht, dass er noch nicht durchgeführt wurde. Und soweit ich weiß, sind oder können die meisten Datensätze, an denen Menschen interessiert sind, mit festen Eingabe- und Ausgabelängen eingerichtet werden. Ich werde ein paar Tage warten, falls jemand anderes etwas weiß, was wir nicht wissen, aber das ist ungefähr das, was ich erwartet habe.
Ricksmt
1

Also ein paar Möglichkeiten, die man sich vorstellen kann:

  1. @ Miguel Gonzalez-Fierros Antwort auf 0-Padding. wahrscheinlich am einfachsten zu implementieren und macht Sinn.
  2. Wenn das Auffüllen für Ihr Problem nicht sinnvoll ist und Ihre Ausgabe eine Zeitreihe ist, können Sie eine Art neuronales Übersetzungsmodell lernen und ein STOP / END-Token in Ihrer Ausgabe haben.
  3. Haben Sie ein generatorbasiertes Modell (wie eine Änderung an einer VAE) und generieren Sie dann eine ganze Reihe möglicher Eingaben, und Sie können eine beliebige Anzahl von Ziehungen vornehmen, die einem bestimmten Kriterium genügen (wie ein Modus mit geringer Verschiebung und berechneten bedingten Informationen).

Es gibt wahrscheinlich andere, aber ich kann momentan nicht an sie denken.

mshlis
quelle