Eine Implementierung einer Inferenzengine für den MNIST Datensatz auf einer MCU mit 1kword ROM und 64 bytes RAM. Die Eingangsdaten müssen auf 8x8 skaliert werden. Immerhin werden noch >90% Genauigkeit erreicht. https://github.com/cpldcpu/BitNetPDK Der Nutzen auf so einem kleinen Mikrocontroller ist natürlich begrenzt, zeigt aber wie weit machine-learning Ansätze skalieren können.
INteressant. Mich würde mal interessieren, wie die Performance im vergleich zu einem klassischen algoritmischen Programm für die gleiche Aufgaben ist.
Flip B. schrieb: > INteressant. Mich würde mal interessieren, wie die Performance im > vergleich zu einem klassischen algoritmischen Programm für die gleiche > Aufgaben ist. Das gibt es viele verschiedene Ansätze: https://en.wikipedia.org/wiki/MNIST_database#Classifiers Für einen fairen Vergleich müsste man die jetzt mit den gleichen Randbedingungen implementieren.
Tim . schrieb: > Eine Implementierung einer Inferenzengine für den MNIST Datensatz auf > einer MCU mit 1kword ROM und 64 bytes RAM. Entschuldige mein völliges Unwissen und die Übersetzung für mich: Du hast * einen Handschrift-Datensatz (https://en.wikipedia.org/wiki/MNIST_database) genommen * nach 8x8 Pixel in Graustufen gerendert * damit ein neuronales Netz trainiert * das Netz (die Gewichtungen) und die Regeln in den Padauk gestopft * + BitBang-Sende-Uart * + 4 Test-Beispiel-Daten Und der Padauk erkennt das "Geschmiere" zu 90% richtig? D.h. prinzipiell reicht der aus, um eine handgeschrieben Zahl zu erkennen, die ihm irgendwie übermittelt wird (abgesehen vom zusätzlich notwendigen RAM)? Ich bin wirklich beeindruckt.
Bruno V. schrieb: > Und der Padauk erkennt das "Geschmiere" zu 90% richtig? D.h. prinzipiell > reicht der aus, um eine handgeschrieben Zahl zu erkennen, die ihm > irgendwie übermittelt wird (abgesehen vom zusätzlich notwendigen RAM)? Genau. Die UART-Routinen passen nur in den PFS154, der PMS150C kommt ohne Ausgabe aus. Der MNIST-Datensatz ist ziemlich bekannt, da er der ersten relevanten Anwendung zu Grunde lag, bei der Machine-Learning für die Klassifizierung von Bildern genutzt wurde: https://en.wikipedia.org/wiki/LeNet
Koennte man damit eigentlich auch eine ADC-Messung mit sagen wir mal 50-100Messwerten mache und dann darin irgendein Muster finden? Sagen wir mal das Maximum nach einem Minimum oder irgendsowas schlichtes? Oder ist der dafuer schon zu klein? Vanye
Vanye R. schrieb: > Koennte man damit eigentlich auch eine ADC-Messung mit sagen wir mal > 50-100Messwerten mache und dann darin irgendein Muster finden? Sagen wir > mal das Maximum nach einem Minimum oder irgendsowas schlichtes? Oder ist > der dafuer schon zu klein? Bei 64 Byte RAM sollten die Daten schon als Stream vorliegen ;-) Ohne das Projekt des TOs zu relativieren (das ist genial), hier was komplett anderes mit einem vergleichbaren Prozessor: https://www.dos4ever.com/uscope/uscope_e.html
> Bei 64 Byte RAM sollten die Daten schon als Stream vorliegen ;-)
Okay okay.... :-)
Aber es muss ja nicht immer so ganz minimal sein.
Also sagen wir mal so ein kleiner STM32xxx mit 128k flash und 32k
ram wie man sie heute zu dutzenden rumfliegen hat.
Das ist schon ganz interessant sich da mal mit zu beschaeftigen.
Vanye
Vanye R. schrieb: > Aber es muss ja nicht immer so ganz minimal sein. Mit mehr geht mehr. Für die Erkennung von Minima/Maxima brauchts aber bestimmt keine neuronale Netze.
Vanye R. schrieb: > Koennte man damit eigentlich auch eine ADC-Messung mit sagen wir > mal > 50-100Messwerten mache und dann darin irgendein Muster finden? Sagen wir > mal das Maximum nach einem Minimum oder irgendsowas schlichtes? Oder ist > der dafuer schon zu klein? Ja klar. Für Zeitserien würde man aber evtl. auf RNN zurück greifen. https://en.wikipedia.org/wiki/Recurrent_neural_network Für einfachere Aufgaben reichen wohl klassische statistische Methoden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.