Neuronale Netze zur Folgeregelung

Sie haben ein bestimmtes Projekt zu bearbeiten und wissen nicht, wie Sie an die Aufgabe heran gehen sollen? Sie sind sich nicht sicher, ob Ihr Netzentwurf zu Ihrem Problem passt oder ob es da Optimierungsmöglichkeiten gibt? Ist es überhaupt sinnvoll an Ihre Daten mit einem NN basierten Ansatz heranzugehen? Ist MemBrain das richtige Werkzeug für Ihr Problem und Ihre Infrastruktur?

Hier ist der richtige Platz für diese Art von Fragen.
MacRayBan
Posts: 8
Joined: Wed 3. Jun 2009, 14:06

Re: Neuronale Netze zur Folgeregelung

Post by MacRayBan »

Hallo Thomas,

ich habe mir jetzt nochmal Gedanken darüber gemacht ob RL für meine spezielle Problematik überhaupt geeignet ist. Ich habe bis jetzt sehr viele Beispiele gelesen von Robotern oder ähnlichem, die mit RL trainiert wurden. Allerdings ist mir immer eine Sache aufgefallen, und zwar sind die gesteuerten Systeme/Roboter für sich unveränderlich. Genau das ist bei mir nicht der Fall...für jeden Einlagerungsvorgang habe ich einen anderen Parametersatz. Der Einfachheit halber, sagen wir mal der einzige Parameter, der sich verändert, sei die Masse (Das ist auch der tatsächliche Haupteinflussfaktor).
Gehen wir mal weiter davon aus, dass die Kombination zw. NN und RL darin besteht, die für RL notwendigen Funktionen (Policy, Return, Valuefktn) durch NN zu approximieren.
Wenn ich jetzt mit dem Training beginne, denke ich dabei an folgendes Vorgehen:
Sei meine einzulagernde Masse m1. Dann trainiere ich meine NN solange bis sie die RL-Funktionen bestmöglich approximieren, sodass das RBG eine optimale Trajektorie verfährt und nicht/kaum in Schwingungen gerät. Für die entsprechende Masse m1 hat mein Agent also nun gelernt, die optimale Trajektorie zu verfahren.
Das ganze kann ich nun mit beliebig vielen weiteren Massen machen, sodass ich für die entsprechenden Massen die dazugehörigen RL-Funktionen approximiere.
Aber jetzt stelle ich mir die Frage, ob der Agent irgendwann anfängt zu generalisieren oder ob ich für jede neue Masse, meine Netze erneut trainieren, d.h. die entsprechenden RL-Funktionen approximieren muss? Also wie reagiert der Agent, nachdem er gelernt hat für mehrere Massen die optimale Trajektorie zu verfahren, auf eine neue noch nicht "erlernte Masse"? Weil die Sache ist doch die, dass die eigentliche Generalisierung doch schon in der Approximation der RL-Funktionen durch das NN steckt. Aber die RL-Funktionen für eine Masse bringen mir ja dann nichts mehr für einen anderen Beladungszustand, oder doch?
Ich weiß, das klingt jetzt etwas verwirrend...ich hoffe, ich hab mich einigermaßen verständlich ausgedrückt ;-)

Grüße,
Florian
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Neuronale Netze zur Folgeregelung

Post by Admin »

Hallo Florian,

So ganz langsam stellt sich etwas mehr Klarheit bei mir im Kopf ein, auch wenn mir noch sehr viel schleierhaft bleibt.

Ich habe die Vermutung, dass Du mindestens für die 'Value'-Funktion V ein neuronales Netz brauchen wirst. Diese Funktion bildet die Grundlage für die Auswahl der jeweils nächsten Aktion basierend auf der gegenwärtigen Situation. Sie schätzt den 'Wert' der nächsten Aktion im Hinblick auf das Erreichen des Endziels ab. Die Menge der nächsten möglichen Aktionen muss immer auf Ihren 'Value' hin geprüft werden (in dem das NN zu allen möglichen Aktionen befragt wird) und aus dieser Menge die beste Aktion gewählt und dann ausgeführt werden. Nach Erreichen eines Sequenzendes (Zielposition erreicht oder Prozess abgebrochen, Qualität des Gesamtergebnisses der Sequenz bekannt) muss im Rückblick das NN so nachtrainiert werden, dass es die Abbildung V(Situation, Aktion) das nächste Mal besser repräsentiert und zwar für alle Teilschritte der Sequenz.

