Vous tentez de former le réseau pour donner les valeurs de sortie 1,2,3,4
autant que j'ai compris. Pourtant, à la sortie, vous utilisez un sigmoïde (math.tanh(..)
) dont les valeurs sont toujours entre -1 et 1.
Donc la sortie de votre réseau de neurones est toujours entre -1 et 1 et donc vous obtenez toujours une grosse erreur en essayant pour adapter les valeurs de sortie en dehors de cette plage.
(je viens de vérifier que lorsque mise à l'échelle de vos valeurs d'entrée et de sortie de 0,1, il semble y avoir un progrès de la formation agréable et je reçois à la fin:
error 0.00025
)
Le Neural Network vous L'utilisation est utile si vous voulez faire classification (par exemple, affecter le point de données à la classe A si la sortie NN est < 0 ou B si elle est> 0). Il semble que ce que vous voulez faire est régression (ajustement d'une fonction à valeur réelle).
Vous pouvez supprimer le sigmoïde sur le noeud de sortie, mais vous devrez modifier légèrement votre procédure de rétropropagation pour en tenir compte.