Sag mal :
das einfache VB Programm mit den zwei Neuronen.
Wo ist das ? Ich kannst nicht finden.
Hallo
der link sieht gut aus mal in ruhe durch arbeiten
danke ja hab es gefunden
gruß
P: Meine Tochter (06.11.07) und https://www.carnine.de
M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken
Sag mal :
das einfache VB Programm mit den zwei Neuronen.
Wo ist das ? Ich kannst nicht finden.
Spinoza sagt (epist.62), daß der durch einen Stoß in die Luft fliegende Stein, wenn er Bewußtseyn hätte, meinen würde, aus seinem eigenen Willen zu fliegen. Schopenhauer
https://www.roboternetz.de/phpBB2/viewtopic.php?t=467
und dann den beitrag von Frank suchen
P: Meine Tochter (06.11.07) und https://www.carnine.de
M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken
Super, danke!!!
Spinoza sagt (epist.62), daß der durch einen Stoß in die Luft fliegende Stein, wenn er Bewußtseyn hätte, meinen würde, aus seinem eigenen Willen zu fliegen. Schopenhauer
Ich finde die Diskussion sehr interessant. Ich habe auch schon einmal ein paar einfache Experimente mit neuronalen Netzen gemacht und mir dabei die Frage gestellt, welche Ziele man damit verfolgen kann. Es sind nur ein paar Überlegungen die keinen Anspruch auf Vollständigkeit haben.
Mögliche Ziele für den Einsatz neuronaler Netze
Ziel 1) Selbstorganisation in der Rechner-Archtiektur. Leistungssteigerung, Realisierungstechnik für Höchstleistung an Verarbeitung, Nutzung paraller Strukturen zur quasi unendlichen Erweiterbarket ohne spezielle Engpässe
Ziel 2) Selbstorganisation in der Algorithmenerstellung. Neue Wege zur Formulierung der Lösung von determinierten Problemen, die klassisch schwer zu formuliern sind. Beispiel: Erkenung der Zeichen eines Zeichensatzes an maximalen Merkmalsunterschieden mit immer neuen aber beliebigen festgelegten Zeichsätzen (oder Bildern)
Ziel 3) Extrapolation von Lösungen. Lösung von unbekannten Problemen aus der Ähnlichkeit zu bekannten Problemen und deren Lösungen
Die Testbarkeit wird, wie schon in der Dikussion schon gesagt wurde, entscheidend durch die Zielvostellung beeinflußt, denn die Lösung unbekannter Probleme ist beisielsweise schwierig zu testen.
Ich erwähne es weil ich die wichtigen Aussagen zu den Kriterien in der Diskusion gefunden habe und nur noch einmal in einer Gegenüberstellung deutlich machen möchte, denn auch der Zielkonflikt des Überlernens wurde ja hier schon angesprochen.
Die Beschäftigung mit neuronalen Netzen ist in jedem Fall interessant, aber mit der Beschreibung möglicher Zielvorstellungen kann man sich auch klar machen welche Kiterien für einen selbst wichtig sind, oder welche Kriterien man aktuell betrachtet und welche gerade zurücktreten.
Für mich wichtige Bemerkungen aus der bisherigen Diskussion:
wie verändert man aber systematisch die Gewichtungen (Ziel 2: es kommt darauf an in welchem Sinn systematisch, Freiraum für Selbstorganisation)
mein Neuronales netzt hat ein lernen ... rufe ich die lernen procedure im robi auf damit er ständig weiter lernt ... dann kommt aber das problem der des Überlernens (Ziel 2 vs. 3)
ich denke nicht das hardware die lösung ist, software ist schneller (Ziel 1 läßt auch Lösungsvielfalt offen für viele schnelle Multi-Neuronenemulationen oder ganz viele Neuronen)
Aber darauf kommt es bei Neuronalen Netzten ja eigentlich garnicht an. Die brauchen ja garnicht schnell sein, höchstens fürs Training, weil man da so arg probieren muss bis der richtige Wert rauskommt. Aber für ein trainiertes Netz ist dach nicht weiter relevant. (Ziel 1 , 2, nicht 3)
"Überlernen" oder Overfittings, äußert sich darin, dass das Netz "auswendig lernt". Es verliert seine Generalisierungsfähigkeit und
degeneriert quasi zu einer reinen Lookup-Table. (Ziel 2 vs. 3)
Manfred
Tja Manfred, damit hast Du uns Fliegen alle Erschlagen !!!
Bin ich ein Kleingeist ? Wieso hab ich das jetzt nicht auf anhieb kapiert ?
Ich muss das wohl nochmals im Detail durchgehen.
(Da schreibt jemand was in Hochdeutsch und ich verstehe kein Wort !)
Das Thema Neuronales Netz ist eigentlich dadurch so schwierig das es ja versucht ein biologisches Netzt (Gehirn) zu reproduzieren. Was natürlich sehr wichtige Fragen aufwirft:
Wie sieht denn ein Standard Gehirn aus ?
Warum lässt sich das alles nicht mit nur einem Modell abdecken und wieso gibt es soviele unterschiedliche Arten? (Ich habe doch auch nur eins).
Und am wichtigsten:
Wieso wird nicht zwischen weiblichen und männlichen NNs unterschieden ?
Ist das alles eine reine Männerdomäne ?
Und wie schaffe ich es als man ein weibliches NN zu kreieren, wenn ich nicht mal meine Frau verstehe ?
-----
Aber Scherz beiseite. Ich interessiere mich schon lange dafür, komme jetzt erst aber langsam dazu mich da einzuarbeiten. Mir ist schon bewusst, das NNs keine Allroundlösung sind.
-----
Und noch zum Abschluß eine kleine Zukunftsprognose:
Sobald wir es geschaft haben daß menschliche Gehirn komplett nachzubilden, stehen wir vor dem Problem, daß es genauso "Fehleranfällig" ist, wie das menschliche Gehirn. Womit die These "Computer machen keine Fehler" hiermit ausdrücklich wiederlegt sei:
"Computer sind auch nur Menschen".
----
Also lese ich mir deinen Beitrag nochmal genau durch um die stark komrimierte Essenz rauszusaugen. Hoffentlich tötet es mich nicht !!!
(Wieso bin ich nicht als normaler Affe auf die Welt gekommen ? damit ich mich mit den wichtigen Themen des Lebens beschäftigen kann: Essen und Schlafen)
-----
Meine erste Interpretation:
Ziel 1) Unendliche Erweiterbarkeit und Selbstorganisation:
Wenn ich dich richtig verstehe steht da das Ziel das sich das Netz von alleine, je nach Bedarf, erweitert.
Aus OOP - Sicht: Unendliche Instanzen einer Neuronen-Klasse , bzw. Neuronen erzeugen weitere Neuronen.
Was so viel heisst das sich das Netz seine Struktur selber bildet, bzw. sich seine Struktur Problembezogen verändert und ausbaut.
(Dabei muss man Unterscheiden zwischen dem Wachstum des Netzes bezogen auf die Anzahl der neuronen oder bezogen auf die Anzahl der Verbindungen zwischen den Neuronen. Bei menschlichen gehirn ist die Anzahl der Neuronen ja auch eher vorgegeben und nur die Anzahl der verknüpfungen nimmt zu.)
Ziel 2) Selbstorganisation in der Algorithmenerstellung:
Im Prinzip steckt ja in einem trainierten Netz ein Algorithmus, den wir aber leider nicht nachvollziehen können, bzw. momentan keine Möglichkeit haben das "Wie" daraus zu extrahieren. D.h. der Algorithmus bildet sich (für uns nicht nachvollziehbar) von alleine heraus.
Ziel 3) Extrapolation von Lösungen anhand bestehender Lösungen:
Darunter kann ich wohl die sogenannte Mustererkennung verstehen.
Darunter fällt wohl auch die "Ungenauigkeit" eines NN, was ihm die Fähigkeit verleiht unbekannte Muster anhand gelernter Muster zu identifizieren.
-------
Mir reicht es für den Anfang ein fest definiertes NN aufzubauen (Also festgelegte Anzahl Layer und Neurornen), daß ich dann trainieren kann und nacher auch unbekannte Muster klassifizieren kann.
Dabei habe ich erstmal keine hochgesteckten Ziele, sondern möchte einfach nur mal einen Einstieg finden. Dazu werde ich versuchen eine Neuronen-Klasse und eine Netzklasse (die die verbindungen definiert) zu programmieren (in PHP) und diese zu trainieren. Mal sehen wie weit ich komme.
Spinoza sagt (epist.62), daß der durch einen Stoß in die Luft fliegende Stein, wenn er Bewußtseyn hätte, meinen würde, aus seinem eigenen Willen zu fliegen. Schopenhauer
Ich fasse den Kommentar als positiv auf, wobei einige Freiräume gegeben sind, die ich hiermit nutze.
Eine Bemerkung noch zum Schlußsatz: Ich meine, die wichtigsten Themen des Lebens sind die Nahrungsaufnahme und die Arterhaltung, wobei ohne Schlaf sicher auch nichts zu machen ist. Es heißt sicher nicht ohne Grund der wichtigste vierbeinige Freund des Menschen sei das Bett.
Manfred
(Das Thema Sex wollte ich hier ausklammern !!!)
Wo soll das hinführen. Überall koppulierende Computer !!!
----
Übrigens habe ich noch mein letztes Posting ergänzt.
Spinoza sagt (epist.62), daß der durch einen Stoß in die Luft fliegende Stein, wenn er Bewußtseyn hätte, meinen würde, aus seinem eigenen Willen zu fliegen. Schopenhauer
Ich versuche gerade das VB Beispiel eines NN (daß, das Frank gepostet hat) etwas zu durchleuchten.
Ein Punkt ist mir irgendwie aber sehr suspekt:
(Das ist an der Stelle an der die Gewichtung und der BIAS der einzelnen Neuronen geändert werden)
Die LEARNING_RATE ist eine Konstante.Code:For k = 1 To 2 HiddenNeuron(k).Bias = HiddenNeuron(k).Bias + LEARNING_RATE * 1 * HiddenNeuron(k).Delta HiddenNeuron(k).Weights(1) = HiddenNeuron(k).Weights(1) + LEARNING_RATE * Input1 * HiddenNeuron(k).Delta HiddenNeuron(k).Weights(2) = HiddenNeuron(k).Weights(2) + LEARNING_RATE * Input2 * HiddenNeuron(k).Delta Next k ' See above how the Weight is altered by the Delta multiplied by the ' Learning rate - the larger the delta, and the larger the learning ' rate (which is a constant) - the more we're going to change each ' weight. But - the important part here is that we alter the weight ' of the Neuron also in terms of the INPUT. The larger the input was ' the more important this weight is to alter and so the more we're ' going to alter it by. - Bear this in mind when you look at how ' the weights for two neurons can start moving in the same direction ' initially and then change to moving in opposite directions - this ' is because of the Delta mainly being applied to a weight when ' there is a high input on that weight.
Was mich irgendwie daran stört ist, daß die Gewichtung und der Bias ja immer größer wird:
Bias = Bias + (LearningRate * 1 * Delta)
oder besser :
Bias = Bias + (LearningRate * Delta)
Das würde ja bedeuten, daß der Wert immer größer wird. (Da das Delta ja wohl immer zwischen 0 und 1 liegt.)
(Im Prinzip ja egal, da es ja auf die Gewichtungen in Bezug zueinander wichtig sind).
Ist das wirklich so gewollt ?
Spinoza sagt (epist.62), daß der durch einen Stoß in die Luft fliegende Stein, wenn er Bewußtseyn hätte, meinen würde, aus seinem eigenen Willen zu fliegen. Schopenhauer
Nur noch die Antwort zu 11:50
Die definierten Ziele sind recht einfach gemeint.
Ich will sie nur kurz anhand der Interprätation erläutern.
Ziel 1) Es ist ein Netz fester Größe gemeint. Es gbit nur kaum eine Architektur für Computer die beliebig skalierbar ist. Insofern kann man sich auch vorstellen nach der Architektur neuronaler Netze Systeme höherer Komplexität realisieren zu können. Wie die strukturiert sind und wie gerade sie so gut zusammenarbeiten können, ist ja noch unklar.
Eine Erweiterung der Struktur um einen gewissen Umfang wird zu einer entsprechenden Änderung des bestehenden Inhaltes führen und ist ab einem gewissen Umfang vielleicht eher als Recycling von Hirnmaterial zu verstehen.
Ziel 2) Ja, das sehe ich auch so. Speziell aber wollte ich den Gegensatz zu Ziel 3 ansprechen. Wenn beliebig lange trainiert wurde und jede Reaktion des ganzen auf alle Inputmuster feststeht, dann ist es ein schlichtes Verknüfpungsnetz. Künstliche Intelligenz steckt in der Sache in sofern, als der Algorithmus selbstorganisierend erstellt wurde.
Das Netz macht dann in der Ausführung nichts intelligentes, aber es ist beipielsweise in der Lage, wenn es wie ein Kartenspiel gemischt wird, und neue Ziele Vorgegeben bekommt, ohne explizite Programmierung wieder durch eigenständiges Lernen einen optimalen Zustand zu ereichen.
(Abschaltbares Lernen?)
Ziel 3) Die Mustererkennung ist auch eine Anwendung von Ziel 2. Dort ist ein fester Zeichensatz sogar besser aufgehoben.
Wenn es um Zeichensätze mit Variation geht, dann sollte das Netz nicht ausgelernt haben. Wenn es speziell um eine gleitende Änderung geht, dann sollte das Netz sogar langsam vergessen können und sich an den charakteristischen Unterschieden der aktuellen Muster stärker orientieren.
Wichig ist dabei, wie die Parameter zu wählen sind, mit denen die Geschwindigkeit des Vergessens und de Neuaufnahme gesteuert werden.
Wenn man schon die Wirkungsweise des Netzes nicht verstanden hat, wie soll man beurteilen, ob sich das Netz zu langsam oder zu schnell an Ändernugen von außen anpasst? Man wird wohl unter anderem das Netz im Betrieb immer wieder testen müssen, ob die Antworten gut sind, gleichzeitig soll es ja arbeiten und Entscheidungen treffen deren Ergebnisse nicht auf anderem Wege bekannt sind.
Eine Funktion als Suchmaschine könnte man sich vorstellen oder als Wettervorhersage wo man voher eher zu viele Indikationen hat, aber ab einem bestimmten Zeitpunkt ein konkretes Ergebis vorliegt.
Experimente sind das beste, um sich mit der Wirkungsweise vertraut zu machen und gerade geringe Komplexität wird es ermöglichen die Funktion auch nachzuvollziehen.
Manfred
Lesezeichen