Genauer kann ich es auch noch nicht sagen, aber in diese Richtung muss es wohl gehen.

Ich denke, Du musst Dir zuallererst Gedanken darüber machen, wie genau eine 'Situation' in Deiner Anwendung aussieht (ich nehme an, sowas wie Ort, Beschleuinigung, usw.).
Dann müsste die Definition möglicher Aktionen folgen. Ist eine Aktion nur eine nächste Sollposition, die mit einer vorgegebenen Beschleunigung/Geschwindigeit angefahren werden soll?

Wenn Diese Dinge abgeklärt sind und wir die Thematik RL noch etwas weiter durchdrungen haben, stelle ich mir das Vorgehen so vor:

- Der RL-Algorithmus berechnet eine komplette Trajektorie im Voraus (Anhand der Aktions-Auswahl wie oben beschrieben) und legt diese im Speicher ab.
- Die Trajektorie wird abgefahren
- Das Ergebnis wird beurteilt
- Das NN für die Value-Funktion wird nachtrainiert, und zwar für alle Situations-/Aktionspaare, die für diese Trajektorie durchlaufen wurden. Das bedingt natürlich, dass man sich alle Situations-Aktionspaare für eine Trajektorie merken muss, bis die Trajektorie und das Nachtarinieren abgeschlossen sind.

Diesen Prozess wirst Du sehr sehr oft durchführen müssen und das schreit geradezu nach einer Anbindung an eine Simulation. Ich denke, das mit einem echten Regalbediengerät in Echtzeit durchzuführen, kommt nicht in Frage, zumindest nicht für erste Tests, solange bis der grundsätzliche Algorithmus steht.
Auch für die Praxis könnte ich mir vorstellen, eine Simulation zu verwenden, die den Agent grob vortrainiert und dann am echten Regal 'nur noch' Optimierungen erlernen zu lassen.

Du sagst, es gibt bereits eine Simulation. in welcher Form liegt diese vor und wie könnte man softwaretechnisch an diese anbinden?

Ich weiß, mehr Fragen als Antworten, aber ich denke, der Nebel wird sich noch lichten... ;)

Viele Grüße
Thomas Jetter
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Neuronale Netze zur Folgeregelung

Post by Admin »

Nachtrag:

Was zur Definition einer Situation ('State') auf jeden Fall auch gehört, ist natürlich eine Angabe über den momentanen Schwingungszustand (denn Schwingungen sollen ja gerade vermieden werden).
Gibt es hier schon Überlegungen, wie 'Schwingung' erfasst und quantifiziert werden soll? Wird das über Drehmomentschwankungen am Motor gemacht? Und in welchem Frequenzbereich? Ist hier evtl. sogar eine Unterscheidung notwendig, oder eine FFT, die ein Spektrum liefert?

Eine weitere Kernüberlegung ist die Zeitintervallfestlegung für den Action-/State-Übergang des RL-Algorithmus: Mit welcher zeitlichen Auflösung müssen Verfahrkommandos für eine Trajektorie bestimmt werden? Wie sieht es mit Beschleunigungssprüngen aus, wenn Verfahrkommandos nacheinander an die Motorsteuerung gegeben werden? Gleichen das die Regler automatisch aus, so dass so etwas wie eine Spline-Interpolation der Trajektorie verfahren wird, anstatt einzelner Positionen, die hart angefahren werden?

Und: Wie realistisch ist die Simulation, gerade was die dynamischen Eigenschaften des Systems betrifft?

