Ich habe kürzlich über neuronale Netze in eingeschränkten Umgebungen (insbesondere eine Implementierung eines neuronalen Netzes auf einem kostengünstigen Acht-Bit-Mikrocontroller ) und deren Anwendungen auf IoT-Geräte gelesen (z. B. Regression zur Vorhersage von Dingen basierend auf Sensoreingaben usw.).
Dies scheint ideal für einfache Anwendungen zu sein, bei denen die Verarbeitung nicht zeitkritisch ist und die zu verarbeitenden Daten relativ selten sind. Weitere Untersuchungen legen jedoch nahe, dass das Trainieren eines neuronalen Netzwerks in einer ressourcenbeschränkten Umgebung eine schlechte Idee ist (siehe die Antwort auf Ist es möglich, ein neuronales Netzwerk auf einem Mikrocontroller auszuführen ).
Gilt das immer noch für den Ansatz von Cotton, Wilamowski und Dündar, den ich verknüpft habe? Wäre es notwendig, ein Netzwerk, das für eine geringe Ressourcennutzung ausgelegt ist, auf einem leistungsstärkeren Gerät in meinem IoT-Netzwerk zu trainieren?
Wenn ich einen Sensor hätte, der die Wärmeeinstellung überträgt, erwäge ich ein neuronales Netzwerk, wie in der Veröffentlichung beschrieben, um die gewünschte Kesseleinstellung basierend auf dieser und der Tageszeit usw. vorherzusagen. Ein Training wäre nützlich, um das neuronale Netzwerk zu ändern Ausgaben basierend auf mehr vom Benutzer bereitgestellten Daten. Diese Quora-Frage beschreibt ein ähnliches Szenario gut und erläutert die Implementierungsdetails für ein neuronales Netzwerk. Meine Frage konzentriert sich jedoch mehr darauf, ob das Ausführen des Netzwerks auf dem Aktuator selbst funktionieren würde.
quelle
Antworten:
Nach dem ersten Artikel ist das Laufen kein Problem. Das war der Zweck. Nur gibt es eine Begrenzung der Maximalgewichte:
Was das Training betrifft, so empfängt der PIC-Controller, soweit ich die beschriebene Implementierung verstehe, Parameter von einer externen Quelle.
Ich vermute, dass das Training auch extern durchgeführt wird.
Das Papier enthält auch Referenzen für Trainer für neuronale Netze, die wahrscheinlich zur Bestimmung der im Speicher des PIC vorprogrammierten Werte verwendet wurden.
"Verfahren zur Berechnung des Gradientenvektors und der Jacobi-Matrix in willkürlich verbundenen neuronalen Netzen"
Jetzt habe ich mir die erste angesehen, die Netzwerkarchitekturen und Algorithmen beschreibt, die mit ihnen verwendet werden können. Die hier verwendete Neural Network Trainer-Software ist jedoch in MATLAB implementiert.
Ich muss erwähnen, dass die vollständig verbundenen Netzwerke für dieselbe Aufgabe eine niedrigere Gewichtungszahl haben als eine Schicht für Schicht-Architektur. Das macht es besser für Mikrocontroller geeignet.
Ich bin kein Experte für neuronale Netze und es ist ziemlich komplex, so dass ich mich irren kann, aber basierend auf diesen Papieren würde ich sagen, dass der Ansatz von Cotton, Wilamowski und Dündar eine externe, leistungsfähigere Plattform erfordert, um das Training durchzuführen.
Über das Ausführen eines neuronalen Netzwerks auf einem Mikrocontroller hat ST Microelectronics gerade ein Toolkit STM32Cube.AI angekündigt : Konvertieren Sie neuronale Netzwerke in optimierten Code für STM32 , um vorab trainierte neuronale Netzwerke aus gängigen Bibliotheken in die meisten ihrer STM32-MCUs zu konvertieren .
quelle