Die Herausforderung
Finden Sie das kleinste neuronale Feedforward-Netzwerk so, dass das Netzwerk bei einem beliebigen dreidimensionalen Eingabevektor mit ganzzahligen Einträgen in die größte (dh "positivste") Wurzel der ausgibt Polynom mit einem Fehler, der streng kleiner als .
Zulässigkeit
Der Begriff der Zulässigkeit in meiner vorherigen Herausforderung zum Golfspielen mit neuronalen Netzen schien etwas restriktiv zu sein. Daher verwenden wir für diese Herausforderung eine liberalere Definition des neuronalen Feedforward-Netzwerks:
Ein Neuron ist eine Funktion , die durch einen Vektor von Gewichten , eine Vorspannung und eine Aktivierungsfunktion auf folgende Weise:
Ein vorwärts gerichtetes neuronales Netzwerk mit Eingangsknoten ist eine Funktion von , die aus einer Sequenz von Neuronen, wobei jedes Eingaben von und gibt einen Skalar . Bei einer bestimmten Menge von Ausgabeknoten ist die Ausgabe des neuronalen Netzwerks der Vektor .
Da Aktivierungsfunktionen für eine bestimmte Aufgabe optimiert werden können, müssen wir die Klasse der Aktivierungsfunktionen einschränken, um diese Herausforderung interessant zu halten. Folgende Aktivierungsfunktionen sind zulässig:
Identität.
ReLU.
SoftPlus.
Sigmoid.
Sinus.
Insgesamt wird ein zulässiges neuronales Netz durch Eingangsknoten, eine Folge von Neuronen und Ausgangsknoten spezifiziert, während jedes Neuron durch einen Vektor von Gewichten, eine Vorspannung und eine Aktivierungsfunktion aus der obigen Liste spezifiziert wird. Beispielsweise ist das folgende neuronale Netz zulässig, obwohl es das Leistungsziel dieser Herausforderung nicht erfüllt:
Eingabeknoten:
Neuronen: für
:
Dieses Netzwerk besteht aus 8 Neuronen mit jeweils null Bias und Identitätsaktivierung. Mit anderen Worten, dieses Netzwerk berechnet die von und erzeugte verallgemeinerte Fibonacci-Sequenz und gibt dann die 5., 9. und 10. Zahl aus dieser Sequenz in dieser Reihenfolge aus.
Wertung
Bei einer reellen Zahl mit endender Dezimalerweiterung sei die kleinste nichtnegative ganze Zahl für die , und sei die kleinste nichtnegative ganze Zahl für welche ist eine ganze Zahl. Dann sagen wir, dass die Genauigkeit von .x
Zum Beispiel hat eine Genauigkeit von , während eine Genauigkeit von .
Ihre Punktzahl ist die Summe der Präzisionen der Gewichte und Verzerrungen in Ihrem neuronalen Netzwerk.
(ZB hat das obige Beispiel eine Punktzahl von 16.)
Nachprüfung
Während die Wurzeln in Form der kubischen Formel ausgedrückt werden können , ist die größte Wurzel möglicherweise am einfachsten mit numerischen Mitteln zugänglich. Nach @ Vorschlag des xnor, berechnet ich die größte Wurzel für jede Wahl der ganzen Zahlen , und die Ergebnisse können hier gefunden werden . Jede Zeile dieser Textdatei hat die Form . In der ersten Zeile wird beispielsweise angegeben, dass die größte Wurzel von ungefähr .x 3 - 10 x 2 - 10 x - 10 10.99247140445449a,b,c,root
Bearbeiten: Die Originaldatei, die ich gepostet habe, hatte Fehler in Fällen, in denen das Polynom eine Mehrfachwurzel aufwies. Die aktuelle Version sollte frei von solchen Fehlern sein.
a
ungleich Null oder sogar nur 1 sein wird. Außerdem würde ich empfehlen, einige Testfälle einzufügen und die Wurzeln mit hoher Präzision zu versehen, damit wir überprüfen können, ob unsere innerhalb von 0,1 liegen. Es wäre auch gut, Ausgaben für alle möglichen Eingaben zu haben, wahrscheinlich in einem Link, da dies viel für den Beitrag ist.
x -> a * sin(b * softplus(x) + c)
eine endliche Anzahl von Datenpunkten mit einer Ganzzahl x
mit beliebiger Genauigkeit und einer extrem großen und präzisen Frequenz überanpassen kann .
a=0
und das Quadrat zwei komplexe Wurzeln hat?