... Ein recht komplexes Thema hast Du Dir da ausgesucht ;) Ich denke, Du bewegst Dich damit auf absolutem Neuland, so etwas mit RL zu realisieren. RL ist ein sehr junges Forschungsgebiet, auf dem noch sehr vieles unklar ist.
Auf der anderen Seite wäre ein erfolgreiches Projekt in dieser Richtung auf jeden Fall ein Durchbruch, der in KI-Kreisen signifikante Beachtung finden würde.

Ich denke, Du kannst groß rauskommen damit, wenn's klappt! ;)

Viele Grüße
Thomas Jetter
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Neuronale Netze zur Folgeregelung

Post by Admin »

Hallo Florian,

nochmal eine kurze Rückmeldung: Das sündhaft teure Buch, das irgendjemand bei Amazon mit 5 Sternen gekrönt hat, ist ein Graus, während das Online-Buch, das Du oben erwähnst:
http://www.cs.ualberta.ca/~sutton/book/ ... -book.html
Eine Perle zu sein scheint. Das macht richtig Spass beim Lesen, ich finde es ausgezeichnet aufbereitet.
Das hat dazu geführt, dass ich mir das nun eben auch in Papierform bestellt habe. Hätte ich doch nur ein wenig mehr recherchiert, bevor ich mir gleich die 79,- Euro Luftnummer kaufe! Hätte genauer schauen müssen: Ist so ein 'Book On Demand' Ding, bei dem es keinen Verleger gibt. D.h., der Preis wird vom Autor selbst bestimmt und gedruckt wird es auch wenn der Inhalt mies ist... Aber so kann's halt manchmal laufen ;)

Viele Grüße,
Thomas
Thomas Jetter
MacRayBan
Posts: 8
Joined: Wed 3. Jun 2009, 14:06

Re: Neuronale Netze zur Folgeregelung

Post by MacRayBan »

Hallo Thomas,

