Wie schreibt man künstliche Intelligenz. Künstliche Intelligenz. Widersprüche und Probleme der Schöpfung. Warum künstliche Intelligenz den Menschen schlägt

Künstliche Intelligenz hat ein neuronales Netz geschaffen 15. Dezember 2017

Wir haben den Moment erlebt, in dem künstliche Intelligenz ihr eigenes neuronales Netz erschafft. Obwohl viele Leute denken, dass dies dasselbe ist. Aber tatsächlich ist nicht alles so einfach, und jetzt werden wir versuchen herauszufinden, was es ist und wer wen erstellen kann.


Ingenieure der Google Brain-Abteilung haben AutoML in diesem Frühjahr demonstriert. Diese künstliche Intelligenz ist in der Lage, ohne menschliches Zutun eine eigene einzigartige KI zu produzieren. Wie sich kürzlich herausstellte, konnte AutoML erstmals NASNet, ein Computer-Vision-System, entwickeln. Diese Technologie übertrifft alle bisher von Menschen geschaffenen Analoga deutlich. Dieses auf künstlicher Intelligenz basierende System kann ein hervorragender Assistent bei der Entwicklung von beispielsweise autonomen Autos sein. Es ist auch in der Robotik anwendbar – Roboter werden ein völlig neues Level erreichen können.

Die Entwicklung von AutoML basiert auf einem einzigartigen Reinforcement-Learning-System. Die Rede ist von einem neuronalen Netzmanager, der eigenständig völlig neue neuronale Netze für bestimmte Aufgaben entwickelt. In unserem Fall zielt AutoML darauf ab, ein System zu entwickeln, das Objekte in einem Videoplot möglichst genau in Echtzeit erkennt.

Künstliche Intelligenz selbst war in der Lage, ein neues neuronales Netz zu trainieren, Fehler zu überwachen und Arbeiten zu korrigieren. Der Lernprozess wurde viele Male (tausendfach) wiederholt, bis das System einsatzbereit war. Seltsamerweise konnte sie alle ähnlichen neuronalen Netze umgehen, die derzeit verfügbar sind, aber von Menschen entwickelt und trainiert wurden.

Gleichzeitig bewertet AutoML die Leistung von NASNet und verwendet diese Informationen, um das Tochternetzwerk zu verbessern; dieser Vorgang wird tausende Male wiederholt. Als Ingenieure NASNet auf ImageNet- und COCO-Bildsätzen testeten, übertraf es alle bestehenden Computer-Vision-Systeme.

Google gab offiziell bekannt, dass NASNet mit einer Genauigkeit von 82,7% erkennt. Das Ergebnis liegt 1,2% über dem bisherigen Rekord, den Forscher der Momenta- und Oxford-Spezialisten Anfang dieses Herbstes aufgestellt hatten. NASNet ist 4% effizienter als seine Gegenstücke mit einer durchschnittlichen Genauigkeit von 43,1%.

Es gibt auch eine vereinfachte Version von NASNet, die für mobile Plattformen angepasst ist. Es übertrifft Analoga um etwas mehr als drei Prozent. In naher Zukunft wird es möglich sein, dieses System für die Produktion von autonomen Fahrzeugen zu verwenden, für die die Verfügbarkeit von Computer Vision wichtig ist. AutoML produziert weiterhin neue erbliche neuronale Netze und strebt danach, noch größere Höhen zu erobern.

Dies wirft natürlich ethische Fragen im Zusammenhang mit Bedenken bezüglich KI auf: Was ist, wenn AutoML Systeme mit einer solchen Geschwindigkeit erstellt, dass die Gesellschaft einfach nicht mit ihnen mithalten kann? Wie viele auch immer Großunternehmen versuchen, die Sicherheitsbedenken der KI zu berücksichtigen. Amazon, Facebook, Apple und einige andere Unternehmen sind beispielsweise Mitglieder der Partnership on AI to Benefit People and Society. Das Institute of Electrical and Engineering (IEE) hat ethische Standards für KI vorgeschlagen und DeepMind beispielsweise die Gründung einer Gruppe angekündigt, die sich mit moralischen und ethischen Fragen im Zusammenhang mit Anwendungen künstlicher Intelligenz befassen wird.

Viele große Unternehmen versuchen jedoch, die Sicherheitsbedenken von KI zu berücksichtigen. Dies wirft natürlich ethische Fragen im Zusammenhang mit Bedenken bezüglich KI auf: Was ist, wenn AutoML Systeme mit einer solchen Geschwindigkeit erstellt, dass die Gesellschaft einfach nicht mit ihnen mithalten kann? Das Institute of Electrical and Engineering (IEE) hat ethische Standards für KI vorgeschlagen und DeepMind beispielsweise die Gründung einer Gruppe angekündigt, die sich mit moralischen und ethischen Fragen im Zusammenhang mit Anwendungen künstlicher Intelligenz befassen wird. Amazon, Facebook, Apple und einige andere Unternehmen sind beispielsweise Mitglieder der Partnership on AI to Benefit People and Society.

Was ist künstliche Intelligenz?

Der Begriff „Künstliche Intelligenz“ wurde von John McCarthy, dem Erfinder der Sprache Lisp, Begründer der funktionalen Programmierung und Gewinner des Turing-Preises für seinen enormen Beitrag zur Erforschung der Künstlichen Intelligenz, geprägt.
Künstliche Intelligenz ist eine Möglichkeit, einen Computer, einen computergesteuerten Roboter oder ein Programm in die Lage zu versetzen, intelligent wie ein Mensch zu denken.

KI-Forschung wird durch Studieren betrieben geistige Fähigkeiten Menschen, und dann werden die gewonnenen Ergebnisse dieser Forschung als Grundlage für die Entwicklung intelligenter Programme und Systeme verwendet.

Was ist ein neuronales Netz?

Die Idee hinter einem neuronalen Netz besteht darin, aus sehr einfachen Elementen eine komplexe Struktur zusammenzusetzen. Ein einzelner Teil des Gehirns kann kaum als vernünftig angesehen werden – aber Menschen schneiden bei IQ-Tests normalerweise überraschend gut ab. Trotzdem wurde bisher die Idee, einen Geist „aus dem Nichts“ zu erschaffen, meist belächelt: Der Witz über tausend Affen mit Schreibmaschinen ist schon hundert Jahre alt, und auf Wunsch findet sich Kritik an neuronalen Netzen sogar in Cicero, der sarkastisch vorschlug, Token mit Buchstaben in die Luft zu werfen, bis er blau wird, damit früher oder später ein sinnvoller Text herauskommt. Im 21. Jahrhundert stellte sich jedoch heraus, dass die Klassiker vergeblich höhnten: Es ist die Armee der Affen mit Spielfiguren, die mit gebührender Beharrlichkeit die Welt erobern kann.
Tatsächlich kann ein neuronales Netz sogar aus Streichholzschachteln zusammengesetzt werden: Es ist nur ein Satz einfacher Regeln, nach denen Informationen verarbeitet werden. Ein "künstliches Neuron" oder Perceptron ist kein spezielles Gerät, sondern nur ein paar Rechenoperationen.

Das Perzeptron funktioniert nirgendwo einfacher: Es erhält mehrere Anfangszahlen, multipliziert jeweils mit dem "Wert" dieser Zahl (mehr dazu weiter unten), addiert und ergibt je nach Ergebnis 1 oder -1. Zum Beispiel fotografieren wir ein offenes Feld und zeigen unser Neuron an einer bestimmten Stelle in diesem Bild – das heißt, wir senden ihm zufällige Koordinaten als zwei Signale. Und dann fragen wir: "Liebes Neuron, gibt es Himmel oder Erde?" „Minus eins“, antwortet der Dummy und schaut gelassen auf die Kumuluswolke. - Es ist klar, dass die Erde.

„Den Finger in den Himmel strecken“ ist die Hauptbeschäftigung des Perzeptrons. Von ihm kann man keine Genauigkeit erwarten: man kann genauso gut eine Münze werfen. Die Magie beginnt mit der nächsten Stufe, die als maschinelles Lernen bezeichnet wird. Schließlich kennen wir die richtige Antwort – das heißt, wir können sie in unser Programm schreiben. Es stellt sich also heraus, dass das Perzeptron für jede falsche Schätzung buchstäblich eine Strafe erhält und für die richtige - eine Prämie: Der „Wert“ der eingehenden Signale steigt oder sinkt. Danach läuft das Programm mit neue Formel... Früher oder später wird das Neuron unweigerlich "verstehen", dass die Erde auf dem Foto unten und der Himmel oben ist - das heißt, es wird einfach das Signal des Kanals ignorieren, über den die x-Koordinaten übertragen werden es. Wenn Sie einem so ausgeklügelten Roboter ein weiteres Foto zuschieben, findet er möglicherweise nicht die Horizontlinie, aber er wird definitiv nicht die Oberseite mit der Unterseite verwechseln.

Im wirklichen Leben sind die Formeln etwas komplizierter, aber das Prinzip bleibt gleich. Das Perzeptron kann nur eine Aufgabe erfüllen: Zahlen nehmen und auf zwei Stapel legen. Das Interessanteste beginnt, wenn es mehrere solcher Elemente gibt, denn die eingehenden Zahlen können Signale von anderen "Steinen" sein! Nehmen wir an, ein Neuron versucht, blaue von grünen Pixeln zu unterscheiden, das zweite bastelt weiter an Koordinaten und das dritte versucht zu beurteilen, welches dieser beiden Ergebnisse der Wahrheit näher kommt. Setzt man mehrere Neuronen gleichzeitig auf die blauen Pixel und fasst deren Ergebnisse zusammen, erhält man eine ganze Ebene, in der die „besten Schüler“ zusätzliche Prämien erhalten. So kann ein ziemlich weitläufiges Netzwerk einen ganzen Berg von Daten schaufeln und all seine Fehler berücksichtigen.

Mit Streichholzschachteln lässt sich ein neuronales Netz bauen – dann haben Sie einen Trick im Arsenal, mit dem Sie Gäste auf Partys unterhalten können. Die Redakteure von MirF haben es bereits ausprobiert – und gestehen demütig die Überlegenheit der Künstlichen Intelligenz ein. Lassen Sie uns unvernünftige Dinge lehren, das Spiel der 11 Stöcke zu spielen. Die Regeln sind einfach: Es gibt 11 Spiele auf dem Tisch und in jedem Zug können Sie entweder eins oder zwei nehmen. Der Gewinner ist derjenige, der den letzten genommen hat. Wie spielt man das gegen den "Computer"?

Sehr einfach.

Wir nehmen 10 Kartons oder Tassen. Auf jedes schreiben wir eine Zahl von 2 bis 11.

Wir legen zwei Steine ​​in jede Kiste - schwarz und weiß. Sie können alle Elemente verwenden, solange sie sich voneinander unterscheiden. Das war's - wir haben ein Netz von zehn Neuronen!

Das neuronale Netz geht immer zuerst. Sehen Sie sich zuerst an, wie viele Streichhölzer noch übrig sind, und nehmen Sie eine Schachtel mit dieser Nummer. Im ersten Zug wird es Box Nr. 11 sein. Nehmen Sie alle Kieselsteine ​​aus der gewünschten Kiste. Sie können Ihre Augen schließen oder eine Münze werfen, die Hauptsache ist, nach dem Zufallsprinzip zu handeln.
Wenn der Stein weiß ist, entscheidet das neuronale Netzwerk, zwei Streichhölzer zu nehmen. Wenn schwarz - eins. Legen Sie einen Kieselstein neben die Kiste, um nicht zu vergessen, welches "Neuron" die Entscheidung getroffen hat. Danach geht eine Person - und so weiter, bis die Streichhölzer ausgehen.

Und jetzt beginnt der Spaß: Lernen. Wenn das Netzwerk das Spiel gewinnt, muss es belohnt werden: Werfen Sie einen zusätzlichen Kieselstein der gleichen Farbe in die "Neuronen", die an diesem Spiel teilgenommen haben und die während des Spiels gefallen sind. Wenn das Netzwerk verliert, nehmen Sie die zuletzt verwendete Kiste und entfernen Sie den erfolglosen Stein von dort. Es kann sich herausstellen, dass die Box bereits leer ist - dann gilt das "letzte" Neuron als das vorherige ähnliche Neuron. Während des nächsten Spiels wird das neuronale Netzwerk automatisch aufgeben, wenn Sie eine leere Box treffen.

Das ist alles! Spielen Sie mehrere solcher Spiele. Zunächst werden Sie nichts Verdächtiges bemerken, aber nach jedem Gewinn macht das Netzwerk immer mehr erfolgreiche Züge - und nach etwa einem Dutzend Spielen werden Sie feststellen, dass Sie ein Monster geschaffen haben, das Sie nicht besiegen können.

Quellen:

In einer Reihe von Artikeln werden wir neue Ansätze in den Bereichen KI, Persönlichkeitsmodellierung und BIG-Data-Verarbeitung erkunden, die den meisten KI-Experten und der Öffentlichkeit nicht zur Verfügung stehen. Der Wert dieser Informationen besteht darin, dass sie alle in der Praxis getestet wurden und die meisten theoretischen Entwicklungen in angewandten Projekten umgesetzt werden.

Viele von Ihnen haben von modernen Technologien gehört, die heute mit dem Begriff der Künstlichen Intelligenz assoziiert werden, nämlich: Expertensysteme, neuronale Netze, linguistische Algorithmen, hybride Systeme, kognitive Technologien, Simulation (Chat-Bots) etc.

Ja, viele Unternehmen verwenden die oben genannten Technologien, um die Iihrer Kunden zu lösen. Einige dieser Unternehmen schreiben, dass sie Lösungen für künstliche Intelligenz entwickeln oder entwickelt haben. Aber ist es Intelligenz?

Das erste, was wir tun werden, ist zu definieren, was Intelligenz ist.

Stellen Sie sich vor, es gäbe einen Computer mit Intelligenz. Und Sie haben die Möglichkeit, mit ihm per Sprache oder SMS zu kommunizieren.
Fragen:
  • Ist es notwendig, Sprachmerkmale in das Intelligenzprogramm des Computers einzubetten (um Semantik, Grammatik, Morphologie zu beschreiben) oder könnte er durch Interaktion mit einer Person alleine Sprachen lernen?
  • Wenn Sie die Aufgabe hätten, einem Computer eine Sprache beizubringen, was würden Sie tun?
  • Wenn Sie nur am Training teilnehmen würden, wie würde er aussehen?
Beantworten Sie nun diese Fragen noch einmal, mit dem einzigen Unterschied, den Sie lehren müssten:
  • Ein reinrassiger Papagei, theoretisch kommunikationsfähig.
  • Neugeborenes.
Sie und ich haben gerade intellektuelle Arbeit geleistet, und ich hoffe, dass viele von Ihnen neue Erkenntnisse gewonnen haben. Und deshalb:
  • Zuerst habe ich Sie gebeten, sich vorzustellen (vorzustellen), "was passiert, wenn ...". Sie haben in einem veränderten Umfeld gehandelt. Vielleicht fehlten Ihnen Informationen und Wissen, es war schwierig für Sie.
  • Zweitens haben Sie sich als lern- und kognitionsfähig erwiesen, Sie haben eine Analogie selbst kennengelernt oder im Text kennengelernt, vielleicht das Internet genutzt oder einen Freund um Rat gefragt.
Es gibt viele Ansätze, Intelligenz zu definieren. Wir werden seine Hauptmerkmale definieren ...

Zuerst Intelligenz ist die Fähigkeit zu lernen und sich vorzustellen.

Um einen Algorithmus zur Modellierung von Intelligenz zu erstellen, ist das erste, was zu tun ist verleihen ihm die Fähigkeit zu lernen, es sind keine Kenntnisse erforderlich, um darin zu investieren.

Kehren wir zu unserem Kinderbeispiel zurück, um den Lernprozess genauer zu beschreiben.
Welche Prinzipien funktionieren, wenn ein Kind lernt, eine Sprache zu verstehen und zu sprechen?

  1. Je öfter er ein Wort in verschiedenen Kontexten hört, desto schneller wird er sich daran erinnern. Das Wort, das er zuerst ausspricht, wird höchstwahrscheinlich "Mama" sein.
    "Mama liebt dich"
    "Mama wird deine Hände waschen"
    "Mama küsst dich"
    "Wo ist Mama?"
    Das Lernen erfolgt aufgrund der Datenredundanz.
  2. Je mehr Kanäle des Informationsflusses beteiligt sind, desto effektiver ist das Training:
    das Kind hört: "Mama liebt dich."
    das Kind sieht das Lächeln der Mutter.
    Das Baby spürt die Wärme der Mutter.
    das Baby schmeckt und riecht Muttermilch.
    das Kind sagt "Mama".
  3. Das Kind kann das Wort nicht sofort richtig reproduzieren. Er wird es versuchen, versuchen. "M", "Ma", "Mama", "M" ... "Mama". Das Lernen findet in Aktion statt, jeder weitere Versuch wird angepasst, bis wir das Ergebnis erhalten. Trial-and-Error-Methode. Feedback aus der Realität zu bekommen ist sehr wichtig.
  4. Erziehen Sie Ihre Kinder nicht, sie werden immer noch wie Sie sein. Das Kind strebt danach, wie die Menschen um ihn herum zu sein. Er ahmt sie nach und lernt von ihnen. Dies ist einer der Mechanismen zur Persönlichkeitsmodellierung, auf die wir in den folgenden Artikeln näher eingehen werden.

Welche Rolle spielt die Vorstellungskraft?

Stellen Sie sich vor, Sie fahren auf einer unbekannten Straße. Passieren Sie das 80-km/h-Geschwindigkeitsbegrenzungsschild. Fahren Sie weiter, und Sie sehen ein weiteres Schild zur Geschwindigkeitsbegrenzung, aber es ist mit Schlamm bespritzt und fast nicht zu erkennen. Sie fahren mit einer Geschwindigkeit von 95 km/h. Was wirst du tun? Während Sie eine Entscheidung trafen, schaute ein Polizist hinter den Büschen hervor, und Sie sahen ein strahlendes Lächeln auf seinem Gesicht. Das „Bild des Schildes“ war in Ihrem Kopf sofort fertig, und Sie haben verstanden, warum hier ein Polizist ist und Sie dringend auf die Bremse treten müssen. Sie reduzieren die Geschwindigkeit auf 55 km / h, das Lächeln des Polizisten verschwindet sofort und Sie fahren weiter.

Und einer mehr interessantes Beispiel phantasievolle Arbeit aus dem Tierreich ist die Beobachtung von Elstern. Die Elster vergrub Nahrung im Ödland vor den anderen Elstern. Alle Elstern flogen weg, aber unsere Elster kehrte ins Ödland zurück und versteckte das Essen. Was ist passiert? Sie stellte sich (vorgestellt), "was passiert, wenn" eine andere Elster kommt, die gesehen hat, wo sie das Essen versteckt hat. Sie simulierte die Situation und fand eine Lösung, um sie zu vermeiden.

Imagination simuliert eine Situation unter willkürlichen Bedingungen.

Wie Sie bereits gesehen haben, ist Intelligenz keine Wissensbasis, kein Satz programmierter Reaktionen oder das Befolgen vordefinierter Regeln.

Intelligenz ist die Fähigkeit zu lernen, zu erkennen und sich an sich ändernde Bedingungen im Prozess der Lösung von Schwierigkeiten anzupassen.

Es scheint Ihnen nicht, dass wir bei der Definition von Intelligenz irgendeine aus den Augen verloren haben wichtige Komponenten oder vergessen, etwas zu erzählen?

Ja, wir haben die Wahrnehmung vermisst und vergessen, über das Gedächtnis zu sprechen.

