Könnten Sie ein einfaches neuronales Netzwerk auf einem Mikroprozessor wie dem Arduino Uno implementieren, das beim maschinellen Lernen verwendet werden soll?
23
Könnten Sie ein einfaches neuronales Netzwerk auf einem Mikroprozessor wie dem Arduino Uno implementieren, das beim maschinellen Lernen verwendet werden soll?
Antworten:
Könnten Sie ein neuronales Netzwerk auf einem Mikrocontroller trainieren ? Vielleicht, aber bitte versuche es nicht. Könnten Sie eine NN für die Klassifizierung usw. auf einem Mikrocontroller verwenden? Sicher, solange Sie das Ergebnis der Weitergabe der Knoten- und Kantenwerte berechnen und die Multiplikationen verarbeiten können.
quelle
Es ist sicherlich möglich, dies auf einem Arduino zu implementieren. Hier sind drei solcher Arduino-Bibliotheken, die neuronale Netze implementieren:
Die Komplexität des Netzwerks, mit dem der Arduino umgehen kann, ist eine andere Frage, insbesondere im Hinblick auf das Training - Zehntausende Iterationen von Trainingsdaten. Das Training auf einer schnellen Maschine und das anschließende Kopieren der Neuronengewichte auf das Arduino ist eine intelligentere Methode, um Ihre Implementierung zu entwickeln.
quelle
Ja. Wenn Sie es nur im Feed-Forward-Modus ausführen und Ihr Training offline an einem anderen Ort durchführen:
Ich habe eine 3-lagige (5-5-2) Feedforward-ANN auf einem Arduino UNO programmiert. Es lief auf einem mobilen Roboter. Wann immer der Roboter etwas traf, trainierte er das Netzwerk neu. Der Feedforward-Teil des Netzes lief in Echtzeit. während das Rückentraining in der Größenordnung von ~ 5 bis 20 Sekunden dauerte. Ich nehme an, Sie könnten die Größe des Netzwerks sowie das Spiel mit den Parametern verringern, um es ein bisschen schneller laufen zu lassen, aber wenn Sie vorhaben, auf einem Arduino eine Backpropagation durchzuführen, wäre dies meiner Meinung nach zu langsam.
Einige Gedanken, um die Dinge zu beschleunigen, sind:
Hier ist eine kurze Beschreibung des Netzwerks.
quelle
Ja, es ist möglich, ein neuronales Netzwerk in Mikrocontroller einzubetten. Es gibt viele solcher Beispiele in der wissenschaftlichen Literatur, aber ich kann ein eindrucksvolles Beispiel dafür anführen, was mit einer sehr einfachen MCU getan werden kann, wenn Sie klug genug sind. In Evolutionary Bits'n'Spikes beschreiben die Autoren die Implementierung eines Echtzeit-Spiking-Neuronalen Netzwerks UND eines genetischen Algorithmus, um es zu trainieren, um einen Differentialradroboter zu steuern. Der gesamte Code läuft in einer winzigen 4-MHz-MCU PIC16F628, die in den 1-Kubik-Zoll-Alice-Roboter eingebettet ist.
quelle