Hallo Forum, ich beschäftige mich gerade mit maschinellem Lernen am Rande, da ich in einer festen batteriebetrieben Applikation eine passende Hardwareplattform dafür anbieten muss. Leider lassen die wenig gemachten Voruntersuchungen mir nicht viel Wahl und ich muss etwas tiefer rein. Für den PC gibt es ja schon so einige Toolkits. Interessant sind natürlich die kostenfreien. Für Python gibt es Scikit-learn und neu: Tensorflow von google. API's die anbieten auf der Grafikkarte die Algorithmen zu lösen, sagen ja schon recht viel über den Ressourcenhunger aus... Zur Aufgabenstellung: Ich habe eine 4-Dimensionale (Eingangswerte) (evtl. auch höhere D.) Funktion zu der ich eine 3D-Lösungsfunktion (Ausgangswerte) besitze. Also einfach ausgedrückt: Ich habe drei Eingangswerte und brauche die zwei passenden Ausgangswerte. Lösung: maschinelles Lernen -> Regression ?! Nun waren die ersten Versuche nicht von mir und es stellte sich heraus, dass es mit 8 GB Arbeitsspeicher und nem Quad-Core CPU ganz gut funktioniert... Zur Frage: Ich habe mir einiges an Dokumentation zu scikit-lern durchgelesen, leider konnte ich bisher keine Parameter entdecken, mit dem ich den Ressourcenhunger beim Lernen begrenzen könnte. Mein Wunschziel wäre es eine "Lernmatrix" in der Größe um maximal 1 MB (Flash) zu genieren und die anschließende Regression sollte maximal 300 kB RAM benötigen. Die Rechenzeit würde ich der Einfachheit halber erst einmal ausklammern. Ich fürchte nur, dass sich die nötigen Ressourcen einfach aus den verwendeten Algorithmen (+ Datenpunkten) ableiten. Mein Ansatz bei über 100k Samples wäre nach diesem Flowchart: http://scikit-learn.org/stable/tutorial/machine_learning_map/ wäre die SGDRefressor Klasse. Bin ich auf dem Holzweg? Könnte mir jemand kurz umreißen wie ich dieses Problem angehe und der Lösung näher rücke? Vielen Dank Reiner
> Ich habe eine 4-Dimensionale (Eingangswerte) (evtl. auch höhere D.) > Funktion zu der ich eine 3D-Lösungsfunktion (Ausgangswerte) besitze. Butter bei die Fische. Wie sehen die Funktionen aus? > Also einfach ausgedrückt: Ich habe drei Eingangswerte und brauche die > zwei passenden Ausgangswerte. Nur drei Werte, die auf zwei abgebildet werden?
Sorry, natürlich habe ich mehr Daten (> 100 kSamples), also drei Eingangsdatenreihen sollen auf zwei Ausgangsfunktionen abgebildet werden. Der Input kommen von Gassensoren. Der Ausgangs-/Referenzsignale wurden natürlich zuvor ermittelt.
Reiner schrieb: > Ich habe drei Eingangswerte und brauche die > zwei passenden Ausgangswerte. Ein neuronales Netz lässt sich auch auf einem µController realisieren, es kommt halt darauf an wie komplex. Man kann aber auch das Lernen auf einem PC durchführen und nur die fertigen Parameter an den Controller übergeben. Georg
Das habe ich vor. Ich möchte nur gern die gelernten Daten schon beim anlernen auf ein realistische Größe begrenzen. Wie könnte ich das angehen z.B. mit scikit-learn?
Reiner schrieb: > Der Input kommen von Gassensoren. Der Ausgangs-/Referenzsignale > wurden natürlich zuvor ermittelt. Und Du bist Dir sicher dass sich das nicht mit klassischer Statistik erschlagen lässt? Der Gradientenabstieg ist zwar universell aber ziemlich rechenaufwändig IIRC.
Naja, einfach mit einem beliebigen Framework das Netzwerk anlernen. Hierbei darauf achten, dass du nicht zuviele Neuronen + Schichten einsetzt und idealerweise LReLU oder ReLU Aktivierungsfunktionen. Je nach komplexität kommst du vielleicht mit ein paar hundert floats aus. Die angelernten Gewichte exportieren und dann brauchst du auf dem uC nur noch ein wenig addieren + multiplizieren und die nichtlineare Aktivierungsfunktion anwenden. Hierfür ist manchmal eine Matrix Bib hilfreich.
Moin, Wieso musses denn unbedingt auf einem µC laufen? Jeden Tag kommen doch ein paar neue Multicore-ARMs mit RAM und Gedoens und GHz auf kleinen Platinen fuer kleines Geld raus. Da drauf laeuft sicherlich das, was du an Software vom dem PC kennst... Gruss WK
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.