-         
Seite 7 von 7 ErsteErste ... 567
Ergebnis 61 bis 65 von 65

Thema: GI = Guckis Intelligenz

  1. #61
    Benutzer Stammmitglied Avatar von Rumgucker
    Registriert seit
    07.11.2019
    Ort
    Hamburg
    Beiträge
    91
    Anzeige

    Hallo Forum,

    Klatschi entdeckt das Auftreten oder Fehlen von Ereignissen zu autonom gelernten Zeitpunkten. Es kann diese Zeitpunkte an langsame Änderungen anpassen. Das ist schon mal gut.

    Ein brauchbarer Dekoder muss aber noch mehr können! Klatschi müsste von Natur aus auch kombinieren können (obwohl ich das noch nie beobachtet/nachvollzogen hab).

    Zur Erlangung einer vorgegebenen Kombinationsfähigkeit muss es eine Steuerung geben, die mehrere Ereigniszeiten einspeist und den ersten aus deren Kombination resultierenden Feuerimpuls mit einem gewünschten Ausgang verbindet. Der Lernvorgang ist beendet, wenn alle gewünschten Ausgänge verlinkt wurden.

    So sollte ich dann auch x-beliebige Dekodierungen hinbekommen können.

    Das bau ich (ab) heute.

    Viele Grüße

    Wolfgang
    Geändert von Rumgucker (18.11.2019 um 11:43 Uhr)

  2. #62
    Benutzer Stammmitglied Avatar von Rumgucker
    Registriert seit
    07.11.2019
    Ort
    Hamburg
    Beiträge
    91
    Hallo,

    Dekoder klappt bestens:

    10 -> OUT_0
    01 -> OUT_1
    11 -> OUT_2

    Mikrominimale Erweiterung an der Source. Neue Links werden im "learn"-Mode auf die gewünschte Ausgangszelle gelenkt:

    gi.txt


    Es werden nun genau vier Links angelegt und keinerlei Neuronen belegt. Links mit "FF" am Anfang sind noch leer:

    Klicke auf die Grafik für eine größere Ansicht

Name:	gi_net5.jpg
Hits:	4
Größe:	63,9 KB
ID:	34489

    Das sich ergebende Netzwerk ist anscheinend goldrichtig:

    Klicke auf die Grafik für eine größere Ansicht