Stellen Sie sich vor, Sie schauen durch ein Guckloch und sehen einen Teil eines Briefes:

Was ist dieser Brief?

Vielleicht "K"?

Natürlich nicht, das ist die japanische Hieroglyphe für "Ewigkeit".

Sie haben gerade eine Aufgabe (Problem) bekommen. Höchstwahrscheinlich haben Sie ein ähnliches Bild des Buchstabens "K" in Ihrem Kopf gefunden und sich beruhigt.

Ihr Intellekt nimmt alles mit Bildern wahr und sucht im Gedächtnis nach einem ähnlichen Bild, wenn es nicht da ist, dann wird ein Anker zu bestehenden Bildern gebildet und dank dessen erinnern Sie sich an neue Informationen, sammeln Fähigkeiten oder Erfahrungen.

Ein Bild ist eine subjektive Sicht der realen Welt, die mit Hilfe der Sinne (Kanäle des Informationsflusses) wahrgenommen wird.

Die Wahrnehmung ist subjektiv, denn sie hängt von der Reihenfolge des Trainings, der Reihenfolge des Auftretens von Bildern im Leben eines Menschen und deren Einfluss ab.

Die Wahrnehmung beginnt mit dem Erkennen von Hell-Dunkel-Mustern. Augen öffnen - hell, schließen - dunkel. Außerdem lernt eine Person, immer komplexere Bilder zu erkennen - "Mama", "Papa", einen Ball, einen Tisch, einen Hund. Wir erhalten Referenzdaten, und alle nachfolgenden Bilder sind ein Überbau auf den vorherigen.

Aus dieser Sicht ist Lernen der Prozess des Aufbaus neuer Beziehungen zwischen wahrgenommenen Bildern und Bildern, die sich bereits im Gedächtnis befinden.

Der Speicher wird verwendet, um Bilder und ihre Beziehungen zu speichern.

EIN Vorstellungskraft ist die Fähigkeit, ein unfertiges Bild zu vervollständigen.

Zusammenfassend hier ein weiteres Experiment aus der Tierwelt:

Die Schimpansen wurden in einen Käfig gesetzt, und ein Bündel Bananen wurde ziemlich hoch über dem Boden in den Käfig gehängt. Der Schimpanse sprang zuerst, wurde aber schnell müde und schien das Interesse an Bananen zu verlieren und setzte sich hin, ohne sie zu beachten. Aber nach einer Weile nahm der Affe den im Käfig zurückgelassenen Stock und schaukelte die Bananen, bis sie fielen. Ein anderes Mal gelang es dem Schimpansen, um Bananen zu bekommen, zwei Stöcke zu verbinden, da jeder Stäbchen einzeln nicht ausreichte, um sie zu erreichen. Das Tier bewältigte auch eine schwierigere Aufgabe, indem es unerwartet eine Kiste unter die Bananen stellte und diese als Stufe benutzte.

Den Schimpansen wurde das bekannte Bild eines "Bündels Bananen" gezeigt. Aber das Bild für sie stellte sich als unvollständig heraus - sie können nicht erreicht und gegessen werden. Aber da dies die einzige verfügbare Nahrungsquelle war, steigerte das unvollendete Bild die innere Spannung und verlangte nach Vervollständigung.

Die Mittel zur Lösung des Problems (Vervollständigung des Bildes) waren immer verfügbar, aber das Entstehen einer Lösung erforderte eine Transformation der vorhandenen Bilder (es war erforderlich, mit Hilfe der Vorstellungskraft zu lernen). Der Schimpanse musste sich vorstellen (gedanklich alle möglichen Optionen auflisten): "Was passiert, wenn ich einen Stock nehme", "Was passiert, wenn ..." und die wahrscheinlichsten Annahmen in der Praxis überprüfen, versuchen und Feedback einholen, noch einmal vorstellen , versuchen, Feedback-Kommunikation zu erhalten und so weiter, bis wir das Bild fertiggestellt haben (lernen).

Wenn das Erkennen des Bildes der Hieroglyphe "Ewigkeit" für Sie eine Frage von Leben und Tod war, dann werden Sie sicherlich einen Weg finden, dies zu tun.

Von einer populäreren Sprache werden wir zu einer technischen übergehen und die grundlegenden Konzepte formulieren, die wir im Folgenden verwenden werden:

  • Durch die Überschneidung redundanter Informationen aus verschiedenen Informationskanälen entsteht ein Bild.
  • Lernen ist Transformation Informationsflüsse in das Informationsfeld.
  • Informationsfeld (Speicher) - Speicherung von Bildern und deren Beziehungen.
  • Vorstellung - ...
    - "Liebe Leserin, lieber Leser, vervollständigen Sie das Bild Ihrer Fantasie selbst, indem Sie redundante Informationen aus Ihrer Lebenserfahrung und diesem Artikel verwenden."
  • Intelligenz ist die Fähigkeit zu lernen und sich vorzustellen.

Am Anfang des Artikels haben wir die Technologien aufgelistet, die heute mit Künstlicher Intelligenz verbunden sind, jetzt können Sie eigenständig beurteilen, wie sie dem Begriff der Intelligenz entsprechen.

Im nächsten Artikel betrachten wir eine solche Aufgabe wie die intelligente Suche nach Informationen im Internet. Wir werden die Kriterien für Intelligenz definieren, praktische Ansätze entwickeln und eine reale Anwendung „fühlen“, die die in diesem Artikel beschriebenen Prinzipien umsetzt.

Der Artikel erhebt keinen Anspruch auf Wahrheit, er ist Teil unserer Entwicklung und Forschung. Schreiben Sie Kommentare, ergänzen Sie das Material mit Ihren Beispielen oder Gedanken. Lernen und vorstellen ...

Was sich hinter dem Begriff „Künstliche Intelligenz“ oder AI (Artificial Intelligence) verbirgt, weiß nicht jeder. Die meisten Leute stellen sich KI wahrscheinlich als Computer vor, der darauf programmiert wurde, selbst zu "denken", intelligente Entscheidungen zu treffen und auf Reize zu reagieren. Diese Idee ist nicht ganz richtig. Kein Computer und keine Maschine kann wirklich denken – denn das erfordert ein Bewusstsein, das eine „seelenlose Maschine“ nicht hat. Ein Computer kann nur tun, was eine Person ihm sagt.

KI-Programmierung auf einen Blick

Bei der KI-Programmierung geht es nicht darum, einem Computer das Denken beizubringen. Vielmehr wird es so programmiert, dass es aufgrund seiner Erfahrung selbstständig lernt und spezifische Probleme löst. Aber auch hier geht es nicht um eigenes Denken, sondern um Nachahmung. Das gilt auch für die Entscheidungen, die die KI trifft. kann Optionen abwägen und dann Entscheidungen treffen. Seine Wahl basiert jedoch immer auf den zuvor programmierten Parametern.

Künstliche Intelligenz kann also nur das tun, was für den Computer vorgegeben wurde, aber besser, genauer und schneller als der Mensch. Übrigens, wenn Sie das Programmieren lernen möchten, lesen Sie unsere Tipps für Programmieranfänger.

Künstliche Intelligenz nutzen

Künstliche Intelligenz wird bereits in vielen Bereichen eingesetzt, beispielsweise in komplexen Computerspiele und Suchmaschinen. Bei der KI-Programmierung spielt ein Komplex von Disziplinen eine wichtige Rolle, nicht nur Informatik oder Mathematik. Philosophie, Psychologie, Neurologie und Linguistik sind von großer Bedeutung.

Künstliche Intelligenz wird in neuronale und symbolische (stark und schwach) unterteilt. Die erste versucht, die Strukturen und Funktionen des menschlichen Gehirns nachzuahmen. Letzteres konzentriert sich auf das entsprechende Problem und Ergebnis.

Im Alltag wird beispielsweise künstliche Intelligenz programmiert und in der Robotik eingesetzt. Es dient zur Steuerung von Produktionsabläufen oder führt einfach aus alltägliche Aufgaben... auch zum Rendern verwendet. Das bekannteste Beispiel ist die Gesichts- oder Fingerabdruckerkennung.

Ein weiterer Schritt zur Schaffung künstlicher Intelligenz sind wissensbasierte Systeme. Anschließend werden die Programmierdaten in das Programm eingetragen. Dies ermöglicht es der künstlichen Intelligenz, logisch und unabhängig Antworten auf Fragen gestellt... Aber auch diese „unabhängigen Antworten“ basieren nur auf dem Wissen, mit dem künstliche Intelligenz ursprünglich ausgestattet war.

In diesem Teil wird weder mehr noch weniger über den Algorithmus erzählt, der der intellektuellen Aktivität zugrunde liegt. Parallel dazu werden wir versuchen, die Frage zu beantworten, wie ähnliche Phänomene in der natürlichen Intelligenz entstehen könnten. Wir werden natürlich nicht alle Geheimnisse der Intelligenz enthüllen, wir werden kein Zwielichtgehirn erschaffen, aber wir werden die Prinzipien herausfinden, die Hauptrichtung, wo wir weiter graben können. Wir werden mehr über die menschliche Intelligenz erfahren. Es wird auch praktische Skizzen von Algorithmen geben, die sich bereits jetzt auf einem Computer programmieren lassen.

Aber zuerst kurz, wo wir in den vorherigen Teilen () angekommen sind. Ich selbst habe schon vergessen, was da war, also muss ich mich selbst daran erinnern, sonst kann ich nicht einmal mehr sagen. :) Wer erinnert sich - überspringe diesen Abschnitt.

Was war in den vorherigen Teilen

Penrose glaubt in seinen wunderbaren Büchern, dass das Gehirn in der Lage ist, absolut wahre Urteile zu fällen, und argumentiert, dass das Herz von Denkprozessen physikalische Prozesse sind, die ewige Berechnungen in endlicher Zeit durchführen können. Darüber hinaus berechnen diese Prozesse nicht nur was, sondern die absolute und unwiderlegbare Wahrheit im wahrsten Sinne des Wortes. Und das Gehirn kann diese Prozesse zum Denken "ziehen". Und deshalb sind solche Prozesse notwendig, damit das Gehirn funktioniert. Und obwohl solche Prozesse der heutigen Physik unbekannt sind, glaubt Penrose, dass eine tiefere Ebene des Universums eine andere Realität ist, die auf solchen Prozessen basiert.

In vielerlei Hinsicht hat Penrose Recht mit dieser anderen Realität, und mehr noch, wir werden irgendwie nicht weniger interessante und ähnliche Ideen darüber erzählen, was in den Grundlagen des Universums liegt. Aber trotzdem beeilte sich Penrose, sprang sozusagen mehrere Schritte. Die überwiegende Mehrheit (wenn nicht alle) der intellektuellen Aktivität kann durch alltäglichere und alltäglichere Dinge erklärt werden.

Der unbestrittene Verdienst von Penrose ist, dass er überzeugend erklärt hat, warum intellektuelle Aktivität kann in keiner Weise auf formaler Logik (oder anders ausgedrückt auf strengen Algorithmen) basieren. Genauer gesagt hat Penrose gezeigt, dass absolut wahre Logik (die nach Penroses Verständnis intellektuelle Aktivität ist) auf der Grundlage bekannter physikalischer Prozesse unmöglich ist. Aber wir haben dies auf unsere Weise verstanden, nämlich dass intellektuelle Aktivität keiner absolut wahren Logik bedarf. Oder anders gesagt, die menschliche Intelligenz ist plausibel, sie gibt gute Annäherungen an die Wahrheit, aber die Fehlerwahrscheinlichkeit ist immer noch vorhanden. Und das ändert die Sache radikal, nämlich die Ansätze zur Erklärung natürlicher Intelligenz und zum Aufbau künstlicher Intelligenz völlig. Und eine solche Intelligenz kann einer Turing-Maschine nachempfunden werden, die auf einem gewöhnlichen Computer programmiert wird, jedoch ist es besser, eine Architektur mit größerer Leistung und mit inhärenter Parallelität zu haben, zum Beispiel quanten- oder optisch.

Erinnern wir uns nun daran, was hinter der Aufregung um die Wahrheit steckt und nicht um die Wahrheit der Logik. Mathematische und Computerberechnungen, menschliche Überlegungen, logische Konstruktionen und Schlussfolgerungen werden mit dem Konzept eines Algorithmus oder eines formalen Systems verbunden (tatsächlich sind sie ein und dasselbe). Die Ausführung eines Algorithmus (es ist auch die Anwendung der Regeln eines formalen Systems) ist ein Modell aller möglichen Berechnungen, Reflexionen und anderer physikalischer Prozesse (oder zumindest eine ziemlich gute Annäherung). Ein Algorithmus ist ein Satz von Anweisungen, der von einem abstrakten Computer (Turingmaschine) Schritt für Schritt ausgeführt werden kann.

Es gibt das Konzept eines strengen Algorithmus (es ist auch ein vollständiges und konsistentes formales System). Auf dem gleichen Satz von Eingabedaten wird ein strenger Algorithmus für der endgültige die Anzahl der Schritte ergibt die gleiche Antwort. Auf formale Systeme und logisches Denken angewendet bedeutet dies, dass man in endlicher Zeit für die Anfangsbedingungen eine wahre (konsistente und eindeutige) Antwort finden kann. Solche Berechnungen werden auch als deterministisch bezeichnet.

Es gibt aber auch nicht-deterministische (nicht-strikte) Algorithmen, bei denen diese Bedingungen nicht erfüllt sind (es sind unvollständige / widersprüchliche formale Systeme). Für den Algorithmus bedeutet die Nichtbeachtung der Endlichkeitsbedingung, dass nicht bekannt ist, ob der Algorithmus seine Berechnung abschließen wird, und es ist nicht klar, wie man dies im Voraus herausfinden kann. Ein nicht-deterministischer Algorithmus kann seine Berechnung beenden oder für immer wandern, aber was genau er tun wird, ist ein Rätsel, das für immer erraten werden kann. Für formale Systeme ist der Beweis der Wahrheit oder Falschheit der ursprünglichen Aussage eines Tages unverständlich oder wird ewig andauern. Inkonsistenz bedeutet, dass Sie innerhalb des formalen Systems verschiedene Regelketten aufgreifen können, die für die erste Aussage sowohl eine wahre als auch eine falsche Antwort geben. Für den Algorithmus bedeutet dies, dass mit den gleichen Daten unterschiedliche Ergebnisse erzielt werden können.

Viele, darunter auch Penrose, sagen, dass intellektuelle Aktivität auf einer strengen formalen Logik beruht. Aber hier gibt es einen globalen Hinterhalt. Der seit langem bewiesene Satz von Gödel besagt, dass ein formales System nicht gleichzeitig vollständig und konsistent sein kann. Vollständigkeit bedeutet, dass das formale System alles über sein Fachgebiet weiß. Die Einbeziehung eines solchen Systems kann die Wahrheit von selbst beurteilen. Wenn ein formales System von jemandem von außen erstellt wird, dann kann es funktionieren, indem es die richtigen Ergebnisse liefert und sich überhaupt nicht darum kümmert, ob dieser Jemand es richtig erstellt hat. Wenn das formale System versucht sicherzustellen, dass es korrekt ausgeführt wird, wird es fehlschlagen. Denn unser System ist konsistent, aber nicht vollständig. Wenn das System in der Lage ist, die Richtigkeit seiner selbst (vollständig) zu beurteilen, weist ein solches System innere Widersprüche auf, und die Ergebnisse seiner Tätigkeit sind nicht unbedingt richtig. Wieso den? Auch deshalb, weil die Frage der Selbstprüfung (Selbsterkenntnis, Selbstreflexion) in die Kategorie ewiger Berechnungen gehört.

Was folgt daraus? Es stellt sich (nach Penrose) heraus, dass die menschliche Intelligenz ein vollständiges und konsistentes System ist, weil sie wahre Aussagen generieren und gleichzeitig die Richtigkeit ihrer selbst überwachen kann. Aber nach dem Satz von Gödel ist dies unmöglich. Daher ist es notwendig, unbekannte physikalische Prozesse für die Arbeit des Intellekts einzubeziehen, der in einem kurzen Moment die Ewigkeit umschauen, die Antwort finden und diese Antwort an das Gehirn zurückgeben kann. Aber wie bereits erwähnt, muss der Intellekt nicht vollständig und konsistent sein, obwohl er sehr plausibel vorgeben kann, wahr und unfehlbar zu sein.

Der zweite Hinterhalt ist, dass die Physik die Entitäten, auf denen die formale Logik operiert, nicht kennt. Formale Argumentation basiert nämlich oft auf den Konzepten der natürlichen Zahlen, den Konzepten von Wahrheit und Falschheit. Natürliche Zahlen sind solche, bei denen 1 + 1 = 2, 2 + 1 = 3 usw. Wahrheit = 1, Falsch = 0, Negative Wahrheit = Falsch. Alle Einheiten sind einander absolut gleich, die Permutation der Summenterme ändert sich nicht und so weiter. Aber das Problem ist, dass es in unserer Welt keine solchen Teilchen, solche Dinge oder Prozesse gibt, die eindeutig mit natürlichen Zahlen in Verbindung gebracht werden könnten und gleichzeitig die Regeln der Arithmetik für diese Entitäten in beliebigen Bereichen erfüllt waren. In einigen Bereichen ist die Arithmetik ungefähr korrekt, aber außerhalb des Bereichs beginnen globale Fehler. Daher operiert die formale Logik, grob gesagt, von selbst, ohne etwas zu verstehen, Entitäten, deren Wesen eher vage ist. Darüber hinaus gehört die Arithmetik selbst nicht zu vollständigen und konsistenten Systemen, wie z lustige Tatsache... Und im Allgemeinen scheint es, dass Konzepte wie absolute Wahrheit, natürliche Zahlen im Prinzip nicht existieren können. Wie und warum, erfahren Sie in den nächsten Teilen.

Was folgt daraus? Alle Prozesse, alle Berechnungen, die sogar im Gehirn, auch in Computern, ablaufen, sind von Natur aus entweder unvollständig oder widersprüchlich, geben aber gleichzeitig eine gute plausible Annäherung an vollständige und konsistente Berechnungen.

Warum mag Penrose widersprüchliche formale Systeme nicht, warum verweigert Penrose ihnen das Recht, die Grundlage intellektueller Aktivität zu sein? Wie wir uns erinnern, können Sie in einem widersprüchlichen formalen System für dieselben Daten sowohl wahre als auch falsche Aussagen ableiten, bis hin zu 1 = 2 und so weiter. Auf dieser Grundlage weist Penrose darauf hin, dass widersprüchliche Systeme immer(!) widersprüchliche Ergebnisse liefern. Aus diesem Grund hat Penrose eine sehr enge Interpretation von chaotischen Prozessen, er glaubt, dass dies nur zufällige Prozesse sind, die im Durchschnitt durch ein strenges formales System modelliert werden können.

Tatsächlich können widersprüchliche Systeme in den meisten Fällen zum wahren Ergebnis konvergieren, es ist überhaupt nicht notwendig, dass interne Widersprüche das System sofort dominieren und zerstören. Es kann Systeme geben, in denen Widersprüche minimiert werden. Und selbst wenn sie auf einem abstrakten Computer ausgeführt werden, bleiben sie nicht deterministisch, unvollständig und inkonsistent, liefern aber in den meisten Fällen ein plausibles Ergebnis. Warum hat Penrose entschieden, dass widersprüchliche Systeme immer durch ihre eigenen Widersprüche zerstört werden? Penrose schweigt darüber ...

