mai
2008
Flood is a comprehensive implementation of the multilayer perceptron neural network in the C++ programming language. It includes several objective functionals and training algorithms, as well as different utilities for the solution of a wide range of problems. The package comes with extensive documentation.
Flood semble être une bibliothèque assez bien construite et les exemples sont assez simples, étant donné le monstre que constitue la théorie des réseaux de neurones.
Dès ma première lecture de la doc j’ai regretté de ne pas voir une fonction template permettant de modifier la fonction d’activation. Il aurait fallu aussi pouvoir la dériver à la volée, pour avoir la modification des poids, mais dans ce cas, on passe en deuxième argument la dérivée et voilà… La seule solution qui semble possible est d’hériter de la classe abstraite représentant perceptron multicouche et de redéfinir tout ce qui touche à la fonction d’activation. Toutefois, je n’en suis pas encore là.
Je vais me faire la main sur cette bibliothèque dans l’objectif, probablement, d’écrire un article sur le sujet. Ce serait la « suite » de mon premier article : il s’agirait d'(enfin!) mettre en pratique toute la théorie exposée dans le premier article.
Je n’en suis pour le moment qu’au stade compréhension du fonctionnement général de la bibliothèque, mais mes premiers tests ne devraient plus tarder. Affaire à suivre.
En effet, après quelques petits tests, on peut dire que la bibliothèque est perfectible.
Mais n’ayant pas accroché avec FANN, je me rabats actuellement sur celle-ci.
Bouaif. La partie mathématique (matrice/vecteur) m’a l’air sous-optimale, et encore moins idiomatique (cf l’affectation, les appels à cout et exit() en plein milieu des fonctions, …).
Pour le reste, je suis d’avis que l’héritage n’est pas une vraie solution.