Name:	gi_net4.jpg
Hits:	5
Größe:	16,9 KB
ID:	34488

    Der Nutzen aller Links ist noch "00", weil sie halt erst gelernt und noch nicht benutzt wurden.

    So wurde das Programm aufgerufen:

    Code:
      FOREVER {
        switch(loop) {
          case 0: pattern = 0x01; learn = AKT_0; break;
          case 1: pattern = 0x02; learn = AKT_1; break;
          case 2: pattern = 0x03; learn = AKT_2; break;
          default: FOREVER;
        }
        gi_lerne();
        loop++;
      }
    Es wurde also für jedes pattern ein zuzuweisender Ausgangsport festgesetzt.

    Damit sind also Dekoder mit logischen Verknüpfungen realisierbar.

    Ich bin mir noch nicht sicher, ob out_2 wirklich bei "11" kommt oder schon bei einem der beiden Bits. Zu dem Test müsste ich in die RAM-Zellen gucken können, damit ich sehe, wann die feuern. Kann ich aber nicht.

    Da muss ich mir noch was zum Test einfallen lassen. Da kann ich noch ne kleine Leiche im Logik-Keller haben.

    Viele Grüße

    Wolfgang

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

    So würde ich ODER "einlernen" (schreckliches Wort):
    pattern=0x10 learn=AKT_2
    pattern=0x01 learn=AKT_2

    und so UND:
    pattern=0x11 learn=OUT_2

    Ich bin mir aber noch nicht sicher, ob das Klatschi auch so siieht.
    Geändert von Rumgucker (18.11.2019 um 17:20 Uhr)

  3. #63
    Benutzer Stammmitglied Avatar von Rumgucker
    Registriert seit
    07.11.2019
    Ort
    Hamburg
    Beiträge
    91
    Moin Forum,

    gestern wurde mir bewusst, dass ich mich mal genauer mit der Frage der "Link"-Neubildung befassen muss.

    Wenn ich die Neubildung zu großzügig erlaube, wuchert das Netz. Ich kann zwischen Stagnation und Wucherung alles einstellen.

    Wuchernde Netze sind unvorhersehbarer und erscheinen intelligenter. Sie scheitern aber schnell bei einfachsten Dekodern, weil ihnen vor lauter Wucherung die Links und Zellen ausgehen.

    Wachstumsgebremste Netze sind ideal für Dekoder iund können sich auch an veränderliche Umwelten anpassen. Sie kommen aber keinesfalls in den Verdacht, intelligent zu sein.

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

    Ich halte es für sinnvoll, das Netz in mehreren Phasen wachsen zu lassen.

    Zuerst mal müssen die Reflexe wachsen. Die kann man auch Dekoder nennen. "Etwas kommt von rechts - reiße das Lenrad nach links" wäre so ein Dekoder, bei dem ich auch vorgeben muss, was das System genau tun soll. Dazu reicht mein gestriger pattern/learn-Mechnismus vom Prinzip her erstmal aus. Bei diesem Vorgang stelle ich die Wucherneigung sehr gering ein, wodurch auch nur wenige Ressourcen an Links und Zellen verbraucht werden.

    Danach könnte ein weiterer Durchlauf stattfinden, in dem ich die Wucher-Bremsen lockere. In den höheren Schichten wird dann abstrahiert und findet Intelligenz statt.

    **************

    Weiterhin muss ich mich mit dem Nützlichkeits-Mechanismus befassen. Meine gestrige Software konnte leider nicht "undieren", weil ich die Nützlichkeit ("Gewichtung") eines Links stets nur erhöht hatte, wenn erer folgreich war.

    Es dauerte nicht lange, bis es nicht mehr zweier Links bedurfte, um eine Zelle zum Feuern zu bewegen (= UND-Funktion) sondern ein einziger der beiden Links ausreichte (= ODER). Der Dekoder mutierte also vom erwünschten UND zum unerwünschten ODER.

    Das sind also die beiden momentanen Baustellen. Schichtenweise Wachstumsstrategie und liebevollere Ausgestaltung der Lernregel.

    Viele Grüße

    Wolfgang

  4. #64
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.097
    Blog-Einträge
    3
    Ich habe gerade mal kurz den Code überflogen.
    Vielleicht könntest Du oben ein

    typedef uns8 int8_t;

    einbauen, dann könnte man alle Typdefinitionen im Code "stdint.h" kompatibel machen, damit sie später auch ohne Mühen auf den Attiny portierbar sind.
    Ich habe mir schon überlegt, das Programm einfach mit GCC auf dem PC laufen zu lassen, dann wäre das Debugging auch viel einfacher. Hast Du Linux?

  5. #65
    Benutzer Stammmitglied Avatar von Rumgucker
    Registriert seit
    07.11.2019
    Ort
    Hamburg
    Beiträge
    91
    Hallo stochri,

    warum bauen wir nicht einfach einen Kompatibilitätsheader? Den klinken wir ein oder lassen ihn weg.

    Da kommt der typedef rein. Diese FSR/INDF-Geschichte. Und was sonst noch nötig ist. Und all die Header, die der Arduino braucht. Das ist doch ne 5-Minuten-Sache.

    -------

    Ich könnte auch gleich mit Atmel programmieren. Und natürlich auch unter Linux. Aber das bringt für mich alles Ablenkungen. Da werde ich dann langsamer, weil ich dann mit Tools kämpfen muss, die ich nur äußerst selten verwende. Linux zum Beispiel zuletzt 2007. Ich weiß nicht mal, ob meine Installation noch anständig hochläuft.

    Im Moment weiß ich ja auch ganz genau, wo ich Mist gebaut hab. Die Vergabe neuer "Links" ist unklar. Zur Zeit brauch ich dafür noch nicht mal ein Windows oder nen Compiler oder einen PIC. Wichtiger ist ein Block auf dem Nachttisch und öfter mal ein paar Minuten Ruhe im Büro.

    Die Menschheit kam zigtausend Jahre ohne die GI-KNN aus. Sie wird es auch noch ein paar weitere Tage überstehen. Da bin ich absolut zuversichtlich...

    Viele Grüße

    Wolfgang

Seite 7 von 7 ErsteErste ... 567

Ähnliche Themen

  1. Nupic: Auf dem Weg zu maschineller Intelligenz
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 05.06.2013, 09:50
  2. TV: Künstliche Intelligenz
    Von Günter49 im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 17
    Letzter Beitrag: 29.06.2009, 15:29
  3. Computersystem intelligenz
    Von runner02 im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 11
    Letzter Beitrag: 18.03.2009, 19:43
  4. Künstliche Intelligenz (KI)
    Von Devil im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 2
    Letzter Beitrag: 12.04.2005, 17:18
  5. Intelligenz in Werkzeugen
    Von Frank im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 03.05.2004, 20:36

Stichworte

Berechtigungen

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