Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Modelle zum Nachbauen oder wo gibt es etwas interessantes oder Projekte?

Moderator: Moderatoren

TheCritter
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 21
Registriert: 24. Jun 2015 08:29

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon TheCritter » 6. Apr 2016 10:23

Danke schon mal für deine Beschreibung. Hast du jetzt doch einen Aufbau gewählt wo der Raspi das "Denken" bewerkstelligt und der Arduino für I/O u.ä. zuständig ist?

Bei a) Das ist das Edit Menü?
Bei b) Im Hauptmenü werden ja die Eingänge angezeigt. Da dann irgendwas drücken?

DAs Jordan Net ist ja rückkoppelnd, also "lernt aus Fehlern"? Wie und wo macht es das?

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon HaWe » 6. Apr 2016 12:28

Mit dem Raspi bin ich noch ganz am Anfang. Es gibt aber ein paar Posts hier im Forum zum Thema Raspi, so weit wie ich zur Zeit voran komme.

zu a)+b) ja, da werden dann die IOs auf 0 oder 1 gesetzt, so wie gewünscht.

Das Jordan (oder Elman-) Netz lernt nicht aus Fehlern, sondern zusätzlich zu den aktuellen Sensor-Inputs wird auch der Zustand der Outputschicht als zusätzliches Input Layer mit berücksichtigt. Das hatte ich schon mal irgendwo im Zusammenhang erklärt. Letztendlich muss man sich als Nutzer aber selber intensiv in die Mathematik von Neuronalen Netzen und KI einlesen, das kann man / ich nicht hier im Forum per Posts erklären, es würde deutlich den Rahmen sprengen. Nicht umsonst gibt es ja komplette (Uni-) Lehrbücher dafür.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

TheCritter
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 21
Registriert: 24. Jun 2015 08:29

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon TheCritter » 7. Apr 2016 09:10

Langsam bekomme ich den Durchblick.
Im Groben verstehe ich ja die NN. Also jetzt nicht wie man eins aufbaut, sondern wie man es nutzt. Man legt am Eingang ein Muster an und legt fest wie der Ausgang aussehen soll. Dann trainiert man das so lange bis man einen gewünschten maximalen Fehler hat.

Was mir aber noch nicht ganz klar ist sind die Radencoder. Von denen bekommt man ja so eine art Geschwindigkeit (bzw ein Event wenn es sich bspw 5Grad weiter gedreht hat). Werden die auch in die Input Neuronen rein geschrieben? Falls ja, ähnlich wie bei den Abstandssensoren? Also angenommen 20Grad/sec so wird Eingangsneuron 50 auf 1 gesetzt,...

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon HaWe » 7. Apr 2016 09:23

Ganz grob gesprochen, ist ein neuronales Netz ein lernfähiges Instrument, das auf verschiedene Anwendungsbereiche frei trainiert werden kann.
Mit einem neuronalen Netz ist es wie mit einem Kalman-Filter oder einem PID-Regler, nur noch weitaus flexibler:
Du kannst alles mögliche als Inputs reinschleusen, und alles mögliche dann an Reaktionen während des laufenden Betriebs trainieren und auslösen, nur WIE du es machst und WAS dann damit passiert, das kannst - und musst - du selber konfigurieren, und das gilt ntl auch für Radencoder.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

TheCritter
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 21
Registriert: 24. Jun 2015 08:29

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon TheCritter » 7. Apr 2016 09:37

Wo die Radencoder rein geschrieben werden, das habe ich jetzt auch gefunden :)
Abgesehen von dem NN selber, das ich aber auch nicht vor habe verstehen, außer die Schnittstellen dazu, muss ich bei deinem Programm nur noch raus finden was du mit dem PID Regler machst.
Ansonsten werde ich mich mal dran machen das Programm auf meine Bedürfnisse um zu bauen.

Achso, du "treibst" 4 Motoren separat an. Bei einem Auto sollten ja 2 Motoren reichen, auch wenn an jedem Rad einer sitzt? Auch sehe ich das du nur 2 Radencoder in die Eingangsneuronen rein schreibst?

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon HaWe » 7. Apr 2016 09:44

mit dem PID Regler mache ich noch gar nichts. Er wurde nur als zusätzliches Regel- und Steuerelement optional mit eingefügt.
Ich habe inzwischen aber auch festgestellt, dass die lib PID_v1 mit dem Due nicht perfekt funktioniert, und ich habe den vagen Verdacht, dass die original-Lib AVR-Interrupts verwendet, die ntl nicht mit dem ARM Prozessor des DUE funktionieren. Kann auch andere Gründe haben.
Wenn du mit dem obigen Stadium praktisch arbeiten willst, lass es vorläufig erstmal weg und versuche erst mal ganz simple Dinge ohne PID und ohne Encoder.

Ich selber arbeite wie gesagt gar nicht mehr mit dem NN auf DUE Basis, weil der DUE insgesamt zu leistungsschwach ist, und mit dem Raspi bin ich noch nicht so weit.

