xtremecoder
30.01.2009, 18:02
Hallo RN-Crew!
Ich habe mich etwas in die Materie der künstlichen neuronalen Netze eingelesen, und wollte nun ein einfaches neuronales Netz aufbauen, um diese besser zu verstehen.
Ich hätte mir gedacht ich würde dies am liebsten ohne einen mikrokontroller realisieren... Denn im programmieren eines einfachen KNN sehe ich keine Große schwierigkeit, ich möchte es desshalb mal mit einem analogen oder digitalen Schaltkreis versuchen!
Ich bezeihe mich hierbei auf folgenden Thread:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=43897
Ich habe mir auch schon mein erstes KNN mit einer Elektronik geplant, nur kann dieses noch nicht dazulernen...
also mein erstes KNN:
es kann 3 verschiedene Muster erkennen anhand von 3 Inputneuronen. Enstprechend der jeweiligen Muster wird immer eines der 3 Outputneuronen aktiv!
Also ganz einfach, es setzt nur 3 outputneuronen entsprechend dem Muster am Eingang. Dies wäre wahrscheinlich viel einfacher einfach mit einer digitalen Schaltung aus einer Hand voll Logik-Gattern zu realisieren, aber das ist jetzt mal egal...
Als outputneuronen habe ich Transistoren verwendet. Der Basiswiderstand würde hier dann dem Aktivierungspotenzial entsprechen.
Die 3 Eingangssignale für das Muster habe ich einfach entsprechend mit nicht-invertierenden OPs "aufbereitet".
Nun ja, das ist ja alles schön und gut, die Verstärkung des Signals in den OPs (was natürlich der Gewichtung der Inputneuronen entspricht) habe ich schnell berechnet und selbst fesgelegt, aber natürlich kann mein KNN jetzt noch nicht dazulernen.
Das dazulernen möchte ich anhand des Backpropagationsverfahrens machen, also mein KNN soll selbst erlernen, welches Muster zu welchem Outputneuron gehört.
Anhand des Backpropagationsverfahrens kann man das sehr gut machen, dieses Verfahren ändert dann die Gewichtungen und Aktivierungspotenziale der Neuronen entsprechend ab und bis zum Schluss sollte dann alles perfekt eingestellt sein um dass das Netz seine entscheidungen treffen kann. Mein Problem ist jetzt aber, wie mache ich denn das mit dem Abändern dieser Größen?
Bei den Transistoren muss mein Netz den Basiswiderstand von selbst anändern können, und es muss das Widerstandverhältnis bei den OPs von selbst abändern können...
hmm...habt ihr da vielleicht Vorschläge wie man das machen könnte?
wäre euch sehr dankbar!
-alexander
Edit: Hab grad ein vielversprechendes pdf gefunden...
http://www.e-technik.uni-rostock.de/www/mess/29stuepmann.pdf
werde das morgen mal durchgehen!
Ich habe mich etwas in die Materie der künstlichen neuronalen Netze eingelesen, und wollte nun ein einfaches neuronales Netz aufbauen, um diese besser zu verstehen.
Ich hätte mir gedacht ich würde dies am liebsten ohne einen mikrokontroller realisieren... Denn im programmieren eines einfachen KNN sehe ich keine Große schwierigkeit, ich möchte es desshalb mal mit einem analogen oder digitalen Schaltkreis versuchen!
Ich bezeihe mich hierbei auf folgenden Thread:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=43897
Ich habe mir auch schon mein erstes KNN mit einer Elektronik geplant, nur kann dieses noch nicht dazulernen...
also mein erstes KNN:
es kann 3 verschiedene Muster erkennen anhand von 3 Inputneuronen. Enstprechend der jeweiligen Muster wird immer eines der 3 Outputneuronen aktiv!
Also ganz einfach, es setzt nur 3 outputneuronen entsprechend dem Muster am Eingang. Dies wäre wahrscheinlich viel einfacher einfach mit einer digitalen Schaltung aus einer Hand voll Logik-Gattern zu realisieren, aber das ist jetzt mal egal...
Als outputneuronen habe ich Transistoren verwendet. Der Basiswiderstand würde hier dann dem Aktivierungspotenzial entsprechen.
Die 3 Eingangssignale für das Muster habe ich einfach entsprechend mit nicht-invertierenden OPs "aufbereitet".
Nun ja, das ist ja alles schön und gut, die Verstärkung des Signals in den OPs (was natürlich der Gewichtung der Inputneuronen entspricht) habe ich schnell berechnet und selbst fesgelegt, aber natürlich kann mein KNN jetzt noch nicht dazulernen.
Das dazulernen möchte ich anhand des Backpropagationsverfahrens machen, also mein KNN soll selbst erlernen, welches Muster zu welchem Outputneuron gehört.
Anhand des Backpropagationsverfahrens kann man das sehr gut machen, dieses Verfahren ändert dann die Gewichtungen und Aktivierungspotenziale der Neuronen entsprechend ab und bis zum Schluss sollte dann alles perfekt eingestellt sein um dass das Netz seine entscheidungen treffen kann. Mein Problem ist jetzt aber, wie mache ich denn das mit dem Abändern dieser Größen?
Bei den Transistoren muss mein Netz den Basiswiderstand von selbst anändern können, und es muss das Widerstandverhältnis bei den OPs von selbst abändern können...
hmm...habt ihr da vielleicht Vorschläge wie man das machen könnte?
wäre euch sehr dankbar!
-alexander
Edit: Hab grad ein vielversprechendes pdf gefunden...
http://www.e-technik.uni-rostock.de/www/mess/29stuepmann.pdf
werde das morgen mal durchgehen!