- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 11

Thema: Lernen aus Erfahrung?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397

    Lernen aus Erfahrung?

    Mahlzeit!

    Ich spiele seit ein paar Tagen mit OpenCV unter Linux mit C/C++ rum. Das funktioniert recht gut muss ich sagen. Webcam zugriff, Gesichtserkennung, Gesichtsvergleich klappt alles schon recht gut.

    Auf die Idee bin ich eigentlich gekommen um einer Eigenbaudrohne zu zeigen das ich ich bin. Für autonome Verfolgung. Jetzt stellt sich jedoch das Problem ein, die Software läuft schon so halbwegs, aber um weiter zu machen fehlt mir eben noch die Drohne. Deshalb habe ich mal bisschen weiter geschaut und gesehen, dass man mit OpenCV auch Entscheidungsbäume, neuronale Netze usw. aufbauen kann.

    Jetzt käme an dieser Stelle meine Frage. Hat hier schon jemand Erfahrung mit solchen ANwendungen gemacht? Mir schwebt da nämlich etwas vor und ich denke da könnte mir etwas Hilfe nicht schaden.

    Ich würde gerne ein Programm entwickeln, was prinzipiell nur ein paar gundsätzliche Dinge kann, versteht, beherrscht oder wie auch immer man das in dem Zusammenhang nennen mag. So eine Art minimales Unterbewusstsein. Dazu würde ich mit einem Raspi, ein kleines Autochen bauen. Das Programm soll prinzipiell nur die Möglichkeit haben die Pins anzusteuern, bzw. von dort Daten zu empfangen, sowie eben Gesichter und Gegenstände erkennen können. Ansonsten sollte es möglichst leer sein. Das Programm sollte also möglichst Alles erlernen müssen.

    In etwa stelle ich mir das so vor. Ich gebe ihm ein Ziel vor. Sagen wir mal, auf einem Stick befindet sich ein Bild von einem Objekt, ein roter Würfel oder so und die Aufgabe, sich zu diesem Würfel zu bewegen. Den Rest sollte das Programm dann selbst erlernen. Es kann quasi instinktiv die Pins ansteuern und sehen was dann passiert. Das müsste dann natürlich als Erfahrung abgespeichert werden. So soll zum Beispiel dann bei Aktivierung von sagen wir Pin10 eine LED leuchten, um Nachts fahren zu können. Das soll dann eben als Erfahrung abgespeichert (wäre das dann eine Neurone?) werden. Eine Erfahrung die dem Programm sagt das es für die Fortbewegung nicht dienlich ist. Wird dann irgendwann der Pin aktiviert der einem anderen Microcontroler den Befehl gibt vorwärts zu fahren soll er das als die dienlich für das Problem anspeichern usw.

    Das Ganze hat letztlich kein festes Ziel. Ich will damit also kein bestimmtes Gerät bauen sondern wirklich erleben wie das Programm lernt. Wie es mit wachsender Erfahrung auch kompliziertere Aufgaben lösen kann usw. So gesehen, anschalten und schauen wo hin es sich entwickeln kann, ob es sich entwickeln kann usw.

    Dazu müsste ich aber wissen, wie baut man so ein "leeres" neurales Netz? Die Beispiele von OpenCV erklären es für mich nicht, zumindest kann ich nicht so wirklich den Zusammenhang erkennen von Kreisen, Linien und Quadrate verschieben zu so etwas. Auch werde ich aus dem Trainieren noch nicht ganz schlau.

    Gibt es denn hier jemand der das Wissen hat und sich zutraut es mir näher zu bringen, bzw. die Lust hat mit da zu helfen?

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Hallo hirnfrei,

    schau doch mal auf YouTube Hier >>https://www.youtube.com/watch?v=UbktAxbUPnk

    oder

    hier >>https://www.youtube.com/watch?v=7LouOajwXiI

    Viele Grüße
    Jörg

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Wow Wissen lernen und Methoden lernen auf einmal.
    Da willst Du ja von Anfang an gleich ganz nach vorne bei der KI Forschung.
    Also zum erlernen von Wissen und Bewerten von Daten, Schau dir mal die Forschungspuplikationen zu IBMs Watson an. die sind da mit am weitesten.
    Beim Erlernen und Verbessern von Methoden, such mal nach genetischen Algorithmen und Evulotionsstrategien.
    Bsp.: http://www.techfak.uni-bielefeld.de/...ungen/GAES.pdf
    Ein leeres neuronales Netz an sich bekommt man nicht so ohne weiteres hin. In der Regel entscheidet man sich schon mal für die Anzahl der Schichten und den Netztyp.
    Bsp.: http://www.neuronalesnetz.de/netztypen.html
    Je nach Vorbildung kann das eine längerfristige, spannende Beschäftigung werden.

    http://www.codeplanet.eu/tutorials/c...in-csharp.html
    Geändert von i_make_it (19.01.2016 um 19:14 Uhr)

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Ich finde es schon lustig wie Jörn Loviscach zu nahezu allen Themen die mich interessieren irgend ein Video am Start hat. Sehr lustig, vor Allem weil ich das Meiste da auch immer recht schnell verstehe.

    Ich hätte also Deep Learning da in der Planung. Das wird Lustig, da ich kaum einen Keller voll Grafikkarten an mein Projekt dran basteln kann. Aber wie er sagte, es muss nicht immer neuronal sein. Mal schauen.

    Das mit dem Schwarm ist aber auch eine lustige Idee.

    Nur wie nun beim Deep Learning nun wirklich gelernt wird hat er leider nicht gesagt. Nur das es automatisch geht, aber irgendwie will sich mir das nicht erschliessen.

    Sehr interessant ist aber auch die Idee, das ausgegebene Signal wieder an den Input zu legen. Ist so ein wenig wie damals meine ersten BASIC Programme. Solange man nichts gedrückt hat ist auch nichts passiert. Demnach auch die Uhr nicht weiter gelaufen. Dann in C mit der while schleife zum Beispiel ist das Programm ja durchgehend gelaufen und hat auch die Uhr aktualisiert. Wäre interessant zu sehen ob das was raus kommt auch zum eigenen Lernen genutzt werden kann. Wäre ja praktisch in der Zeit wo es nicht genutzt wird das es sich selbst beschäftigt.

    Bin für weitere Informationen durchaus dankbar

    - - - Aktualisiert - - -

    Zitat Zitat von i_make_it Beitrag anzeigen
    Je nach Vorbildung kann das eine längerfristige, spannende Beschäftigung werden.
    Na klar will ich ganz nach vorne . Besser ein hohes Ziel gesteckt und nur bis zur Hälfte gekommen wie gleich ein kleines Ziel gesteckt und doch nicht weiter gekommen. Kein Plan wie weit ich das, gerade auch wegen der Hardware, realisieren kann, aber wenn ichs mir nicht angucke und ausprobiere werde ich es nie erfahren. Vielleicht kommt ja ein Nobelpreis bei raus, oder nur ein "Das habe ich auch mal versucht". Gibt schlimmeres um seine Zeit zu verbringen.

    Und wie gesagt, es ist super spannend und fasziniert mich sehr. Es gibt definitiv sinnlosere Sachen mit denen man sich beschäftigen kann .

    Und danke für die Infos.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Falls ich hier mit was falsch liege, bitte berichtigen.


    Zitat Zitat von hirnfrei Beitrag anzeigen
    In etwa stelle ich mir das so vor. Ich gebe ihm ein Ziel vor. Sagen wir mal, auf einem Stick befindet sich ein Bild von einem Objekt, ein roter Würfel oder so und die Aufgabe, sich zu diesem Würfel zu bewegen. Den Rest sollte das Programm dann selbst erlernen. Es kann quasi instinktiv die Pins ansteuern und sehen was dann passiert.
    Hierzu gibt es zum Beispiel das Kameramodul Jevois A33. Wenn ich das bis jetzt richtig verstanden habe, kann man damit das tun: Bilder von Objekten speichern und wiedererkennen lassen und verfolgen. Der eingebaute Prozessor macht es möglich. Das Kameramodul gibt dann die Ergebnisse aus (seriell als Daten vermutlich). Anhand der Daten kann man ausmachen, wo sich das Objekt relativ zum Kameramodul befindet und vermutlich auch, um welches Objekt es sich handelt.

    Zitat Zitat von hirnfrei Beitrag anzeigen
    Das müsste dann natürlich als Erfahrung abgespeichert werden. So soll zum Beispiel dann bei Aktivierung von sagen wir Pin10 eine LED leuchten, um Nachts fahren zu können. Das soll dann eben als Erfahrung abgespeichert (wäre das dann eine Neurone?) werden. Eine Erfahrung die dem Programm sagt das es für die Fortbewegung nicht dienlich ist. Wird dann irgendwann der Pin aktiviert der einem anderen Microcontroler den Befehl gibt vorwärts zu fahren soll er das als die dienlich für das Problem anspeichern usw.
    Controller-Anschlüsse auf LOW oder HIGH setzen. Kommt am Controller an und kann per Software erfasst werden. Alle Anschlusszustände in einem Array speichern. Dann müsste man Regeln aufstellen (wenn Werte in dem Array soundso, dann ist das Ergebnis - best. Variable bspw. - soundso). Sowohl Werte aus dem Array, als auch das Ergebnis der vorherigen Regel, fliessen in folgende Regeln ein. Die Regeln können nicht immer willkürlich abgearbeitet werden, deshalb müssen sie ordnungsfähig sein (nummeriert), weil es sein kann, dass eine Regel nur angewendet werden kann, wenn andere Regeln zuvor und weitere erst danach angewendet werden. Je mehr Regeln man hinzufügt, desto genauer wird das "Problem" gelöst. Manche Regeln können nur unter bestimmten Voraussetzungen zu richtigen Ergebnissen führen. Deshalb müssen Regeln über die Anwendung von Regeln entscheiden. Das führt zu Regelbäumen und Verzweigungen zwischen den Bäumen.

    Zitat Zitat von hirnfrei Beitrag anzeigen
    Das Ganze hat letztlich kein festes Ziel. Ich will damit also kein bestimmtes Gerät bauen sondern wirklich erleben wie das Programm lernt. Wie es mit wachsender Erfahrung auch kompliziertere Aufgaben lösen kann usw. So gesehen, anschalten und schauen wo hin es sich entwickeln kann, ob es sich entwickeln kann usw.
    Dazu müsste ich aber wissen, wie baut man so ein "leeres" neurales Netz? Die Beispiele von OpenCV erklären es für mich nicht, zumindest kann ich nicht so wirklich den Zusammenhang erkennen von Kreisen, Linien und Quadrate verschieben zu so etwas. Auch werde ich aus dem Trainieren noch nicht ganz schlau.
    Ich denke, hier bewegen wir uns in Ordnungen, schon bei geringen Anforderungen an eine Drohne, die Erkennen und Verfolgen lernen kann, ähnlich denen eines neuronalen Netzes, das Schach spielen lernt. Denn es gibt nicht wenige Sensor-Inputs und Aktoren die gesteuert werden sollen.
    Geändert von Moppi (08.09.2018 um 10:35 Uhr)

  6. #6
    HaWe
    Gast
    das Topic ist ja nun schon ein paar Jahre alt, aber für Lernen per KI gibt es u.a. diese beiden bewährten Herangehensweisen:
    a) Lernen durch Training (assisted): Muster werden gezeigt, die wiedererkannt werden sollen. Netztyp: mehrschichtige Perzeptron-Netze (z.B. Backpropagation)
    b) Lernen durch eigenes schrittweises Probieren und Annähern des Ziels bis zum Erfolg (non-assisted): G-Learning.

    Beides wurde schon erfolgreich auf MCUs gemacht, ein ARM Prozessor ist dabei zu empfehlen wegen Speicher (v.a. für Backpropagation) und Ausführungsgeschwindigkeit (für beide).

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Macht doch nichts, das paar Jahre alt ist. Ich vermisse konkretere Lösungsansätze.

    Dann brauchen wir jetzt nur eine Informationen zu: "wurde schon erfolgreich auf MCUs gemacht".

    Welche genau, von Wem und Wo? Evtl. Bauteile, Beschaltung, Programmierung, Erklärung im Detail?

  8. #8
    HaWe
    Gast
    die Backpropagation von mir, hatte ich schon mal hier gepostet (einschichtige Netze u.a. für Lego NXT, und 2-Layer Backpropagation Netz für Arduino Due, z.B. auch rückgekoppelt vom "Elman" oder "Jordan" Typ); meines Wissen war ich der erste weltweit, der dies veröffentlciht hat ).
    (Das Programm ist sehr groß, die hiesige Forumsoftware erlaubt keinen solchen Programm-Upload; hatte ich gegenüber Frank etc. schon öfters reklamiert, auch für andere Dateien; ohne Reaktion leider. Das Mindstorms-Forum, wo auch der Code ursprünglich veröffentlicht wurde, ist aber z.Zt. offline, der Site-Admin und Gründer möchte es aber höchstwahrscheinlich nach der letzten Datenschutz-Verordnung nicht mehr weiter supporten)


    Das G-Learning wurde von anderen schon auf dem Lego EV3 gemacht, zum Laufenlernen für einen Mehrfüssler, habe aber auch schon andere Projekte mal gesehen, z.B. Wegefindung in kleinen "Labyrinthen".

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Das ist doch schon ganz prima, dann machen wir einen Querverweis an der Stelle, damit der Leser auch weiter kommt:

    da hatten wir einen Laufrobotter,

    und wir hatten in diesem Thread ein von Counterfeiter eingestelltes Video, was praktisch eine Demonstration zeigt.

    Für den LEGO NXT und neuronales Netz habe ich auch etwas gefunden


    Nachtrag:

    wobei ich Differenzierung für gut halte:

    1) künstliche neuronale Netze
    2) Funktionsweise neuronaler Netze
    3) Implementation auf Lego NXT oder auf Atmegas / Arduinos etc.

    Zum ersten Fall will ich gar nichts weiter schreiben, weil die eigentliche Nachbildung menschlicher Neuronen ein Fall für sich ist.

    Zum Zweiten kann man anmerken, dass man die Funktionsweise eines neuronalen Netzes hinterfragt, bzw. entwickelt. Dafür gibt es etablierte Ansichten, hinter denen auch jeweils bekannte Namen stehen. Hier wird das Regelwerk beleuchtet, nach dem künstliche Intelligenz als solches funktionieren soll und kann: Lösungsansätze, wie man Regeln miteinander verknüpft, damit die Verbindung insgesamt dazu führt, dass etwas erlernt werden kann.

    Beim dritten Fall geht es darum, wie man nun diese Regeln aus dem zweiten Fall auf gängige Ausführungseinheiten (CPU / Controller) überträgt. Hier greift man als nun auf ein existierendes Regelwerk zurück (Maschinensprache des Controllers z.B.) um diese speziellen Regeln auf die unterste Ausführungsschicht drauf zu packen, die ermöglichen, dass mein Computer / Controller etwas erlernen kann.

    Nachtrag:

    Da der dritte Fall viel Overhead erzeugen dürfte und zusätzliche Rechenzeit (Takte), sowie Speicherplatz kostet, sind zukünftig vor allem solche Chips interessant, wie hier vorgestellt:

    Eine Million simulierter Neurone haben IBM-Forscher auf einem Chip untergebracht. Sein biologisches Vorbild macht "TrueNorth" zum Energiesparwunder. Forscher bauten "Kerne" von je 256 Neuronen und 256 x 256 Synapsen auf, in denen alle nötigen Elemente verkapselt sind. Über 4000 Stück davon passen auf den Chip.
    Geändert von Moppi (08.09.2018 um 14:42 Uhr)

Ähnliche Themen

  1. RP6 Programmieren lernen?
    Von xMichiiix im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 20.03.2014, 23:19
  2. Programieren lernen C++ oder eher Arduino eigene Sprache lernen?
    Von PsychoElvis64 im Forum Arduino -Plattform
    Antworten: 6
    Letzter Beitrag: 17.12.2013, 09:34
  3. Assembler lernen
    Von Attiny im Forum Assembler-Programmierung
    Antworten: 52
    Letzter Beitrag: 09.10.2008, 06:35
  4. Roboterbau lernen
    Von grind im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 08.09.2005, 17:46
  5. bascom lernen
    Von roooy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 22
    Letzter Beitrag: 06.11.2004, 11:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen