Le défi
Trouver le plus petit réseau neuronal à action directe de telle sorte que, étant donné tout vecteur d'entrée en trois dimensions avec des entrées entières dans , le réseau génère la racine la plus grande (c'est-à-dire "la plus positive") de polynôme avec une erreur strictement inférieure à .
Admissibilité
La notion d'admissibilité dans mon précédent défi de golf de réseau neuronal semblait un peu restrictive, donc pour ce défi, nous utilisons une définition plus libérale du réseau neuronal à action directe:
Un neurone est une fonction qui est spécifiée par un vecteur de poids , un biais et une fonction d'activation de la manière suivante:
Un réseau neuronal à action directe avec des nœuds d'entrée est fonction de qui peut être construit à partir d'une séquence de neurones, où chaque prend les entrées de et produit un scalaire . Compte tenucertains ensemble spécifiédenoeuds de sortie, la sortie du réseauneurones est le vecteur .
Étant donné que les fonctions d'activation peuvent être réglées pour une tâche donnée, nous devons restreindre la classe des fonctions d'activation pour garder ce défi intéressant. Les fonctions d'activation suivantes sont autorisées:
Identité.
ReLU.
SoftPlus.
Sigmoïde.
Sinusoïde.
Dans l'ensemble, un réseau neuronal admissible est spécifié par des nœuds d'entrée, une séquence de neurones et des nœuds de sortie, tandis que chaque neurone est spécifié par un vecteur de poids, un biais et une fonction d'activation de la liste ci-dessus. Par exemple, le réseau neuronal suivant est admissible, bien qu'il n'atteigne pas l'objectif de performance de ce défi:
Noeuds d'entrée:
Neurones: pour
Noeuds de sortie:
Ce réseau se compose de 8 neurones, chacun avec un biais nul et une activation d'identité. En termes, ce réseau calcule la séquence de Fibonacci généralisée générée par et , puis émet les 5e, 9e et 10e nombres de cette séquence, dans cet ordre.
Notation
Étant donné un nombre réel avec une expansion décimale terminale, soit le plus petit entier non négatif pour lequel , et que soit le plus petit entier non négatif pour lequel est entier. Ensuite, nous disons que est la précision de .
Par exemple, a une précision de , tandis que a une précision de .
Votre score est la somme des précisions des poids et des biais dans votre réseau neuronal.
(Par exemple, l'exemple ci-dessus a un score de 16.)
Vérification
Alors que les racines peuvent être exprimées en termes de formule cubique , la plus grande racine est peut-être la plus facilement accessible par des moyens numériques. Suivant la suggestion de @ xnor, j'ai calculé la racine la plus grande pour chaque choix d'entiers , et les résultats peuvent être trouvés ici . Chaque ligne de ce fichier texte est de la forme a,b,c,root
. Par exemple, la première ligne indique que la racine la plus grande de est environ .
Edit: le fichier d'origine que j'ai publié comportait des erreurs dans les cas où le polynôme présentait une racine multiple. La version actuelle devrait être exempte de telles erreurs.
a
non nulle, ou même juste 1. De plus, je recommanderais de mettre dans certains cas de test, en donnant les racines à une haute précision afin que nous puissions vérifier que les nôtres sont à 0,1. Il serait également bon d'avoir des sorties pour toutes les entrées possibles, probablement dans un lien, car c'est beaucoup pour la publication.
x -> a * sin(b * softplus(x) + c)
peut surcharger n'importe quel nombre fini de points de données avec un entier x
à une précision arbitraire en utilisant une fréquence extrêmement grande et précise.
a=0
et le quadratique a deux racines complexes?