edit: Ich habe die letzten Fragen abgetrennt und hier in den Fragen- und Diskussions-Thread geschoben.
Original-Topic:
http://www.mindstormsforum.de/viewtopic.php?f=70&t=5601
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

TheCritter
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 21
Registriert: 24. Jun 2015 08:29

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon TheCritter » 7. Apr 2016 10:17

Ok, danke. Da mache ich das erst mal ohne und sammele erst mal Erfahrung.

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon HaWe » 7. Apr 2016 16:35

genau!
Ich würde erstmal die Encoder als Inputs rausnehmen und auch nur 2 Motore.
Die anderen beiden waren als Reserve für einen Arm/Greifer gedacht, um Dinge zu greifen (Transporterbot) oder wegzukicken (Soccerbot).

Wenn du eine Art "Bumper Car" als erstes trainieren wolltest, z.B. noch 2 Stoßstangen-Touchsensoren vorn li+re und 1 hinten
Dann würde ich ihn darauf trainieren, beim Anstoßen zu stoppen, ein Stück zurück zu fahren, eine leichte Kurve einzuschlagen und wieder nach vorn. Das ist schon ne ganze Menge als Start.

Als nächstes dann vlt 2 IR-Distanzsensoren vorne li + re und 2 seitliche und 2 nach schräg hinten zusätzlich (das ist einfacher als nur 1, der sich radarmäßig dreht).
Selbes Programm wie oben, aber jetzt bei Annäherung an ein Hindernis schon beim draufzufahren einen leichte Kurve vom Hindernis weg, um es zu umfahren.

Fürs Training musst du während des Fahrens die Sensor-Daten simultan in vielen Einzelschritten verarbeiten und trainieren, das wird ohne Fernbedienung nicht leicht werden.
Wenn du das so hinkriegst, ist das schon echt eine tolle Leistung!
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

TheCritter
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 21
Registriert: 24. Jun 2015 08:29

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon TheCritter » 8. Apr 2016 10:18

Danke nochmal :D
Ja an eine Fernbedienung hab ich auch schon gedacht. Entweder einen 2. Arduino oder falls ich es schaffe mit meinem Handy und per Bluetooth connected. Das LCD wäre da an der Fernbedienung auch besser aufgehoben als auf dem fahrenden Auto. Hab sogar 2 Bluetooth Module da.
Ich habe gestern Abend erst mal alle analogen und Radencoder Eingangsneuronen raus geworfen. Auch habe ich gemerkt dass meine Radencoder die ich bestellt habe nur "einfache" sind. Also keine Richtung erkennen können. Dauert aber bestimmt noch 2-3 Wochen bevor die kommen.
Was komisch ist, meine SD-Karten die ich in mein ST7735 einlege werden nur von der SD Library erkannt, nicht von der SDFat. Das konnte ich aber schnell ändern.
Was ich erst mal seltsam fand, wenn ich einen Eingang 39-42 aktivierte, so erkannte er kurz dieses Default Muster, dann sprang er aber auf -1 Pattern. Hab dann später erst mit bekommen dass dann die rückgekoppelten Neuronen nicht übereinstimmen und daher die von dir programmierten Pattern nicht erkennt. Ja sowas macht sich in der Fahrt mit "Momentaufnahme" besser.

Also Sensoren hab ich derzeit nur 4 Infrarotsensoren die aber nur 1/0 kennen. Hab da einen nach vorne und jeweils 45Grad nach links/rechts und einen nach hinten gerichtet.

Das ist mein aktueller Stand. Bin auch erst bei den Trockenübungen. Heute morgen montiere ich dann den Due vermutlich mal aufs Auto.

Übrigens dein Trainingsprogramm, das hatte ich vor einer Weile schon mal ohne NN Netz bewerkstelligt. Also wenn der Sensor der nach vorne gerichtet ist ein Hinderniss bemerkt, dann einfach schauen ob der links oder rechts mit auslöst und kurz drehen so dass der nicht in die Richtung schaut wo auch seitlich noch ein Hinderniss wäre. Dann weiter fahren. Lief mit ca 20 Zeilen auf einem Uno *zw*

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon HaWe » 8. Apr 2016 12:41

zu deinem 20-Zeilen Uno-Alternativ-"Trainingsprogramm":
ja klar, aber genau darum geht es doch:
fertige Verhaltensweisen fest programmieren ist simpel, aber eben unflexibel und zur Laufzeit nicht mehr änderbar.
Und Probleme in Situationen, die nicht fest vorprogrammiert waren, können nicht gelöst werden.
Ein NN hat per se kein fest vorgegebenes Programm für ein Verhalten, alles muss trainiert werden, aber dann kann man es abspeichern und jederzeit neu laden, abspulen oder wieder umlernen, modifizieren, und neu abspeichern.

Ein NN ist kein Weg, etwas einfacher zu machen, sondern intelligent.

