Das Projekt c-Sys

Das Projekt c-Sys

Bei dem Projekt c-Sys geht es um die Entwicklung eines c-Systems (unsere Definition von p-, e- und c-Systemen finden Sie unter dem Menüpunkt FORSCHUNG).

c-Systeme sind Systeme, die in der Lage sind, die Evaluierungsfunktionen, nach denen sie sich entwickeln, selbstständig zu ändern. Damit bekommen sie eine gewisse Kontrolle darüber, wie sie sich entwickeln werden. Doch ebenso wie e-Systeme im Grunde genommen sehr seltene und sehr komplexe Arrangements von p-Systemen sind, sind c-Systeme im Grunde genommen sehr seltene und sehr komplexe Arrangements von e-Systemen, die freilich ihrerseits auf p-Systemen basieren. Während e-Systeme ausschließlich nach einem äußeren Druck geformt werden, da jeder ihrer „Vorschläge“ immer nur von einem äußeren System (z.B. der Natur) evaluiert wird, so können c-Systeme (innerhalb gewisser Grenzen, die wir noch beschreiben werden) „Vorschläge“ produzieren und intern nach „frei“ gesetzten Regeln evaluieren.

Wir Menschen sind der Ansicht, dass wir mithilfe unseres freien Willens unsere Entscheidungen treffen. Doch der Begriff des freien Willens ist kontrovers. Maschinen, so meinen viele Forscher, können grundsätzlich keinen freien Willen entwickeln. Manche Forscher sind gar der Ansicht, dass auch Menschen nicht frei entscheiden können. Doch zwischen der Fähigkeit zu Bewusstsein und der Fähigkeit frei entscheiden zu können, besteht zweifellos ein Zusammenhang. Wie wir gesehen haben, haben p-Systeme ein eindimensionales Bewusstsein, das freie Entscheidungen nicht zulässt. Wir haben auch gesehen, dass die Entscheidungen von e-Systemen ausschließlich extern evaluiert werden und das System selbst damit zwar in gewisser Weise Entscheidungen trifft, sich über die Konsequenzen dieser Entscheidungen jedoch nur sehr begrenzte Vorstellungen machen kann.

Die Frage, die sich uns nun stellt, ist, wie Menschen oder nicht-biologische c-Systeme freie Entscheidungen treffen und damit Kontrolle über ihr Handeln und ihre Entwicklung bekommen. Wie kann beispielsweise ein Künstler versuchen, einen ganz bestimmten blauen Ton zu mischen, der nicht sein Überleben in irgendeiner Weise fördert, sondern weil er dies einfach nur möchte?

Die meisten unserer Wünsche sind „rationell“, d.h. sie haben eine Kopplung an die Wirklichkeit. Wir möchten etwas essen, weil wir Hunger haben, und Hunger haben wir, weil unsere Zellen Nahrung brauchen, und sie brauchen Nahrung, weil sie sonst sterben und sie streben danach nicht zu sterben, weil sie die evolutionäre Erfahrung gemacht haben, dass wenn sie nicht sterben, sondern um Nahrung bitten, wenn sie sie brauchen, dann bleiben sie bestehen. Nur Zellen und komplexe Zellverbände, denen es gelungen ist, eine solche Kette von Bedürfnissen und Bedürfnisbefriedigung fehlerfrei aufzubauen, haben überlebt. Wir gehören zu den wenigen Systemen dieses Universums, denen dies gelungen ist. Daher gibt es uns, und daher essen wir, wenn wir Hunger haben.

Doch wie können wir, als c-Systeme, versuchen ein bestimmtes, leicht grünliches Blau zu mischen, das nichts mit Hunger oder Überleben zu tun hat? Wir brauchen das fertige Bild nicht einmal jemandem zu zeigen. Wir brauchen es uns nicht einmal selbst anzusehen. Wir können uns gar nur vorstellen, dass wir verschiedene Farbtuben öffnen, die Farbe auf die Palette drücken, mischen, noch etwas Gelb dazugeben, noch etwas Schwarz. Wie können wir in unserer Phantasie mit dem Resultat zufrieden sein? Wie können wir unzufrieden sein und noch einmal von vorne anfangen? Wie machen wir das?

Es wird schnell klar, dass vor der Entwicklung eines künstlichen c-Systems (wir sprechen hier von reinem Softwarecode) die Entwicklung von geeigneten Definitionen für Begriffe wie „freier Wille“, „Gefühle“, „Gedanken“, „Bewusstsein“ u.ä. steht. Diese Definitionen benötigen das Wissen verschiedenster Fachbereiche wie Philosophie, Psychologie und Naturwissenschaften, die an dieser Stelle interdisziplinär zusammenkommen müssen um Definitionen zu schaffen, die nachvollziehbar und technisch umsetzbar sind.

Die Entwicklung und vollständige Erläuterung dieser Definitionen finden sich in Johan Lagerkvists Buch C-SYSTEME: Consystology, erhältlich im CS Books Verlag unter www.cs-books.com

