Neuronale Netze und einfache Arithmetik



  • Hi zusammen,

    Um mal eine Idee für einen Einstiegspunkt zu bekommen: Was brauche ich wenn ich einem neuronalen Netz das rechnen in |F_2 oder |N beibringen will? Geht das überhaupt? Gibts da tolle Links zu?

    Danke im Voraus,
    Khadgar



  • Probier erstmal ein Netz zu bauen das dir die zum einstelligen Zahleninput (0-9;0-9) immer die richtigen Ergebnisse liefert. Wenn das dann irgendwann klappt kannst du weitermachen.
    Die grundlegendsten Grundlagen, könntest du bei Wikipedia nachsehen da gibts auch Literaturhinweise.

    EDIT 2: ah so ja, falls du dir davon irgendwas versprichst zb. mehr Geschwindigkeit, unser Gehirn ist der langsamste Rechner überhaupt, wenn es um Arithmetik geht. Unsere Fähigkeit wie Wiedererkennen von Mustern kommt nur durch die massive Vernetzung und Parallelität zustande.



  • Hi Tester,
    von mir aus kann das ganze auf in |F_2 laufen. Also mit Additionstabelle woe folgt:

    + 0 1
    0 0 1
    1 1 0

    Ich würde nur gerne wissen wie man sowas angeht um da mal einen Einstieg zu bekommen 🙂

    Danke soweit,
    Khadgar



  • Das is ja schön und gut, nur kennen KNNs keine Addition oder die Bedeutung von Zahlen und sie können auch nicht denken. Und mit unterschiedlich langen Eingaben wirst du schon Probleme bekommen.
    Die KNNs sind im Grundprinzip nicht viel mehr als ein Assoziativspeicher du mappst ne Eingabe auf eine gewünschte Ausgabe und das tust du durch Verändern von "Gewichten". Da die Gewichte sich "automatisch" anpassen kann man halt viel mit dem Modell anstellen. Das Schöne ist nun das man auch zu "ähnlichen" Eingaben passende Ausgaben finden kann. Das hört dann aber schon auf wenn die Daten nicht mehr aus dem Eingaberaum stammen, bzw. kann man darauf wetten das ab einem bestimmten Grad die Ergebnisse nicht mehr brauchbar sind.

    Naja egal, Zahlen sind auf jedenfall exakt definiert, trotzdem wenn du ein Netz hast was "Zahlen addieren" kann steht da nicht der "Algorithmus Addieren" irgendwo im Netz, nein sondern die Gewichte wurden so angepasst das zu einem begrenzten Eingaberaum die richtige Ausgabe erscheint. Und du wirst nur auf diesem begrenzten Raum arbeiten können. Und auch wenn du dein Modell komplexer und größer machst, das Netz wird nicht "denken" können es kann keine Schlüsse ziehen und der Rechenaufwand zum trainieren wird immer größer.



  • Was wäre denn deiner Meinung nach eine brauchbare Einstiegs-Anwendung wenn man mal
    mit neuronalen Netzen rumspielen will?

    P.S. Geile Signatur 🙂



  • Einstiegsanwendung erstmal gar keine. Warum nicht? Natürlich kannst du dir irgendeinen komplexen KNN Simulator runterladen, nur wenn man nicht wirklich weiß welche Parameter, was beeinflussen macht auch das Spielen keinen Spass.

    Also zuerst ein Buch mit Grundlagen, damit du ungefähr weisst was KNNs leisten können und wo ihre Grenzen sind und du eine Idee von der Implementierung bekommst. KNNs sind leider auch nicht gleich KNNs, manche sind für Bilderkennung besser als Andere, dafür kann man mit den anderen vielleicht besser Funktionen annähern und dann gibts welche mit denen kann man sogar das TSP fast optimal bestimmen etc.

    Ich rate dir dir einen Überblick zu verschaffen. Falls du dich für Mustererkennung interessierst kann ich dir das Buch von Christoper M. Bishop empfehlen. Für Self Organizing Maps ist das Buch von Teuvo Kohonen spitze. Für den Rest, dieser dicke Wälzer von Andreas Zell ist da sicher eine prima Anlaufstelle. Das sollte alles in einer gut sortierten Uni Bibliothek vorhanden sein.

    So richtig gute "Tutorials" im Netz habe ich noch nicht entdeckt. Aber alternativ kannst du zb. über google Vorlesungen von Unis ausfindig machen. Fast jede Uni hat irgendeinen Studiengang wo etwas über KNNs gelehrt wird. Und es gibt sicher auch Skripte die dikdatisch so gut aufbereitet sind das man sich zumindest die Grundlagen selbst aneignen kann. 🙂



  • Khadgar schrieb:

    Was wäre denn deiner Meinung nach eine brauchbare Einstiegs-Anwendung wenn man mal
    mit neuronalen Netzen rumspielen will?

    Klassisch und sinnvoll:

    3 schichtiges, binäres feedforward-Netz, welches die binären Operatoren
    liefert. Insbesondere xor, da damit die Notwendigkeit von mehrschichtigen
    Netzen verdeutlicht wird.

    Jockel


Anmelden zum Antworten