Steuerung von Aktoren in neuronalem Netz abbilden

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.
Post Reply
baumeister
Posts: 2
Joined: Mon 8. Feb 2016, 12:37

Steuerung von Aktoren in neuronalem Netz abbilden

Post by baumeister »

Hallo,

ich arbeite gerade an einer Steuerung von 6 Aktoren, welche sich auf Basis von 6 veränderbaren Eingabewerten verfahren sollen.
Bisher ist das so gelöst, dass einfache if/else-Bedingungen die Größe der Eingabewerte abfragen und daraus ein entsprechender Wert für die Aktoren bestimmt wird.

Beispiel: Wenn Eingabewert 1 in einem Bereich von 2 - 4 liegt, soll Aktor 1 der Wert 0,1 zugewiesen werden. Bei einem Eingabwert von 4 - 6 der Wert 0,2 usw. .

Das geschieht analog für die 6 Aktoren und Eingabewerte. Im Anschluss an die Verstellung des Aktors ändert sich auf jeden Fall der entsprechende Eingabewert.
Nun ist noch nicht klar, in wiefern sich diese Aktoren gegenseitig beeinflussen, sodass beispielsweise eine Verstellung von Aktor 1 auch eine Änderung an Aktor 2 und 3 hervorrufen kann. Dies kann ich in Versuchen ermitteln, jedoch ist deren Anzahl begrenzt.
Nun kam der Gedanke, dies in einem künstlichen neuronalen Netz abzubilden und mit den Daten meiner Versuche zu füttern. Ziel des ganzen ist, dass das System nach einer Lernphase in der Lage ist, den Einfluss der Verstellung eines Aktors auf die umliegenden Aktoren vorherzusagen. Ist das in dieser Form möglich?

Meine bisherige Überlegung dazu ist folgende:
Es gibt 6 Neuronen für den Eingang und 6 Neuronen für den Ausgang. Jeder Eingang ist mit jedem Ausgang verbunden.
Da meine bisherige Steuerung keinerlei Beeinflussung berücksichtigt, kann ich das System ausschließlich mit Daten aus Versuchen anlernen.

Denke ich da soweit in die richtige Richtung oder ist das totaler Blödsinn?

Mein bisheriges Wissen zu neuronalen Netzen hält sich leider noch in Grenzen. Ich bin dabei, mich ein wenig in das Thema einzulesen.
User avatar
TJetter
Posts: 341
Joined: Sat 13. Oct 2012, 12:04

Re: Steuerung von Aktoren in neuronalem Netz abbilden

Post by TJetter »

Hallo,
baumeister wrote:Nun ist noch nicht klar, in wiefern sich diese Aktoren gegenseitig beeinflussen, sodass beispielsweise eine Verstellung von Aktor 1 auch eine Änderung an Aktor 2 und 3 hervorrufen kann.
Ich nehme an, die Aktoren beeinflussen sich nicht direkt, sondern das geschieht dadurch, dass Aktor 1 evtl. auf die Eingabewerte 2..6 Einfluss hat und diese dadurch getriggert wieder nachsteuern, durch reren jeweilige Regler? Es basiert also auf der Annahme 6 geschlossener Regelkreise, die zueinander jeweils als potentielle Störgrößen auftreten, richtig?
Wenn das so ist, ergibt sich natürlich eine Folgekette unbekannter Länge bis zum nächsten stabilen Zustand. Im Grenzfall könnte das System auch chaotisch schwingen, nehme ich an.
Jetzt gilt es zunächst einmal ganz genau festzulegen, was das Netz als Inputs bekommen soll und was es ausgeben soll. Aus meiner SIcht gibt es dazu prinzipiell erst einmal die folgenden Fragen zu klären:

1.) Soll das Netz auf Basis von Eingangsgrößen (= Regelgrößen) arbeiten oder auf Basis von Aktorpositionen (= Stellgrößen)?
2.) Soll das Netz eine ganze Kette von zeitlich aufeinanderfolgenden Zuständen reproduzieren können (also ein zeitvariantes Netz sein, was alle 6 Regelkreise simuliert und jeden Zwischenzustand abbildet und sei er auch instabil)? Oder soll das Netz evtl. 'nur' erlernen aus einem momentanen Ist-Zustand den nächsten stabilen, sich ergebenden Ist-Zustand vorherzusagen?

Ich mache jetzt hier einmal Annahmen:
Zu 1.)
- Das Netz soll mit Eingangsgrößen (also Messwerten bzw. Regelgrößen) arbeiten
Zu 2.)
- Es soll 'nur' der nächste stabile Zustand erlernt werden (um ein Vielfaches einfacher!!)

Dann sähe das Netz wie folgt aus:
6 Eingangsneuronen (für jede Regelgröße eines, repräsentieren den Startzustand des Versuchs)
z.B. 3 Hidden-Neuronen
6 Ausgangsneuronen (für jede Regelgröße eines, repräsentieren den stabilen Endzustand des Versuchs)

Ein Versuch sieht so aus:
- Stabilen Zustand abwarten
- Alle 6 Werte 'notieren' (E1 .. E6)
- Einen Wert verändern (z.B. E2 := E2_Trigger )
- Neuen stabilen Zustand abwarten
- Alle 6 Werte notieren (E1' .. E6')
Das Lernmuster für das Netz ergibt sich zu
Eingänge: E1, E2_Trigger, E3, E4, E5, E6
Ausgänge: E1', E2', E3', E4', E5', E6'
Thomas Jetter
baumeister
Posts: 2
Joined: Mon 8. Feb 2016, 12:37

Re: Steuerung von Aktoren in neuronalem Netz abbilden

Post by baumeister »

Vielen Dank für die Rückmeldung.

Ich nehme an, die Aktoren beeinflussen sich nicht direkt, sondern das geschieht dadurch, dass Aktor 1 evtl. auf die Eingabewerte 2..6 Einfluss hat und diese dadurch getriggert wieder nachsteuern, durch reren jeweilige Regler? Es basiert also auf der Annahme 6 geschlossener Regelkreise, die zueinander jeweils als potentielle Störgrößen auftreten, richtig? --> Richtig, es sind erst einmal 6 eigenständige (Regel)kreise. Eine Beeinflussung untereinander gibt es auf jeden Fall, jedoch ist noch unklar in welcher Große.

Wenn das so ist, ergibt sich natürlich eine Folgekette unbekannter Länge bis zum nächsten stabilen Zustand. Im Grenzfall könnte das System auch chaotisch schwingen, nehme ich an. --> Ob es sich wirklich aufschwingen kann, weiß ich nicht, dazu fehlen mir die Kentnisse. Das Ganze ist keine aktive Regelung, sondern eine Steuerung. Der Prozess läuft und gibt als Ergebnis 6 Werte aus. Daraufhin ändert sich die Höhe der Aktoren (fester Verstellbereich von -0,3 bis +0,3 in Schritten von 0,05, wobei die Schrittweite nicht fix ist) und der Prozess läuft erneut.

Jetzt gilt es zunächst einmal ganz genau festzulegen, was das Netz als Inputs bekommen soll und was es ausgeben soll. Aus meiner SIcht gibt es dazu prinzipiell erst einmal die folgenden Fragen zu klären:

1.) Soll das Netz auf Basis von Eingangsgrößen (= Regelgrößen) arbeiten oder auf Basis von Aktorpositionen (= Stellgrößen)?
--> Eingangsgrößen sind Messwerte, Ausgangsgrößen sind die Höhen der Aktoren (Schrittmotoren)
2.) Soll das Netz eine ganze Kette von zeitlich aufeinanderfolgenden Zuständen reproduzieren können (also ein zeitvariantes Netz sein, was alle 6 Regelkreise simuliert und jeden Zwischenzustand abbildet und sei er auch instabil)? Oder soll das Netz evtl. 'nur' erlernen aus einem momentanen Ist-Zustand den nächsten stabilen, sich ergebenden Ist-Zustand vorherzusagen? Letzteres. Auf 6 Eingaben sollen 6 Ausgaben folgen.

