Selon le premier article , la course n'est pas un problème. C'était le but. Seulement, il y a une limitation sur les poids maximum:
Actuellement, la limitation de l'architecture intégrée à ce microcontrôleur n'est limitée que par le nombre de poids nécessaires. Le réseau neuronal est actuellement limité à 256 poids. Cependant, pour la plupart des applications intégrées, ce poids de 256 ne devrait pas limiter le système.
En ce qui concerne la formation, pour autant que je comprends la mise en œuvre décrite, le contrôleur PIC reçoit les paramètres d'une source externe.
Les calculs avancés du réseau neuronal sont écrits de telle sorte que chaque neurone est calculé individuellement dans une série de boucles imbriquées. Le nombre de calculs pour chaque boucle et les valeurs pour chaque nœud sont tous stockés dans un tableau simple en mémoire.
[...]
Ces tableaux contiennent l'architecture et les poids du réseau. Actuellement, à des fins de démonstration, ces baies sont préchargées au moment de la programmation de la puce, mais dans la version finale, cela ne serait pas nécessaire. Le microcontrôleur pourrait facilement être modifié pour contenir un simple chargeur de démarrage qui utilise le port série RS232 intégré qui recevrait les données pour les poids et la topographie à partir d'un emplacement distant. Cela permettrait de modifier les poids ou même l'ensemble du réseau pendant que la puce est sur le terrain.
Je soupçonne que la formation est également effectuée en externe.
L'article donne également des références pour les entraîneurs de réseaux neuronaux qui ont probablement été utilisés pour déterminer les valeurs préprogrammées dans la mémoire du PIC.
- Wilamowski, BM; Coton, N .; Hewlett, J .; Kaynak, O., "Formateur de réseau neuronal avec des algorithmes d'apprentissage de second ordre",
- Wilamowski, BM; Coton, NJ; Kaynak, O .; Dundar, G.,
"Méthode de calcul du vecteur de gradient et de la matrice jacobéenne dans les réseaux de neurones connectés arbitrairement,"
Maintenant, j'ai examiné le premier qui décrit les architectures de réseau et les algorithmes à utiliser avec eux. Mais le logiciel Neural Network Trainer utilisé ici est implémenté dans MATLAB.
Actuellement, il existe très peu de logiciels de formation sur les réseaux neuronaux qui formeront des réseaux entièrement connectés. Ainsi, un paquet avec une interface utilisateur graphique a été développé dans MATLAB à cet effet. Ce logiciel permet à l'utilisateur de saisir facilement des architectures très complexes ainsi que les poids initiaux, les paramètres de formation, les ensembles de données et le choix de plusieurs algorithmes puissants.
Je dois mentionner que les réseaux entièrement connectés ont un nombre de poids inférieur pour une même tâche qu'une architecture couche par couche. Cela le rend plus adapté aux microcontrôleurs.
Je ne suis pas un expert en réseaux de neurones et c'est assez complexe, donc je peux me tromper, mais sur la base de ces articles, je dirais que l'approche de Cotton, Wilamowski et Dündar nécessite une plate-forme externe plus puissante pour effectuer la formation.
À propos de l'exécution d'un réseau neuronal sur un microcontrôleur, ST Microelectronics vient d'annoncer une boîte à outils STM32Cube.AI: convertir les réseaux neuronaux en code optimisé pour STM32 pour convertir les réseaux neuronaux pré-formés des bibliothèques populaires vers la plupart de leurs microcontrôleurs STM32.