sorry, dass ich mich etwas länger nicht gemeldet habe, aber es war einiges los und es gab vieles mit meinem Semesterarbeitsbetreuer zu besprechen und zu entscheiden ;-)
Wie du bereits gesagt hast, ist das Themengebiet RL mit NN noch ein eher unerforschtes Gebiet...deswegen möchte mein Betreuer vielleicht auch ein Forschungsprojekt daraus machen. Da das ganze aber einen enorm großen Aufwand bedeutet und den Rahmen einer nornmalen Semesterarbeit bei weitem sprengt, habe ich mich mit meinem Betreuer darauf verständigt, dass ich in die RL-Richtung nicht weiter machen sollte...ist jetzt zwar eine ernüchternde Erkenntnis, weil ich (und vor allem du) schon einiges an Arbeit investiert haben, aber dass das so aufwändig werden würde, konnte ich im vorhinein nicht abschätzen.
Alternativ soll ich jetzt wieder meinen ursprünglichen Ansatz mit überwachtem Lernen verwenden. Ziel soll sein, dass das NN den optimalen Verlauf der Krafttrajektorie ausgibt. Dazu kurz zu meinem Vorgehen:
Zuerst soll ich mich nur auf sog. Horizontalfahrten des RGB beschränken, d.h. das Lastaufnahmemittel verbleibt während der Horizontalfahrt des RGB auf der gleichen Höhe (später soll das ganze auf Diagonalfahren erweitert werden, also gleichzeitige Horizontal- und Vertikalfahrt). Für das Training stehen mir momentan ca. 120 Solltrajektorien zu unterschiedlichen Parametersätzen zur Verfügung (die an einem anderen Lehrstuhl mit einem anderen Regelungskonzept generiert wurden). Ich dachte daran ca 2/3 für das Training zu vernweden und 1/3 zum testen.
Die Inputparameter sind skalare Werte, also ergibt sich pro Parameter eine Inputneuron. Insgesamt habe ich 10 Inputparameter. Eine Frage hierzu: Bei der Generierung der 120 Trainingstrajektorien wurden bis jetzt nur zwei Parameter, nämlich die Einlagermasse und der zurückzulegende Weg variiert. Bei den restlichen Parametern handelt es sich um Parameter des RGBs und die wurden jetzt noch nicht verändert (können aber natürlich veränderlich sein, zB wenn ich verschiedene RBGs einsetze). Sind meine Trainingsbeispiele dann überhaupt noch repräsentativ? Oder bräuchte ich noch Trainingsdatensätze, bei denen alle Inputparameter variiert werden? Ich fürchte fast ja :-D
Die Trajektorien will ich folgendermaßen über die Ausgangsneuronen repräsentieren: Jede Trajektorie stellt einen Funktionsverlauf dar. Die Einzelnen Funktionsverläufe haben alle eine charakteristische Form, d.h. sind sich von der Form her sehr ähnlich. Ich habe jetzt in Matlab zwei Varianten geschrieben, um die Trajektorienverläufe zu approximieren. Variante 1 verwendet einen Polynomansatz um die Trajektorienverläufe anzunähern. Ich habe ein Polynom vom Grad 20 verwendet und Matlab berechnet mir die Koeffizienten des approximierten Polynoms.
Variante 2 verwendet einen Ansatz, bei dem 8 sin-Verläufe in der Form a*sin(b*x+c) überlagert werden. Matlab gibt mir hier auch die entsprechenden Koeefizienten a, b, c aus.
Welche Variante ich verwende, muss ich noch herausfinden. Dazu werd ich mir noch eine Simulationsschleife schreiben die alle Trajektorien mit beiden VArianten approximiert und mir dann den Gesamtfehler pro Variante für alle 120 Trajektorien ausgibt. Sollte ich aber in der Woche noch hinkriegen.
Jeder Koeffizient stellt dann ein Outputneuron dar. Auf diese Weise kann ich die Trajektorien eindeutig mit Neuronen repräsentieren.
Ein weiterer wichtiger Output, der nicht vergessen werden darf, ist die Zeit, die für den Positioniervorgang benötigt wird. Wenn mir mein Netz nämlich im "Betrieb" nur die Koeffizienten ausgibt, dann wäre mein daraus resultierender Trajektorienverlauf ja beliebig lang. Mit der Zeit kann ich ihn aber genau begrenzen.
Zu den Trainingsdaten habe ich noch eine Frage: Welches Datenformat ist denn dafür am besten geeignet? Kann ich die Trainingsdaten alle in einer Datei sammeln oder muss ich sie einzeln übergeben?
Und bevor ichs vergess:
Admin wrote: Du sagst, es gibt bereits eine Simulation. in welcher Form liegt diese vor und wie könnte man softwaretechnisch an diese anbinden?
Von dem ganzen System liegt ein Modell in Matlab bzw. Simulink vor, das das reale Gerät relativ gut nachbildet. Die Ergebnisse meiner Arbeit kann ich mit dem Modell auch validieren, da die Möglichkeit besteht, die Schwingung für eine Positioniermanöver mit einer vorgegebenen Trajektorie zu simulieren.

Soweit der Stand der Dinge!
Ich hoffe, ich kann dann sobald wie möglich mit dem Traing des NN beginnen ;-)
Grüße,
Florian
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Neuronale Netze zur Folgeregelung

Post by Admin »

Hallo Florian,
MacRayBan wrote:ist jetzt zwar eine ernüchternde Erkenntnis, weil ich (und vor allem du) schon einiges an Arbeit investiert haben
mach' Dir keine Sorgen wegen meiner Zeitinvestition, ich würde das nicht tun, wenn mich das Thema nicht interessieren würde. Und RL finde ich im Moment so spannend, dass ich mich auf jeden Fall weiter einarbeiten werde. Das ist ein sehr mächtiges Konzept und trifft bzgl. meines eigenen 'Kerninteresses' absolut in's Schwarze (nämlich ein autonomes, intelligent agierendes System zu erschaffen, das aufgrund seiner Interaktionen mit seiner Umwelt lernt).

Ich werde versuchen, bald näher auf Deine Antwort einzugehen. Ob Dein Problem mit einem einfachen NN ohne RL in den Griff zu bekommen ist, weiß ich aber nicht. Hatte gerade das Gefühl, dass RL genau das Richtige dafür wäre... jammerschade ;)

Viele Grüße
Thomas Jetter
Post Reply