Neuronale Netze als Spiel

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Neuronale Netze als Spiel

    Hallo zusammen,

    ich finde künstliche, neuronale Netze interessant. Insbesondere das Entwickeln neuraler Programme nach dem Buch "Bauplan für eine Seele" haben es mir angetan.

    Deshalb würde ich gerne ein Spiel entwickeln bei dem man eine Aufgabe bekommt, die man mittels Vernetzung von Neuronen lösen muss.

    Zur Erklärung: Ein Neuron ist eine Nervenzelle. Diese hat, abstrakt gesprochen, beliebig viele Eingänge und einen Ausgang. Wenn genügend Potential (Strom) über die Eingänge eingespeist wird (Schwellwert), ist die Zelle erregt und leitet das Signal ggf. verstärkt weiter. Die Eingänge können auch Potential abziehen (hemmend, nicht aktivierend). Der Schwellwert hingegen ist immer positiv, genauso wie das Ausgangspotential. Desweiteren können die Nervenstränge zwischen den Neuronen auch mit Eingängen benetzt sein. Liegt ein Potential an, wird die Verbindung gestärkt oder geschwächt, analog zu den Neuronen.

    Das Spiel stelle ich mir wie Rohreverlegen vor. Es gibt ein Level mit gegebenen Neuronen und der Spieler hat eine Menge von Neuronen und Nervensträngen und muss das Level knacken, indem das Netz ein oder mehrere Testfälle besteht (eine Melodie abspielen oder die richtige Menge Dampf aus dem Hochdruckkessel entlassen, mittels Ausgabeneuronen).

    Was ist alles möglich?
    • binäre Funktionen
    • bedingte Anweisungen
    • Schleifen
    • Filtern
    • neuronale Speicherverwaltung und Timer
    • Bilderkennung


    Hier müsste ich einige Aufgaben ausformulieren und selbst lösen.

    Meine Fragen sind folgende:
    Denkt ihr das würde Spaß machen?
    Was fehlt eurer Meinung nach?
    Habt ihr noch andere Überlegungen dazu, die ich gerade nicht erblicke?
    Sollte ich erst nen Editor bauen und dann das Spiel? Das Spiel sollte im Gegensatz zum Editor nicht voll konfigurierbar sein, da es sonst zu unübersichtlich wird und den Spieler verwirrt. Es gibt leider ne ganze Ladung an Stellschrauben. Daher denke ich es wäre sinnvoll Neuronbausteine nur in festen Konfigurationen dem Spieler zugänglich zu machen.

    Freue mich auf Antworten. 8)
    Und denkt immer daran: "Das Leben ist ein Handschuh, der gar nicht existiert. Mal ist er da, dann wieder nicht. Das ist des Lebens Lauf. Du denkst du kannst ihn sehen, doch dann trickst er dich aus."
  • Ah ok... die Idee kreist bei mir schon ein paar Jahre im Kopf. Ich werde mal ein paar Zeichnungen anfertigen. Dann ist es hoffentlich klarer. Das kann aber etwas dauern, da ich demnächst in den Urlaub fahre.
    Kam die Funktionsweise der Nervenzelle zumindest einigermaßen verständlich rüber?
    Und denkt immer daran: "Das Leben ist ein Handschuh, der gar nicht existiert. Mal ist er da, dann wieder nicht. Das ist des Lebens Lauf. Du denkst du kannst ihn sehen, doch dann trickst er dich aus."
  • Ich mach es erstmal in ASCII-Art. Ich gebe euch ein paar simple Beispiele.

    Aktivierend:

    Brainfuck-Quellcode

    1. Input: Output:
    2. O---------->O
    Liegt am Input eine 1 an, wird der Schwellenwert des Neurons überschritten und leitet selber eine 1 weiter. Am Output kommt also 1 an.


    Hemmend: logisches NOT

    Brainfuck-Quellcode

    1. Input: Output:
    2. O----------------|O
    3. ^
    4. |
    5. (1)----------------/
    Liegt hier am Input eine 1 an, feuert das Neuron eine 1. Durch die Endung --| wird am Output von den Eingangssignalen eine 1 abgezogen (Hemmung). Der Output bekommt durchgehend eine 1 geliefert. Er feuert also 1, falls 0 am Input anliegt. Andersherum feuert er 0, falls am Input eine 1 anliegt (wegen der Hemmung). Wir haben also ein NOT nachgebaut.


    Jetzt zu der Spieleidee... Stellt euch vor es sind nur ein paar Neuronen gegeben (Input und Output z.B.). Ihr bekommt eine Menge von Neuronen und Kanten (Nervenstränge nenne ich sie) und eine Aufgabe mit einem visualisierten Abnahmetest (Oszilloskop/Verlauf der Signale bei Input/Output). Löst die Aufgabe mit den gegebenen Mitteln. Ich mach es mal ganz konkret:


    Gegeben:

    Quellcode

    1. Input: Output:
    2. flow then:
    3. O-->... -->O
    4. condition else:
    5. O-->... -->O
    Gesucht ist eine Vernetzung bei der gilt:
    • liegt an flow eine 0 an, sind die Output-Neuronen auch 0.
    • liegt an flow eine 1 an und
      • bei "condition" eine 0, liegt in spätestens 3 Zyklen an "then" eine 0 an und an "else" eine 1.
      • bei "condition" eine 1, liegt in spätestens 3 Zyklen an "then" eine 1 an und an "else" eine 0.
    Du hast 4 Neuronen und beliebige Kanten (hemmend oder aktivierend) mit beliebiger Gewichtung zur Verfügung (2 = Signal wird verdoppelt, 0.5 = wird halbiert).
    Die Lösung schreibe ich später rein. *arbeit arbeit*
    Und denkt immer daran: "Das Leben ist ein Handschuh, der gar nicht existiert. Mal ist er da, dann wieder nicht. Das ist des Lebens Lauf. Du denkst du kannst ihn sehen, doch dann trickst er dich aus."
  • Das Prinzip des Spiels liest sich ähnlich dem, was 42 im Thema Gemeinschaftliche App vorgestellt hat.
    Nur anstelle von Code wird hier ein neuronales Netzt für die Lösung erstellt.

    Nur soll der Spieler hier das Netz erstellen und es lernt selber oder muss der Spieler das Netzt so einstellen, als wäre die Lehrnphase schon beendet?

    Was kann ich alles einstellen?

    Setzen der Verbindungen?
    Setzen der Gewischtungen?
    Setzen der Schwellwerte?
    Setzen der Manipulation?

    Wie verhält es sich mit der Heuristik?

    Fragen, Fragen, Fragen.....

    Ist aber ne schöne Idee die du da verfolgst.
    Kann Spuren von persönlicher Meinung, Sarkasmus und Lakritz enthalten. Einzelne Wörter nicht für den Verzehr geeignet. Ungelesen mindestens haltbar bis: suche bei Google
  • Mein Anliegen mit diesem Spiel ist es neuronale Netze schmackhaft zu machen. Die Theorie zu künstlichen neuronalen Netzen ist, finde ich, recht komplex um damit rumzuspielen und hier und da mal was auszuprobieren.

    Beispielsweise Handschrifterkennung mittels vorwärtsgerichteten Netzen. Man belegt die Kanten mit Zufallsgewichten, trainiert dann das Netz mit Ein- und Ausgaben mittels Gradientenabstiegsverfahren gegen die Fehlerfunktion und hat dann einen Klassifizierer für z.B. alle Buchstaben. Klasse. Man sieht es dem Netz aber nicht an. Das ist das eine was mich nervt.

    Das waren nun vorwärtsgerichtete Neuronen. Die Ausgabe der einen Schicht ist die Eingabe der nächsten Schicht. Schichtenarchitektur quasi xD. Keine Rückkopplungen. Es gibt dann noch rekurrente Netze - mit Rückkopplungen. Diese sind schwieriger zu trainieren und die Theorie ist noch komplexer. Sie können aber auch mehr und sind aber meiner Meinung nach ein Schlüssel in die Erforschung von künstlichen Intelligenzen und vom Aufbau von "Geist und Seele".

    Nun zum Spiel... was kann man einstellen? In einem Editor für neuronale Netze viel:
    • der Schwellwert für das Neuron, bei welcher eingehenden Signalstärke feuert es? wenn man es noch komplizierter will, kann man auch eine Funktion angeben, die Sigmoide z.B
    • wenn das Neuron feuert, wie stark ist die Verstärkung und was ist das Maximum - das gleiche für die Kanten
    • Lernkonstante, Verlernkonstante, Vergessenskonstante


    Aber ich denke für ein Spiel sollte man das auf das nötigste reduzieren. Mir schwebt sowas vor wie:
    • Neuronen mit festen Schwellwert, z.B. in den Varianten >=1, 2, 3
    • Spezialneuronen mit einer festen Vergessenskonstante
    • Verbindungen mit festen Gewichten
    So ist die Handlung für den Spieler auf Drag n Drop und verbinden beschränkt. Und denken natürlich.

    Den Aspekt mit dem Anlernen könnte man in höheren Leveln mit einbinden. Ich will eigentlich erstmal sehen wie weit man mit den genannten Mitteln kommt.

    Puhh.. ich hab allein für dieses Projekt so viele Ideen. Ich kann die jetzt nicht alle runterschreiben. Wie weit konnte ich euch denn mit der Idee mitnehmen?

    @Fischkralle: Was meinst du mit Heuristik?
    Vergesst auch bitte meine Fragen aus dem Initialpost nicht :* .
    Wenn euch noch was anderes unklar ist, zögert nicht mich zu fragen. Gern auch per PN, falls es im Forum sowas gibt.
    Und denkt immer daran: "Das Leben ist ein Handschuh, der gar nicht existiert. Mal ist er da, dann wieder nicht. Das ist des Lebens Lauf. Du denkst du kannst ihn sehen, doch dann trickst er dich aus."
  • Versuch und Irrtum würde ich dann sagen. Die neuronalen Netze die ich aus besagtem Buch kenne sind sehr verständlich. Es ist wie das Entwickeln von Algorithmen, nur kommen da neue Aspekte hinzu...
    Und denkt immer daran: "Das Leben ist ein Handschuh, der gar nicht existiert. Mal ist er da, dann wieder nicht. Das ist des Lebens Lauf. Du denkst du kannst ihn sehen, doch dann trickst er dich aus."
  • Als hätte ich nicht schon genug zu tun. Jetzt habt ihr (oder viel mehr Lotes) es geschafft, dass ich mit das Buch Bauplan für eine Seele bestellt habe.
    :)
    Kann Spuren von persönlicher Meinung, Sarkasmus und Lakritz enthalten. Einzelne Wörter nicht für den Verzehr geeignet. Ungelesen mindestens haltbar bis: suche bei Google
  • Sagen wir mal ich hab nen sehr langen Atem was meine Projekte angeht. Aber zwei Jahre sind es denke ich nicht. Mir gehts auch mehr um den Weg als das Ziel (Appetit kommt beim Essen). Natürlich fänd ich es Klasse wenn ich noch nen anderen Abnehmer hätte außer mich selbst. Dann würde ich vermutlich eher auf Abgabe priorisieren.

    Btw. Bin ich grad im Urlaub. Mein Router ist das Handy und der Empfang ist ziemlich langsam. Werde in einer Woche wieder aktiver posten.
    Und denkt immer daran: "Das Leben ist ein Handschuh, der gar nicht existiert. Mal ist er da, dann wieder nicht. Das ist des Lebens Lauf. Du denkst du kannst ihn sehen, doch dann trickst er dich aus."
  • Hey Lotes,
    sorry aber ich hatte etwas in einem Post von dir überlesen.
    Mit der Heuristik ist nicht "Versuch und Irrtum" gemeint. Eine Heuristik ist der Wert einer Schätzung der verbleibenden Arbeit zu einem bekannten Ziel.
    Kann Spuren von persönlicher Meinung, Sarkasmus und Lakritz enthalten. Einzelne Wörter nicht für den Verzehr geeignet. Ungelesen mindestens haltbar bis: suche bei Google
  • Ha, ha, ha
    ich habe mir meine Erklärung da oben gerade selber noch mal durchgelesen (ca. 5 mal) und bin selber nicht schlau draus geworden.

    Ich werde mal sehen, ob ich dazu ein kleines Beispiel ausgraben kann.
    Kann Spuren von persönlicher Meinung, Sarkasmus und Lakritz enthalten. Einzelne Wörter nicht für den Verzehr geeignet. Ungelesen mindestens haltbar bis: suche bei Google
  • Es gibt Momente, da mach ich mir selber Angst..... :)

    Bin aber fündig geworden. Über folgendem Link findest du eine, wie ich finde, 1A Erklärung zur Heuristik. Anwendung in diesem Fall ist die Wegfindung (Eine Unterkategorie der Künstlich Intelligenz)
    Hier wird die sogenannte Manhatten-Heuristik durch genommen.

    heuristicswiki.wikispaces.com/Manhattan+Distance
    Kann Spuren von persönlicher Meinung, Sarkasmus und Lakritz enthalten. Einzelne Wörter nicht für den Verzehr geeignet. Ungelesen mindestens haltbar bis: suche bei Google