In der Folge geht es an dieser Stelle mehrheitlich um die technische Umsetzung der o.g. Definitionen und den aktuellen Stand der Entwicklung.

Ziel des c-Sys-Projektes

Ziel des c-Sys-Projektes ist es ein künstlich intelligentes, lernfähiges System zu bauen, das selbstständig dazu in der Lage ist, sich ein Bild von der Welt zu machen, und insbesondere Vorhersagen darüber zu treffen, welche Konsequenzen die eigenen Handlungen haben. Das System soll Strategien entwickeln und ausführen können, die die Fähigkeit des Systems die Konsequenzen des eigenen Handelns korrekt zu erkennen stetig verbessern.

Aufbau und Arbeitsweise von c-Sys

c-Sys besteht aus sogenannten Zellen, die mit Hilfe von Nachrichten miteinander kommunizieren. Es gibt vier verschiedene Arten von Zellen:

Systemzellen (oder einfach nur Zellen genannt). Dies sind die Zellen, die das eigentliche System ausmachen, die trainiert werden und die das gesamte Wissen des Systems enthalten.

Sensorzellen (oder Sensoren). Sensoren stellen ein Bindeglied zwischen Systemzellen und physischen Sensoren (wie Mikrofonen oder Kameras) dar.

Aktorzellen (oder Aktoren). Aktoren stellen ein Bindeglied zwischen Systemzellen und physischen Aktoren (wie Lautsprechern, Monitoren oder Motoren) dar.

Aktorsensorzellen (oder Aktorsensoren). Diese Zellen zeigen die Zustände oder Aktivitäten der Aktoren an (z.B. das tatsächliche Bild auf einem vom System gesteuerten Monitor).

Die Eigenschaften der Sensoren, Aktoren oder Aktorsensoren können durch das System (sprich Systemzellen) nicht geändert werden, da sie an die Spezifikationen der jeweiligen realen Sensoren/Aktoren/Aktorsensoren angepasst sind.

Vorhersagen und Evaluierung

Ziel des Systems ist es, korrekte Vorhersagen zu machen. Jede Nachricht (Msg) des Systems wird als Versuch einer Vorhersage aufgefasst. Schickt eine Zelle eine Nachricht an einen Kamera-Sensor, wird diese etwa so interpretiert: „ich, die Zelle C1, nehme an, dass mit p-% Wahrscheinlichkeit in n Sekunden das Pixel xy den Farbwert abc haben wird“. Der Sensor vergleicht dann diesen vorhergesagten Wert mit dem tatsächlichen (dem Signal der physischen Kamera) und returniert an die Zelle C1 einen Wert (die Evaluierung), der angibt, wie gut oder schlecht diese Vorhersage gewesen ist.