Außerdem. Wie wir in den vorherigen Teilen gesehen haben, sind die Prozesse unserer Welt, ob in Computern oder in Gehirnen, von Natur aus vage und widersprüchlich. Aber in den meisten Fällen geben sie aus richtiges Ergebnis... Dies liegt daran, dass diese Prozesse entweder aus mehreren Wiederholungen ähnlicher Berechnungen oder aus einer Vielzahl ähnlicher Elemente bestehen, so dass die Kombination dieser Wiederholungen oder Elemente in den meisten Fällen ein stabiles und korrektes Ergebnis ergibt. Gleichzeitig bleibt natürlich die sehr kleine Chance, dass ein kleiner innerer Widerspruch wächst und das ganze System zerstört. Aber in den meisten Fällen scheint das System harmonisiert zu sein, die aufeinander wirkenden Elemente minimieren interne Widersprüche. Nicht alle Prozesse in unserer Welt sind hochgradig harmonisiert, aber es gibt solche Prozesse, und dazu gehört das, was in Computern und im Gehirn passiert. Woher kommt eine solche Harmonisierung in unserer Welt - ein Thema folgende Teile... Es besteht auch eine winzige Chance, dass wir in unseren Weltanschauungen, in unserer intellektuellen Aktivität in etwas global falsch liegen, dass es ein kleines Wurmloch in unseren Urteilen gibt, das unsere gesamte Vorstellung vom Universum grundlegend umdrehen kann. Aber dazu mehr in den folgenden Teilen.

Das menschliche Denken basiert zunächst auf genau solchen Prozessen. Es gibt keine langen logischen Ketten, keine klaren Regeln. Stattdessen gibt es kurze Situations-Antwort-Ketten, ohne lange Bearbeitungszyklen. Die Elemente dieser Ketten haben eine große Anzahl von Eingängen, und innerhalb des Elements werden die Eingangsdaten in viele parallele, sich duplizierende, unscharfe Pfade aufgeteilt, die am Ausgang eine klare Lösung ergeben. Wir nennen diese Elemente kurze und breite plausible Regeln. Solche Regeln führen nicht zu logischen Schlüssen, sie "erinnern" sich bereits fertige Lösung auf ihnen bekannte Situationen. Auch der Mechanismus zum Erlernen solcher Regeln ist weit von einer klaren logischen Schlussfolgerung entfernt und wird in den vorherigen Teilen beschrieben.

Solche Prozesse sind gut für die Interaktion mit der realen Welt, aber formale Logik ist für sie schwierig. Die menschliche Intelligenz kann jedoch im formalen Logikmodus arbeiten, sie kann Computerberechnungen emulieren. Vielleicht, aber auf Kosten viel "schwererer" Prozesse. Um die Berechnungen eines einfachen logischen Schemas, eines einfachen Programms im Gehirn, zu vertreiben, sind Myriaden kurzer Fuzzy-Regeln beteiligt, die in ihrer Kombination ein Ergebnis ähnlich der Arbeit der strengen Logik ergeben. Und da diese Regeln überhaupt nicht für die formale Logik gedacht sind, wird ihre Zahl bei der Emulierung der formalen Logik viel größer sein als bei der Interaktion mit der realen Welt. Und deshalb sind verschiedene Tiere nicht in der Lage, logisch zu denken, dies erfordert ein ausgeklügeltes menschliches Gehirn. Obwohl alltägliche Aufgaben, die verschiedene Tiere im Vorbeigehen lösen, die Leistungsfähigkeit eines Computers übersteigen.

Aber auch solche "schweren" Prozesse haben einen Vorteil. Sie besteht darin, dass das Gehirn neue logische Konstruktionen und Computerprogramme mit hochgradig Plausibilität, während ein einfacher, aber effektiver Algorithmus nur sinnlos seine Arbeit verrichten kann. Die Komplexität abgeleiteter Konstruktionen ist um viele Größenordnungen geringer als der Grad der Prozesse, die ursprünglich im Gehirn involviert waren. Es ist dieser Unterschied in der Komplexität, der den Widerspruch auflöst, dass widersprüchliche intellektuelle Prozesse wahre logische Konstruktionen schaffen. Wenn dieser Unterschied in der Komplexität nicht berücksichtigt wird, kann man nicht verstehen, woher diese wahren Konstruktionen kommen.

Aufgaben, die komplexe logische Konstruktionen erfordern, löst eine Person buchstäblich nach der "wissenschaftlichen Methode". Überlegen Sie sich nämlich eine einfachste Option, vertreiben Sie ihre Berechnung im Gehirn, sehen Sie die falschen Momente, überlegen Sie sich die nächste (nicht unbedingt die richtige Option), emulieren Sie die Berechnung erneut und so weiter. Bei gutem Training verwandeln sich solche Konstruktionen in die Kategorie der schnellen automatischen Aktionen, die keine Beteiligung des Bewusstseins erfordern (und trotzdem ist ihre Komplexität enorm), typische Situationen werden erinnert und beginnen erscheinen dass das Gehirn wie ein normaler Computer (nach formaler Logik) funktioniert, obwohl dies keineswegs der Fall ist.

Es passiert auch, wenn das Gehirn lange Zeit "gespannt" ist, für eine Aufgabe "beschleunigt", es gibt ein Lesezeichen mit ersten Daten, erfolglosen Versuchen, vagen Vorahnungen und Sehnsüchten, dass die Wahrheit irgendwo in der Nähe ist. Und dann knall, und ein Blitz der Erkenntnis, alles fügt sich zusammen und eine neue Wahrheit wird geboren. Es mag scheinen, dass diese Wahrheit sofort geboren wurde und aus den höheren Reichen kam. Aber tatsächlich ist die Wirkung dieselbe, einem Blitz der Einsicht ging eine lange und harte Arbeit voraus, die Myriaden von kurzen und glaubwürdigen Regeln umfasste, veränderte und schuf, versuchte, sie irgendwie miteinander zu verbinden, zu harmonisieren, meist erfolglos. Und jetzt kommt der Moment, in dem all diese Regeln bereits harmonisch miteinander verbunden sind, zu einem einzigen harmonischen Prozess verschmelzen und alle zusammen eine neue Wahrheit ausstrahlen.

Künstliche Intelligenz, die solchen Prinzipien folgt, könnte durchaus auf herkömmlichen Computern programmiert werden. Natürlich wird dieses Programm zunächst auf Unbestimmtheit und das Vorhandensein innerer Widersprüche abzielen. Während existierende Computerprogramme, obwohl unbestimmt und widersprüchlich, geschrieben werden moderne Programme mit dem Ziel, sie weniger unbestimmt und weniger widersprüchlich zu machen. Natürlich ist es für künstliche Intelligenz besser, eine effizientere Architektur zu verwenden, die es ermöglicht große Menge parallele und interagierende Prozesse. Zum Beispiel quanten- oder optisch. Elektronische Computer mit einem einzigen Prozessor können auch so programmiert werden, dass sie intelligent sind, aber ihnen fehlt wahrscheinlich die Leistung.

Mehr zu „schweren“ Prozessen und Harmonisierung wird später noch ausführlich besprochen, und nun beginnen wir mit der Gestaltung künstlicher Intelligenz.

Intelligenz-Steine

Lassen Sie uns zunächst kurz daran erinnern, was wir uns in diesem Bereich bereits ausgedacht haben und was noch fehlt. All dies ist in den vorherigen Teilen detailliert beschrieben. Wir erinnern Sie daran, um zu verstehen, warum es so ist und nicht anders. Schließlich ist der Intelligenzalgorithmus selbst nicht so kompliziert, die Hauptsache darin sind die Prinzipien, Sie müssen verstehen, in welche Richtung Sie sich bewegen und welche Ergebnisse Sie erwarten können.

Programmiersprachen... Es gibt Verfahren und Prädikat. In prozeduralen Sprachen wird ein Programm als strikte Folge von Anweisungen geschrieben, zwischen denen bedingte Sprünge möglich sind.

Prädikatssprachen haben eine Reihe unabhängiger Regeln, von denen jede ihren eigenen Geltungsbereich hat. Der Vollstrecker in Prädikatssprachen prüft alle Regeln auf Einhaltung der aktuellen Situation und wendet an notwendige Regeln die die Situation (interner Zustand) verändern und somit lange logische Ketten aus den Regeln aufbauen können. Dies ist für den Ausführenden natürlich schwieriger als die Ausführung eines prozeduralen Programms.

Prozedurale Sprachen sind gut, wenn der Algorithmus bekannt ist und schnelle und Wirksame Umsetzung... Prädikatssprachen eignen sich dort gut, wo es gilt, menschliches Wissen, logische Regeln zu speichern und dann aus Wissen Schlussfolgerungen zu ziehen (z. B. verschiedene Eingabesituationen auszuwerten). Es ist praktisch, ihnen neues Wissen hinzuzufügen, ohne das gesamte Programm als Ganzes neu zu schreiben. Es gibt sogar Modifikationen, bei denen nach Einführung neuen Wissens die gesamte Wissensbasis auf einen konsistenten Stand gebracht wird. Bis vor kurzem galten Prädikatssprachen (wie Prolog) als die Zukunft der künstlichen Intelligenz.

Fakt ist aber, dass prozedurale und prädikate Sprachen sich gegenseitig ausdrücken und die gleichen Probleme haben, die Algorithmen (formale Systeme, siehe oben und unten) innewohnen.

Zunächst stehen wir vor dem Problem des Aufhörens. Der Algorithmus kann immer auf der Suche nach einer Lösung wandern, obwohl er in der Nähe in einem benachbarten Zweig liegen kann. Aber der Algorithmus wird einem vollständigen und konsistenten formalen System entsprechen. Aber es macht für uns keinen Sinn (bisher glauben wir, dass wir in endlicher Zeit keine ewige Berechnung durchführen können). Wenn wir "lange" Zweige irgendwie beschneiden, wird der Algorithmus praktischer, aber er verliert an Vollständigkeit und Konsistenz, er wird nicht wahr, aber plausibel. Und hier geht es nicht darum, dass die Wahrscheinlichkeit einer Fehlentscheidung leicht ansteigt, sondern dass der Algorithmus in der Lage sein wird, grundsätzlich falsche Entscheidungen zu treffen.

Zweitens sind die Prädikatsregeln, die logische Einheiten bilden, zu "eng". In der natürlichen Intelligenz haben logische Einheiten eine Aufträge mehr Eingabebedingungen und diese Eingaben werden nach Fuzzy-Kriterien verarbeitet. Außerdem wird mit einer solchen Darstellung Wissen „verschmiert“, verliert seine Klarheit und Formalität.

Die vorhandene Fuzzy-Logik (in der Wissenschaft gibt es einen solchen Abschnitt) ist für die Verwendung in Prädikatensprachen daher nicht geeignet. Jede Unschärfe kann, wenn sie bei der logischen Inferenz auf eine andere Unschärfe trifft, viele alternative Optionen und unterschiedliche logische Ketten erzeugen. Darüber hinaus können diese Optionen leicht wie eine Lawine wachsen. Die vorhandene Fuzzy-Logik hat, soweit ich weiß, nichts damit zu tun, Ketten zu parallelisieren oder rückwärts zu kombinieren. Die Fuzzy-Logik arbeitet lediglich mit den gleichen logischen Ausdrücken, verwendet jedoch anstelle der logischen Null und Eins einen reellen Bereich von Null bis Eins und arithmetische Operationen, um Zahlen aus diesem Bereich zu kombinieren.

Es gibt Varianten der "komplexen" Logik, bei denen bei umgekehrter Implikation eine Unsicherheit entsteht, die sich als so etwas wie eine imaginäre Einheit ausdrückt und in weitere Berechnungen mit der Möglichkeit der Parallelisierung und Zusammenführung von Ketten eingeht. Aber vorerst erfordert dieses Thema weitere Offenlegung.

Drittens haben wir keinen Algorithmus, der andere Algorithmen in Abwesenheit einer Person trainieren (erstellen) könnte, sondern wenn es eine Reihe von Trainingssituationen gibt (eine repräsentative Menge von Paaren korrekter Eingabe- und Ausgabewerte).

Mustererkennungssysteme... Gut geeignet als logische Einheit für unsere künstliche Intelligenz. Sie können die Eingangssituation gut einordnen und eine Lösung für den Ausgang erarbeiten. Allerdings nur, wenn keine Langzeitverarbeitung erforderlich ist, da solche Systeme kein internes Gedächtnis (Zustände) und keine Transformationen dieses Zustands haben, sondern eher ein Reiz-Antwort-Reflex. Aber Erkenner handhaben die Klassifizierung perfekt. Sie können sogar mit komplexen Bildern umgehen (z. B. eine Person anhand eines Gesichtsbildes erkennen). Die Trainingsverfahren für Mustererkennungssysteme sind effizient und gut bekannt. Anhand einer Reihe bekannter Beispiele trainiert, kann der Erkenner versteckte Muster erkennen und die Erfahrung qualitativ auf unbekannte Beispiele verallgemeinern.

Lernprinzipien... Wenn Sie das gewünschte (Referenz-)Ergebnis und das tatsächliche Ergebnis des intelligenten Systems kennen, können Sie den Fehler dieses Systems berechnen und das System korrigieren, damit es in die richtige Richtung funktioniert.

Korrekturmethoden (Trainingsmethoden) sind genau (sie werden auch als lokal bezeichnet) und global. Lokale Methoden sind in der Lage, Fehler systemweit zu berechnen und sind daher schnell und effizient. Globale Methoden wissen nicht, wie das geht, sie ändern versehentlich die Parameter des gesamten Systems, sehen, wie erfolgreich sich die Änderung auf den Betrieb des Systems ausgewirkt hat, und entscheiden auf dieser Grundlage, ob diese Änderung gespeichert wird.

Die lokale Methode bezieht sich auf die Gradientenabstiegsmethode, bei der die Richtung des Fehlers berechnet und vom Eingang in die entgegengesetzte Richtung durch das gesamte System übertragen werden kann. Diese Methode ist zwar "nur" plausibel, liefert aber in der Praxis gute Ergebnisse, beispielsweise beim Training von mehrschichtigen Perzeptronen (die oft als neuronale Netze bezeichnet werden). Sie ist jedoch nicht immer anwendbar (wie andere lokale Methoden), da die Struktur des Fehlers und die Art und Weise, wie er behoben werden kann, möglicherweise nicht bekannt sind.

Aber wir haben globale Lehrmethoden, einen genetischen Algorithmus und eine Annealing-Simulation, sie sind Allesfresser, aber sehr gierig nach Rechenressourcen. Sie können funktionieren, wenn fast nichts über die Behebung des Fehlers bekannt ist. Der genetische Algorithmus ist effizienter, insbesondere wenn Sie etwas über die Struktur des zu lösenden Problems wissen.

Skalenprinzip... Bedeutet, dass durch wiederholte Wiederholung ähnlicher Prozesse oder eine Kombination vieler ähnlicher Elemente ein sehr stabiles (bzw. sehr plausibles) Ergebnis erzielt werden kann. Ein ähnliches Element / Verfahren bedeutet nicht im Durchschnitt ähnlich, es bedeutet, dass die Elemente sich widersprechen und miteinander konkurrieren können, sie können instabil sein, aber am Ende werden sie dennoch zu einer Lösung mit einem hohen Maß an Plausibilität kombiniert (harmonisiert) . In den logischen Schaltkreisen von Computern sind beispielsweise alle Elementarteilchen instabil, aber ihre Halbwertszeit ist entweder sehr lang oder die Anzahl der Teilchen in einem logischen Element ist sehr groß, sodass der Zerfall eines einzelnen Teilchens praktisch nicht auftritt einen Ausfall logischer Schaltungen verursachen. Ein anderes Beispiel, in künstlichen neuronalen Netzen hat eine separate neuronale Verbindung wenig Einfluss auf Entscheidungen, die Verbindungen selbst können widersprüchlich sein, aber am Ende produziert das neuronale Netzwerk meistens richtige Entscheidungen.

Fassen wir zusammen. Wir haben Prädikatssprachen, die für komplexes Denken und interne Zustandsverarbeitung geeignet sind. Es gibt Mustererkennungssysteme, die als logische Einheiten für Prädikatssprachen verwendet werden können. Es gibt omnivore Lehrmethoden, von denen wir hoffen, dass sie automatisch neue Algorithmen erstellen (trainieren). Es gibt ein Skalenprinzip, das es uns bei Verlust an Vollständigkeit und Konsistenz ermöglicht, eine hohe Wahrscheinlichkeit unserer Lösungen für künstliche Intelligenz aufrechtzuerhalten.

Intelligenzalgorithmus

Lassen Sie mich kurz an das Wesen des genetischen Algorithmus erinnern. Es gibt eine solche Methode - Zufallssuche. Eine zufällige Lösung wird erzeugt, bewertet und dann zufällig verändert. Ist das Ergebnis besser, wird die Entscheidung gespeichert. Dann wird der Zyklus wiederholt. Diese Methode wird verwendet, wenn nicht klar ist, wie die Lösung "nach der Wissenschaft" berechnet werden soll. Es dauert sehr lange. Und wenn du eine große Zahl parallel startest verschiedene Lösungen? Für diejenigen, die erfolgreich vorankommen (die Qualität der Lösungen ist gut oder verbessert sich im Laufe der Zeit oder im Vergleich zu den "Nachbarn"), erstellen wir Kopien und ändern diese Instanzen (versehentlich) heimlich. Diejenigen der Lösungen, die vor dem Hintergrund der anderen schlecht aussehen oder die Qualität der Lösung im Laufe der Zeit nicht verbessern, unterziehen wir immer mehr zufälligen Änderungen oder löschen sie vollständig, und an ihre Stelle setzen wir die neu generierten zufälligen Lösungen. Natürlich werden schlechte Entscheidungen weniger verbreitet. Es gibt noch einen weiteren Vorgang (ebenfalls zufällig angewendet), wenn ein Stück von zwei verschiedenen Lösungen abgebissen wird und diese beiden Stücke zu einer neuen Lösung zusammengeklebt werden. Überfahrt heißt. Je besser die Lösung, desto wahrscheinlicher ist eine Kreuzung. Als Ergebnis kann man springen, um eine Lösung zu erhalten, die bestes Ergebnis als seine beiden Eltern. Es kann aber auch umgekehrt passieren. Wenn die Lösung besser ausgefallen ist, wird sie weiter multipliziert, wenn sie schlechter ist, dann eine solche Lösung, mit sehr wahrscheinlich ENTFERNT. Eine solche Suche ist am effektivsten, wenn wir die Struktur der Lösung kennen und die Operationen der zufälligen Änderung (Mutation) und Kreuzung anwenden, die Lösung nicht bitweise zerkleinern, sondern diese Struktur berücksichtigen.

Dadurch, dass die Lösungen nicht nur parallel durchgeführt, sondern ständig miteinander verglichen und ausgetauscht werden, bringt eine solche Suche einen fantastischen Leistungssprung gegenüber der Zufallssuche und erweist sich als in der Lage, schwierigste Probleme zu schleifen. Es scheint, dass eine typische Zufallslösung im Durchschnitt nichts Interessantes ist und ihre Effizienz extrem gering ist. Aber sobald viele Lösungen miteinander zu interagieren beginnen, entsteht schnell ein atypisches Ergebnis (eine gute Lösung) und schreitet voran. So rät Penrose übrigens dazu, chaotische Prozesse im Durchschnitt zu studieren, typische Fälle zu studieren und betont, dass sie außer typischen Fällen nichts hervorbringen können, was natürlich unfair ist. Diese Suche ist eine Veranschaulichung des Skalenprinzips, eines der typischen Harmonisierungsprozesse.

Dies ist ein sogenannter genetischer Algorithmus, der in verschiedenen Bereichen effektive Lösungen finden kann, wenn nicht einmal bekannt ist, wie man die richtige Lösung "nach Wissenschaft" findet. Oder es gibt gar keinen solchen "wissenschaftlichen" Weg, wie es beim automatischen Schreiben von Programmen der Fall ist. Für die Wirksamkeit des genetischen Algorithmus ist es in erster Linie die Tatsache, dass das Leben auf der Erde (und dann der Geist) nach solchen Prinzipien erschienen ist. Warum ein solcher Harmonisierungsprozess möglich ist, ist Thema der nächsten Teile.

Es gibt eine solche Richtung in der künstlichen Intelligenz - genetische Programmierung. Jede Lösung ist kein Satz von Parametern, sondern ein ganzes Programm, das in einer prozeduralen Programmiersprache geschrieben ist. Mit all seinen Schleifen, bedingten Sprüngen und internen Zuständen in Variablen. Dementsprechend ist das Ergebnis der Entscheidung das Ergebnis der Ausführung dieses Programms. Um ein Programm zu erstellen, wurde ein genetischer Algorithmus verwendet, der aus einer Vielzahl von zufällig generierten Programmen ein Programm erstellt, die beste Weise dieses Problem zu lösen. In diesem Artikel, den ich gesehen habe, bestand die Aufgabe darin, das Lenkrad des Autos zu steuern. Jene. Das Ergebnis einer Entscheidung ist keine einzelne Reaktion auf eine Eingabe, sondern ein sich über die Zeit erstreckender Prozess. Der genetische Algorithmus war erfolgreich und schuf ein Programm, das das Lenkrad richtig steuerte. Die Aufgabe ist nicht so kompliziert, sie machen in neuronalen Netzen ähnliches (obwohl dort immer noch ein interner Zustand vorhanden ist und die Regeln für die Interaktion des Zustands mit dem Netzwerk von einer Person geschrieben werden). Es ist jedoch bezeichnend, dass das Programm automatisch mit einem internen Zustand, verschiedenen Schleifen und Verzweigungen erstellt wurde.

Leider habe ich den Stand der Dinge zu diesem Thema nicht weiterverfolgt und kann Ihnen auch nichts anderes sagen. Interessierte können nach dem Begriff "genetische Programmierung" suchen. Daher gehen wir weiter über das hinaus, was wir studiert haben und betreten den Bereich der Annahmen. Gut möglich, dass einige dieser Annahmen bereits bekannt sind und ich mich mit der Erfindung des Rades beschäftige. Aber es ist trotzdem interessant. :)

Sehen wir uns an, welche Eigenschaften die mit dem genetischen Algorithmus erhaltenen Programme haben. Solche Programme können unendliche (oder sehr lange) Schleifen enthalten, daher sollte die Eignungsprüfung Programme ausschließen, die sehr lange laufen, ohne zu produzieren sichtbares Ergebnis... Der Zug ist im Allgemeinen richtig, aber leider wirft er potenziell interessante lange logische Ketten aus (wie man sie später berücksichtigt). Außerdem werden beim Überqueren die Programmzweige gedankenlos geschreddert, wodurch oft bedeutungsloser Code erzeugt wird. Und wenn dies für eine einfache Aufgabe nicht so ein Problem ist, dann ergeben sich für komplexere Aufgaben entweder viele ungeeignete Lösungen, denn die kleinste Änderung kann die Leistung des Programms völlig ruinieren und wird wahrscheinlich wenig nützen das Ende. Oder das Programm hat eine große Anzahl redundanter Zweige, "Müll", die sich unvorstellbar miteinander zu der richtigen Lösung verbinden. Dieser "Müll" im Prozess der Evolution lernt, die eingeführten Änderungen zu überleben, damit die Änderung das Programm nicht fatal bricht. Aber auf jeden Fall müssen wir uns von der Idee "dünner" logischer Ketten verabschieden, die dieselben klaren Programme darstellen würden, die eine Person schreibt. Das Ergebnis des automatischen Schreibens von Programmen wird weit von solchen Ketten entfernt sein. Natürlich werden Data-Mining-Algorithmen auftauchen, die in der Lage sein werden, diesen widersprüchlichen Haufen zu einem klaren Algorithmus zu minimieren, aber dieser klare Algorithmus zur weiteren Verbesserung in automatischer Modus, müssen Sie es wieder in die "verschmierte" Ansicht zurückkehren (oder das Verschmieren erfolgt von selbst, während des weiteren Trainings). Und es besteht der Verdacht, dass der mit Hilfe von Data Mining herausgezogene Algorithmus einen engeren "Ausblick" haben wird als seine ursprüngliche, "verschmierte" Version. Ein ähnliches Phänomen wurde in den vorherigen Teilen zur Mustererkennung beschrieben.

Wie wir uns erinnern, sind Prädikatssprachen flexibler gegenüber Veränderungen und an die Erfassung von menschlichem Wissen angepasst, da sie nicht aus einem starren Rahmen des Programms bestehen, sondern aus eigenständigen Regeln, die automatisch ausgelöst werden, wenn eine geeignete Situation (Bedingungen) tritt ein. Ein genetischer Algorithmus arbeitet effizienter, wenn die Operationen die Struktur der Lösung berücksichtigen. Das Schreiben in einer prozeduralen Form zwingt den genetischen Algorithmus dazu, das Programm gedankenlos zu zerkleinern, wodurch viele nicht praktikable Varianten entstehen. Daher werden wir das Programm in einer Prädikatsform schreiben und den genetischen Algorithmus anpassen, um eine solche Struktur zu berücksichtigen. Es werden nämlich verschiedene Lösungsprogramme in der Lage sein, nicht Bits von Bits, sondern völlig unabhängige Regeln auszutauschen. Zufällige Änderungen funktionieren auf Regelebene. Darüber hinaus können Sie innerhalb eines Programms eine unterschiedliche Anzahl von Regeln haben, egal in welcher Reihenfolge. Und diese Regeln können sehr sein ähnlicher Freund auf einen Freund, und ganz anders. Sie können nicht nur die Programme selbst, sondern auch die Regeln innerhalb eines Programms multiplizieren und kreuzen. Und das liegt daran, dass sie sich bei der Ausführung des Programms selbst in der richtigen Kette anordnen, denn der Executor geht nicht dumm durch die Programmzweige (wie in einer prozeduralen Sprache), sondern wählt die Regeln entsprechend der aktuellen Situation aus (jede Regel ändert die Situation).

Aber das Interessanteste wäre, die Regelbank für alle Programme einheitlich zu machen. In diesem Fall würde das Programm Daten über die von ihm bevorzugten Regeln von der allgemeinen Bank darstellen, und es ist nicht ausgeschlossen, Informationen über die bevorzugte Reihenfolge ihrer Anwendung. In diesem Fall können Leistungskriterien nicht nur auf Programme, sondern auch auf Regeln angewendet werden. Schließlich trägt jede Regel zu mehreren verschiedenen Programmen bei, und Sie können berechnen, wie viele dieser Programme erfolgreich sind und wie viele nicht. Und auf dieser Grundlage Rückschlüsse auf die Wirksamkeit der Regeln ziehen und dementsprechend nicht nur Programme, sondern auch die Regeln weiterentwickeln (d. h. multiplizieren, kreuzen, die Regeln selbst versehentlich ändern). Effizienzgewinne ergeben sich dadurch, dass ähnliche Regeln nicht mehr in verschiedenen Programmen dupliziert werden, sondern jedes Programm Zugriff auf eine breitere Regelbank hat. Aber am wichtigsten ist, dass die Regeln gemeinsam evaluiert werden, wenn sie in verschiedenen Programmen verwendet werden, was (vermutlich) die Qualität der Evaluation und die Entwicklung der Regeln dramatisch verbessert.

Wir haben also die einfachste Version der künstlichen Intelligenz, die durchaus anwendbar ist in verschiedene Spiele, inkl. Computer, Expertensysteme und Prozessleitsysteme. Dies eignet sich auch, um Blackbox-Prozesse mit internem Speicher zu modellieren, statt Markov-Modelle (das sind Prozesse, bei denen man sieht, was am Ein- und Ausgang steht, der interne Zustand und die Abläufe aber unverständlich sind, unserer Meinung nach eine Blackbox ).

Hier kann sich der logische Vorschlag ergeben, dass der genetische Algorithmus Teile des Programms in unabhängige Unterprogramme aufteilen und deren Struktur bei der Änderung des Programms berücksichtigen könnte. Beim prozeduralen Schreiben kann dies die Effizienz steigern, aber es beseitigt immer noch nicht die inhärenten Nachteile, da Sie immer noch eine starre Abfolge von Anweisungen, bedingten Anweisungen und Schleifen benötigen, die durch eine versehentliche Änderung unterbrochen werden können. In der Prädikatsnotation existieren Verfahren als solche überhaupt nicht. Auf der anderen Seite ist es jedoch möglich, die globale Situation in eine Menge hierarchischer Situationen und in eine Folge von Situationen aufzuteilen, so dass nur ein eigenes Regelwerk jede Teilsituation behandelt. Kurzfristig soll eine solche Partition sozusagen die Effizienz des genetischen Algorithmus erhöhen. Tatsache ist jedoch, dass in der realen Intelligenz das Zusammenspiel von Regeln komplexerer Natur ist, dem eine solche Unterteilung sowohl inhärent als auch nicht inhärent ist. Daher können wir durch eine solche Aufteilung der Situation kurzfristig Vorteile erzielen, aber in Zukunft wird sie stören. Dazu später mehr.

Künstliche Intelligenz, Version 2.0

In Prädikatssprachen (wie Prolog) gibt es keine Schrittfolge in einem Programm. Es gibt nur ein Regelwerk, und die Reihenfolge für die Umsetzung dieser Regeln ist zunächst nicht festgelegt.

Es sieht aus wie das:
Regel n: Ergebnis, wenn Bedingung;
Regel m: Ergebnis, wenn Bedingung;
usw.

Die Bedingung kann ziemlich komplex sein und sowohl die einfachsten Ausdrücke als auch andere Regeln umfassen, einschließlich der gegenseitigen rekursiven Anwendung. Das Ergebnis der Ausführung einer Regel ist auch eine komplexe Bedingung, die sowohl die Endsituation als auch einen Teil der Bedingung für die Überprüfung der Anwendbarkeit anderer Regeln (und sich selbst) angeben kann. Diese Ergebnisse sind klar und eindeutig.

Bei der Ausführung eines Prädikatprogramms gibt es keine globale Situation. Es gibt eine Anfangsbedingung, unter der der Interpreter die erste gefundene Regel mit einer passenden Bedingung sucht, das Ergebnis dieser Regel wird zur Anfangsbedingung addiert. Die Suche nach einer geeigneten Regel für die neue Bedingung wird wiederholt. Das Ergebnis ist eine Folgerungskette, die zu einer Regel führen kann, die das Erreichen des Endergebnisses angibt. Wenn dem Interpreter alle verfügbaren Ketten ausgehen, beginnt er mit einem Rollback und sucht für jeden Zyklus nach dem nächsten passende Regel neue Ketten bauen.

Beachten Sie erneut, dass ein Zustand (eine Situation) eine Anfangsbedingung plus eine Kette von angewendeten Regeln ist. Beim Rollback ändert sich die Kette der angewendeten Regeln entsprechend.

Beim Verketten von Regeln kann es passieren, dass der Interpreter in eine endlose Suche verfällt, obwohl die Lösung nahe liegt. Wenn der Dolmetscher also "smart" ist, kann er entweder die Stellen potenzieller Schleifen erkennen oder mehrere Entscheidungsketten parallel durchführen und am Ende diejenige auswählen, die schneller zur Endsituation führt. Andererseits muss die Person, die den Regelsatz schreibt, darauf achten, die Wahrscheinlichkeit einer Schleife zu minimieren.

Zum Beispiel ein Problem mit Missionaren und Kannibalen, wenn Sie auf einem Boot eine Menge Missionare und Kannibalen auf die andere Seite transportieren müssen. Das Boot bietet nur Platz für zwei Personen. Wenn mehr Kannibalen am Ufer sind als Missionare, werden die Missionare gefressen. Bei der Lösung eines Problems in einer Prädikatssprache werden die zulässigen Situationen so geschrieben, dass die Missionare nicht gefressen werden (auch rekursiv) und die zulässigen Bewegungen des Bootes (es sollten immer ein oder zwei Personen im Boot sein). Dann baut der Dolmetscher selbst einen Baum möglicher Entscheidungen auf, bis es zu einer Situation kommt, in der die ganze Masse auf der anderen Seite steht. Die Regelkette trägt in diesem Fall die Reihenfolge des Transports von Missionaren und Kannibalen über den Fluss.

Da die Regeln im Lösungsprozess klar miteinander verknüpft sind, wird in Prädikatssprachen bereits auf der Ebene der Regeln eine Hierarchie und eine Reihenfolge ihrer Anwendung festgelegt, ähnlich der Gruppierung in Prozeduren in prozeduralen Sprachen. Aber sobald wir die Verkettung zwischen den Regeln weniger deutlich machen, geht diese Gruppierung verloren. Und wie genau es neu entstehen wird (oder wie man es mitgestalten kann), ist schon eine neue Frage.

In Prädikatssprachen gibt es keine Schleifen, keine bedingten Sprünge, keine fest codierte Abfolge von Aktionen. Der Performer „weiß“ immer, was zu tun ist, denn er wählt den nächsten Schritt für die aktuelle Situation. Der Ausführende wählt nur einen Schritt aus, denn im nächsten Schritt wird er die veränderte Situation beurteilen und einen neuen Schritt wählen, egal wie unerwartet sich die Situation ändert. Dies wird dem Darsteller auch helfen, auszusteigen, wenn ein Teil seines Programms fehlgeschlagen ist oder die falsche Entscheidung getroffen hat. Anstatt katastrophal in die falsche Richtung zu fallen, wird der Performer die Situation noch einmal bewerten und möglicherweise im nächsten Schritt diese Situation noch verbessern.

Natürlich sind die beteiligten Prozesse viel rechenintensiver als das prozedurale Schreiben des Programms. Und in seiner ursprünglichen Form in Prädikatensprachen ist nicht alles so glatt wie im vorherigen Absatz beschrieben.

Der Nachteil von Prädikatssprachen besteht darin, dass der Geltungsbereich der Regeln sehr eng ist und sie sich in zu langen Ketten aneinanderreihen. In der Intelligenz hingegen herrschen kurze Inferenzketten vor, bei denen eine logische Einheit verschiedenste Eingabebedingungen zudem nach unscharfen und nichtlinearen Kriterien bewertet.

Daher besteht der nächste Schritt beim Aufbau künstlicher Intelligenz darin, enge klare Regeln durch unscharfe und breite zu ersetzen und die Schlussfolgerungskette zu verkürzen.

Zuerst machen wir den globalen Status des Programms (ein gewöhnliches Array von Zahlen). Ein Teil dieses Arrays sind Eingabedaten. Sie werden regelmäßig extern aktualisiert. Ob sie vom Programm geändert werden dürfen, ist keine prinzipielle Frage, Hauptsache, sie werden regelmäßig aktualisiert. Ein Teil dieses Arrays ist der interne Zustand des Programms. Der Rest wird ausgegeben. Interne und Ausgabezellen unterscheiden sich nur darin, dass die Lösung aus den Ausgabezellen gelesen wird. Sowohl Ein- als auch Ausgänge werden immer zum Schreiben/Lesen desselben Parameters verwendet. Zum Beispiel Eingang Nr. 1 - Geschwindigkeit, Eingang Nr. 2 - Kraftstoffsensor, Ausgang Nr. 3 - Änderung der Ruderposition, Ausgang Nr. 4 - Änderung der Geschwindigkeit. Wir vergeben Zahlen willkürlich, im Lernprozess muss das Programm selbst verstehen lernen, wo Ein- und Ausgabe sind.

Nehmen Sie als Grundlage der Regel beispielsweise ein mehrschichtiges Perzeptron (das oft einfach als neuronales Netz bezeichnet wird). Beachten Sie, dass uns der Algorithmus zum Trainieren eines solchen neuronalen Netzes innerhalb des Programms noch unbekannt ist. Wir werden viele solcher neuronalen Netze haben. Zusammen bilden sie eine Reihe von Programmregeln. Jedes neuronale Netz empfängt den gesamten globalen Zustand des Programms als Eingabe (die Anzahl der Eingaben ist gleich der Anzahl der Zustandszellen). Das neuronale Netz hat wenige Ausgänge. Jeder Ausgang entspricht auch einer der Statuszellen. Bei jeder Iteration wird die Ausgabe jedes neuronalen Netzes zum globalen Zustand hinzugefügt (die Ausgabe kann negativ sein). Alle Netze werden gleichzeitig nach dem aktuellen Zustand abgefragt und erzeugen durch ihre Gesamtwirkung einen neuen Zustand.

Die Anzahl der Ausgänge und deren Zuordnung für jedes Netzwerk wird zunächst zufällig gewählt. Wir konstruieren evolutionäre Veränderungen so, dass sie in den meisten Fällen die Kommutierung zwischen den Zellen des globalen Zustands und den Ein-/Ausgängen des neuronalen Netzes unverändert lassen. Und nur mit geringer Wahrscheinlichkeit können Änderungen den Eingang oder Ausgang des Netzwerks in eine andere Zelle umordnen. Dies ist notwendig, da wir im Moment glauben, dass jede Zelle ein bestimmter Parameter ist (auch wenn es ein interner ist). Wenn wir den Eingang / Ausgang des Netzwerks auf einen anderen Parameter umschalten, an den er nicht gewöhnt ist, ist das Ergebnis wird eher erfolglos bleiben. Leider verlieren wir bei so einem Manöver wieder etwas interessante Eigenschaften echte Intelligenz, aber wir bekommen jetzt Effizienz. Wir werden später auf diese Eigenschaften zurückkommen.

Im Laufe der Evolution kann auch die Anzahl der Zellen im globalen Zustand verändert werden. Dann werden alle neuronalen Netze entsprechend angepasst. Wenn die Zellen geklont werden, werden die entsprechenden Ein- und Ausgänge der neuronalen Netze geklont. Werden Zellen gelöscht, werden die entsprechenden Ein-/Ausgänge aus allen Netzen gelöscht.

Es gibt auch evolutionäre Veränderungen, die die Anzahl der Ausgaben eines einzelnen neuronalen Netzes erhöhen oder verringern können.

Wie genau wird ein Programm, das aus einer Menge solcher neuronaler Netze besteht, eine Lösung liefern? Genauer gesagt, wie kann man nach der nächsten Iteration verstehen, dass das Programm seine Entscheidung getroffen hat, und diese Entscheidung aus den Eingabezellen lesen? Dies ist auch eine interessante Frage, die Experimente erfordert. Die ersten Überlegungen sind wie folgt. Die Ausgangswerte werden stabilisiert. Oder es gibt spezielle Ausgänge, die signalisieren, dass die Antwort bereit ist. Diese Outputs passen sich im Evolutionsprozess selbst an.

Nach dem Entfernen der Entscheidungen sollte das Programm weiterarbeiten und höchstwahrscheinlich von seinem internen Zustand aus beginnen. Wie kann man sie zu weiterer Arbeit drängen, weil sich das Programm in einer bestimmten Lösung stabilisiert hat? Nachdem die Entscheidung entfernt wurde, werden zunächst die Eingabezellen mit den tatsächlichen Daten überschrieben (wir glauben, dass sich die Eingabedaten praktisch nicht geändert haben, während das Netzwerk eine Entscheidung trifft). Zweitens können Sie eine spezielle Eingabezelle erstellen, in der eine große Zahl am Anfang der Iteration platziert wird. Außerdem gibt es entweder selbst zu lernen, wie man diese Nummer ändert, oder Sie können sie von außen reduzieren, damit das Netzwerk versteht, dass die Zeit vergeht. Generell gibt es genug Ideen für Experimente.

Nun eine Erklärung, warum das so ist.

Zunächst einmal haben wir den Aufbau von Regelketten aufgegeben und jede Regel gezwungen, das Ergebnis ihrer Arbeit in einen globalen Zustand zu schreiben. Auf diese Weise haben wir es unmöglich gemacht, lange Rückzugs- und Rollback-Ketten aufzubauen, aber wir haben eine schnellere Reaktion und eine umfassende und unscharfe Einschätzung der Situation erhalten. Beachten Sie, dass die parallele Verarbeitung mehrerer Varianten, bei denen jede Variante ihren eigenen globalen Status hat, nirgendwo hingegangen ist. Aber wir haben keine so breite Verzweigung wie im ursprünglichen Prädikatsinterpreter. Wenn wir versuchen würden, Inferenzketten nach groben Fuzzy-Regeln zu verzweigen, würde die Anzahl der Optionen selbst in den frühen Phasen des Aufbaus einer Lösung katastrophal aus dem Gleichgewicht geraten.

Als Ergebnis haben wir etwas völlig anderes erhalten, obwohl es dem ursprünglichen Schluss auf Prädikate ähnlich zu sein scheint. Dieses Etwas ist nicht mehr in der Lage, komplexe und klare Schlussfolgerungen zu konstruieren, aber es ist in der Lage, in einer komplexen, sich schnell ändernden Umgebung zu agieren und hat sogar einige Ansätze einer plausiblen logischen Schlussfolgerung, die die ursprüngliche Version nicht kann. Die Schlussfolgerung komplexer und klarer Schlussfolgerungen wird jedoch zu uns zurückkommen auf unerwartete Weise, in der Zwischenzeit wird die resultierende Intelligenz ohne sie sein.

Trotzdem kann das resultierende Etwas logische Probleme (wie Schach spielen) auf seine eigene Weise lösen, ähnlich wie es eine Person tut. Diese Art des Denkens kann als situativ bezeichnet werden. Es beginnt nicht mit dem Aufbau langer logischer Ketten, sondern mit der Einschätzung, wie die aktuelle Situation ist und wie man diese Situation ändern kann. Die Situation umfasst sowohl externe Daten als auch internen Zustand, was das System zum aktuellen Zeitpunkt „entschieden“ hat. Die Beurteilung und Entscheidung, wohin es weitergeht, wird durchgeführt am jeden Schritt, im Gegensatz zu prozeduralen Algorithmen und Inferenz, die in langen Überlegungen begraben können, aus der Realität herausfallen. Daher werden versehentliche Änderungen in einem solchen Programm im Gegensatz zu einem Verfahrensprotokoll nicht fatal für die Leistung sein. Selbst wenn es in eine unverständliche Situation gerät oder einen Fehler macht, verfällt ein solches Programm nicht in eine Betäubung, sondern wird versuchen, etwas zu tun, da nicht ein kleiner Zweig des Algorithmus an der Beurteilung der Situation beteiligt ist, sondern die ganze Menge von Regeln. Und selbst wenn das Programm anfangs chaotisch wirft, findet es sich früher oder später in einer vertrauten Situation wieder und kann diese in die richtige Richtung lenken.

Situationsdenken basiert auf drei Dingen. Erstens ist es eine Verallgemeinerung der Situation auf einen bekannten Fall (wie bei Mustererkennungssystemen). Zum Beispiel findet das Denksystem aus der abwechslungsreichen Anordnung der Figuren auf dem Schachbrett Gemeinsamkeiten, gibt eine Einschätzung der Lage ab, droht seinen Figuren eine Gefahr, besteht die Chance zum verlustfreien Angriff, dann ist da können spezifischere Situationen-Kombinationen sein. Die zweite ist Erfahrung (eine Bibliothek kurzer plausibler Regeln, die angewendet werden, um eine Situation ohne lange Schlussfolgerungen zum Besseren zu verändern). Basierend auf der Einschätzung der Situation werden Alternativen vorgeschlagen, um diese Situation zu ändern, beispielsweise grobe Angaben zum Bewegen der Teile. Der Parser übersetzt diese ungefähren Daten in die richtigen Bewegungen der Figuren auf dem Schachbrett (wenn die richtigen Bewegungen nicht gefunden werden können, wird die nächste Alternative gewählt). Ähnliche Situationen (und dementsprechend Lösungen dafür) können in jeder Phase des Spiels auftreten, und wir erhalten sofort eine Lösung dafür, ohne lange Aufzählung von Optionen für verschiedene Züge. Ja, diese Optionen sind "nur" plausibel, aber sie beinhalten einen reichen Erfahrungsschatz von echten Parteien und sind durchaus auf neue Parteien anwendbar. Darüber hinaus beinhalten diese Situationen ein gewisses Wissen darüber, wie sich das Spiel viele Züge im Voraus entwickeln wird, jedoch nicht auf der Ebene der bewegten Figuren, sondern auf der Ebene der Änderung der taktischen Situation (die endlose Zyklen umfassen kann, wie das Beibehalten des Gleichgewichts, um ein Remis zu erreichen). ) ... Und wenn sie dennoch zu einem Verlust führen, wird die Bibliothek mit neuen Regeln ergänzt, die in ihrer Situation funktionieren. Drittens ist dies eine interne Überprüfung einer wahrscheinlichen Lösung mehrere Schritte vorwärts (dh um etwas zu entwickeln und dann herauszufinden, wie gut es die Situation ändern wird, mehrere alternative Lösungen beizubehalten, unser System weiß noch nicht, wie es geht , es gibt nur eine Option, aber es wird mehr darüber geben).

Übrigens haben Sie sich vielleicht beim Studium neuronaler Netze gefragt, wie man sie nicht nur auf der Grundlage von Eingabedaten zum Laufen bringt, sondern ihnen auch beibringt, den internen Zustand zu verdauen und komplexe Programme auszuführen? Es war interessant für mich. Stimmt, dann habe ich mir lange Zeit nichts Sinnvolles einfallen lassen, wie man ein solches Netzwerk trainiert. Aber jetzt gibt es eine Antwort von einer etwas anderen Seite.

Warum haben wir viele neuronale Netze anstelle eines großen erstellt, die den gesamten Zustand aktualisieren könnten? Tatsache ist, dass es für das effektive Funktionieren des genetischen Algorithmus wünschenswert ist, eine Reihe unabhängiger Regeln zu haben, von denen jede für eine bestimmte (wenn auch unserem Verständnis verborgene) Aktion verantwortlich wäre. Darüber hinaus können solche Regeln zwischen Programmen ausgetauscht werden, verschiedene Programmsätze daraus machen, einzelne Regeln ändern und klonen und sogar eine Bibliothek der erfolgreichsten (oder sogar zukünftigen Bibliotheks-) Regeln bilden. Dies wird mit einem großen neuronalen Netz schwierig sein. Darüber hinaus schneiden Kollektive bei konventionellen neuronalen Netzen tendenziell besser ab als konventionelle neuronale Netze.

Aus ähnlichen Gründen hat jedes neuronale Netz nur eine kleine Anzahl von Ausgängen. Jene. jede Regel ist befugt, ihre eigene kleine Entscheidung zu treffen. Aber gleichzeitig hat jedes Netzwerk Inputs aus dem gesamten Staat, mit der Erwartung, eine globale Vision der Situation zu haben, aber gleichzeitig nicht auf die meisten Fälle zu reagieren, die sich nicht auf den Geltungsbereich einer bestimmten Regel beziehen. Jedes Netzwerk muss dies im Laufe der Evolution lernen. Daher funktionieren auch bei der Beeinflussung des globalen Zustands genau die Regeln, die in der aktuellen Situation gelten. Es kann gut sein, dass die Anzahl der Einträge auch begrenzt werden sollte, dazu mache ich mir keine Gedanken, hier hilft nur ein Experiment.

Als Ergebnis sollten Sie nach dem Training ein Programm erhalten, das aus einer Reihe von neuronalen Netzen besteht. Das Programm startet mit dem Anfangszustand, in dem die Eingabezellen gesetzt sind, der Rest der Zellen kann auf Null gesetzt werden (oder kleine Zufallswerte haben). Bei jeder Iteration wird der globale Zustand an den Eingang aller Netze geliefert, das Ergebnis der Operation aller Netze wird berechnet und die Ausgabe aller Netze wird sofort zum globalen Zustand hinzugefügt. Die nächste Iteration kommt. Dass die Lösung fertig ist, können Sie beispielsweise daran erkennen, dass sich die Ausgabewerte stabilisiert haben oder ein Signal an einen speziellen Ausgang gesendet wurde, das signalisiert, dass die Lösung fertig ist. Danach werden die Ausgabewerte gelesen, neue Eingabewerte geladen und das Programm arbeitet mit den aktualisierten Daten weiter.

Dieses Programm wird automatisch mit einem genetischen Algorithmus erstellt. Die Hauptsache ist, dass wir zumindest ein Kriterium haben, um die Wirksamkeit der erhaltenen Programme zu bewerten (d. h. ist ein Programm besser als ein anderes), und dies reicht aus, damit der genetische Algorithmus funktioniert. Für reale Aufgaben ist ein solches Kriterium in der Regel vorhanden. Dies können Sätze von Arbeitsbeispielen sein, die für verschiedene Situationen als gut und schlecht angesehen werden (Mustererkennungssysteme lernen auch aus Beispielen). Nachdem das Programm aus bekannten Beispielen gelernt hat, kann es wie Mustererkennungssysteme seine Erfahrungen auf unbekannte Beispiele verallgemeinern, einschließlich einer solchen Verallgemeinerung kann qualitativer Natur sein, versteckte Muster in einer Reihe von Beispielen erkennen und unerwartete ( aber richtig) Schlussfolgerungen. Bei Aufgaben, die genaue logische Schlussfolgerungen und eine klare Lösung erfordern, ist dies schwieriger (aber es wird mehr darüber geben). Es kann Möglichkeiten geben, die Programme gegeneinander kämpfen zu lassen, zum Beispiel Schach zu spielen und dasjenige, das am besten spielt, als effektiv anzuerkennen, dann ist eine externe Bewertung nicht erforderlich.

Ein genetischer Algorithmus generiert zufällig einen Satz von Regeln (neuronale Netze) und einen Satz von Programmen. Alle Regeln befinden sich in einem gemeinsamen Repository. Jedes dieser Programme besteht aus einem eigenen spezifischen Regelwerk, das aus einem gemeinsamen Repository stammt. Die Regeln selbst befinden sich im Repository, das Programm bezieht sich nur auf sie. Um die Wirksamkeit zu bewerten, werden alle Programme parallel ausgeführt (jedes hat seinen eigenen Status und eine Reihe von Inputs-Outputs). Die besten Noten erhalten die Programme, die schneller und effizienter arbeiten. Wer lange nachdenkt oder sich gar nicht entscheidet, wird mit einer Geldstrafe belegt.

Schlechte Programme mit wahrscheinlicher geändert oder ganz gelöscht werden. An ihre Stelle treten entweder neu generierte Programme oder geklont von bestehenden. Die Evaluation von Programmen kann kumulativ sein, d.h. ansammeln und dem Programm eine gewisse Atempause geben, um sich weiterzuentwickeln. Gute Programme werden eher geklont. Programme entwickeln sich vom Schlechten zum Guten.

Nach einer ausreichend guten Lösung wird aufgrund des genetischen Algorithmus das beste Programm ausgewählt, das in Zukunft für reale Probleme verwendet wird.

Welchen evolutionären Veränderungen können Programme unterliegen? Hinzufügen oder Entfernen einer Regel aus dem Repository. Eine Kreuzung mit einem anderen Programm, nämlich zwei Programmen, wird genommen, auf deren Grundlage ein drittes erstellt wird, das aus einem Teil der Regeln des einen Programms und einem Teil der Regeln des zweiten Programms besteht. Die Regeln, die beim Überqueren hinzugefügt, entfernt oder in das Programm geschrieben werden sollen, werden zufällig ausgewählt. Wenn Sie darüber nachdenken, gibt es vielleicht Möglichkeiten, dies zielgerichteter zu tun, vielleicht gibt es eine Bewertung der Wirksamkeit der Teilnahme der Regel an einem bestimmten Programm.

Welchen evolutionären Veränderungen können die Regeln unterliegen (neuronale Netze). Wie bereits erwähnt, ist eine solche Änderung eine Änderung der Zellenanzahl im internen Zustand, die alle Regeln betrifft. Die Notwendigkeit, die Anzahl der Zustandszellen zu erhöhen oder zu verringern, lässt sich mehr oder weniger durch die Dynamik des Programms abschätzen, wie oft sich die Zustände ändern, wie stark sie miteinander korrelieren, wie stark sie die Ausgabewerte beeinflussen und wie effektiv die Population der Programme ist im Allgemeinen. Die nächsten evolutionären Änderungen sind das Klonen von Regeln, das zufällige Ändern von Regeln (nämlich das "Schütteln der Gewichte" des neuronalen Netzes, wie beim Annealing, je niedriger die Effizienz, desto stärker das Schütteln). Das Klonen zusammen mit der anschließenden Änderung der Regeln kann am Klonen von Programmen hängen bleiben. Im Originalprogramm bleibt beispielsweise der Link zur Originalregel erhalten, im geklonten Programm der Link zur geklonten Regel. Oder im Quellprogramm erscheint zusätzlich zu einem Klon der Regel ein Link. Regeln können überschritten werden, wenn ein Teil aus zwei neuronalen Netzen entnommen und in ein drittes Netz geklebt wird. In Regeln (neuralen Netzen) kann sich die Anzahl der Ausgänge zufällig ändern, wie oben beschrieben, die Anzahl und Struktur der internen Verbindungen können sich ändern.

Für jede Regel kann ihre Wirksamkeit basierend darauf berechnet werden, wie erfolgreich die Programme sind, die die Regel enthalten. Darüber hinaus können Sie die Tatsache berücksichtigen, dass die Regel in das Programm aufgenommen werden kann, jedoch inaktiv ist, wodurch der Betrieb des Programms nicht beeinträchtigt wird. Basierend auf einer solchen Bewertung können wir die Regeldatenbank gezielt weiterentwickeln, nämlich erfolgreiche Regeln häufiger zu replizieren und unwirksame Regeln eher zu entfernen oder zu ändern. Wir können auch Programme erstellen, die auf den effektivsten Regeln basieren. Oder werden im Veränderungsprozess eher in Programme aufgenommen beste regeln... Beachten Sie, dass die Bank Regeln mit unterschiedlichen Gültigkeitsbereichen speichert, aber dennoch ein gemeinsames Problem löst.

Aber am interessantesten scheint es, dass Sie für jede Regel nicht nur die Effizienz, sondern auch den Fehler berechnen können! Nämlich zu verstehen, wie sich diese Regel unter den gegebenen Eingabebedingungen richtig verhalten soll. Immerhin haben wir Beispiele für das Auslösen von Regeln (neuronale Netze) in gute Programme(wir glauben, dass dies die richtigen Entscheidungen der Regeln waren, aus denen das Programm besteht) und Beispiele für die Arbeit in schlechten Programmen (wir glauben, dass dies die falschen Entscheidungen der Regeln waren, aus denen das Programm besteht). Dementsprechend können Sie versuchen, die guten Entscheidungen, die jedes neuronale Netz erzeugt hat, zu stärken und die schlechten Entscheidungen zu minimieren. Die Werte der Ein- und Ausgänge lassen sich problemlos reproduzieren und auf deren Basis ein Trainingsmuster aufbauen, das an den Error-Backpropagation-Algorithmus gesendet wird. Das Hauptproblem besteht hier darin, die zeitliche Abfolge dessen, was an den Ein- und Ausgängen war, zum Trainingssatz zu entfalten, und hier kann es zu Mehrdeutigkeiten kommen. Schließlich können wir nicht davon ausgehen, dass alle Entscheidungen (Input-Output-Paare) im richtigen Netzwerk idealerweise richtig waren und im falschen - idealerweise falsch. Vielleicht ist das an einer ganz anderen Regel schuld, die ganz am Schluss die richtige Entscheidung "auslöscht"? Sich an der Entfaltung der gesamten Entscheidungsfolge zu beteiligen, ist ein aussichtsloses Unterfangen. Daher müssen Sie darüber nachdenken, eine Stichprobe basierend auf diesen Zeitsequenzen zu bilden. Und selbst wenn wir bei der Bildung einer Trainingsstichprobe viele Beispiele wegwerfen und nur die eindeutigsten lassen, wird es dennoch ein Fortschritt sein.

Sehen wir uns jetzt an, was wir haben. Und jetzt haben wir ein Werkzeug zum automatischen Schreiben von Programmen, die durch die Aufgaben der realen Welt navigieren, in einer Vielzahl von Situationen flexibel agieren, sich von Fehlern erholen, eine Art interne Logik haben und die Situation vorhersagen / modellieren. Was sie nicht können, ist, dünne logische Ketten zu entwickeln, lange Schlussfolgerungen zu ziehen. Obwohl eine solche Intelligenz bei vielen Aufgaben in der Lage sein wird, vorzugeben, dass tiefe logische Prozesse stattfanden, obwohl sie tatsächlich nur die während des Trainings erhaltenen Rohlinge anwendete. Diese Art von Intelligenz und Unabhängigkeit ist nicht genug, ein Mensch muss noch viel darin tun. Und was die Hardware angeht, ist das, was wir bekommen haben, nicht ganz vergleichbar mit dem, was die Natur erfunden hat.

Künstliche Intelligenz, Version 3.0

Jetzt fügen wir etwas hinzu, das als Umgebungsemulator bezeichnet wird. Wir werden zwei Varianten brauchen, eine für die Emulation der externen Umgebung, die zweite für die Vorhersage. Es wird noch eine dritte Sorte geben, aber dazu später mehr.

Der Emulator im Vorhersagemodus sollte in der Lage sein, das erwartete Verhalten der externen Umgebung eine kleine Anzahl von Schritten vorwärts auszugeben, wobei er die Geschichte der vorherigen Zustände und die aktuellen Auswirkungen auf die Umgebung aus dem Steuerungsprogramm kennt. Jetzt wird das Programm nicht sofort auf die externe Umgebung reagieren, sondern zuerst auf den Emulator. Und auf dem Emulator sehen Sie die Vorhersage, ob sich die Umgebung durch die Auswirkungen des Programms in die richtige Richtung geändert hat. Daher können Sie mehrere Instanzen von Programmen auf ähnliche Weise trainieren lassen, die sich jedoch voneinander unterscheiden. Starten Sie für jeden von ihnen Ihren eigenen Umgebungsemulator in Echtzeit. Und bei jedem Schritt in der externen Umgebung, um die Auswirkungen des Programms auszugeben, das die beste Bewertung auf dem Emulator erhält. Eine andere Möglichkeit besteht darin, diese Entscheidung (nicht unbedingt die beste) zu treffen, die von der "Mehrheit der Stimmen" vom Programmteam akzeptiert wird, dann ist diese Entscheidung zuverlässig.

Ein Emulator im Emulationsmodus ähnelt der Vorhersage, wird jedoch bei Trainingsprogrammen verwendet, wenn keine reale externe Umgebung vorhanden ist. In der vorherigen Version haben wir vorgefertigte Slicing-Beispiele aus der externen Umgebung genommen. Anstelle dieser Beispiele können Sie also einen Emulator erstellen, der darauf trainiert ist, neu zu erstellen typische Situationen Außenumgebung. Schließlich kann es viele Beispiele geben, und es ist effizienter, einen kompakten Emulator anstelle dieses Durchbruchs zu verwenden.

Der Emulator im Trainingsmodus kann auf echte Sensoren gelegt und lange belassen werden. Eine logische Frage – warum nicht gleich das nötige Programm für das Training auf die Sensoren legen? Hier gibt es mehrere Antworten. Zuerst möchten wir vielleicht die nächste Version des Programms trainieren, und dann müssen wir wieder echte Geräte steuern. Zweitens ist es unmöglich, an echten Sensoren zu experimentieren, ob das Programm richtig gelernt hat, oder solche Experimente können teuer sein und der Emulator kann im Vorhersagemodus arbeiten.

Darüber hinaus kann der Emulator so konfiguriert sein, dass er einerseits zufällige Abweichungen vom Verhalten der Umgebung erzeugen kann und andererseits unterschiedliche zeitliche Abläufe aus dem Verhalten der Umgebung kombinieren kann. Da der Emulator in einer externen Umgebung trainiert wird, werden solche Kombinationen plausibel "erfunden". Das erweitert den Satz von Beispielen für Lehrprogramme.

Natürlich kann alles, was in Echtzeit passiert, wieder aufgezeichnet und zum automatischen Nachtrainieren von Programmen verwendet werden.

Programme für den Emulator können mit der gleichen Technologie wie oben beschrieben erstellt werden.

Wenn die externe Umgebung sehr komplex ist (wie beim Schachspielen), wird der Emulator mit einer Technologie gebaut, die dem Steuerungsprogramm selbst sehr nahe kommt. In dem Maße, in dem die Programme beim Lernen miteinander spielen und das stärkste Programm überleben wird. Der Vorhersage-Emulator kann optimiert werden, um nicht nur nach dem besten Zug zu suchen, sondern sich auch an den Spielstil des Gegners anzupassen. Wenn also mit einer Person gespielt wird, findet im "Gehirn" der Maschine ein ganzer Kampf zwischen vielen Programmen und ihren Gegnern, den Emulatoren, statt, bevor die endgültige Entscheidung getroffen wird.

So erhöhen wir mit dem Emulator der externen Umgebung sowohl die Qualität der Trainingsprogramme als auch die Qualität der Entscheidungsfindung in Echtzeit.

Gibt es eine solche Parallelisierung in der natürlichen Intelligenz mit wettbewerbsorientierter Entscheidungsfindung und einem Umgebungsemulator? Ich denke schon, aber kaum dabei Direktform... Was im Laufe der natürlichen Evolution entstanden ist, ist sicherlich komplexer und effektiver. Aber hier haben wir der Einfachheit halber und der schnellsten Erzielung des Effekts künstlich Konkurrenz und einen Emulator eingeführt.

Nach der Einführung eines Emulators der externen Umgebung und einer wettbewerbsfähigen kollektiven Lösung ist es möglich, neue Eigenschaften unserer künstlichen Intelligenz einzuführen.

Wandernde Hintergrundlösungen... Nachdem Sie eine Entscheidung getroffen haben, ist es nicht erforderlich, alle Programme zum Neuaufbau zu zwingen, um den nächsten Schritt zu verstehen. Sie können einige (nach einigen Kriterien gute) Programme verlassen, um lange über vergangene Situationen nachzudenken. Es kann gut sein, dass ihnen etwas einfällt, und dieses Etwas wird entweder in der aktuellen (wenn auch veränderten) Situation nützlich sein oder für das weitere Lernen nützlich sein. Zum Beispiel kann ein Programm, das hinterherhinkt, die Absicht eines Feindes entwirren oder eine interessante taktische Lösung finden. Dann wird es möglich sein, die aktuelle Situation in Richtung dieser Lösung zu wenden (die künstliche Intelligenz hat ihre Meinung geändert), und wenn das Spiel zu diesem Zeitpunkt bereits abgeschlossen ist (oder in eine andere Richtung gegangen ist), dann wird das gefundene Lösung kann im Training verwendet werden. Wie genau diese beiden Optionen durchgeführt werden, sind Themen separater Studien. Gleichzeitig wird die Künstliche Intelligenz ständig online sein und denken, sich verbessern, Dialoge mit sich selbst führen, fast wie ein Mensch.

Explosion der Optionen... Sie können versuchen, Situationen zu erkennen, in denen sich ein separates Programm (oder eine Gruppe von Programmen) an einer Gabelung befindet, wenn eine mehrdeutige Situation erkannt wird und diese Situation gezwungen ist, in neue Entscheidungszweige (Programm + Emulator) zu verzweigen. Wie man solche Situationen erkennt, wie man sie verzweigt, ist wiederum ein Thema für separate Studien, ein ungepflügtes Feld. Bisher nur auf der Ebene einer Idee, der Idee, dass der Verstand bei Unklarheiten in der Lage sein soll, Varianten zu verzweigen. Aber Branching ist nicht dasselbe wie Iteration über einen Entscheidungsbaum. Es ist ähnlich wie beim Verschmieren der Wellenfunktion, wie bei der komplexen Arithmetik, wenn Operationen mit Mehrdeutigkeit (imaginäre Einheit) mehrere Optionen ergeben, die in Zukunft nach den Regeln derselben Arithmetik miteinander interagieren. Auch sollten verzweigte Lösungen in der Künstlichen Intelligenz weiterhin nebeneinander bestehen, weiter miteinander kommunizieren (wie genau ist auch eine Frage) und in richtiger Moment Zeit können die Zweige zu einer einzigen Lösung zusammenlaufen. Außerdem erfolgt die Verzweigung nicht dumm wie beim Durchsuchen von Optionen, sondern genau in den Momenten, in denen es am interessantesten ist.

Wie genau kann ein potenzieller Verzweigungspunkt erkannt werden? Für konventionelle neuronale Netze gibt es Algorithmen, die die Kapazität des neuronalen Netzes erhöhen, wenn es nicht ausreicht, Daten zu verarbeiten, und die Kapazität des Netzes reduzieren, wenn sie für die Entscheidungsfindung zu hoch ist. Das Ändern der Kapazität in einem neuronalen Netzwerk bedeutet das Hinzufügen und Entfernen von Gewichtungsverbindungen zwischen Neuronen und den Neuronen selbst (lesen Sie das Hinzufügen / Entfernen von Zeilen in einer nichtlinearen Matrix und das Nullen von Elementen, die die Lösung nicht beeinflussen). Es gibt eine ganze Richtung bei neuralen Bäumen, die nach Bedarf wachsen. In einem Team von Programmen können Sie also überprüfen, worüber verschiedene Programme "denken", ähnliche Situationen minimieren und versuchen, neue "Gedankenrichtungen" zu generieren. Um dies zu beurteilen, werden uns zunächst Emulatoren helfen. Wir müssen uns ansehen, wie ähnlich sie eine Vision der externen Umgebung vermitteln.

Auch einzelne Programme können daraufhin überprüft werden, wie eindeutig sie eine Lösung liefern. Wandert ein Programm zwischen mehreren Lösungen oder konvergiert nicht gegen eine Lösung, so können weitere Programme auf diese Situation geworfen werden, initialisiert durch dieselbe Situation, aber mit zufälligen Abweichungen, um den "Kurs alternativer Gedanken" anzuregen. Auch im Training kann Branching sinnvoll sein, wenn es möglich ist, die Mehrdeutigkeit des Programms in der Lösung zu ermitteln und die Mehrdeutigkeitsfälle in mehrere eindeutigere Programme aufzuteilen, damit sie im Team erfolgreicher zusammenarbeiten. Aber das alles sind bisher nur schöne Ideen, Ideen für Experimente.

Sie werden träumen

Es ist gut, wenn wir Beispiele für korrektes Verhalten haben oder die Reaktion der Umgebung nachahmen können. Für die natürliche Intelligenz (und die Zukunft der künstlichen Intelligenz) ist dieser Luxus nicht immer verfügbar. Der Intellekt versucht etwas mit der Umwelt zu machen, etwas kommt richtig heraus, etwas nicht, etwas bleibt mit unverständlichen Folgen. Wie kann man daraus lernen?

Dazu stellen wir den dritten Typ des externen Umgebungsemulators vor. Sie wird sich an die Manifestationen der äußeren Umgebung erinnern, was die künstliche Intelligenz als Reaktion auf diese Manifestationen getan hat und wozu dies führte. Dies schließt nicht aus, dass ein solcher Emulator mit zunehmender Erfahrung in der Lage sein wird, die beiden vorherigen Varianten - Emulation und Vorhersage der Umgebung - zu kombinieren und auf ähnlichen Prinzipien wie unsere künstliche Intelligenz aufzubauen.

Wie lernt man, wenn es keine klaren Informationen gibt, welche Maßnahmen sind richtig und welche nicht? Ein kleiner Exkurs. Hopfield-Netzwerke lernen aus Beispielen, indem sie alle Beispiele "zusammenfassen", ohne kritische Bewertung, ohne Fehlerkorrektur. Ein trainiertes Hopfield-Netzwerk in einem partiellen oder verrauschten Bild während der Iteration (Konvergenz zum Energieminimum eines gegebenen Bildes) kann das Originalbild wiederherstellen. Nach dem Training im Netzwerk werden daher manchmal falsche Bilder erhalten. Um falsche Bilder zu eliminieren, werden am Eingang Trainingsbeispiele gestartet, und wenn das Netzwerk zu einem falschen Bild konvergiert, wird ein solches Bild überschrieben. In gewisser Weise "träumt" das Netzwerk auf der Grundlage zuvor erhaltener Informationen, und im Traum werden falsche Informationen durch richtige Informationen ersetzt. Hopfield-Netzwerke werden verwendet für einfache Bilder, aber uns interessiert das Prinzip.

Wir können hier einen ähnlichen Weg gehen. Nach der Ansammlung von Informationen aus der externen Umgebung wird die Intelligenz von der externen Umgebung getrennt und arbeitet nur mit dem Emulator. Der Emulator reproduziert Situationen, und wenn der Intellekt eine gute Lösung gegeben hat, wird diese Lösung verstärkt, wenn eine schlechte, dann wird diese Lösung durch etwas anderes ersetzt. Für einen zufälligen zum Beispiel. Hauptsache, die neue Lösung sieht nicht schlecht aus. Gleichzeitig bauen wir Veränderungen so auf, dass die angesammelten guten Lösungen nicht verloren gehen und keine neuen schlechten Lösungen auftauchen.

Zumindest kann eine solche Umstrukturierung mit einem genetischen Algorithmus durchgeführt werden. Es ist möglich, dass auch eine Kreuzauswertung jeder Regel, aus der das Programm besteht, möglich ist, so dass es möglich ist, den Fehler und die Korrektur für jede Regel genau zu berechnen. Immerhin haben wir einige Informationen darüber, ob das Programm gut oder schlecht funktioniert hat. Schwieriger ist es hier in dem Sinne, dass, wenn die Entscheidung von einem Team von Programmen getroffen wurde, die Information über die Richtigkeit der Entscheidung nur für das Gewinnerprogramm bekannt ist. Aber auf der anderen Seite haben wir Informationen über das Verhalten von Programmen, die lange Zeit sind, und daraus können bereits Details extrahiert werden.

Es stellt sich also heraus, dass, wenn künstliche Intelligenz in natürliche Bedingungen versetzt wird, lange Wachphasen auftreten, in denen Informationen durch Versuch und Irrtum angesammelt werden, und danach Schlafphasen, in denen diese Informationen qualitativ verdaut werden. Dieser Prozess selbst wird sich als langwierig und mühsam erweisen. In der natürlichen Intelligenz zeigte ein solcher Mechanismus, der einmal im Laufe der Evolution auftauchte, schnell seine Nützlichkeit und vervielfältigte sich für nachfolgende Generationen. Das Ding ist sozusagen nicht sehr schwer, um während der Evolution zu erscheinen.

Sie werden Schmerzen spüren

Eine weitere Trainingsmöglichkeit, wenn Informationen über die Richtigkeit von Aktionen nicht verfügbar sind. Lassen Sie mich daran erinnern, dass beim Teachen nach der Annealing-Methode zufällige Änderungen der Parameter als Ganzes über die gesamte Lösung verwendet werden, um die Lösung neu aufzubauen. Die Stärke solcher Änderungen (Temperatur) beginnt hoch und nimmt allmählich ab, wenn die Lösung gegen . konvergiert Die beste Option... Wenn die Änderungen nicht zu uns passen, erhöht sich die Stärke der Änderungen (Glühtemperatur) auf der Suche nach einer geeigneteren Option.

Daher hat sich im Laufe der Evolution ein Schmerzmechanismus entwickelt. Die falsche Handlung - und wir spüren sofort, wie unsere neuronalen Verbindungen von einer grausamen Flamme verschlungen werden. Diese Erschütterung bleibt nicht unbemerkt. Die Folgen einer falschen Handlung sind in unseren neuronalen Verbindungen buchstäblich ausgebrannt. So sehr, dass wir die Wiederholung dieser falschen Handlungen auf jeden Fall vermeiden. Der Mechanismus ist einfach, aber effektiv.

In der künstlichen Intelligenz kann das Lernen durch eine stärkere zufällige Änderungsrate ergänzt werden, eine höhere zielgerichtete Änderungsrate, wenn der Intellekt schlechte Entscheidungen trifft. Solche Ergänzungen können sowohl auf der Ebene eines Programmteams als auch auf der Ebene einzelner Programme oder Regeln angewendet werden. "Schlechte" Regeln oder Programme können durch Fehlhandlungen buchstäblich gleichzeitig ausgebrannt werden gute regeln und das Programm wird gespeichert und vervielfältigt, aber sie haben "Angst" vor falschen Aktionen wie Feuer.

Auf einer höheren Intelligenzstufe wird sich "Schmerz" auch dadurch manifestieren, dass "der Kopf von Ideen spaltet", "es ist unmöglich, Gedanken zu sammeln" usw. Der Zustand einer guten Entscheidung wird von Gedankenklarheit, Harmonie und "Seelenfrieden" begleitet.

Ensembles von Regeln

Stellen Sie sich vor, dass im Prozess des evolutionären Lernens ein Teil der Regeln geklont wird, damit sie mit der übergeordneten Instanz verbunden bleiben. Sie bleiben beispielsweise mit denselben Ein- und Ausgängen verbunden und werden fast gleichzeitig aktiviert. Gleichzeitig unterscheiden sich die Regeln immer noch voneinander, und ihre Weiterentwicklung kann auf unterschiedliche Weise verlaufen. Jetzt werden wir es so machen, dass dieser Teil der Regeln bei Änderungen größtenteils miteinander verbunden bleibt, d.h. so dass die Ausgänge, Ausgänge, Aktivierungen und erteilten Entscheidungen weitgehend gleich sind. In diesem Fall können die Regeln des Ensembles an anderen Orten, auch in anderen Ensembles, mitwirken.

Es stellt sich heraus, dass das Ensemble zusammen mit all seinen Regeln Entscheidungen trifft. Aufgrund der gemeinsamen Arbeit wird sich die Lösung als qualitativ besser herausstellen (zumindest ist dies bei gewöhnlichen neuronalen Netzen der Fall). Gleichzeitig wird das Ensemble aber auch eine neue, qualitativ andere Darstellung der Situation haben, es wird weit über die Ausgangssituation hinaus agieren können, da die Regeln des Ensembles an anderer Stelle involviert sind (und Ensembles) des Programms (und dies ist bereits eine Annahme, was die am Programm teilnehmenden Ensembles betrifft). Wir können sagen, dass die Vision der Situation höherwertiger, verallgemeinerter, erweitert und durch die Erfahrung anderer Situationen bereichert wird. So kann das Ensemble in Grenz- oder neuen Situationen generieren (man könnte sogar sagen, fantasieren) neue Realität die Bedeutung des alten fortzusetzen, die er während des Trainings gesehen hatte.

Hier tauchen heimlich Dinge wie Abstraktionskategorien, assoziatives Denken auf. Es treten "schwere" logische Ketten auf, die aufgrund einer um Größenordnungen höheren Sicht der Situation "dünne" logische Ketten erzeugen können, die der formalen Logik und rigorosen Algorithmen nahe kommen.

Angesichts neuer Situationen wird das Programm, das solche Ensembles in Reserve hat, viel einfacher sein, seine Erfahrungen auf neue Situationen zu übertragen und zu verallgemeinern.

All dies sind bisher schöne Annahmen, aber höchstwahrscheinlich gehen die Dinge in diese Richtung. Wie genau solche Ensembles im Gehirn gebildet und aufrechterhalten wurden, ist noch nicht klar (aber stimme zu, evolutionär sieht es ganz einfach aus). Eine Frage ist auch, wie die Ensembles im Programm gefördert und vermittelt werden. Anscheinend gibt es keine klare Festlegung der Regeln für die Ensembles, alles wird dynamisch gelöst, indem die für eine bestimmte Situation kompatiblen Regeln kombiniert werden, alle nach den gleichen Prinzipien des Wettbewerbs und der Interaktion. Gleichzeitig können Regeln und Ensembles auch dynamisch in eine Hierarchie eingebaut werden, und dennoch gibt es keine permanente Hierarchie, keine Metaebenen und Übergänge dazwischen, keine klare Formalisierung mit der Zuordnung von System-Subsystem-Verbindungen. Weitere Einzelheiten darüber, wie dies gebildet werden kann, folgen weiter. Und Sie müssen zugeben, vom Standpunkt des natürlichen Laufs der Dinge sieht alles ganz einfach aus.

Und wieder Wellen, Frequenzen und Holographie

In unserem Programm Künstliche Intelligenz wird die Aufteilung in konkurrierende Programme und eine alternative Sicht der Situation künstlich gesetzt. Ebenso wird künstlich ein globaler Zustand eingeführt, auf den alle Regeln und ein Taktgenerator Zugriff haben, der in jedem neuen Moment alle Regeln aktiviert und die Situation aktualisiert. Aber im Gehirn gibt es nichts dergleichen, und dennoch hat sich dort natürlich etwas ganz Ähnliches gebildet.

Was wir haben, ist die Eigenschaft eines natürlichen Neurons, Potential zu akkumulieren, und wenn der kritische Schwellenwert überschritten wird, wird es mit einer Reihe von Signalen an seinen Ausgängen entladen (erinnern Sie sich an frequenzneurale Netze in den vorherigen Teilen?). Diese Reihen wiederum erhöhen (oder senken) jedes Mal die Potentiale der Neuronen, die mit den Eingängen des ursprünglichen Neurons verbunden sind. Schwellenpotentiale, Häufigkeit und Dauer der Entladung sind Parameter, die im Lernprozess abgestimmt zu sein scheinen.

Es stellt sich also heraus, dass weder ein Taktgenerator, noch Schleifen und bedingte Übergänge, noch ein globaler Zustand und eine erzwungene Parallelisierung der Situation benötigt werden.

Sammlungen solcher Neuronen tragen bereits einen internen Zustand und eine komplexe iterative Logik und bedingte Verarbeitung.

Darüber hinaus können Neuronenpakete zu alternativen (parallelen) Ketten zusammengefasst werden, jede mit ihrer eigenen Vision der Situation, und am Ausgang konkurrieren alle diese Ketten untereinander um deren Lösung, die dem Ausgang vorgelegt wird. Und eine solche Verarbeitung ist der Modellierung auf herkömmlichen Computern durchaus zugänglich. Eine andere Sache ist, dass es zunächst wahrscheinlich ressourcenhungriger ist als das nachrichtendienstliche Modell mit erzwungener Parallelisierung, aber auf lange Sicht wird sich das weniger regulierte Modell als effektiver erweisen.

