Neuronales Netz

Gast #2685189
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.
Gast
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
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.