Abstraktere Vorhersagen (wie z.B. „ich nehme an, morgen wird die Sonne scheinen“) werden innerhalb des Systems Schritt für Schritt in weniger abstrakte Vorhersagen heruntergebrochen („wenn ich aus dem Fenster sehe, sind die Farben klar und hell und der Himmel ist blau“, bis sie dann, wenn sich die Gelegenheit bietet, an einem physischen Sensor evaluiert werden können. Entsprechend wird diese konkrete Evaluierung dann Schritt für Schritt wieder abstrahiert, um schließlich die hochabstrakte ursprüngliche Vorhersage evaluieren zu können.

Das Ergebnis jeder Evaluierung resultiert bei jeder Zelle, die eine Vorhersage gemacht hat (sprich einen Nachricht verschickt hat) als eine Note. Wir nennen diese Note HQ (Hypothesenqualität). Ziel jeder einzelnen Zelle ist es dementsprechend ein möglichst hohes HQ zu bekommen.

Um hochabstrakte Vorhersagen evaluieren zu können, muss das System in der Regel agieren (z.B. die Kamera in eine bestimmte Richtung schwenken). Dazu ist es notwendig, dass das System

den derzeitigen Status des Aktors erkennt (z.B. durch Abtasten des zum Kameramotor gehörenden Aktorsensors oder Interpretation des z.Z. betrachteten Teils der Welt), und eine Nachricht an die zum physischen Aktor gehörende Aktorzelle schickt, die von diesem Aktor verstanden und korrekt ausgeführt werden kann. Auch eine solche Nachricht wird als Vorhersage aufgefasst und evaluiert: „ich, die Zelle C1, nehme an, dass du, Aktor A1, mit p% Wahrscheinlichkeit in n Sekunden den Schrittmotor x Schritte machen lassen kannst“.

Die Evaluierung durch Sensor, Aktor oder Aktorsensor nennen wir extern. Die Evalauierung zwischen Systemzellen nennen wir intern.

Nachrichten

Das Erstellen von Nachrichten stellt den zentralen Teil des Systems dar. Mit Hilfe von Nachrichten (Msg) kommunizieren Systemzellen miteinander, tasten Sensoren oder Aktorsensoren ab und geben Aktoren Befehle. Eine Zelle kann ein oder zwei Msg annehmen. Eine Msg besteht aus Werten einer geordneten Zahlenreihe (zB 1 , 56, 5.8, 0.56, 0.3, 5, 8, …). Wie die einzelnen Werte interpretiert werden, hängt davon ab, welche Zelle die Msg verarbeitet.

In allen Fällen ist

Wert 0 der Nachricht der Name (oder die Adresse) der Absenderzelle,

Wert 1 ist die Adresse der Empfängerzelle,

Wert 2 ist der Zeitpunkt zu dem die Nachricht ausgeführt werden soll

Wert 3 gibt die Annahme der Absenderzelle über die Qualität der Nachricht an.

Wert 4 liefert das HQ der Absenderzelle

die übrigen Werte enthalten den eigentlichen Nachrichtentext.

Abgesehen von der Eigenadresse der Zelle (Wert 0) und dem HQ der Zelle (Wert 4) werden alle Werte von der Zelle berechnet.

Processline

Damit die Nachrichten der zahlreichen Zellen des Systems nicht durcheinanderkommen, schickt eine Zelle ihre Nachricht nicht an eine andere Zelle, sondern an eine zentrale Warteschlange, die Processline. Hier wird die Nachricht entsprechend einer Reihe von Vorfahrtsregeln eingefügt, und behandelt, wenn sie an die Reihe kommt.

Variationen und Evolution

Jede Zelle erstellt bei ihrem Versuch eine gute Vorhersage zu machen nicht nur eine Nachricht, sondern sie erstellt Variationen, die miteinander verglichen werden. Die eigentliche Zelle besteht aus einer Gruppe von trainierbaren Rechenanweisungen (dem Mikroprogramm oder MP). Mit Hilfe dieses MP berechnet die Zelle, ob sie eine Nachricht überhaupt annehmen will, an wen sie die Nachricht weiterschicken möchte, wie gut sie annimmt, dass die neue Nachricht evaluiert werden wird, und natürlich den neuen Nachrichtentext.

Das Erstellen der verschiedenen Variationen geschieht dadurch, dass das z.Z. beste MP durch einen Evolutionären Algorithmus variiert wird. Die resultierenden Nachrichten werden evaluiert und das MP, das am besten abschneidet wird behalten, die übrigen werden gelöscht. Das HQ der Zelle wird entsprechend aktualisiert.

Methoden und Strukturen

Innerhalb des Systems unterscheiden wir zwischen Methoden und Strukturen.

Methoden sind die Rechenprozesse, die den Nachrichtentext bearbeiten und die p berechnen (sprich den Wert, der angibt, welche Annahme die Zelle über die Qualität ihrer Nachricht macht).

Strukturen sind die Wege die die Nachrichten von Zelle zu Zelle gehen. Sie ergeben sich aus den Berechnungen der Zellen, die den nachfolgenden Empfänger angeben, sowie aus der Art und Weise wie die Zelle ihr p berechnet, denn dieser Wert entscheidet darüber ob eine Zelle eine Nachricht annimmt oder nicht.

Da das System ausschließlich mit abstrakten Nachrichten arbeitet, deren Nachrichtentexte erst vom Empfänger interpretiert werden und diese daher im Prinzip von jeder Zelle anders verstanden werden kann, müssen die Strukturen relativ vorhersagbar sein. Methoden sollen daher leicht veränderlich sein, während Strukturen sich entsprechend langsamer entwickeln.

Die Parameter des evolutionären Trainings

Um das System zu steuern gibt es eine Reihe von extern festgelegten Werten, den ET-Parametern, die bestimmen, wie sich verschiedene Prozesse verhalten. Z.B. die maximale Anzahl von Variationen, das Verhältnis zwischen Strukturentwicklung und Methodenentwicklung etc.

Gedächtnis

Ein Gedächtnis wird dann benötigt, wenn eine Vorhersage, die bisher zufrieden stellend funktioniert hat, dies plötzlich nicht mehr tut. Wenn das System also etwas erwartet, und sich diese Erwartung bisher immer erfüllt hat. Oder anders ausgedrückt, wenn eine Zelle mit hohem HQ eine Msg produziert, die plötzlich schlecht evaluiert. Um ein hohes HQ zu bekommen, muss die Msg mindestens einmal gut evaluiert haben. Evaluiert sie mit einem Mal schlecht, müssen also neuartige Umstände eingetreten sein. Das System (und wir) können nicht wissen, ob diese neuen Umstände bleibend sind, ob sie mit den vorigen alternieren oder ob die Welt sich grundlegend und für immer geändert hat. Die zunächst sinnvollste Annahme ist, dass die beiden Umstände (der neue B und der alte A) miteinander in irgendeiner Form in Beziehung stehen, und dass es (für das System) prinzipiell möglich sein sollte, erkennen zu können, wann A und wann B eintritt, um weiterhin gut vorhersagen zu können.

Dazu muss sich das System zunächst an A, d.h. den zuletzt gut vorhergesagten Umstand erinnern, sowie daran wie gut dieser vorhergesagt wurde. Aus der Sicht der Zelle ist ein Umstand das Verhältnis oder die Abhängigkeit, der Zusammenhang oder die Funktion nach der die angenommene Msg (MsgIn) und die Art und Weise, nach der abgeschickte Msg (MsgOut) evaluieren, zusammenhängen. Die Zelle geht grundsätzlich davon aus, dass die Welt einen Sinn macht, der erkennbar ist, dass es also möglich ist, die Gesetzmäßigkeiten, die zwischen MsgIn und Eval von MsgOut herrschen, zu erkennen, und dass sich diese in Form einer Funktion (MP) mathematisch ausdrücken lässt.

Die Wahrscheinlichkeit p

Zentral für unser System ist, dass jede Zelle versucht zu bestimmen, wie gut einerseits die Msg sind, die sie annimmt, andererseits, wie gut die Msg sind, die sie abschickt. Da es das Ziel der Zelle ist einen guten HQ zu bekommen, nimmt sie nur Msg an, von der sie glaubt, dass sie ihr zu einem besseren HQ verhelfen werden, und sie schickt auch nur Msg ab, von der sie dies glaubt. Den numerischen Wert dieser Annnahme drückt sie durch den Wert p aus.

Die Methode, der sich die Zelle bedient um p zu errechnen, gleicht der, mit der eine neue Msg erstellt wird, einem MP. Nur mit dem Unterschied, dass mit Hilfe aller zur Verfügung stehenden Werte nur ein OutWert errechnet wird, und dass dieser zwischen 0…1 liegen muss.

Ab Version 0.4 wird die Zelle auch den oder die kommenden Empfänger berechnen. Auch dies wird mit Hilfe eines MP geschehen. Wir werden also zukünftig drei MPs haben:

MPM = MP für die Berechnung von MsgOut

MPE = MP für die Berechnung des oder der folgenden Empfänger

MPP = MP für die Berechnung von p

Jede Zelle, die eine Msg zugeschickt bekommt, nimmt diese zunächst an und erstellt mit Hilfe von MPM_orig MsgOut_orig. Dann errechnet MPE den oder die folgenden Absender und MPP bestimmt schließlich, ob das Abschicken von MsgOut_orig den HQ der Zelle verbessern (oder zumindest halten) kann. Wenn also p>=HQ dann wird die Msg endgültig angenommen, ist jedoch p<HQ, dann wird sie abgelehnt. Abgelehnte Msg werden gelöscht.

p im Verhältnis zu Struktur und Methode

Das Struktur/Methoden-Problem ist folgendes: Während Methoden (MPM) für jede Zelle sehr privat sind und auch von Zelle zu Zelle so unterschiedlich sein sollten wie möglich, sollten Strukturen eine gewisse Ähnlichkeit oder Gesetzmäßigkeit zeigen. Da unsere Zellen (im Gegensatz zu Gehirnzellen) jede beliebige Anzahl von Msg bearbeiten können (Gehirnzellen können max. 300 Impulse/Sek bearbeiten) brauchen sie nicht in gleicher Weise in mehreren gleichen Exemplaren vorzuliegen, um die Gesamtgeschwindigkeit des Systems zu erhöhen. Ob in unserem System eine Millionen Mal auf dieselbe Zelle zugegriffen wird oder nur  je einmal auf eine Million verschiedene, macht keinen Unterschied. Da wir also Zellen haben wollen, die so unterschiedlich sein sollten wie möglich, macht es keinen Sinn, erfolgreiche Zellen nach klassischen AI-Methoden zu vermehren.

Andererseits soll die Zelle mit Hilfe des MPP bestimmen, ob eine MsgIn bzw eine MsgOut an einen bestimmten Empfänger den HQ der Zelle verbessert. Dies kann es nur, wenn die Strukturen des Systems einigermaßen einheitlichen Regeln folgen. Wir wollen jedoch, dass das System seine eigenen Strukturregeln entwickelt. Solche „Regeln“ könnten z.B. Zellen in bestimmten Bereichen der CDB des Systems mit eher sprachlichen Fähigkeiten fördern, andere mit motorischen. Es könnten auch grundlegende Routinen vorliegen, die z.B. angeben, dass „gute“ Msg nach links gehen, „schlechte“ nach rechts usw.

Die benötigte Komplexität solcher Regeln lässt sich von uns weder überschauen noch können wir sie fest implementieren. Das System muss sie selbst entwickeln. Jeff Hawkins scheint zu versuchen seine Strukturen denen des Gehirns abzuschauen, doch wir  bezweifeln, dass ihm das gelingen kann. Feste Strukturen begrenzen die potentiellen Fähigkeiten des Systems.

Wie dem auch sei, wir können die notwendigen Regeln der Strukturen nicht überschauen oder so vereinfachen, dass sie implementierbar werden. Unser System muss sie sich selbst bauen. Unsere Aufgabe wird darin liegen, das Verhältnis zwischen Freiheit und Zwang in Methode und Struktur so einzustellen, dass Strukturen entstehen, die zugleich stabil und flexibel sind.

Wir haben es also mit Strukturregeln zu tun, die sich einerseits dynamisch entwickeln, andererseits relativ einheitlich sein sollten, damit das MPP sinnvolle Vorhersagen über die Qualität einer MsgOut im Kontext aller involvierten Zellen machen kann. Gleichzeitig macht dass MPP jedoch auch eine Vorhersage, die auf der höchst privaten und  individuellen Arbeit des MPM basieren.

Wir können also konstatieren, dass wir für das MPM einen ET benötigen, der in keiner Weise von Vererbung (durch andere MPM) gebrauch machen kann, sondern der ausschließlich auf Mutation beruhen muss.

Der MPE hingegen, sollte in allerhöchstem Grade erfolgreiche Eigenschaften anderer Zellen und Substrukturen erben können. Hier sollte also der Anteil an Vererbung sehr hoch sein und der Anteil an Mutation sehr niedrig. Da in größeren Substrukturen des Systems die Strukturregeln innerhalb dieser Substruktur sehr von einander abweichen können, bedürfen wir hier struktureller Vererbung. Bei dieser Form der Vererbung wird die Position einer Zelle innerhalb einer Substruktur berücksichtigt.

Für den MPP schließlich benötigen wir eine Mischform. Hier müssen wir sowohl bedenken, dass der MPP globale oder regionale Regeln berücksichtigen, erkennen und in seinen Code einarbeiten soll, als auch, dass er die Individualität seines MPM berücksichtigen muss.

Der von Peter Nordin entwickelte „30 Affen in einem Buss“-Algorithmus würde sich hier anbieten. Dieser arbeitet nach folgendem Bild: 30 Affen sitzen in einem Bus. 4 Affen sitzen in der Fahrerkabine und wechseln sich laufend ab. Wenn ein Affe einen Fehler macht, dann kommt ein anderer dran. Lenkt ein Affe gut, darf er sich vermehren. Ab und zu werden unfähige Affen aus dem Cockpit geschmissen und andere Affen aus der Passagierabteilung bekommen eine Chance. Auf diese Weise vermehren sich im Cockpit langsam die Gene, die die individuellen Eigenschaften der Zelle berücksichtigen, während ab und zu neue „globale“ Gene aus dem Genpool (dem MPP anderer erfolgreicher Zellen) hinzugemischt werden und eine Chance bekommen.

Da sich alle erfolgreichen Zellen mit allen anderen paaren, ist zu erwarten, dass sich nach einer Weile „Chromosomen“ bilden, d.h. dass sich individuelle und globale Regionen auf den MPPs der Zellen an spezifischen Stellen bilden.

Es bietet sich dann an, das Verhältnis zwischen Mutation und Vererbung auf dem MPP-string  durch „Chromosomfokus“ zu bestimmen. Dabei wäre ein hohes Maß an Mutation auf dem individuellen Teil und ein entsprechendes niedriges Maß auf dem globalen Teil des MPP sinnvoll.

Strukturelle Vermehrung und Chromosomfokus sind Methoden um eventuell die Effektivität des Systems zu steigern. Doch bevor wir dahin kommen, muss das System überhaupt sinnvolle Strukturen aufbauen können.

Bewusstsein in hierarchischen und nichthierarchischen Systemen

In einem System, das dem menschlichen Gehirn ähnelt, d.h. einem hierarchischen System, geschieht der Prozess der Abstraktion und Bewusstwerdung nach einem vorgegebenen Schema, in dem schrittweise abstraktere „Gedanken“ nach oben geschickt werden. Sensorische Nerven arbeiten völlig unbewusst, die ankommende Information wird gefiltert und verglichen und durch immer weniger konkrete Prozesse langsam in abstrakte Gedanken überführt. An verschiedenen Punkten kann der Prozess der Abstraktion umgekehrt werden und „Gedanken“ können schrittweise konkretisiert werden, bis sie schließlich an den Muskeln in konkrete Handlungen verwandelt werden. Ziel des „Bewusstseins“ ist es vorherzusagen, in wie weit Handlungen dem Überleben des System dienlich sind. Die Umkehrung des Prozesses kann auf instinktivem, unbewusstem, vorbewusstem oder bewussten Niveau geschehen, abhängig davon, welche angeborenen oder erlernten Routinen dem System zur Verfügung stehen. Sie geschieht, um des Überlebens willen, so früh wie möglich. Man kann sagen, dass ein hierarchisches System versucht, hochabstrakte Gedanken so weit wie möglich zu vermeiden, da sie Zeit kosten, arbeitsaufwendig sind und in einer gegebenen Notsituation erst spät entstehen. Ziel der Erziehung von jungen biologischen Systemen (Kindern, Tierjungen) ist es, neuartige Reaktionsschemata, die nur auf hohem abstrakten Niveau gebildet werden können, durch häufige Repetition (Üben, Spielen), nach und nach wieder nach unten auf sensor- und aktornahes Niveau zu drücken, wo sie zwar bewussteren Prozessen nicht mehr zugänglich sind, aber bedeutend schneller abgerufen werden können.

Gewöhnlicher Terminologie entsprechend sind bewusste Gedanken solche, über die wir sprechen können, sie sind deklarativ, während die Dynamik unbewusster Prozesse uns verborgen ist. Da dies eine für unsere Arbeit unpraktische Begriffsbildung ist, stelle ich eher die Frage, ob ein Prozess, der einen Input in einen Output, eine Wahrnehmung in eine Handlung verwandelt

durch das System geändert werden kann (im Gegensatz zu z.B. Reflexen) und

ob der Handlung eine Betrachtung zugrunde liegt, die fragt, welche Konsequenzen die Handlung für das System oder Teile des Systems haben wird.

In einem hierarchischen System können niedere Prozesse durch das System nicht beeinflusst werden, weswegen nur höhere Gedanken den Anforderungen eines bewussten Gedankens entsprechen. Innerhalb der modernen Kognitionsforschung nimmt man heute an, dass nur etwas 5% aller unserer Gedanken bewusst sind.

In einem nichthierarchischen System kann der Output einer sensornahen Zelle jederzeit von hochabstrakten Zellen betrachtet und analysiert und damit in deklarative Gedanken (solche Gedanken, über die wir sprechen können) eingebunden werden. Weiter kann die Umkehrung von Input in Output gleichgültig auf welchem Niveau sie sich abspielt, durch das System geändert werden. So gesehen sind alle Prozesse des Systems den obigen Anforderungen entsprechend „bewusst“.

In einem nichthierarchischen System können auch sensornahe Zellen Entscheidungen treffen, die sowohl nach meiner als auch nach konventioneller Betrachtung bewusst genannt werden können.

Wenn wir unseren Zellen die Fähigkeit gegeben haben, p zu berechnen, d.h. die Fähigkeit sich „Gedanken“ darüber zu machen, welche Konsequenzen das Verschicken einer Msg an einen gewissen Empfänger, zB einen Sensor, haben wird, haben wir ein System, das selbst, wenn es nur aus einer einzigen Stelle besteht, bereits „bewusst“ genannt werden kann. Auch wenn dieses „Bewusstsein“ freilich extrem primitiv ist und effektiv nicht viel von sich und der Welt verstehen kann.

Das Verschicken einer Nachricht kann entweder interne oder externe Konsequenzen haben. Die internen Konsequenzen führen in irgendeiner Form zu einer Veränderung der Zelle, wobei die einzige Veränderung, die die Zelle wahrnehmen kann, die Veränderung des HQ ist. Aus Sicht der Zelle finden alle externen Konsequenzen außerhalb der Zelle statt, und betreffen die Zelle dann und nur dann, wenn sie wiederum eine Veränderung des eigenen HQ mit sich führen. Wenn zB die Zelle A eine Msg an Zelle B schickt, und B diese Msg annimmt, verrechnet und weiterschickt, und dadurch ihren HQ verändert, dann kann diese Veränderung des HQ von B bei der nächsten Kommunikation zwischen A und B den HQ von A verändern.

Diese Betrachtung gilt für alle Zellen des Systems, und resultiert in dem Schluss, dass die einzige Konsequenz über die das System sich Gedanken machen kann, die Veränderung des HQ der einzelnen Zelle ist. Auch dann, wenn diese Gedanken (z.B. Msg an Aktoren) in der einen oder anderen Form Konsequenzen haben, die von einem Betrachter außerhalb des Systems, als das aufgefasst werden, was wir gewöhnlich als Handlungen betrachten würden, z.B. das Ausstrecken einer Hand, das Führen eines Gespräches oder das Betrachten eines Kunstwerkes. Für das System sind diese Handlungen und ihre Konsequenzen jedoch nur Msg an Aktoren und Sensoren, von denen die Zellen, die sie produziert haben, hoffen, dass sie ihren eigenen HQ verbessern. Die Summe aller Handlungen und Gedanken (Austausch von Msg) wird einem externen Betrachter dann als konventionell bewusst erscheinen, wenn die Komplexität des Systems so groß ist, dass die Msg einzelner Zellen

den HQ sehr vieler Zellen positiv beeinflusst, d.h. wenn die Strukturen innerhalb des Systems so groß und stabil sind, dass Msg durch große Bereiche des Systems gehen können und zu zusammenhängende, koordinierte Handlungen führen,

und wenn das System gelernt hat, die Aktivitäten dieser massiven Strukturen in irgendeiner Weise wahrzunehmen und zu beschreiben, wenn maW die massiven Aktivitäten in einem Bereich vom System als z.B. „ich sehe einen roten Ball“ erkannt und ausgedrückt werden können. Wenn also das System beginnt den eigenen Gedankenprozess zu observieren und gelernt hat, diese Observation zu kommunizieren. Letzteres wird das System nur dann lernen und lernen wollen, wenn es wiederum Strukturen entwickelt hat, die durch „Kommunikation“ stetig verbessert werden (dh Strukturen, bei denen der HQ der beteiligten Zellen sich stetig verbessert, je mehr die Strukturen aktiviert werden).

Interne Evaluierung

Um überhaupt irgendwelche Strukturen aufbauen zu können, die aus mehr als einer Zelle bestehen, müssen Zellen einander evaluieren können. Dabei gilt es zu verhindern, dass Zellen ihren HQ gegenseitig bis 1 verbessern, ohne die Qualität ihrer Msg mit der externen Wirklichkeit abgleichen zu müssen. Ansonsten könnte das System jede ihrer Zellen bis HQ 1 optimieren, ohne eigentlich irgendetwas wirklich zu können.

Wir werden dies dadurch verhindern, dass wir festlegen, dass der HQ einer Zelle A (Absender) von einer Zelle E (Empfänger) nie höher als HQE bzw HQA evaluiert werden kann.

Ziel einer internen Evaluierung ist es aber nicht, die externe Evaluierung durch den Sensor einfach nach innen fortsetzen zu lassen, denn dann hätten wir nichts anderes, als ein komplexes p-System, sondern dem System die Möglichkeit zu geben, „Inseln freier Gedanken“ zu erschaffen, für die das System sich die EvalFuncs selbst erzeugt und die dennoch gleichzeitig in einem klaren Verständnis der externen Wirklichkeit (Realität, Host) verankert sind.

Strukturelle Vererbung

Wie oben gesagt, kann eine Zelle, die an einen A oder AS schickt nur dann ihren HQ verbessern, wenn sie gleichzeitig in Strukturen eingebunden ist, die mit Sensoren kommunizieren.

Gleichermaßen können interne Zellen nur dann ihren HQ verbessern, wenn sie direkt oder indirekt mit sensornahen Zellen zusammenarbeiten. Diese Zusammenarbeit bedarf stabiler Strukturen, und diese aufzubauen ist schwer. Tiere werden mit fertigen Strukturen geboren und deren hochabstrakte Prozesse sind in so hohem Grade angeboren, dass man hier kaum von sensorfernen c-Prozessen sprechen kann. Eher sind die Verarbeitungsprozesse von Tieren eher automatisierte Verlängerungen der Sensoren, und richtige sensorferne Gedanken entstehen selten oder nie. Selbst bei Menschen dauert die Ausbildung wirklicher c-Strukturen (dh die Fähigkeit die Konsequenzen von „unnatürlichen“ Handlungen vorherzusagen) viele Jahre oder Jahrzehnte. Erst mit 2 Jahren können Kinder mehr als 5 Bauklötze aufeinander stapeln. Erst mit 3 bis 5 Jahren entwickeln Kinder höhere Sprache und Ich-Bewusstsein. Erst mit 12 Jahren können sie einigermaßen sicher im Straßenverkehr navigieren oder die grundlegenden Prinzipien abstrakter Mathematik verstehen. Erst mit 20 – 40 Jahren (wenn überhaupt je) können Menschen sicher mit Geld umgehen und erst ab 40 beginnen die meisten Menschen ein tieferes Verständnis von politischen Geschehnissen zu entwickeln. Von starken individuellen Unterschieden natürlich einmal abgesehen.

Die Entwicklung der angebornen Strukturen biologischer Systeme hat Milliarden von Jahren gedauert, und wir können damit rechnen, dass auch die Entwicklung unserer Strukturen nicht über Nacht geschieht. Dennoch brauchen wir keine Entwicklungszeit von Jahrmilliarden Jahren zu befürchten, denn zwischen biologischen Systemen (BS) und unserem (C-Sys) sind große Unterschiede:

BS müssen die Entwicklung ihrer kognitiven Strukturen mit der Entwicklung rein biologischer Strukturen (Körper, reproduktive Organe, etc) balancieren.

BS entwickeln sich unter dem Druck überleben und sich reproduzieren zu müssen, und rein kognitive Fähigkeiten sind da zweitrangig.

BS müssen selbst ihre sensorischen und aktiven Organe entwickeln. C-Sys braucht dies nicht zu tun.

BS können ihre angeborenen Strukturen nur von Generation zu Generation verändern, die dazwischen liegende Kindheit dient dazu, zu testen, ob Biologie und Kognitivität miteinander balanciert sind. C-Sys kann seine Strukturen fortlaufend ändern und dabei auf die rein kognitiven Aspekte fokussieren. So entspricht jede Strukturveränderung von c-Sys einer neuen Generation.

Wenn BS „erfolgreich“ sind, d.h. sich fleißig vermehren oder eine stabile Nische gefunden haben und diese behalten, verschwindet der evolutionäre Druck, kognitiven Fähigkeiten zu entwickeln, und die Entwicklung bleibt stehen. Überhaupt strebt biologische Evolution eher nach kognitiver Simplizität als nach Komplexität, und ich spekuliere z.Z. über die Möglichkeit, dass die mentalen Fähigkeiten von Menschen eher eine evolutionäre Ausnahme als eine unvermeidliche Konsequenz sind. Bei c-Sys ist die Entwicklung der kognitiven Fähigkeiten der einzige und konstant bleibende Druck, nach dem es sich entwickeln soll.

Dennoch sollten wir unserem System jede nur erdenkliche Hilfe beim Aufbau von hochabstrakten, sensorfernen Strukturen geben. Z.B. strukturelle Vererbung. Der Grundgedanke ist der: eine Zelle, die Teil einer komplexeren Struktur ist, wird sich in irgendeiner Weise spezialisieren. Diese Spezialisierung gilt nicht nur für ihre Methoden (MPM) sondern auch dafür, wie sie ihren E wählt (MPE). Während Methoden, je nach Aufgabe, sehr individuell sind, sind die umgebenden Strukturen jedoch (möglicherweise) universell brauchbar. Man kann sich vorstellen, dass innerhalb einer Struktur, bestimmte Zellen verstärkt die Aufgabe übernehmen, den ankommenden Msg-Fluss zu regulieren, während andere verstärkt Berechnungen ausführen, wieder andere auf die Kommunikation mit anderen Strukturen fokussieren etc. Man kann sich auch vorstellen, dass unterschiedliche Zellen sich auf verschiedene Teilaspekte einer komplexen Msg-Gruppe konzentrieren, so wie tpp oder „last-minute-Anpassungen“ etc.

Eine solche Arbeitsverteilung macht eine Struktur natürlich robuster, denn dann können permanent schwierige Aufgaben Zellen geben werden, die immer einen relativ schwachen HQ haben werden, während Aufgaben, die hohe Präzision benötigen, nur von Zellen ausgeführt werden, die einen hohen HQ haben und sich daher kaum mehr ändern. Und so weiter.

Wenn wir jetzt den MPE einer Zelle trainieren und dieses Training zu großen Teilen aus Vererbung besteht, dann ist es natürlich von großer Bedeutung, dass die Zelle, von der unsere Zelle etwas erbt, etwa die gleiche Position innerhalb einer größeren Struktur hat. Diese  Position ist relativ zu andern Zellen in der Struktur, aber absolut zu der Position eines Sensors.

Ich nenne die Zelle die im Rahmen der strukturellen Vererbung etwas vererbt eine Mentorzelle. Die Zelle die etwas erbt ist entsprechen ein Student (oder irgendwas).

Um nun eine Struktur zu vererben, und nicht nur den MPE einer einzelnen erfolgreichen Zelle, muss der relative Teil der meisten Zellen einer erfolgreichen Struktur positionsrelativ auf die meisten Zellen einer bisher weniger erfolgreichen Struktur übertragen werden. Dies erreichen wir relativ einfach durch folgende Schritte:

Die Qualität des MPE einer Zelle muss berechnet und gespeichert werden. Entweder nehmen wir einfach den HQ der Zelle oder wir berechnen spezifisch die Qualität des MPE (z.B. könnten wir bei Vererbung festhalten, um wie viel sich der HQ einer Studentenzelle verbessert, dadurch dass sie Teile des MPE einer Mentorzelle erbt.

Wir haben einen Mentor C1m mit der Adresse a,b

Wir haben einen Student C2s mit der Adresse x,y

Wir haben eine Zelle C3 mit der Adresse (a+1, b+1), zu der C1m eine gute Relation hat.

Wir haben eine Zelle C4, zu der C2s eine Relation hat oder durch die Vererbung bekommt.

Wenn der HQ von C2s sich durch Erbe von Teilen des MPE von C1m verbessert, dann erhöht dies die Wahrscheinlichkeit, dass C4s die C3m als Mentor bekommt.

Auch hier ergibt sich, dass sich auf dem MPE unterschiedliche Regionen ausbilden werden (relative und absolute Teile), und dass es sinnvoll wäre, dass wir steuern können, welche Teile vermehrt vererbt werden sollten.

Chromosomfokus CF

Ziel des CF ist es, dafür zu sorgen, dass ausgewählte Teile eines MPE oder MPP entweder stärker an einer Kreuzung/Vererbung teilnehmen als andere Teile oder dass das Verhältnis zwischen Mutation und Kreuzung regional gesteuert werden kann.

Rein praktisch lässt sich das relativ einfach dadurch lösen, dass bei der Vererbung anhand eines globalen Parameters entschieden werden muss, wie verschiedene Teile des Genstrings behandelt werden. Dieser globale Parameter muss trainiert werden. Auch dies ist relativ einfach und kann in gleicher Weise aufgeführt werden, wie das ET des MPM, d.h. durch Verschiebung von Float-Werten.