- 3D-Druck Einstieg und Tipps         
Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 45 von 45

Thema: einfaches neuronales Netz, inkl. deep learning

  1. #41
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Anzeige

    Powerstation Test
    Ich habe den auf "erledigt" gesetzt, weil ich der Meinung war, dass zu einem bestimmten Zeitpunkt ausreichend geklärt war, worum es bei meinem Anliegen geht.
    Das darf deswegen ruhig weiter diskutiert werden, wenn noch jemand was dazu zu sagen hat.


    MfG

  2. #42
    HaWe
    Gast
    Zitat Zitat von Rumgucker Beitrag anzeigen
    Hallo Moppi, HaWe, Mxt und Holomino,

    ich danke Euch für diesen interessanten Thread und hoffe, dass "Thread erledigt" nicht heißt, dass mein später Beitrag hier unerwünscht ist.


    Ich stelle mir eine nur mir bekannte geheime und dunkle "Umwelt" vor.

    Sie besteht aus einem Schachbrett mit 8 mal 8 Feldern, von denen viele mit Mauern besetzt sind. Ein vollständig blinder Roboter soll durch diese ihm unbekannte Umwelt hüpfen und den Ausgang finden.

    Der Roboter kann ausgehend von seiner Position in alle acht Richtungen springen. Wenn der arme Kerl gegen eine Mauer hüpft, wird er bestraft und zurück auf die Startposition gestellt. Die Anzahl der Strafen wird gezählt.

    Als "normales" Programm wäre das ein 50-Zeiler inkl. Deklarationen und man findet findet mit weniger als 64 Strafen nicht nur irgendeinen, sondern sogar den optimalen Weg, wenn es denn überhaupt einen Weg gibt.

    Ich spekuliere, dass KNN dem weit unterlegen sind.

    Man wird viele ähnlich einfache (aber sinnvolle) Anwendungen finden, in denen KI eher hinderlich erscheint. Sinnvoller scheint der Einsatz erst zu werden, wenn die Aufgaben komplexer werden. Sprach- und Bildererkennung. Aber damit geht automatisch die von Moppi geforderte anschauliche Einfachheit verloren.

    Bei großen Projekten treten auch strukturelle Probleme in den Vordergrund. Die mangelnde Parallelität und die fehlende dynamische Vernetzung unserer Computer. Beide strukturellen Mängel können nur mit der brutalen Rechnergeschwindigkeit von GPUs halbwegs ausgebügelt werden.

    ---------------

    Mich persönlich würden winzige lernende und sich vernetzende KNN sehr interessieren. Aber dann mit einem matrixarmen Ansatz, der besser an die Gegebenheiten unserer kleinen Controller angepasst ist.

    Und ich glaube auch, dass hier im Forum genug Expertise vorhanden ist, um auf neue Ansätze zu kommen.

    Viele Grüße

    Wolfgang
    NNs sind nur dann festem prozeduralem Code überlegen, wenn sie auf komplexe und auch auf unscharfe Bedingungen sinnvolle Reaktionen bringen müssen.
    Um verschieden große Autos, Fussgänger und Fahrräder an beliebigen Stellen und aus verschiedenen Perspektiven in Bildern zu identifizieren
    - oder auch Gesichter in verschiedenen Größen und aus verschiedenen Perspektiven mit unterschiedlichem Gesichtsausdruck als Personen zu identifizieren und zu erkennen, wirst du um NNs nicht herumkommen.
    Gleiches gilt für Buchstaben- und Ziffernerkennung (Texterkennung) bei verschieden großer Schrift mit verschiedenen Font-Typen, die auch an verschiedenen Stellen und auch geneigt und verdreht gegen die Matrix-Waagerechte/Senkrechte in einem großen Pixel-Feld erscheinen (TFT-Pixelmatrix, Kamera-CCD-Sensor).

    Es gibt aber für verschiedene Anwendungszwecke viele verschiedene NN-Topologien und - Funktionalitäten, sowohl assistiert trainiert als auch selbst-trainierend, und nicht jedes Netz ist für alle Zwecke geeignet.
    Ein EINFACHES Netz (Topic-Titel) wird jedoch KEINE sinnvollen Anwendungsgebiete in der Robotik haben, sondern nur sehr komplizierte, große und komplexe NNs:
    Zum Verständnis der einfachsten Neuron-Funktionen sind große und komplexe aber absolut ungeeignet.

    Ein schon etwas größeres NN mit verwendbarer Funktionalität habe ich ja hier entworfen:
    https://www.roboternetz.de/community...Cr-Arduino-ESP
    doch es gerät bereits extremst an die Grenzen der Leistungsfähigkeit (RAM, Speed) von Arduino-MCUs.

  3. #43
    HaWe
    Gast
    PS,
    Einen ganz entscheidenden Aspekt von NNs habe ich aber noch gar nicht erwähnt, obwohl er eigentlich aber auch offensichtlich ist:
    Ist eine NN-Struktur per Programm erstellt (gewisse Anzahl von verschieden großen, miteinander verknüpften Neuron-Layern samt Sensor-Eingängen und Output-Devices), dann kann es zur Laufzeit (!) auf verschiedenste Lerninhalte trainiert werden, es kann alte Muster durch neues "Wissen" überschreiben und auch ganz neue Wissensinhalte dazulernen.
    Und das nicht nur für eine Spezielle Kategorie wie z.B. Schrifterkennung, sondern man kann das bisherige Wissen abspeichern, alles löschen, und nun mit dem selben Netz z.B. Gesichter- oder Sprach-Erkennung trainieren.
    Oder auch "4 Gewinnt" oder evt sogar "Go" spielen.
    Dann wieder alles abspeichern, und wieder ein anderes Wissens-Set laden, neu erstellen oder weiter trainieren.
    Geändert von HaWe (09.11.2019 um 12:28 Uhr) Grund: typo

  4. #44
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.11.2019
    Ort
    Hamburg
    Beiträge
    117
    Danke Euch. Spannende Materie.

  5. #45
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Nach einigen Irrwegen komme ich hier her zurück.

    Ich will versuchen, das Ursprungsthema dieses Threads zu lösen. Weil wir kommen, egal, worum es bei KI hier geht, immer wieder auf dasselbe zurück. In jedem neuen Thema immer wieder dieselben Fragen und Lösungswünsche.
    Deshalb Suche ich jetzt ein paar Sachen zusammen und versuche eine Art Zwischenstand darzustellen:

    Das war mein Wunschzettel, hinzu packe ich Sachen, die ich gefunden habe und von denen ich denke, dass sie zum jeweiligen Thema passen und markiere mal, wie weit ich gekommen bin:


    1. Was sind Neuronen in einem NN?

    https://www.roboternetz.de/community...ion-der-Zellen

    2. Wie bilde ich ein Neuron im Programm (Arduino-C-Code) ab/nach?

    Die Funktion mittels Funktionen in der Programmiersprache (hier bin ich schon weit gekommen), die berechneten Gewichte, die auch aus dem Lernen resultieren, in Arrays.

    3. Wie funktioniert die Gewichtung in einem NN, wie bilde ich dies im Programmcode ab/nach?

    Etwas umfangreiches Thema und komplizierter, aber nicht unmöglich, es allgemeinverständlich darzustellen. Dafür gibt es mehrere Funktionen, die auch in C abgebildet werden können.
    Das ist für mich erst einmal erledigt.


    4. Wie "lernt" das Netz, wie bilde ich dies im Programmcode ab/nach?


    Indem ein Fehlerwert (positiv oder negativ) aus dem Signal der Ausgangsneuronen berechnet wird und dieser den Gewichten der Neuronenverbindungen hinzugefügt wird.
    Dafür wird ein Vergleichsmuster benötigt. Für versteckte Neuronenschichten (zwischen Ein- und Ausgangsneuronen) gibt es ein ähnliches Verfahren, aber keinen direkten Vergleichswert.
    Wie wird es nachgebildet: hat sich so weit aufgeklärt.
    Allerdings lässt mich die Dokumentation, bezüglich des Programmcodes (MXTs verlinkte Seite), mit Details gerade etwas im Stich. Gwisse Teile im Quelltext, die aber auch äußerst wichtig sind, sind nicht genau erklärt. Hier muss ich den Programmcode nachempfinden und aufbauen, um die einzelnen Schritte und Zusammenhänge besser zu verstehen.

    5. Wie entsteht aus einem Eingangsmuster eine Zuordnung am Ausgang?

    Durch die Prozesse innerhalb der Neuronen, deren Verbindungen untereinander (die üblicher Weise immer von einem Neuron zu allen anderen Neuronen, in der nächsten Schicht, existieren) und deren Gewicht. Durch Wiederholung im Lernprozess entsteht im gesamten Netz langsam eine Gewichtsverteilung, die das Eingangsmuster auf das Ausgangsmuster abzubilden vermag.

    6. Wie speichere ich Gewichte aus dem Netz und lade sie wieder dort hinein, um das Netz verschiedene Aufgaben erledigen zu lassen?

    Die Gewichte befinden sich in Arrays und können dort nicht nur berechnet werden, sondern auch geladen, gelöscht und daraus gespeichert. Es muss das gesamte Array gespeichert werden.

    7. Wie weiß ein Netz, wann es alles fertig ist mit Lernen und wann es das Gelernte anwenden kann, also wie schalte ich ein Netz um, von Lernen auf Anwenden und wie sieht dies im Programmcode ganz genau aus, wie wird es realisiert?


    In der einfachen Variante hat das Netz kein Wissen darüber, wie es von Lernen auf Ausgabe umschalten sollte. Ein eigenständiges Verhalten eines neuronales Netzes ist so erst mal gar nicht gegeben. Im Grunde werden in einer Schleife, bis das gewünschte Ergebnis erreicht ist, Werte aus Arrays immer wieder berechnet. Die Berechnungen bauen auf Werten, aus den vorhergehenden Berechnungen, auf. Das neuronale Netz als solches tut gar nichts. Wann gelernt wird oder nicht, entscheidet einzig der Entwickler der Software, in einem Programmablauf.


    Ich glaube, Erklärungen kann man kaum genug haben. Deshalb hier nochmal ein Link (deutschprachig): http://www.informatik.uni-ulm.de/ni/...gen/Ruland.pdf


    MfG
    Geändert von Moppi (16.12.2019 um 07:38 Uhr)

Seite 5 von 5 ErsteErste ... 345

Ähnliche Themen

  1. Microsoft: Nächste Hololens nutzt Deep-Learning-Kerne
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 24.07.2017, 16:40
  2. Deep-Learning-Konferenz von Golem.de: Studierende bekommen Tickets günstiger
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 04.04.2016, 10:40
  3. Konferenz Quo Vadis 2016: Wie Deep Learning Games verändern kann
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 03.03.2016, 11:10
  4. Antworten: 7
    Letzter Beitrag: 31.01.2009, 23:41
  5. Neuronales Netz
    Von matren im Forum Software, Algorithmen und KI
    Antworten: 39
    Letzter Beitrag: 26.07.2004, 01:52

Berechtigungen

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

Labornetzteil AliExpress