Pourriez-vous implémenter un réseau neuronal simple sur un microprocesseur tel que l'Arduino Uno à utiliser dans l'apprentissage automatique?
Pourriez-vous implémenter un réseau neuronal simple sur un microprocesseur tel que l'Arduino Uno à utiliser dans l'apprentissage automatique?
Réponses:
Pourriez-vous former un réseau neuronal sur un microcontrôleur? Peut-être, mais n'essayez pas. Pourriez-vous utiliser un NN pour la classification, etc. sur un microcontrôleur? Bien sûr, tant que vous pouvez calculer le résultat de la propagation des valeurs de nœud et de bord et gérer les multiplications.
Il est certainement possible de l'implémenter sur un Arduino. Voici 3 bibliothèques Arduino de ce type qui implémentent des réseaux de neurones:
La complexité du réseau que l'Arduino peut gérer est une question distincte, en particulier en ce qui concerne la formation - des dizaines de milliers d'itérations sur les données de formation. S'entraîner sur une machine rapide puis copier les poids des neurones sur l'Arduino sera un moyen plus intelligent de développer votre implémentation.
Oui. Si vous ne l'exécutez qu'en mode feed-forward et que vous effectuez votre entraînement hors ligne ailleurs:
J'ai programmé un ANN à action directe à 3 couches (5-5-2) sur un Arduino UNO. Il a fonctionné sur un robot mobile. Chaque fois que le robot heurtait quelque chose, il réentraînait le réseau. La portion à action directe du filet a fonctionné en temps réel; tandis que la formation de rétropropagation a pris de l'ordre de ~ 5 à 20 secondes. Je suppose que vous pouvez réduire la taille du réseau ainsi que le jeu avec les paramètres pour le faire fonctionner un peu plus rapidement, mais si vous prévoyez de faire une rétropropagation sur un Arduino, je pense que ce serait trop lent.
Voici quelques idées pour accélérer les choses:
Voici un bref compte rendu que j'ai fait du réseau.
Oui en effet, il est possible d'intégrer un réseau neuronal dans des microcontrôleurs. Il existe de nombreux exemples de cela dans la littérature scientifique, mais je peux citer un exemple frappant de ce qui peut être fait avec un MCU très simple si vous êtes assez intelligent. Dans Evolutionary Bits'n'Spikes , les auteurs décrivent la mise en place d'un réseau neuronal de dopage en temps réel ET d'un algorithme génétique pour le former, afin de contrôler un robot à roue différentielle. L'ensemble du code s'exécute dans un minuscule microcontrôleur PIC16F628 4 MHz intégré au robot Alice de 1 pouce cube.