Ich mache jetzt hier einmal Annahmen:
Zu 1.)
- Das Netz soll mit Eingangsgrößen (also Messwerten bzw. Regelgrößen) arbeiten
Zu 2.)
- Es soll 'nur' der nächste stabile Zustand erlernt werden (um ein Vielfaches einfacher!!)
Genau so soll es sein.

Dann sähe das Netz wie folgt aus:
6 Eingangsneuronen (für jede Regelgröße eines, repräsentieren den Startzustand des Versuchs)
z.B. 3 Hidden-Neuronen
6 Ausgangsneuronen (für jede Regelgröße eines, repräsentieren den stabilen Endzustand des Versuchs)
--> Die Anzahl der Eingangs- und Ausgangsneuronen ist klar, denn die bilden genau das ab, was ich auch an Daten zur Verfügung habe. Aber warum genau 3 Hidden-Neuronen?

Ein Versuch sieht so aus:
- Stabilen Zustand abwarten
- Alle 6 Werte 'notieren' (E1 .. E6)
- Einen Wert verändern (z.B. E2 := E2_Trigger )
- Neuen stabilen Zustand abwarten
- Alle 6 Werte notieren (E1' .. E6')
Das Lernmuster für das Netz ergibt sich zu
Eingänge: E1, E2_Trigger, E3, E4, E5, E6
Ausgänge: E1', E2', E3', E4', E5', E6'
--> Genau in dieser Form hatte ich das auch vor. Ist irgendwie abschätzbar, wieviele Versuche ich fahren muss um das Netz ordentlich anzulernen? Die Anzahl der Versuche ist nämlich begrenzt.

Was mir auch noch nicht klar ist: Wie bringe ich dem Netz bei, welche Daten einem Gutteil entsprechen und was Ausschuss ist. Wird das einfach in der Lernphase angegeben?
User avatar
TJetter
Posts: 341
Joined: Sat 13. Oct 2012, 12:04

Re: Steuerung von Aktoren in neuronalem Netz abbilden

Post by TJetter »

baumeister wrote:Aber warum genau 3 Hidden-Neuronen?
Reines Bauchgefühl für den Anfang. Die optimale Netzarchitektur wird sich durch weitere Versuche ergeben. Am wichtigsten ist allerdings die Qualität und Quantität der Daten. Mit diesem ersten Netz wird sich schon recht schnell zeigen, ob die Sache machbar ist oder nicht.
baumeister wrote:Ist irgendwie abschätzbar, wieviele Versuche ich fahren muss um das Netz ordentlich anzulernen? Die Anzahl der Versuche ist nämlich begrenzt.
Neuronale Netze benötigen immer eine ausreichende Abdeckung des Parameterraums für das Training. Bei 6 Eingängen und 6 Ausgängen erfordert das u.U. schon recht viele Datensätze. Auch wieder Bauchgefühl: 100 sollten es schon mindestens sein. Mehr ist immer besser.
baumeister wrote:Was mir auch noch nicht klar ist: Wie bringe ich dem Netz bei, welche Daten einem Gutteil entsprechen und was Ausschuss ist. Wird das einfach in der Lernphase angegeben?
Bisher war noch gar nicht die Rede gewesen von irgendeinem Gut- oder Schlechtteil. Wann ergibt sich diese Info denn? Auch nach jedem Versuch? Dann einfach als weiteren Ausgang anlegen, der mit 0 oder 1 oder auch der Güte des Zeils als Skalar belegt wird.
Thomas Jetter
Post Reply