Erinnern wir uns nun an Ensembles und Meta-Ensembles. Es stellt sich heraus, dass ganze Wellenfronten einzelne Ensembles durchstreifen, die in verschiedenen Ensembles in Kombination komplexe Wellenmuster ergeben, vielleicht sogar komplizierter als holographische Bilder. Es sind diese Wellenmuster, die einzelne Neuronen (oder Regelnetzwerke in unserer künstlichen Intelligenz) dynamisch zu Ensembles und Meta-Assemblies verbinden.

Sehen Sie, wie alles ganz natürlich und doch pragmatisch herauskam. Es besteht keine Notwendigkeit, Frequenz- und holografische Netzwerke separat zu erfinden, nicht zu quälen und zur Erkennung von Bildern zu zwingen. Es reicht aus, eine wirksame und natürlicher Kurs Dinge, wie sich all diese frequenzholographischen Eigenschaften als Nebeneffekt manifestierten.

Die Ausgangssituation, einmal im Gehirn, spaltet sich in viele alternative Ketten auf, verursacht ganze Wellen von Veränderungen der neuronalen Potentiale und erhält dadurch eine viel komplexere und qualitativere Darstellung. Am Ausgang kollabiert all diese Verarbeitung wieder in engen Grenzen, die ausgegeben werden müssen Außenwelt.

Assoziationen, Kategorien, Verallgemeinerungen und andere Philosophie

Im Abschnitt über Ensembles haben wir erwähnt, dass es gut wäre, wenn die Regeln an verschiedenen Programmteilen teilnehmen, damit die Regeln lernen, Erfahrungen aus völlig unterschiedlichen Situationen qualitativ zu verallgemeinern. Sie werden nämlich auf dem Weg hochrangiger Abstraktionen wie assoziativem Denken und Kategorisierung sein. Sie können beispielsweise aus den Begriffen „weiß“ und „flauschig“ etwas Gemeinsames herausnehmen und auf die Situation „Fliegen“ anwenden. Eine solche Verarbeitung wird das Denken viel leistungsfähiger machen und es Ihnen ermöglichen, dynamisch Regelensembles für völlig unterschiedliche Situationen zu erstellen.

Um solche Eigenschaften zu erhalten, haben wir künstlich Ensembles und deren Pflege eingeführt. Auf welchen anderen Wegen bekommt man die Eigenschaften, die es der Regel ermöglichen, für bestimmte Situationen (Konzepte) trainiert zu werden, an ganz anderen Situationen (für andere Konzepte, wie im Beispiel über weiß/flaumig/fliegen) teilzunehmen und umzutrainieren?

Bisher ergeben sich zwei Möglichkeiten.

Option eins, dynamische Kombination von Ein- und Ausgängen... Denken Sie daran, dass wir am Anfang eine harte Entsprechung der Eingaben und Ausgaben der Regeln (neurale Netze) mit den Zellen des globalen Zustands gestellt haben? Gleichzeitig wurden evolutionäre Veränderungen so abgestimmt, dass diese Entsprechungen auf ein Minimum reduziert werden. In der nächsten Version ohne globalen Zustand werden die Ein- und Ausgänge andere Regeln-Netze waren auch fest miteinander verbunden.

Lassen Sie uns nun im Arbeits- und Lernprozess den Ein- und Ausgängen erlauben, ihre Position relativ zueinander zu ändern. Es stellen sich zwei Fragen. Erstens, wie kann man feststellen, wie kompatibel die Elemente der resultierenden Kombination sind, wie effektiv diese Verbindung das Problem löst? Zweitens, wie kann man schnell kompatible / effektive Kombinationen von Ein- und Ausgängen finden, da es viele Kombinationen gibt?

Die einfachste Möglichkeit besteht darin, jede Eingabe und Ausgabe der Regel mit einem Kompatibilitätsmerkmal abzugleichen, das sich evolutionär ändert, und vielleicht gibt es eine Möglichkeit, diese Kompatibilität im Lernprozess entsprechend den Ergebnissen der Regeln genauer abzustimmen. (Kann die Kompatibilität der Ausgaben während des Betriebs der Regel berechnet werden? Wäre dies effizient?) Für Eingaben und Ausgaben in die externe Umgebung wird auch ein Kompatibilitätssatz benötigt, der Teil des allgemeinen Satzes ist. Wenn das Programm läuft, werden die Regeln nur unter Berücksichtigung der Kompatibilität der Ein-Ausgänge verbunden. Die Aufgabe, eine solche Kompatibilität auszuwählen, ist rechnerisch nicht einfach, aber dennoch nicht ganz schwierig. Vielleicht helfen Hopfield-Netzwerkalgorithmen, die ähnliche Dinge tun können, bei dieser Auswahl.

Die nächste Möglichkeit besteht darin, im Lernprozess die Inputs und Outputs verschiedener Regeln auf unterschiedliche Weise zu kombinieren und Informationen über die Wirksamkeit (Kompatibilität) verschiedener Kombinationen zu sammeln. Gehen Sie in der realen Arbeit wie oben vor - kombinieren Sie die Eingaben entsprechend der Kompatibilität.

Die bisherigen Optionen eignen sich für die Implementierung von Künstlicher Intelligenz, aber eine solche Kombination von Inputs und Outputs scheint es in der natürlichen Intelligenz nicht zu geben. Aber es gibt Feature Maps, siehe über Faltungsnetzwerke und Neocognitron in den vorherigen Teilen. Und solche Karten scheinen in der natürlichen Intelligenz zu existieren.

Die Bedeutung von Feature-Maps ist wie folgt. Es gibt eine Reihe von Regeln, es gibt eine Reihe von Eingabezellen. Jede Regel scannt die Eingabezellen unter Verwendung eines beweglichen Fensters, und alle Zellen aus dem Fenster gehen zur Eingabe der Regel. Das Ergebnis der Regel wird in die Zelle der Feature-Map geschrieben, die der Position des Fensters auf den Eingabezellen entspricht. Als Ergebnis erhält man für jede Regel eine Merkmalskarte, in der die Orte der besten Regelauslösung die höchsten Werte aufweisen. Im nächsten Layer bilden alle Feature-Maps die Eingabe für ein neues Regelwerk, das wiederum ihre Feature-Maps zusammensetzt. Lernregeln können einen Fehler zurückpropagieren. Wie man solche Regeln im Rahmen eines Programms vermittelt, ist eine offene Frage.

Feature Maps zeigten sich gut in der Bilderkennung, mit Verzerrungen, die mit einer Änderung von Maßstab, Perspektive, Drehung und mit objektspezifischen Verformungen verbunden waren.

Daher sind Feature Maps ein guter Kandidat für Experimente zum dynamischen Kombinieren von Eingaben und Ausgaben für die Regeln, aus denen ein Programm besteht.

Option zwei, Frequenzkombination von Ein- und Ausgängen... In diesem Fall müssen Sie die Ein- und Ausgänge nicht neu anordnen. In frequenzneuralen Netzen (oder in Programmen, die auf solchen Netzen aufgebaut sind) ist jedes Neuron sowohl der einfachste Frequenzfilter als auch der einfachste Frequenzgenerator. Darüber hinaus kann dieser Filter gleichzeitig auf verschiedene Oberwellen abgestimmt werden (wodurch die Kapazität und Fähigkeiten von Frequenznetzen höher sind als die von herkömmlichen Netzen). Ebenso ist jede Kombination von Neuronen sowohl ein komplexer Frequenzfilter als auch ein komplexer Frequenzgenerator. (In unserer künstlichen Intelligenz entspricht ein solches Neuron einer einzelnen Regel, die durch ein kleines neuronales Netzwerk repräsentiert wird.)

Daher können Signale, die sich auf völlig unterschiedliche Entitäten beziehen, mit unterschiedlichen Frequenzen entlang derselben Neuronen wandern. Da jedoch unterschiedliche Frequenzen dieselben Neuronen (Kombinationen von Neuronen) beeinflussen, beeinflussen sich unterschiedliche Frequenzen (und die von ihnen verarbeiteten Entitäten) gegenseitig. Wenn also unsere Intelligenz auf den Prinzipien der Frequenzsignalverarbeitung aufbaut (wie oben im Abschnitt über Frequenzen erwähnt), dann scheint diese Intelligenz bereits die Fähigkeit zu haben, heterogene Entitäten und eine gewisse philosophische Abstraktion zu verallgemeinern. Möglicherweise gibt es jedoch zusätzliche technische Lösungen, die die Bildung solcher Verallgemeinerungen in Frequenznetzen beschleunigen.

Und ein bisschen zum Schluss. Solche Methoden der Rekombination von Inputs und Outputs ergeben nicht nur hochrangige Eigenschaften wie assoziatives Denken und qualitative Verallgemeinerungen, sondern auch prosaischere. Was passiert, wenn die Drähte im Stromkreis vertauscht sind? Dies wird höchstwahrscheinlich tödlich für die Schaltung sein. Aber für das Gehirn ist es nicht notwendig. Experimente (an Tieren) wurden durchgeführt, als das Gehirn buchstäblich in Stücke geschnitten und gemischt, dann zurückgeklappt und das Tier freigelassen wurde. Nach einiger Zeit normalisierte sich das Tier wieder und lebte weiter. Nützliche Eigenschaft, Wahrheit?

Es gibt keine Meta-Ebenen

Einmal habe ich mir den Kopf darüber zerbrochen, wie eine logische Hierarchie in intelligenten Systemen aufgebaut ist, wie logische Konstruktionen entstehen, wenn eine andere über einer kristallklaren Ebene aufgebaut wird, und fasse mehrere Ebenen darunter zusammen. In Arbeiten über künstliche Intelligenz (und nicht nur) wurde wunderschön beschrieben, wie sich Systeme entwickeln, Komplexität anhäufen und von einer Ebene zur anderen wechseln.

In realen Systemen hat sich immer herausgestellt, dass, egal wie gut die unteren Ebenen durchdacht sind, sich in ihnen immer einige Diskrepanzen ansammeln, Veränderungen, die nicht mit den oberen Ebenen koordiniert werden können, diese Veränderungen früher oder später das gesamte System zerstören und eine Generalüberholung der gesamten Hierarchie. Der Ausweg war dieser - nicht stark an solche Hierarchien gebunden zu sein, Handlungsspielräume zu lassen, damit im Bedarfsfall auch unter Umgehung der formalen Hierarchie gearbeitet werden konnte. Und das ist kein Zeichen für ein schlecht konzipiertes System, das sind Realitäten des Lebens.

Natürlich minimiert das richtige System das Durcheinander, und das ist es. Dies bedeutet jedoch nicht, dass informelle Bindungen in einem solchen System völlig fehlen. Ein gutes System muss bei aller Korrektheit ein Element seiner eigenen Zerstörung mit sich bringen. Ein Element, das zum Tragen kommt, wenn das System seinen Aufgaben nicht mehr gewachsen ist, ein Element, das das System komplett für neue Realitäten umbaut.

Auch in der Künstlichen Intelligenz scheint kein Platz für logische Ebenen und Meta-Übergänge zu sein (insbesondere im Hinblick auf den vorherigen Abschnitt zu Assoziationen und Verallgemeinerungen). Alle Regeln (sie sind Neuronen in unserem Verständnis) sind gleichzeitig an der Entscheidungsfindung auf jeder Ebene beteiligt. Regel-Neuronen können sich dynamisch in verschiedene Ensembles, in verschiedene Hierarchien aufreihen. Aber selbst mit solch einer dynamischen Ausrichtung haben sie keine hierarchische Strenge, ein Element der unteren Ebene kann leicht die obere Ebene beeinflussen, so dass es sie vollständig neu aufbaut.

In jedem speziellen Fall der Anwendung der Regeln können Sie Ihre eigene Hierarchie aufbauen. Aber diese Hierarchie ist nicht statisch, wie es bei verschiedenen Formalisierungen der Fall ist. Bei der Intelligenz hängt alles davon ab, von welcher Seite man zieht, welchen Blickwinkel man betrachtet. Jede Ecke hat ihre eigene Hierarchie und es kann viele solcher "Blickwinkel" geben. Innerhalb des Intellekts gibt es anscheinend keine klare Hierarchie (dies bedeutet nicht die "Hardware"-Ebene, die bestimmt, welcher Teil des Gehirns für welche Organe verantwortlich ist).

Quantengenetik

Über Quantencomputing und Quanteneigenschaften der Intelligenz wurden viele interessante Dinge erzählt. Manche glauben sogar, dass das Gehirn Quantenprozesse direkt zum Denken "zucken" kann.

Kurz gesagt, die Essenz des Quantencomputings läuft darauf hinaus. Die Ausgangsdaten werden auf eine kleine Anzahl von Elementarteilchen angewendet. Beim Auflösen von Daten werden gleichzeitig große Datenmengen verarbeitet. verschiedene Wege, außerdem kommunizieren diese Methoden miteinander, lernen von wem die Lösung besser, von wem schlechter ist, schlechte Entscheidungen werden abgeschwächt, gute gestärkt.

Dies geschieht aufgrund der Tatsache, dass jedes Teilchen beim Starten von Quantenberechnungen den Zustand aller anderen an der Berechnung beteiligten Teilchen vollständig "fühlt", und zwar sofort und ohne nennenswerten Energieaufwand. Beim Start der Lösung tauchen die Partikel in einen "verschmierten" ("verschränkten") Zustand ein, der von der Außenwelt nicht untersucht werden kann. In einem verschmierten Zustand hat jedes Teilchen keinen klaren physikalischen Zustand, jedes Teilchen befindet sich gleichzeitig in mehreren Zuständen und kann an mehreren parallelen Prozessen teilnehmen (überdies "fühlen" sich diese Prozesse). Je mehr Partikel an der Lösung teilnehmen, desto mehr Zustände kann dasselbe Partikel gleichzeitig annehmen.

Wenn wir versuchen, in einen verschmierten Zustand zu gelangen und zu sehen, was sich darin befindet, werden wir zu jedem Zeitpunkt spezifische physikalische Zustände von Teilchen erhalten, ohne einen Hinweis auf viele gleichzeitige Zustände. Außerdem wird nach einem solchen Eingriff der Entscheidungsverlauf vollständig zerstört, der multiple Zustand kann nicht wiederhergestellt werden. Daher ist es ein Rätsel, was in dem Intervall zwischen der Angabe der Eingabedaten und dem Entfernen des Lösungsergebnisses passiert. Es stellt sich heraus, dass eine kleine Menge von Eingabedaten im Lösungsprozess um viele Größenordnungen komplexere interne Zustände erzeugt, deren Entwicklung nicht klar ist, sich nicht für die Forschung eignet und dennoch die richtige Lösung liefert. Der bei der Untersuchung des verschmierten Zustands erfasste Zustand ist Natur. Mit der richtigen Kompilierung des Quantenalgorithmus ist es möglich, die Wahrscheinlichkeit, die richtige Lösung zu entfernen, viel höher als die Wahrscheinlichkeit, die falsche Lösung zu entfernen (d. h. die Lösung muss mindestens mehrmals entfernt werden).

Es scheint, dass Sie auf diese Weise fast kostenlos riesige Rechenleistung erhalten. Aber es gibt ein Problem - die Partikel der Lösung müssen vollständig von der Außenwelt isoliert sein, sonst wird die Außenwelt die Korrektheit des Lösungsverlaufs zunichte machen (Kohärenz verletzen). Es wird angenommen, dass eine vollständige Isolierung unmöglich ist, weil (wie die Quantenphysik sagt) jedes Teilchen, jedes Quant, zunächst über das gesamte Universum verschmiert ist und eng mit jedem anderen Teilchen, aus dem unser Universum besteht, verflochten ist. Und als Konsequenz dieser Meinung stellt sich heraus, dass Quantencomputer Teilchen nicht in einen Zustand eintauchen, der über alternative Universen verschmiert ist, sondern andere, sehr spezifische Teilchen aus unserem eigenen Universum anzieht, um Berechnungen zu parallelisieren. Es stimmt, dass dies die Schwierigkeiten beim Studium des inneren Zustands immer noch nicht beseitigt.

Daraus ergeben sich einige interessante Schlussfolgerungen. Quantencomputing bei hohen Leistungen wird uns zwar kein absolut echtes Computing liefern können, aber für plausible Lösungen beispielsweise in der künstlichen Intelligenz, wie oben beschrieben, durchaus geeignet. Und noch eine Schlussfolgerung, die sich eng mit der vorherigen überschneidet - Quantencomputer können keine Selbsterkenntnis, keine Selbstreflexion bieten, da sie ein integraler Bestandteil des Universums sind und daher sich selbst und das Universum als Ganzes nicht kennen können, da sie ein integraler Bestandteil davon. Aus diesem Grund treten tatsächlich Quantenunsicherheiten auf, wenn man versucht, die Zustände von Quantenteilchen zu messen, wie wir in den vorherigen Teilen bemerkt haben. Schließlich ist es unmöglich, sich selbst nur mit Hilfe seiner selbst vollständig zu kennen. Die Quantenunsicherheit ist in der Tat eine direkte Konsequenz aus dem Satz von Gödel, der besagt, dass ein formales System sich selbst nicht mit absoluter wahrer Genauigkeit erkennen kann.

Kommen wir nun zurück zur Intelligenz. Viele Forscher haben die Ähnlichkeiten zwischen den Eigenschaften des Quantencomputings und den intellektuellen Prozessen beim Menschen richtig erkannt. Die interessantesten Eigenschaften für uns sind wie folgt. Entscheidungseintritt und -austritt ist ein ziemlich einfacher Satz von Zuständen. Diese einfachen Zustände stürzen das Gehirn in einen viel komplexeren Zustand, der von außen nicht untersucht werden kann. Ein Versuch, diesen Zustand zu untersuchen oder eine Lösung zu entfernen, erzeugt wieder eine Menge einfache Zustände, außerdem sind diese Zustände auch probabilistisch und geben eher eine richtige als eine falsche Lösung. Es ist für einen Menschen schwierig, diesen inneren Zustand im Gegensatz zum Ein- / Ausstieg zu realisieren, aber dies ist ein innerer Zustand, der als "gefühlt" bezeichnet wird. Wie beim Quantencomputing sind das Setzen des Anfangszustands und das Entfernen der Lösung recht zeitaufwändig. Es ist also leicht für eine Person, "in sich selbst" zu denken, aber um ihre Gedanken nach außen zu einer anderen Person zu übertragen, müssen Sie sich anstrengen.

Nun bleibt nur festzuhalten, dass die oben genannten Eigenschaften von Quantencomputing und menschlicher Intelligenz praktisch eins zu eins auf den zuvor beschriebenen Algorithmus der künstlichen Intelligenz anwendbar sind, der auf einem genetischen Algorithmus basiert.

Denn tatsächlich scheint es, wo im Gehirn mit seinen Wellen, Frequenzen und Neuronen der Anschein eines genetischen Algorithmus, mit seinen Chromosomen und alternativen Lösungen entstehen kann? Von der anderen Seite betrachtet stellt sich heraus, dass der genetische Algorithmus nur eine der Manifestationen von mehr ist allgemeine klasse Prozesse.

Es stellt sich heraus, dass das Gehirn, um interessante Quanteneigenschaften zu zeigen, Quantenprozesse nicht direkt ziehen muss, es gibt pragmatischere Erklärungen. Und selbst das Quantencomputing selbst muss nicht die Mystik um Paralleluniversen und absolute Wahrheiten anziehen, denn sie können auf Mikroebene in einer Art genetischen Algorithmus organisiert sein, der nur vorgibt, Teilchen in einen verschmierten Zustand zu versenken, sondern tatsächlich Inhalt mit den Rechenressourcen seines eigenen Universums.

