Hi, ich muss in einem uC ein Neuronales Netz implementieren. Nun frage ich mich, wieviel RAM-Speicher ich für eine solceh Aufgabe einplanen müsste... Kann soetwas noch sinnvoll mit 4kB gelöst werden, oder braucht man unter 16kB garnicht anfangen an solche Aufgaben zu denken? Es wird ca. 4 Inputmesswerte geben und drei unterschiedliche Outputwerte. Wie die Zwischenschicht ausfällt ist mir selber noch nicht ganz klar, allerdings muss ich mich nun für einen uC entscheiden und möchte nicht unnötig teure Controller verwenden... mfg und Danke
Das geht mit dem billigsten Controller. Ein neuronales Netz ist auch nichts weißer als eine Vektormultiplikation. Ram brauchst Du bei so wenigen Werten kaum, eine Zwischenschicht vielleicht noch nichtmal, oder die besteht im kompliziertesten Fall halt aus 8 Einheiten. Mach Dir lieber mal Gedanken, wie du das Netz trainieren willst.
Dazu habe ich auch gleich eine Folge-Frage: Wie signalisiert man dem Netz, dass die "Entwicklung" gerade in die gewünschte Richtung geht? Soweit ich es verstanden habe, werden die Wichtungen in der mittleren Ebene im Lernprozess verschoben. Wie aber weiß so ein Netz, dass die daraus resultierende Ausgabe bei Wichtung A erwünschter ist, als bei Wichtung B? mfg
Hi, NN schrieb: > Kann soetwas noch sinnvoll mit 4kB gelöst werden, oder braucht man unter > 16kB garnicht anfangen an solche Aufgaben zu denken? > > Es wird ca. 4 Inputmesswerte geben und drei unterschiedliche > Outputwerte. Die Input/Output-Geschichte wird wahrscheinlich x-mal mehr Speicher benoetigen als das NN. Wie j.c. schon geschrieben hat, ist das im Idealfall eine Matrix die multipliziert wird. Man kann NN auch anders implementieren, aber der Speicherverbrauch ist dann entsprechend groesser. NN schrieb: > Wie signalisiert man dem Netz, dass die "Entwicklung" gerade in die > gewünschte Richtung geht? > > Soweit ich es verstanden habe, werden die Wichtungen in der mittleren > Ebene im Lernprozess verschoben. Wie aber weiß so ein Netz, dass die > daraus resultierende Ausgabe bei Wichtung A erwünschter ist, als bei > Wichtung B? Stichwort: Backpropagation Ich habe waehrend meiner Studienzeit auch relativ viel mit NN gearbeitet. Ich habe mir dafuer ein Tool geschrieben, das Trainingsdaten einliest und auf dem "schnellen PC" die Wichtungen (=Parameter) der einzelnen Knoten ermittelt - sprich, das Netz trainiert. Diese Parameter musste ich dann nur noch in den Controller uebertragen. Geht relativ zuegig das zu implementieren, ein Nachmittag sollte vollkommen ausreichend sein. Gruesse, TommyS
Javanns ist zb ein Tool damit du einen Einblick bekommst wie deine Hiddenschichten aussehen könnten damit ein nahezu gewünschtes Ergebnis herauskommt
Ein NN ist das richtige fuer Leute, die sich nicht richtig mit dem Problem befassen wollen oder koennen, und beliebig viel Rechenleistung haben. Daher sollte man die Struktur und die Gewichtung mit dem PC machen. Und erst nachher das NN in den Controller laden. Da man nicht inkrementell, sondern nur auf's Mal lernen kann, muss man die Muster repetitiv anlegen. Sowas kann man in der Realitaet nicht, sondern nur in der Testumgebung.
Plop schrieb: > Da man nicht inkrementell, > sondern nur auf's Mal lernen kann, Verstehe Dich nicht so ganz. Du trainierst einen Datensatz nach dem anderen und kannst ja auch jederzeit mit dem Training aufhoeren und "Echtdaten" verarbeiten. Dann kannst Du wieder eine "Trainingssession" einschieben und so weiter. Das ist fuer mich ziemlich inkrementell. Gruesse, TommyS
Notfalls mach es halt mit einem anderen Artificial Intelligence Tool. SVM oder weiß-der-Geier-was. Am wichtigsten ist nicht die Klassifikationsmethode, sondern die Auswahl möglichst informativer Eigenschaften, die man der Klassifikation füttert. Ein neuronales Netz um Beethoven zu erkennen, sollte man lieber nicht mit dem RAW-Spannungsverlauf der Musik füttern.
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.