Forum: Digitale Signalverarbeitung / DSP / Machine Learning Neuronen Training


von chris (Gast)


Lesenswert?

Hallo Zusammen,

im Moment beschäftige ich mich mit Fragen zu neuronalen Netzen.
Um mal etwas praktisches auszuprobieren, habe ich mir ein Experiment 
überlegt:

- Ein Neuron ist an 4 binäre Leitungen angeschlossen. Auf den Leitungen 
werden die Zahlen 0-15 codiert.

- Es wird ein gleichverteilter Zufallsdatenstrom erzeugt. Eine bestimmte 
Zahl wird von Zeit zu Zeit eingefügt.

- Das Neuron soll lernen, auf diese Zahl zu reagieren.

- Es soll ein "unkontrolliertes Lernen" erfolgen, d.h. ohne Feed Back 
Loop

Kennt sich von euch jemand aus, wie man die Gewichte automatisch 
ermittelt? Habt Ihr eine Idee?

von Markus F. (Gast)


Lesenswert?

Möchtest Du sie in Echtzeit oder per Simulation bestimmen und dann 
nutzen?

von Christian B. (casandro)


Lesenswert?

Da gibts unterschiedliche Algorithmen, aber ich glaube das was Du machen 
willst kannst Du anders deutlich einfacher lösen, bzw die Lösung ist 
u.U. unmöglich.

von chris (Gast)


Lesenswert?

>Möchtest Du sie in Echtzeit oder per Simulation bestimmen und dann
>nutzen?

Es geht mir eher um das Prinzip des unüberwachten Lernens
http://de.wikipedia.org/wiki/Un%C3%BCberwachtes_Lernen

Ich möchte verstehen, wie man die Synapsengewichte automatisch regeln 
kann.

Es muss etwas mit der Hebbschen Regel zu tun haben:
http://de.wikipedia.org/wiki/Hebbsche_Lernregel

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

chris schrieb:
> Ein Neuron ist an 4 binäre Leitungen angeschlossen. Auf den Leitungen
> werden die Zahlen 0-15 codiert.

Wieso willst du hier mit diskreten Werten arbeiten? Das macht die Sache 
nur viel komplizierter.

> Es wird ein gleichverteilter Zufallsdatenstrom erzeugt. Eine bestimmte
> Zahl wird von Zeit zu Zeit eingefügt.

Wie soll dein Neuronales Netz diese Zahl von den Zufallsdaten 
unterscheiden?

> Es geht mir eher um das Prinzip des unüberwachten Lernens

Versuch es vielleicht erst mal mit überwachtem Lernen.

von chris (Gast)


Angehängte Dateien:

Lesenswert?

>Wie soll dein Neuronales Netz diese Zahl von den Zufallsdaten
>unterscheiden?

Oben habe ich mal eine Simualtion angehängt, mit der ich das Verfahren 
teste. Die zu lernende Zahl ist 4. Man kann die Wahrscheinlichkeit mit 
der die Zahl vorkommt ist auf 20 Prozent eingestellt.

Mit meiner Implementierung der Hebbschen Lernregel ( möglicherweise habe 
etwas falsch gemacht ... ) lernt das Neuron nach ca. 200 Durchläufen das 
Pattern. Das Pattern scheint invertiert zu sein. Das Gewicht für das Bit 
3 ist auf -1 gegangen die anderen auf +1.

Das Verfahren funktioniert mit den anderen Zahlen genauso. Allerdings 
finde ich 200 Durchläufe bei einer Wahrscheinlichkeit von 20 Prozent für 
das pattern etwas langsam.

von Alex (Gast)


Lesenswert?

Ich glaube daß es nicht funkltionieren wird weil ich zu doof bin zu 
verstehen wovon du redest!

Ob langsam ist oder nicht ist es eine Interessante Frage. Wenn wir was 
"lernen" wie viele Impulse wird die Speicherneurongruppe brauchen bis es 
gespeicher wird ? Vielleicht noch mehr Pulse wenn wir sagen daß so gibt 
es 1 Puls pro ms und wird brauchen manchmals ein paar Sekunden bis wir 
was erkennen... aber ein 1 zu 1 korrelation kann man bestimmit nicht 
machen...

von Mar V. (marvol)


Lesenswert?

Hallo Chris,

also das Lernen mit der Hebbschen Lernregel ist natürlich von der 
Lernrate abhängig, wobei meine Erfolge damit eher bescheiden waren. 
Grundsätzlich müßte das Netz aber alle Kombination in 200 Schritten 
gelernt haben und nicht nur die "4".

Schneller geht es mit dem Levenberg Algorithmus, ist allerdings auch 
rechenaufwendiger:

http://www.eng.auburn.edu/~wilambm/pap/2011/K10149_C012.pdf

Gruß
Marvol

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
Noch kein Account? Hier anmelden.