J'ai récemment lu sur les réseaux de neurones dans des environnements contraints (en particulier, une implémentation de réseau de neurones sur un microcontrôleur huit bits peu coûteux ) et leurs applications aux dispositifs IoT (par exemple, la régression pour prédire des choses en fonction des entrées des capteurs, etc.).
Cela semble idéal pour les applications simples où le traitement n'est pas critique en termes de temps et où les données à traiter seront relativement peu fréquentes. Cependant, d'autres recherches suggèrent que la formation d'un réseau de neurones dans un environnement à ressources limitées est une mauvaise idée (voir la réponse à Est-il possible de faire fonctionner un réseau de neurones sur un microcontrôleur ).
Est-ce que cela s'applique toujours à l'approche de Cotton, Wilamowski et Dündar que j'ai liée? Serait-il nécessaire de former un réseau conçu pour une faible utilisation des ressources sur un appareil plus puissant de mon réseau IoT?
Pour le contexte, si j'avais un capteur transmettant le réglage de chaleur, j'envisage un réseau neuronal tel que décrit dans l'article pour prédire le réglage de chaudière souhaité en fonction de cela et de l'heure de la journée, etc. Une formation serait utile pour changer le réseau neuronal sorties basées sur plus de données fournies par l'utilisateur. Cette question Quora décrit bien un scénario similaire et traite des détails de mise en œuvre d'un réseau de neurones, mais ma question est plus axée sur le fonctionnement du réseau sur l'actionneur lui-même.
la source
Réponses:
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:
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.
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.
"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.
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.
la source