Es kann gut sein, dass an der Schnittstelle von Quantencomputing, genetischen Algorithmen und anderen Bereichen der künstlichen Intelligenz eine neue Berechnungstheorie entstehen wird, die es ermöglicht, leistungsfähigere Quantencomputer zu bauen und auf der Grundlage des rigorosen Apparats der Quantenphysik, um die Vorgänge in der Intelligenz genauer zu erklären. Denn was wir bisher im Intelligenzverständnis erreicht haben, gleicht einer Anekdote „Ich spüre in meinem Bauch, dass 0,5 + 0,5 ein Liter sein wird, aber mathematisch kann ich es nicht beweisen“, wann wir es können, aber wir können es nicht erkläre warum das so ist.

Interne Darstellung der Dinge

Wie stellt das Gehirn äußere Dinge dar? Es mag den Anschein haben, dass das Gehirn ein physikalisches Modell von Objekten und Phänomenen nachbildet, was zu vielen falschen Schlussfolgerungen führt. Tatsächlich ist die interne Darstellung überhaupt nicht dasselbe wie das physikalische Modell. Das interne Modell ist plausibel. Das interne Modell bildet ein Analogon, das nur die für uns wichtigsten Eigenschaften eines Objekts erfasst, die in der alltäglichen Erfahrung verwendet werden. Dieses interne Modell wird manchmal als "naive Physik" bezeichnet. Im Rahmen der Alltagserfahrung liefert ein solches Modell zwar falsche, aber durchaus praktikable Ergebnisse. Aber sobald wir die Grenzen der Alltagserfahrung überschreiten, versagt ein solches Modell.

Das Regelwerk, das ein solches Modell bildet, kann sehr weit von der realen physikalischen Darstellung entfernt sein. Aus diesem Grund trägt die interne Repräsentation im Anhang eine Vielzahl von "fantastischen" Eigenschaften von realen Objekten, die interne Repräsentation beginnt, "ihr eigenes Leben zu leben". Zum Beispiel Zeichentrickfilme. Eine Person kann leicht ein auf einer Karikatur gezeichnetes Gesicht erkennen, geschulte Personen können Karikaturen zeichnen. Aber Gesichtserkennungssysteme sind verblüffende Cartoons. Und das zu Recht, obwohl es ein plausibles Modell in Erkennern gibt, ist es dem physischen viel näher als dem menschlichen.

Die intrinsische Darstellung weist auch das zuvor beschriebene Komplexitätsdifferential auf. Es besteht darin, dass ein einfacheres Objekt oder Phänomen eine viel komplexere interne Repräsentation erzeugt, die für die Modellierung des Wesens der Dinge verantwortlich ist. Schließlich kann Intelligenz die Physik nicht direkt simulieren. Eine einfache Idee lässt ein „Gefühl“ für das Wesen der Dinge entstehen, wenn man spürt, warum das so ist, aber es nicht erklären kann. Eine komplexere Darstellung kann die Darstellung von Dingen auf die Ebene des Verstehens, der Fantasie, auf die Ebene des bewussten Denkens ziehen (Beispiel mit Cartoons).

Hallo Logik

Was ist Logik und woher kommt die höchste intellektuelle Aktivität?

Unser Intellekt hat sich von den einfachsten "Eintritt-Austritt"-Reaktionen zu der Kombination einer Vielzahl konkurrierender Prozesse entwickelt, die die Eintrittssituation in eine viel komplexere interne Repräsentation zerlegen.

Als Ergebnis können für einige Dinge Komplexe von Regeln von enormer Komplexität gebildet werden (viel komplizierter als die Physik des ursprünglichen Dings), die die interne Repräsentation dieses Dings sind. Wie genau diese Regeln sein können und wie ungefähr sie gebildet werden können, ist oben beschrieben. Hauptsache aber ist, dass durch einen solchen Komplexitätsunterschied zwischen Ausgangsphänomen und seiner Beschreibung eine qualitativ andere Darstellung dieses Phänomens möglich wird, die es ermöglicht, mit hoher Plausibilität neue Erkenntnisse über dieses Phänomen abzuleiten.

Lassen Sie mich daran erinnern, dass das Paradox von Intelligenz vs. Algorithmus darin besteht, dass ein Algorithmus die Physik einer Sache nur dumm simulieren kann, ohne das Wesen des Phänomens zu erkennen, kein neues Wissen über das Phänomen ableiten kann und nicht einmal die Wahrheit seiner Arbeit garantieren kann . Intelligenz ist aufgrund einer viel komplexeren inneren Darstellung des Wesens der Dinge in der Lage, nicht nur diese Dinge zu modellieren, sondern auch neue Erkenntnisse über sie abzuleiten und sogar die Wahrheit von Urteilen über diese Dinge zu beurteilen, und zwar mit einem hohen Grad an Plausibilität.

Der Übergang von Komplexität, der die Darstellung des Wesens von Gegenständen und Phänomenen in eine Darstellung entwickelt, die um viele Größenordnungen komplizierter ist als die ursprüngliche "Physik" von Gegenständen und Phänomenen, ist ein guter Kandidat für die Rolle des Verstehens. Es findet eine Zerlegung in eine komplexe interne Repräsentation statt - es gibt ein Verständnis und eine qualitativ hochwertige Bedienung des Wesens der Dinge, eine flexible Reaktion ist möglich, wenn unerwartete Situationen auftreten. Es gibt keine solche Zerlegung - nur dummes "Pauken" ist möglich, blindes Festhalten an dem Algorithmus, der kein neues Wissen liefert und keine Aussage über das Wesen oder die Wahrheit seiner Arbeit macht und verwirrt, wenn neue Faktoren auftauchen.

Das stumpfe Festhalten an dem Algorithmus zieht nicht die höchste intellektuelle Aktivität an, daher ist es schnell und effektiv, wo nur eine klare Reaktion auf typische Situationen erforderlich ist. Höhere intellektuelle Aktivität mit dem Reiz des Verstehens kann verschiedene Algorithmen langsam vernieten, aber nicht schnell ausführen. Auch Kombinationen dieser Verfahren sind möglich.

Die nächste logische Frage lautet: Ist es möglich zu verstehen, was beim Verstehensprozess passiert? Und die gleiche logische Antwort - höchstwahrscheinlich ja, aber dies erfordert eine solche Darstellung der im Intellekt ablaufenden Prozesse, die der Komplexität der ursprünglichen intellektuellen Prozesse um viele Größenordnungen überlegen wäre. Das heißt, wir können etwas über den Intellekt lernen, wir können etwas tun, aber wir sind nicht in der Lage, die Arbeit des menschlichen Intellekts vollständig und qualitativ zu verstehen - einfach die Kraft des Gehirns reicht nicht aus. Obwohl wir die Muster studieren und verwenden können, wie wir heute Computer verwenden, ohne sich der Prozesse, die in ihnen ablaufen, voll bewusst zu sein. Es ist unrealistisch, sich die Prozesse vorzustellen, die in allen Millionen von Transistoren ablaufen, obwohl man gut verstehen kann, wie die logischen Einheiten von Computerschaltungen funktionieren und wie sie zu höheren Ebenen zusammengefasst werden. Das gleiche gilt für den Intellekt.

Aus dem oben Gesagten wird deutlich, warum das Verstehen schwer zu erklären ist und warum das Verstehen leicht zu fühlen ist, warum es möglich ist, logische Konstruktionen zum Verstehen aufzustellen und warum es sehr schwierig ist, die gesamte Grundlage, die zum Verstehen geführt hat, zu reproduzieren selbst. Dazu gibt es weiter unten einen ganzen Abschnitt. Von hier aus wird klar, was ein Gefühl ist, was ein Gefühl eines Zustandes ist, warum Gefühle und Empfindungen schwer auszudrücken, aber leicht zu fühlen sind. Im Allgemeinen gibt es viele interessante Konsequenzen, die interessiert sind - schauen Sie in Richtung der Quanteneigenschaften des Bewusstseins.

Eine andere Frage ist, wie genau es sich herausstellt, dass wir uns unserer selbst bewusst sind, uns der Welt um uns herum bewusst sind. Werden denkende Maschinen diese Art von Bewusstsein bekommen? Dieses grundlegende philosophische Frage fällt nicht in den Bereich der künstlichen Intelligenz, aber wir werden trotzdem versuchen, sie im nächsten Teil zu beantworten.

Wenn wir den Gedanken über die Unterschiede in Komplexität und Verständnis fortsetzen, kommen wir zu dem Schluss, dass eine superkomplexe interne Darstellung am Ende in der Lage sein wird, sehr dünne, man könnte sagen, scharfe, superharmonisierte Kanten aus der internen Darstellung von Dinge. Mit anderen Worten, Idealisierung oder Abstraktion der ursprünglichen Dinge.

Diese Abstraktionen verdanken ihre Entstehung einer multiplen Kombination einer Vielzahl von internen, widersprüchlichen und sich verbindenden Prozessen. Aber im Gegensatz zu den Ergebnissen der Interaktion der Mehrheit interne Prozesse, bei Abstraktionen wird das Ergebnis nicht verschwommen (breit), sondern sozusagen in einer scharfen Spitze, in einer oder mehreren sehr klaren Kanten oder Spitzen gesammelt.

Natürlich entstehen Abstraktionen unter anderem durch die wiederholte Beobachtung der Manifestationen ihrer realen Prototypen und durch wiederholte Reflexionen über die interne Repräsentation von Objekten. Darüber hinaus ist die Wiederholung dieser Beobachtungen und Reflexionen sicherlich höher als bei anderen Objekten, die keine Abstraktionen liefern. Und die Natur der Regeln, die eine interne Darstellung von Abstraktionen geben, ist wahrscheinlich geordneter, mehr an die maximale Harmonisierung angepasst.

Der nächste Schritt ist, dass sich solche Spitzenharmonisierungen in langen Ketten vereinigen können, die nach ihren eigenen Gesetzen handeln. So erhalten wir eine neue Ebene des Denkens, abstrakt oder logisch. Natürlich ist diese Ebene viel schwieriger als gewöhnliches Verstehen, und nicht jedes mit Verstand ausgestattete Geschöpf ist zu komplexen logischen Konstruktionen fähig.

Solche abstrakten Ketten werden nach ihren eigenen Gesetzen leben, irgendwo den ursprünglichen Prototypen ähneln, sich von ihnen entfernen.

Achte darauf, woher die logischen Konstruktionen kommen. Sie befinden sich nicht auf der algorithmischen Ebene und nicht einmal auf der nächsten Ebene, der Ebene des Verstehens. Sie sind bereits die dritte Ebene der Intelligenz, eine Art Verstehen über Verstehen.

Es bleibt daran zu erinnern, dass das Gehirn im Prozess logischer Konstruktionen nur "vorgibt", dass es wie ein dummer Algorithmus funktioniert, wie eine primitive Inferenzmaschine. Tatsächlich sind die an logischen Konstruktionen beteiligten Prozesse um Größenordnungen komplizierter als die ursprünglichen logischen Konstruktionen, und aufgrund eines solchen Komplexitätssprungs schafft es der Intellekt, neue logische Konstruktionen zu erstellen und ihre Wahrheit mit einem hohen Maß an Genauigkeit zu beurteilen.

Ebenso kann das Gehirn aufgrund "schwerer" Prozesse die Arbeit von Computern (Turing-Maschinen) nachahmen, obwohl es scheint, dass das Gehirn "subtilen" Algorithmen folgt (insbesondere wenn das Gehirn dafür trainiert ist).

Und noch etwas über subtile logische Konstruktionen und Algorithmen. Für den Uneingeweihten mag es so erscheinen, als ob sich ein erleuchteter Weiser beim Nachdenken über mathematische Wahrheiten oder beim Erstellen von Computerprogrammen in irgendeine Art von Meditation hinsetzt und mit Hilfe der richtigen Argumentation zu den richtigen Schlussfolgerungen gelangt oder das richtige Programm entwickelt . Tatsächlich ähnelt das, was passiert, eher dem folgenden Diagramm.

  • Hat sich "etwas" einfallen lassen, eine erste Version (oder sogar versehentlich generiert).
  • Ich überprüfte die Arbeit dieses "Etwas", indem ich logisches Denken nachahmte, auswendig lernte Problemzonen.
  • Ich habe versucht, die Problembereiche durch Tippen zu verbessern (ich habe dieses "etwas" verbessert).
  • Auschecken der verbesserten Version, und so weiter.

Schließlich ist das Gehirn nicht so sehr in der Lage, im Handumdrehen korrekte logische Ketten zu generieren, sondern die Arbeit dieser Ketten zu überprüfen, indem es logisches Denken nachahmt. Eine andere Sache ist, dass das Gehirn eine riesige "Bibliothek" von Vorlagen für verschiedene Situationen hat, plus eine Reihe plausibler Regeln, wie diese Vorlagen miteinander kombiniert werden können. Durch die Anwendung dieser Regeln und Muster ist es mit einer kleinen Anzahl von Versuchen möglich, gute logische Überlegungen und Programme zu erstellen. Insbesondere können solche Regeln eine Diagnose des Betriebs verschiedener Kombinationen von Schablonen umfassen und können und werden dynamisch aktualisiert werden, anstatt jedes Mal logische Konstruktionen für die gesamte Datenmenge auszuführen.

In dieser Woche konnte man einen äußerst motivierenden Fall von einem GeekBrains-Studenten lesen, der den Beruf studiert hat, in dem er über eines seiner Ziele sprach, das zum Beruf führte - den Wunsch, das Prinzip der Arbeit zu erlernen und zu lernen, wie man selbst Game-Bots erstellt.

Tatsächlich war es der Wunsch, perfekte künstliche Intelligenz zu schaffen, sei es ein Spielmodell oder ein mobiles Programm, der viele von uns auf den Weg zum Programmierer gebracht hat. Das Problem ist, was hinter den Tonnen steckt Lehrmaterial und der harten Realität der Kunden wurde genau dieser Wunsch durch einen einfachen Wunsch nach Selbstentwicklung ersetzt. Für diejenigen, die noch nicht begonnen haben, sich ihre Kindheitsträume zu erfüllen, hier eine kurze Anleitung zur Schaffung einer echten künstlichen Intelligenz.

Phase 1. Enttäuschung

Wenn wir davon sprechen, zumindest einfache Bots zu erstellen, funkeln die Augen und Hunderte von Ideen blitzen in seinem Kopf auf, was er in der Lage sein sollte. Bei der Umsetzung stellt sich jedoch heraus, dass die Mathematik der Schlüssel zur Entschlüsselung des tatsächlichen Verhaltens ist. Ja, Künstliche Intelligenz ist viel schwieriger als das Schreiben von Anwendungsprogrammen – Kenntnisse im Softwaredesign allein reichen Ihnen nicht aus.

Mathematik ist das wissenschaftliche Sprungbrett, auf dem Ihre weitere Programmierung aufbauen wird. Ohne Wissen und Verständnis dieser Theorie werden schnell alle Ideen über die Interaktion mit einem Menschen zerbrechen, denn ein künstlicher Verstand ist eigentlich nichts anderes als eine Reihe von Formeln.

Stufe 2. Akzeptanz

Wenn die Arroganz durch die Schülerliteratur ein wenig niedergeschlagen ist, können Sie mit dem Üben beginnen. Sich in LISP oder andere zu stürzen lohnt sich noch nicht – man sollte sich zunächst mit den Prinzipien des KI-Designs vertraut machen. Python eignet sich sowohl für das schnelle Lernen als auch für die Weiterentwicklung - dies ist die Sprache, die für wissenschaftliche Zwecke am häufigsten verwendet wird, dafür finden Sie viele Bibliotheken, die Ihnen die Arbeit erleichtern.

Stufe 3. Entwicklung

Nun wenden wir uns direkt der Theorie der KI zu. Sie lassen sich grob in 3 Kategorien einteilen:

  • Schwache KI - Bots, die wir in Computerspielen sehen, oder einfache Helfer wie Siri. Sie erfüllen entweder hochspezialisierte Aufgaben oder sind ein unbedeutender Komplex davon, und jede Unvorhersehbarkeit der Interaktion verwirrt sie.
  • Starke KI ist eine Maschine, deren Intelligenz mit der eines menschlichen Gehirns vergleichbar ist. Heute gibt es keine wirklichen Vertreter dieser Klasse, aber Computer wie der Watson sind diesem Ziel sehr nahe.
  • Perfekte KI ist die Zukunft, ein Maschinengehirn, das unsere Fähigkeiten übertreffen wird. Es geht um die Gefahr solcher Entwicklungen, die Stephen Hawking, Elon Musk und das Film-Franchise Terminator vor der Gefahr warnen.

Natürlich sollten Sie mit den einfachsten Bots beginnen. Um dies zu tun, denken Sie daran gutes altes spiel"Tic-Tac-Toe" bei der Verwendung des 3x3-Feldes und versuchen Sie die grundlegenden Handlungsalgorithmen selbst herauszufinden: die Siegwahrscheinlichkeit bei fehlerfreien Aktionen, die erfolgreichsten Plätze auf dem Feld für die Position der Figur, die müssen das Spiel auf ein Unentschieden reduzieren und so weiter.

Mehrere Dutzend Spiele und die Analyse der eigenen Aktionen können Sie wahrscheinlich alle wichtigen Aspekte hervorheben und in Maschinencode umschreiben. Wenn nicht, denken Sie weiter und dieser Link ist hier nur für alle Fälle.

Übrigens, wenn Sie sich noch mit Python beschäftigt haben, können Sie einen ziemlich einfachen Bot erstellen, indem Sie sich auf dieses ausführliche Handbuch beziehen. Auch für andere Sprachen wie C ++ oder Java werden Sie problemlos Schritt-für-Schritt-Materialien finden. Mit dem Gefühl, dass hinter der Entwicklung von KI nichts Übernatürliches steckt, können Sie den Browser sicher schließen und persönliche Experimente starten.

Stufe 4. Aufregung

Jetzt, wo die Dinge in Gang gekommen sind, möchten Sie wahrscheinlich etwas Ernsteres schaffen. Eine Reihe der folgenden Ressourcen helfen Ihnen dabei:

Wie Sie bereits aus den Namen entnehmen können, handelt es sich um APIs, mit denen Sie den Anschein einer ernsthaften KI erstellen können, ohne Zeit zu verschwenden.

Stufe 5. Arbeit

Jetzt, wo Sie bereits ganz klar verstehen, wie Sie KI erstellen und gleichzeitig verwenden, ist es an der Zeit, Ihr Wissen auf ein neues Niveau zu bringen. Erstens erfordert es eine disziplinäre Studie namens Machine Learning. Zweitens müssen Sie lernen, mit den entsprechenden Bibliotheken der ausgewählten Programmiersprache zu arbeiten. Für das Python, das wir in Betracht ziehen, sind dies Scikit-learn, NLTK, SciPy, PyBrain und Numpy. Drittens ist Entwicklung unverzichtbar. Und am wichtigsten ist, dass Sie jetzt KI-Literatur mit vollem Verständnis der Materie lesen können:

  • Künstliche Intelligenz für Spiele, Ian Millington;
  • Spielprogrammierungsmuster, Robert Nystorm;
  • KI-Algorithmen, Datenstrukturen und Idiome in Prolog, Lisp und Java, George Luger, William Stbalfield;
  • Computational Cognitive Neuroscience, Randall O'Reilly, Yuko Munakata;
  • Künstliche Intelligenz: Ein moderner Ansatz, Stuart Russell, Peter Norvig.

Und ja, die gesamte oder fast die gesamte Literatur zu diesem Thema wird in einer Fremdsprache präsentiert. Wenn Sie also KI professionell erstellen möchten, müssen Sie Ihr Englisch auf technischem Niveau verbessern. Dies ist jedoch für jeden Bereich der Programmierung relevant, oder?