zur Nomenklatur: https://de.wikipedia.org/wiki/Maschi...e_Ans%C3%A4tze
Hallo,
ich werde bei dem Projekt noch zum Pädagogen.
"Selbständiges Lernen" ist ein Oberbegriff für "selbstgesteuertes Lernen" (z.B. Regelkreis) und "autonomes Lernen" (z.B. Umweltverstehen durch Spiel).
Also erstmal ran an das selbstgesteuerte Lernen.
Gänzlich unpädagogisch hab ich einen Regelkreis aus GI-System und Umwelt gebildet. Das GI-System steuert also die Umwelt. Der Ausgang der Umwelt wird mit einem programmierten XOR mit einem Solwert verglichen und somit erhält das GI-System nur die Fehlergröße. Also eigentlich ein backpropagation, wie es im Buche steht. Nur eben mit dem Unterschied, dass hier die Umwelt im Regelkreis liegt.
Dann hab ich alle GI-Bremsen gelöst und mich irrwitzig gefreut, dass das System die Umwelt so lange beeinflusst, bis Soll- und Istwert übereinstimmen. Ohne eine einzige Zeile Codeänderung an den 20 Kernzeilen. Sobald ich die Umwelt ändere, dreht er wieder an seinen Ausgängen herum, bis er wieder den Zustand des minimalen Fehlers erreicht hat. Mit nur 16 Links hat er drei Umwelten gelernt, ohne dass ich ihm irgendwelche Zellen vorgeschrieben hab. Die Neuronen haben sich auch ganz von alleine mit den Aktoren verbunden. Faszinierende Technik.
Das fühlt sich extrem richtig an.
Allerdings muss ich jetzt schon von "fühlen" sprechen. Denn mit 16 Links hat das GI-System nun eine Komplexität erreicht, die ich eigentlich nur noch per blackbox-Methode überschauen kann. Aber 16 Links für 3 komplette Umwelten deuten auf effizienten Umgang mit den Ressourcen hin.
Allerdings bin ich nicht ganz zufrieden!
Zur Zeit bilde ich per hard-programmierter XOR-Funktion die Fehlergröße. Das ist kybernetisch korrekt aber nicht natürlich. Ich hätte es lieber, wenn ich dem System nur das Soll und das jeweilige Ist zeige und es alle weiteren Dinge automatisch macht.
Mir ist aber noch kein kluges Regelkreis-Lernprogramm eingefallen. Daran werde ich noch etwas zu knabbern haben.
Sobald das Problem gelöst ist, gibts die nächste Doku-Version mit "selbstgesteuertem Lernen". Bis Montag hab ich mir zum Ziel gesetzt.
Viele Grüße
Wolfgang
Geändert von Rumgucker (06.12.2019 um 15:46 Uhr)
zur Nomenklatur: https://de.wikipedia.org/wiki/Maschi...e_Ans%C3%A4tze
Moin Helmut,
vielen Dank. Allerdings führt Dein vorgeschlagnes KI-Sprech automatisch zur KI-Denke und damit zu strunzdummen Mustererkennungsautomaten.
--------
Beim GI-System versuche ich den natürlichen Weg. Ich hab das vielfach betont. Biologie, Pädagogik und Co. müssen daher meine Quellen sein.
Das gelöste XOR-Problem hat mir restlos deutlich gemacht, dass wir unsere Perzeptron-Maschinen nur falsch unterrichten. Wenn man sie wie Maschinen unterrichtet, verhalten sie sich wie Maschinen. Wenn man sie jedoch wie Lebewesen unterrichtet, verhalten sie sich wie Lebewesen.
Wir müssen nicht an den Perzeptrons rumfummeln. Wir müssen an unserer Denkweise rumfummeln. Sonst werden wir nie intelligente Maschinen bauen können.
Viele Grüße
Wolfgang
Geändert von Rumgucker (07.12.2019 um 06:03 Uhr)
ein Apfel ist ein Apfel und ein Rad ist ein Rad, und wenn man den Apfel "Birne" nennt, die Radachse "Pedal" und den Reifen "Sattel", führt das nur zur Begriffsverwirrung. Ich würde bei den etablierten Begriffen bleiben, denn dann wird man auch verstanden.
An unserer Denkweise ? Die ist(wird) doch vielfach/meist in einem frühen Lebensabschnitt festgelegt (siehe Fichte, Die Bestimmung des Menschen, Erstes Buch, vierter Absatz ff) - weitgehend ohne unseren bewussten Einfluss (Link vorher)... Wir müssen an unserer Denkweise rumfummeln. Sonst werden wir nie intelligente Maschinen bauen können ..
Du meinst wohl wir müssten an der Denkweise unserer Maschinen fummeln.? Ahhh - ich habs - wir müssen an unserer Denkweise über die Denkweise unserer Maschinen rumfummeln.
Ciao sagt der JoeamBerg
Hallo, Ihr zwei,
wenn man Computer programmieren will, muss man eine Computer-Programmiersprache verwenden. Nach einigen Jahren der Benutzung denkt man sogar in der Sprache.
Wenn man einem KI-System intelligentes Verhalten beibringen will, muss man ebenso eine geeignete Sprache nutzen. Ich beginne gerade, diese Sprache und Denkweise zu lernen.
Das XOR-Problem im KI-System führt bei mathematischer Denkweise zu einem zweischichtigen Perzeptron-Netzwerk, das erst mit backpropagation beherrschbar ist.
Sobald man jedoch den Lernprozess etwas natürlicher gestaltet, benötigt man weder zwei Schichten noch backpropagation. Plötzlich zerfällt das viele Jahre lang als "unlösbar" bezeichnete XOR-Problem vor unseren Augen zur Trivialität. Ich hab das in der letzten Doku und in dem Beitrag direkt vor der letzten Doku ausführlich erklärt.
Siehe #101 und #102
Allein die geänderte Nomenklatur brachte eine geänderte Denkweise und die führte zu einem direkten Lösungsweg. Ich könnte jetzt auf jedem Perzeptron-Netz das XOR-Problem mit einem einzigen Neuron lösen, ohne die Backproagation-Keule oder eine zweite Schicht zu bemühen.
Eine geänderte Denkweise und Nomenklatur führt - nachweislich - zu neuen Lösungen.
Es hat mich sehr gewundert, dass es hier keinerlei Echo dazu gab. Ich ging daher davon aus, dass die Lösung des XOR-Problems für Euch kalter Kaffee war.
Im Moment scheint es mir aber eher so, dass die Evidenz nicht verstanden wurde.
Viele Grüße
Wolfgang
Geändert von Rumgucker (07.12.2019 um 12:57 Uhr)
also ich persönlich kenne das Thema XOR bereits seit 10 Jahren, seit meinem ersten selber geschriebenen KNN, und es funktioniert perfekt, einfach durch Anlernen von Mustern, ohne irgendwelche fest vorprogrammatierte OR/AND/NOT Operatoren, nämlich per Überwachtem Lernen von Input-Output-Musterpaaren. Du wirst mir also nicht unterstellen können, ich habe die Problematik nicht verstanden. Allerdings habe ich auch weder ein nachvollziehbares, funktionierenes Programm von dir bisher gesehen noch auch verstanden, das stimmt ntl soweit.
Geändert von HaWe (07.12.2019 um 14:39 Uhr) Grund: typo
Bei mir ist das wohl so, leider. Ich lese hier mit und versuche das nachzu-denken. Hätte besser auch keinen Beitrag gegeben weil dieses für mich ein ".. möcht ich auch wissen/können/kennen .." ist. Ich werde mich zurückhalten... Im Moment scheint es mir aber eher so, dass die Evidenz nicht verstanden wurde ..
Ciao sagt der JoeamBerg
Hallo Helmut,
mehr als die Doku inkl. den vollständigen Sourcen für den CC5X und 12F629 gibts von mir zur Zeit nicht. Erst wenn ich das Projekt abgeschlossen hab, gibts eine Konvertierung auf Tiny85.
Dass man mit backpropagation erfolgreich XOR lernen kann, hatte ich stets betont. Backpropagation wurde zu Zeiten entwickelt, als man seine Schutzbefohlenen noch verprügelte, damit sie was anständiges lernen. In meinen Augen anachronistisch. Die Effektivität bleibt auf der Strecke: Man verbraucht viele Neuronen und benötigt lange Lernzyklen.
Intelligente Systeme benötigen intelligente Lernverfahren.
---------
Hallo oberallgeier,
ich nahm irrtümlich an, dass Du Dich über meine unbeholfene Ausdrucksweise lustig machtest.
Bitte entschuldige. Und nun sei nicht gleich eingeschüchtert!
Bei Interesse erklär ich das XOR-Problem und meine Lösung noch mal ganz einfach. Du wirst Dich schlapp lachen. Und es nützt auch anderen, die die Tragweite offensichtlich auch nicht erkannt haben.
---------
Weiter im Text:
Da über die Umwelt nichts bekannt ist, hab ich beim selbstgesteuerten Lernen einfach die trial & error-Methode angewendet. Ein Lehrer beendet den Lernvorgang, wenn die Umwelt das gesuchte Bitmuster ausgibt. Wie das GI-System lernt, ist ihm allein vorbehalten. Ich mach dem System keinerlei Vorgaben.
Trial & error empfinde ich "natürlich". Vieles im GI-System ist nach dieser Methode von mir entwickelt worden. Zwar ist T&E nicht ganz so elegant, wie ichs mir fürs selbstgesteuerte Lernen gewünscht hab. Aber zulässig.
Doku gibts also schon morgen.
Danach fehlt dann nur noch das autonome Lernen. Dann gibt es auch keinen Lehrer mehr, der sagt, wenn das Lernziel erreicht wurde. Dieses Detail halte ich aber für sehr trivial.
Ich denke, bis spätestens Mitte nächster Woche bin ich mit dem gröbsten durch. Dann konvertier ich das noch kurz auf den Tiny85 und dann könnt Ihr losspielen. Source, Doku und gut getestete Anwendungsbeispiele. Das ist ne vernünftige Basis, finde ich.
Viele Grüße
Wolfgang
----------
Nachtrag: hab mir gerade den allerersten Beitrag in diesem Thread nochmal durchgelesen. Am 9.11. war der. Ich bin nicht ganz unstolz.
Geändert von Rumgucker (07.12.2019 um 17:33 Uhr)
Nein - bloß nicht. Im Gegenteil - ich finde Deine Aussagen, schrittweises vorgehen und Folgerungen hoch interessant. Hatte eben nur anmerken wollen(müssen), dass unsere Basisprogrammierung (die das Menschen) weitgehend ohne bewusstem Einfluss erfolgt und "hinterher", nach Eintreten von ordentlichem Schluss-folgern-Können, nur sehr mühevoll umgangen oder gar abgeändert werden kann. Bei mir jedenfalls. Und bei Fichte offenbar auch... ich nahm irrtümlich an, dass Du Dich über meine unbeholfene Ausdrucksweise lustig machtest ..
Ciao sagt der JoeamBerg
Lesezeichen