Falls Du es noch nicht gesehen hast:Ja. Ich leg los. Das wird hier mein Labortagebuch-Thread, wenn das für die Admins und Mods ok ist.
Du hast dafür einen eigenen Blog. Kannst den auch verwenden.
MfG
Falls Du es noch nicht gesehen hast:Ja. Ich leg los. Das wird hier mein Labortagebuch-Thread, wenn das für die Admins und Mods ok ist.
Du hast dafür einen eigenen Blog. Kannst den auch verwenden.
MfG
Hallo Moppi,
Danke für den Hinweis. Das ist je genial. Das wird immer besser hier!
Viele Grüße
Wolfgang
Moin Forum,
der Blog ist mir zu weit ab vom Schuss. Den lesen zu wenige. Ich bleib erstmal hier im Thread. Soooo umfangreich ist meine Erkenntnis noch nicht. Eher simpel und naheliegend.
Viele Grüße
Wolfgang
************************
Generic Intelligence
GI vs. KI
------------------------------------------------------------
Vorwort
Ein wichtiges Gebiet der AI bzw. KI (artificial intelligence bwz. künstlichen Intelligenz) befasst sich mit der Erstellung künstlicher neuronaler Netze (KNN).
Das Vorgehen bei den KNN ist simpel. Es wird die Funktionalität eines einzigen Neurons programmiert. Und es wird eine große Anzahl von Speicherstrukturen angelegt, die der Anzahl von Nervenzellen entspricht.
Nun wird in endlosen Schleifen das Neuron mit Daten aus der Umwelt oder den internen Speicherstrukturen gefüttert und seine Rechenergebnisse abgespeichert. Ob Daten aus der Umwelt oder internen Speichern verrechnet werden, entscheidet die jeweilige Neuronenschicht, die gerade berechnet wird.
Viele KNN bestehen aus drei Schichten. Einer äußeren Schicht, die mit den Umweltsensoren direkt gekoppelt ist. Einer versteckten inneren Schicht. Und einer Ausgabeschicht, die Aktoren ansteuert.
Die Emulation eines Neurons ist eine wahre Wissenschaft. Die Eingangssignale können gewichtet, summmiert und mit unlinearen Funktionen multipliziert werden. Typischerweise entsteht so ein einziges Ausgangssignal, was alle Eingänge miteinander verrechnet hat.
Formell ist ein KNN eine Matrix-Berechnung. Besonders schnelle Multiplikationen und Additionen sind eine Domäne von Grafikprozessoren, weswegen diese Bauteile gerne in der KI verwendet werden.
Die die natürlichen Intelligenz beherrschenden Merkmale der Vernetzung und Parallelität werden durch mathematische Korrelation und enorme Rechengeschwindigkeiten ersetzt.
------------------------------------------------------------
Motivation
Statt immer größere Rechenleistungen einzusetzen, will ich das andere Ende der Skala beleuchten.
Kleine Controller (z.B. Tiny85 etc.) verfügen nicht über die Ressourcen zur Abarbeitung der geschilderten Dampframmen-KI.
Diese Dampframmen-KI erscheint mir sowieso eher lustlos. Die Entwickler wollen eine informelle Blackbox nutzen, deren Innereien sie eigentlich gar nicht interessiert. Die sie vielleicht nicht mal verstehen. So eine Art KI-Betriebssystem, um das man sich nicht kümmern muss und was es schon richtig machen wird. Konsumer-Mentalität auf höchstem Level.
Es soll stattdessen eine zur Controller-Klasse passende künstliche Intelligenz entwickelt werden, die wegen ihrer universellen Skalierbarkeit als GI bezeichnet wird.
------------------------------------------------------------
Modell
Die GI eines Kleincontrollers besteht aus drei pyramidenförmigen Schichten.
In der obersten Schicht, dem „RAM“ wird z.B. Bildverstehen auf höchster Abstraktion betrieben. Hier wird auch geschlafen, um das RAM für einen neuen Tag freizuschaufeln. Die Speicherzeit ist kurz.
In der mittleren „EEPROM“-Schicht wird Gerlerntes gespeichert. Also z.B. Laufen, Sprechen und Bilderkennung. Hier wachsen Verknüpfungen und werden Anpassungen an Umwelten gespeichert. Die Speicherzeit ist lang.
Die unterste „Flash“-Schicht wird von mir programmiert. Hier befinden sich Reflexe, Instinkte, Triebe und die Treiber für Sensoren und Aktoren. Das Stammhin sozusagen mit ewiger Speicherzeit.
Die Aufgabe des Gebildes ist das Zurechtfinden in einer unbekannten Umwelt.
Vom Prinzip her ist ein GI-System schon mit der Flash-Schicht alleine - in Grenzen -lebensfähig. Es schreit und zappelt zum Beispiel, wenn die Bordnetzspannung zu weit sinkt und es Hunger hat.
Interessanter wird’s aber, wenn die EEPROM-Schicht sich durch Interaktion mit der Flash-Schicht und der daran angekoppelten Umwelt zu organisieren beginnt. Zur Erlangung von Mobilität muss die EEPROM-Schicht rumprobieren. Sie muss selbsttätig versuchen, ein Ablaufprogramm zum „Laufen“ zu entwickeln. Um einen Schritt zu machen, mussen die Unterprogramme und Treiber der Flash-Schicht in einer gewissen Chronologie angesteuert werden. Ein gutes GI-System lernt und optimiert Fortbewegung ganz von alleine.
Sobald die EEPROM-Schicht ausgebildet ist. Kann sich das System fortbewegen, weglaufen, Futter suchen und hat sich an seine Umwelt adaptiert. Man könnte jetzt zufrieden sein und sich am Rumwuseln des Roboters erfreuen.
Spannend wird’s aber, wenn die oberste Schicht freigeschaltet wird. Hier treffen mit höchstem Abstraktionslevel Ereignisse ein. Hier findet „Kombinieren“ und „Denken“ statt. Hier wird im kybernetischen Sinne gespielt und im regelungstechnischen Sinne optimiert. Hier kommt es auch nicht mehr auf die Geschwindigkeit an.
---------------------
Realisierung
Die GI unterstützt eine generische Vorgehensweise. Zuerst werden die Eigenschaften der Flash-Schicht kodiert. Es entsteht eine Art Betriebssystem des Robotors. Dieses Subsystem kann Befehle mit uniformierten Messages empfangen und Events an die höheren Schichten asynchron senden.
Die EEPROM-Schicht nutzt das Flash-Betriebssystem und dessen Rückmeldungen. Es wird zum Beispiel mit einem leckeren Happen gelockt und muss nun irgendwie seine Betriebsystem-Befehle in geeigneter Weise chronologisch kaskadieren, dass eine Bewegung hin zum Futterhappen stattfindet.
Die Arbeitsweise der EEPROM-Schicht erinnert mehr an einen Homöostaten als an ein intelligentes Wesen. Es optimiert sich selbst und passt sich selbst auch an die Umwelt an.
Auch die EEPROM-Schicht kann Messages empfangen und Events senden. Allerdings schon auf sehr hohem Abstraktionsleveln. Ein typischer Befehl an die EEPROM-Schicht wäre: „gehe drei Schritte die Treppe runter“ oder „fahre mit dem Rad immer geradeaus“.
Die übergeordnete RAM-Schicht ist noch nicht konkreter durchdacht worden. Die kann generisch draufgesatteltwerden, wenn die anderen Schichten laufen.
Vielleicht kannst Du Werbeanzeigen schalten, frag mal den Frankder Blog ist mir zu weit ab vom Schuss. Den lesen zu wenige.
Du kannst Deinen Blog selbst moderieren. Das kannst Du hier nicht! Falls Kommentare auftauchen, die Dein Projekt und den gesamten Thread schlecht machen, was die Meinungsfreiheit nicht verletzen muss und deshalb wohl nicht entfernt wird, hast Du keine Möglichkeiten. Außerdem wird das hier sehr schnell unübersichtlich, weil alles an Information, Kommentaren und Streitereien durcheinander geht.
Ob das dann hier richtig ist, inhaltlich, ist auch noch die Frage.
Vielleicht besser in: Vorstellung-Bilder-Ideen-zu-geplanten-eigenen-Projekten
Aber ich bin kein Moderator hier...
MfG
Moin Moppi,
etwas Meinungsunterschiede brauch ich einfach, damit ich optimal funktioniere. Im Idealfall kommt bei mir das Gefühl hoch, dass ich es dem Meinungsgegner beweisen will. Meinungsvielfalt findet man nicht im stillen Kämmerlein eines Blogs. Da muss man seine Nase schon in den Gegenwind halten. Auch wenns mal weh tut.
Hinterher umarmt man sich ganz einfach wieder und hat sich wieder lieb.
Viele Grüße
Wolfgang
Hallo,
um mich nicht mit Aktoren und Sensoren abzulenken, wird mein Controller (*) zwei digitale Ausgangsleitungen erhalten, die die Bewegungssteuerung darstellen. Und vier digitale Eingangsleitungen, die Sensorsignale darstellen.
Die Programmierung der Flash-Ebene ist also trivial und das EEPROM-Lernen kann begonnen werden.
Mit diesen zwei Aktorleitungen und den vier Sensorleitungen wird mein System nun auf eine ihm unbekannte Umwelt einwirken. Diese Umwelt wird in einer Blackbox versteckt, also einem zweiten Controller. Innerhalb der Umwelt befindet sich irgendwo das Futter.
Mein GI-Controller muss nun erstmal die Fortbewegung lernen. Er hat keinerlei Informationen darüber, wie und in welcher Reihenfolge er an seinen Aktorleitungen wackeln muss, um voran zu gelangen. Im Falle eines Zuckens verändert er seine Position in der Umwelt und die Umwelt beantwortet diese Positionsänderung mit einer Änderung der vier Sensor-Leitungen. Je mehr Sensorleitungen aktiv sind, desto näher ist das GI-System dem Futter gekommen.
Die Spuren des Lernens kann ich im EEPROM auslesen und analysieren.
So ist der heutige Plan.
Viele Grüße
Wolfgang
(*) Ich nehme einen PIC 12F629, weil der nun wirklich über jeden Verdacht der KI-Eignung erhaben ist.
Hallo Wolfgang,
ich verstehe, was Du machen willst. Aber so ein wenig müssen wir aufräumen, damit es nicht zu falschen Schlüssen kommt. Ich weiß auch, dass ich bei so was ohne blaue Flecken nicht davon komme.
KI ist ein Oberbegriff. Darunter gehören ganz viele Dinge, der Datenverarbeitung, die in ihrer Gesamtheit also diese "Intelligenz" ausmachen. Ein Teilgebiet sind Neuronale Netze. Auch ein PIC kann daher für eine KI zu gebrauchen sein.
Heißt aber auch: eine KI benötigt nicht zwangsläufig ein Neuronales Netz.
Soll eine Anmerkung sein, keine Belehrung oder so!
MfG
- - - Aktualisiert - - -
Das, was Du beschrieben hast, habe ich mir auch schon mal durchdacht. Nicht zuletzt deswegen habe ich mir dann ein Projekt gesucht, mit dem ich mich der Sache nähern kann.
Dabei herausgekommen ist seinerzeit eine Steuerung für Rollos. Falls es Dich interessiert, in meinem Blog habe ich dazu geschrieben.
Ich habe dafür wenige Sensoren und einen Aktor, nämlich einen Motor, der sich links oder rechts herum drehen kann. Mein Ziel ist es gewesen, dass ich nicht die genaue Funktion, wann
der Motor - bezogen auf die Sensorwerte - in welche Richtung dreht und wie weit, vorgeben habe. Das könnte man auch per fester Vorgaben im Programmcode steuern.
Statt dessen habe ich als Eingangsparameter Sensorwerte, Zeit und die letzte Position des Motors (genauer Rollos). Die Steuerung funktioniert dann per Anlernen. Mit der letzten Position bauen die Bewegungen aufeinander auf.
Anhand dieser Geschichte kann ich einige Sachen besser verstehen oder auch vergleichen, ich sehe Stärken und Schwächen dieser speziellen Umsetzung, im praktischen Umgang und Verhalten des
Programmcodes. Ich wollte das erweitern, dass die Software mithilfe nur einer oder zwei Bestätigungstasten (falsch / richtig), das richtige Verhalten selbst erlernt. Das habe ich aber bleiben lassen, weil es vor allem auch einen praktischen Zweck erfüllen und also 100% funktionieren soll (läuft bei mir zuhause schon paar Monate, zufriedenstellend).
MfG
ok, ich sehe schon: es ist schwer, ein Glas zu füllen, das bereits voll ist...
Es soll ja auch immer noch Leute geben, die die Quadratur des Kreises beweisen wollen (obwohl es mathematisch definitiv bewiesen ist, dass es nicht geht) oder die ein Perpetuum mobile zum Patent anmelden wollen (obwohl es durch den Energieerhaltunssatz bewiesen ist, dass es nicht geht)
Aber es st ja nicht verboten, dazuzulernen - vlt wird dir ja noch irgendwann klar, was Boolesche Aussagenlogik ist und warum sie gültig ist, und zwar im gesamten Universum, genau wie auch das Kleine Einmaleins
Aber mach mal...![]()
Hallo,
wer hat jetzt Recht und wer bekommt seine Ruhe? Hier mal eine andere Meinung zu dem Thema.
Das "GI"-System ist ein weiterer Versuch von hunderten oder tausenden, ein Neuronales Netzwerk zu erstellen.
Ich sehe den Fehler, das ein Neuronales Netz mit Intelligenz gleichgesetzt wird.
Das beides hat aber wenig miteinander zu tun. Dagegen sollte auf die Verarbeitung von Daten gesetzt werden,
weil es das ist, was Intelligenz am Ende ausmacht. Nicht nur die Menge der Daten, die gespeichert und zur Verarbeitung zur Verfügung steht,
sondern vor allem die Art und Weise der Verarbeitung. Das Reduzieren auf das Wesentliche, um Verarbeitung auf jede erdenkliche Art und Weise
zu ermöglichen. Ganz wichtig für Intelligenz ist zudem Abstraktion. Das ist eins der wichtigsten Prinzipien überhaupt. Deshalb erstaunt es auch nicht,
dass man dies in künstlich neuronalen Netzen wiederfindet, die ja versuchen, das menschliche Gehirn nachzubilden.
Künstlich neuronale Netze sind sehr alt und werden dauernd weiterentwickelt. Sie können vor allem eines, Muster erkennen. Das geschieht durch
tausend- oder millionenfaches Training. Das, was ein KNN in einem solchen Fall kann bzw. tut, könnte auch auf andere Weise programtechnisch entwickelt
werden.
Jetzt zu versuchen, aus ein paar künstlich nachgebauten Neuronen eine Intelligenz zu entwickeln, wird nicht funktionieren. Ansatzweise kann
aber mit so ein paar künstlichen Neuronen intelligente Verarbeitung "versucht" oder demonstriert werden, ohne aber Anspruch auf eine Intelligenz
zu erheben, die zu "Überwältigendem" fähig ist. Wahrscheinlich hält es der Definition von Intelligenz im menschlichen Maßstab auch nicht stand.
Es gibt Forschung in die Richtung der exakten Nachbildung menschlicher Neuronen und was damit zu tun hat, auf künstlicher Basis. Was durchaus extrem
sinnvoll ist. Denn dadurch kann es eines Tages möglich werden, dass man Menschen mit Verlust an Gehirnmasse (z.B. Schlaganfälle und Unfälle) durch
ein Implantat helfen kann. Es wäre denkbar, z.B. nach einem Schlaganfall, das im Gehirn entstandene Loch mit einem Implantat zu ersetzen, das
von wenigen Quadratmillimeter bis Quadratzentimeter groß sein kann. Die abgestorbene Gehirnmasse wird abgebaut und das hinterbliebene Loch schließt sich.
Da das Gehirn in der Lage ist, sich umzuorganisieren und gerade in der ersten Zeit, nach aufgetretenen Defekten, schnell neue Verbindungen zwischen
den Zellen herzustellen (ähnlich, wie bei einem Kleinstkind), könnte ein künstlicher Speicher, der so funktioniert, wie menschliche Gehirnmasse,
von dem Organ "Gehirn" assimiliert werden. Es ist aber völlig unklar, wie sich das Gehirn umorganisieren wird und wie ein künstlich eingebrachtes Netz
überhaupt genutzt würde oder ob das alles nicht doch noch viel komplizierter ist, als man sich das heute vorstellen kann. Die Forschung geht schon länger
auch in diese Richtung, Neuronen künstlich nachzubauen, die in der Funktion exakt der dem organischen Vorbild entsprechen, inkl. Signale und deren Stärken.
Die CPU als solches besitzt bereits Strukturen zur Verarbeitung und Milliarden Transistoren, die vernetzt sind. Alle Grundmechanismen, auf denen komplexe
Intelligenz basiert, sind bereits in einer heutigen CPU vorhanden. Neuronale Netze können direkt auf Siliziumscheiben nachgebaut werden, ohne, dass eine
CPU im Hintergrund für die Verarbeitung sorgt, was nebenbei auch sehr energieaufwendig ist.
Wenn man davon absieht, dass die Neuronen Mustererkennung lernen sollen oder meinetwegen auch die XOR-Wahrheitstabelle: was sollen sie denn dann lernen?
Auf ein bestimmtes Eingangsmuster eine bestimmte Reaktion zeigen oder eine unbestimmte/nicht vorhersehbare Reaktion zeigen? Irgendwie muss es schon
eine "Grundfunktion" geben, damit zielgerichtetes Lernen möglich ist und nicht nur Chaos. Und das bieten die KNNs, mit denen Mustererkennung möglich ist.
Jedes Lebewesen funktioniert so, dass es auf seine Umwelt reagiert, also lernt, wie es mit den Umweltreizen umgeht. Deshalb entwickelt sich das
Projekt "GI" zu einem KNN, wie auch immer das versucht wird. Deshalb überschneiden sich hier auch die Meinungen, über das, was notwendig und sinnvoll ist.
Natürlich ist es bildlich schön gesprochen, dass "GI" auf "Futter" reagieren soll und also ein "Bein" krumm macht. Das ist aber auch nur eine andere Art und Weise,
zu sagen, dass am Eingang eines KNN eine "1" statt einer "0" vorliegt und der Ausgang an Bit#X dann auch aus der "0" eine "1" machen soll.
Gruß
Rumgucker:
Der Link von Helmut ist ziemlich gut, aber Du darfst es trotzdem wegignorieren. Die zu starke Fokusierung auf die Mathematik und das sogenannte "XOR"-Problem war nämlich die Ursache, dass die KI-Forschung für rund 20 Jahre in den sogenannten "KI-Winter"Muss ich jetzt verstehen, warum Helmut mir "erschreckende Unkenntnis" vorwirft? Oder darf ich das einfach wegignorieren?
https://de.wikipedia.org/wiki/KI-Winter
geschickt wurde, weil die Forschungsmittel massiv gekürzt wurden. Der KI-Winter wurde durch die Erfindung des Back-Propagation-Algorithmus beendet
Es geht mir nicht um die Kritik an Deiner Software, die Wahrscheinlichkeit ist nicht ganz klein, dass die Fehler in meiner Implementierung liegen.Ich hab hier stets nur Software hochgeladen, die das jeweils in den Beiträgen und Dumps beschriebene auf einem PIC12F629 tut. Also exakt das fehlerfrei tut, was ich beschrieben hatte.
Damit ich mit Dir kommunizieren kann, brauche ich aber eine funktionierende Version. Meiner Meinung nach kostet die Kommunikation mit anderen immer Zeit, aber bringt einem oft auch weiter.
Spiking Neurons, the next step: https://www.roboternetz.de/community...en-Intelligenz
Lesezeichen