Beispiel Mustererkennung:
Du kannst mit 20x20 Sensoren im Quadrat Zeichenerkennung fest vorprogrammieren, z.B. die Ziffern 0-9 als Pixelmuster, an verschiedener Position.
Nun präsentiere ihm eine schräg stehende 8 oder eine 8 in einer anderen Größe, die vorher nicht vorprogrammiert wurde.
Dein festes Programm wird es nicht erkennen, aber ein NN wird irgendeine Antwort darauf geben. Vielleicht richtig, vielleicht auch nicht, aber wenn nicht, dann ebenfalls wieder trainierbar.

Im Übrigen ist auch ein NN und die gesamte KI kein Allerwelts-Problemlöse-Ding, sondern eher ein Stück KI-Grundlagenforschung und KI-Anwendungsforschung... 8-)


ps,
und ja, ganz genau...! das mit den Kontextneuronen für das pattern -1 hast du völlig richtig erkannt!! 8-)

und ebenfalls richtig: ja, SD-Karten sind ziemlich tricky, v.a. gleichzeitig mit Displays am selben Hardware-SPI Bus.
Auch ein Grund, warum ich teilweise mit dem Due verzweifelt bin.... :(
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

TheCritter
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 21
Registriert: 24. Jun 2015 08:29

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon TheCritter » 8. Apr 2016 13:45

Das mit dem 20 Zeilen Programm, das war ja nur ein Test für die HW ;)
Mir ist da noch gleich die nächste Frage eingefallen. Wenn das Eingangsmuster zu keinem Pattern passt, so bekomme ich ja -1. Vermutlich halten die Motoren dann an. Wenn ich genügend Pattern gespeichert habe, wo stelle ich da den maximalen Fehler ein, also das er auch wenn ein Eingang abweicht mir das ähnlichste Muster vorschlägt?

SD und TFT hab ich noch nicht gleichzeitig probiert. Wenn es aber klappt was ich mir vorstelle, so ist die SD Karte am Fahrzeug und das TFT an der Fernbedienung. Habe vor die Sachen die angezeigt werden sollen in eine Struktur zu packen, die zu serialisieren, über BlueTooth zu versenden und umgekehrt Steuersignale zu empfangen.
Hmm, eigentlich könnte man auch so die Eingangs/Ausgangsneuronen verschicken. Ist ja nicht so viel und diese dann am PC/Handy berechnen lassen und zurück schicken. Aber bei den paar Stück die ich habe, brauche ich das erst mal nicht und lasse den Due rechnen.

Na dann schon mal schönes WE und mal sehen wie weit ich da komme

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon HaWe » 8. Apr 2016 13:53

Fehlergrenzen kannst du nicht einstellen, alles ergibt sich ausschließlich aus bereits trainierten Mustern.
Er erkennt aber wie gesagt durchaus Ähnlichkeiten, sodass er solche Grenzen quasi selber setzen kann, eben aus dem erlernten Repertoire heraus.

ps,
finde ich aber echt toll, dass du dich da jetzt dran wagst!
Viel Glück und Erfolg ...! :prima:

noch ein Tipp:
für deine späteren Experimente (nach den ersten Schritten) macht es übrigens Sinn, die Netzgröße den Inputs und Outputs anzupassen, so dass möglichst wenige Inputs und Outputs unbesetzt bleiben. Auch die Zahl der Zwischenneuronen sollte dann eher noch kleiner gewählt werden als alle Inputs: das bringt intelligentere Lösungen, als wenn das Netz "oversized" ist.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

TheCritter
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 21
Registriert: 24. Jun 2015 08:29

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon TheCritter » 13. Apr 2016 10:07

So als Zwischenstand, das Auto hat paar Bewegungen gemacht. Hab dann aber eingesehen das man am Auto schlecht programmieren kann und daher angefangen eine Bluetooth Verbindung zu einem 2. Arduino aufzubauen und da die Werte anzeigen lassen.
Ich habe dazu die entsprechenden Felder in ein Struct gesammelt und die dann per Serial/Bluetooth verschickt. Auf der anderen Seite konnte ich das Struct dann wieder herstellen. Weiter bin ich noch nicht gekommen.

TheCritter
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 21
Registriert: 24. Jun 2015 08:29

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon TheCritter » 19. Jul 2016 08:49

@HaWe, hast du eigentlich schon mal was mit OpenCV und OpenNN gemacht gehabt?
Ich hab mir mal einen NanoPi M1 und eine zugehörige 2MPix Camera bestellt. Wenn die ankommen will ich damit etwas rum probieren.
Bei dem OpenNN weis ich aber noch nicht ob das überhaupt geeignet ist.

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Diskussion zu: lernfähiges Neuronales Netz (NN, neural net)

Beitragvon HaWe » 19. Jul 2016 11:04

hallo,
nein habe ich nicht und kenne /nutze ich auch beide nicht.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E


Zurück zu „Projekte, Showcase, Bauanleitungen“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss