Head up Displays vs Behavior Trees

Behavior Trees gelten als gute Möglichkeit, domänenspezifisches Wissen als Computerprogramm zu speichern. Sie verwenden Variablennamen und Methodenaufrufe um mögliche Aktionen der Künstlichen Intelligenz zu strukturieren. Üblicherweise kommen Behavior Trees in Computerspielen zum Einsatz wenn Non-Player-CHaraktere gescriptet werden. Neben Behavior Trees gibt es noch eine weitere Methode, wie man Domänenwissen speichern kann. Diese hat den Vorteil, auch mit ungenaumen Wissen umgehen zu können. Gemeint sind Head-up Displays. Head up Displays werden ähnlich wie normale Computerprogramme auch programmiert. Das heißt, im Stile der objektorientierten Programmierung erstellt. Ihr Vorteil ist, dass sie einerseits machinenlesbar sind, aber gleichzeitig nicht die undankbare Aufgabe besitzen eine künstliche Intelligenz steuern zu müssen. Sondern Head up Displays sind unverbindliche Zusatzinformationen, die für den Spieler eingeblendet werden. Er kann sich daran orientieren muss es aber nicht.

Behavior Trees sind 1:1 mit einer Künstlichen Intelligenz verbunden. Wenn als Methode enthalten ist „walkto“ dann wird diese Methode nach dem Start des Bots tatsächlich so ausgeführt. Wurde sie falsch programmiert, stürzt der Roboter ins Chaos. Im Gegensatz dazu werden Head-up Displays nicht ausgeführt, jedenfalls nicht direkt. Sie werden zwar auch innerhalb der Game-loop abgearbeitet aber im worst-Case sind die dargestellten Informationen verpixelt, es sind nur Bildpunkte mehr nicht. Head-up Displays erfordern eine weitere Instanz will man sie zur Steuerung von Robotern einsetzen. Und zwar eines Head-up Display Parsers, also ein Computerprogramm was die dargestellten Informationen abgreift und zu sinnvollen Entscheidungen weiterverarbeitet. Dieser Head-up Display Parser ist sehr viel kompakter aufgebaut als ein klassischer Behavior Tree, er enthält nicht das komplette Domänen-Wissen sondern ist nur ein Zusatzlayer der dafür sorgt, dass der Bot auch mit unklaren Informationen noch klarkommt.

Bei der Wissensmodellierung wird Expertenwissen machinenlesbar aufbereitet. Behavior Trees sind dazu in der Lage. Das Prozesswissen wird in Task untergliedert, die sich gegenseitig aufrufen können. Es handelt sich um eine verbesserte Finite State Machine, die ebenfalls Wissen darstellen kann. Bei Head-up Displays ist das Abstraktionsniveau höher. Damit ist gemeint, dass ein Head-UP Display ebenfalls Wissen enthält, das aber nicht direkt mit den Aktoren verbunden ist. Die Funktionsweise ist üblicherweise so, dass das Head-up Display Informationen anzeigt, die werden von einem Man-in-the-loop interpretiert und der Man-in-the-loop bewegt dann den Joystick. Das Head-up Display kann also nicht direkt den Joystick bewegen.

Das interessante an Head-up Displays ist, dass sie anders funktionieren als man es erwarten dürfte. Sie verwenden keineswegs Programmiersprachen wie Prolog und auch keine OWL Ontologien um Wissen in deklarativer Form darzustellen, sondern wie der Name schon sagt sind Head-up Display ein Grafikfenster von 300×200 Pixel auf denen unstrukturierte Informationen angezeigt werden. Also Piktogramme, Zahlen, Texte und Karten. Sie sind damit das genaue Gegenteil einer formalen OWL-Ontologie. Dieser Unterschied kommt dadurch zustande, dass bei der OWL-basierenden Wissensmodellierung von einem autonomen System ausgegangen wird, während Head-up Display einen Human-Operator in the-loop benötigen. Wenn kein Mensch vor dem Bedienpult sitzt, der die lustigen Grafiken auswertet, bewegt sich der Roboter keinen Millimeter. Head-up Displays sind keine autonomen Systeme sondern sie sind hochgradig abhängig von menschlicher Intelligenz.

Es geht darum, einerseits den menschlichen Operator in der Loop zu belassen gleichzeitig jedoch die Domäne durch ein Computerprogramm abzubilden. Also sowohl Künstliche Intelligenz als auch menschliche Intelligenz zu verwenden. An dieser Stelle sei an den wegweisenden Vortrag „Edwin Olson: Winning the MAGIC 2010 Autonomous Robotics Competition“ erinnert, https://www.youtube.com/watch?v=OuOQ–CyBwc

The Integrated Display and Environmental Awareness System

Über die NASA hört man ja in letzter Zeit nicht viel gutes. Aber beim Rumsuchen im Internet ist mir da eine Technologie aufgefallen, die wirklich nützlich zu sein scheint. Und zwar hat die NASA ein sogenanntes „The Integrated Display and Environmental Awareness System“ entwickelt, das ist ein Head-up-Display um Astronauten und auch die Bodencrew bei Tasks zu unterstützen. Wie das ganze aussehen soll wurde in einem gut gemachten Clip erläutert:
http://purplerockscissors.com/work/nasa

Man sieht darin ein Videosignal über das Anweisungen drübergelegt wurden. Da steht dann, dass man eine Tür öffnen soll. Ferner gibt es unten noch einen Taskplan der anzeigt, wie die aktuelle Aktion im Verhältnis zu anderen Aktionen einzuordnen ist und rechts oben gibt es noch ein weiteres Menü mit einem Instruktor. Das ganze erinnert an das beliebte Computerspiel „3d Fahrschule“ hat jedoch einen wissenschaftlichen Hintergrund. Insgesamt finde ich das ganze eine äußerst interessante Technologie, Daumen hoch, gut gemacht NASA. Da sage nochmal jemand, dass Raumfahrt nichts bringt und das die Teflon-Pfanne das einzige ist, was uns die Mondmission gebracht hat.

https://www.nasa.gov/sites/default/files/atoms/files/gcd_industryday_ideas.pdf

Offiziell wurde IDEAS für die nächste bemannte Marsmission entwickelt, aber man kann die Technologie durchaus auch für andere Aufgaben einsetzen, beispielsweise für Wartungsaufgaben auf der ISS oder wenn man PCs am Boden zusammenbauen will. Das ganze ist also nicht auf den Weltraum beschränkt. Ja, ich könnte mir sogar vorstellen, dass man damit Nanoroboter steuern könnte. Also nicht im großen Weltraum sondern auf ganz kleiner Ebene. Ein ähnliches Konzept ist unter der Bezeichnung „MobiPV“ bekannt, ebenfalls wurde es von der NASA zur Unterstützung von Astronauten entwickelt.

In eine ähnliche Richtung geht das NASA Projekt „Roman Tutor“, https://www.researchgate.net/profile/Khaled_Belghith/publication/221414012_An_Approach_to_Intelligent_Training_on_a_Robotic_Simulator_Using_an_Innovative_Path-Planner/links/09e4150a79cef24487000000.pdf Es handelt sich um eine Lernsoftware, mit der Astronauten lernen können wie man den Roboterarm der ISS bewegt. Das heißt, sie steuern den Arm manuell mittels Joystick und die Software gibt dann Kommentare wie „gut gemacht“, oder „vorsicht, Kollision“.

STRIPS Planner für Intelligent Tutoring Systeme

Die „International Conference on Automated Planning and Scheduling“ Konferenz gilt als solide Veranstaltungsreihe in denen die neuesten Trends in Sachen AI Planning diskutiert werden. Leider gibt es ein Problem: woher bekommt man die PDDL Datei um darauf die wunderschönen Planner anzuwenden? Eine Antwort bleiben die Vortragenden schuldig und so werden die üblichen Dockworkers-robot und blockworld Probleme bemüht, von denen bekannt ist wie sie gelöst werden. Aber Rettung naht. Die sogenannten Intelligent Tutoring-Systeme haben sich der Aufgabe verschrieben genau zu erstellen was die ICAPS Leute benötigen: ein formales Domänenmodell. Ein Intelligent Tutoring-System ist normalerweise ein Serios Game mit dem Human-Operator trainiert werden, also eine Lernsoftware mit der man Autofahren lernt oder den Zusammenbau von PCs trainiert. Ein interessanter Nebeneffekt ist, dass solche Systeme über ein formales Domänenmodell verfügen. Das heißt, in der Software ist hinterlegt, welche Events auftreten, welche Tasks existieren und was passiert wenn man diese kombiniert. Was passiert eigentlich, wenn man beides miteinander kombiniert? Nach meiner Recherche gibt es dazu noch keine Forschungsliteratur, aber vermutlich entsteht dadurch dann künstliche Intelligenz. Man hat dann zwei Systeme gemeinsam: ein Domänenmodell und einen AI Planner. Theoretisch müsste es dem Planner gelingen, eigenständig aufgaben zu lösen. Und zwar Aufgaben wie „Fahre zur nächsten Tankstelle und beachte dabei die Verkehrsregeln penibel“.

Neuer Vorlesungspodcast vom KIT online

Unter der Adresse https://www.youtube.com/watch?v=ryqsTcbO9nc hat das Karlsruher Institut für Technologie (KIT) eine Reihe an Vorlesungsmitschnitten online gestellt, die sich mit Künstlicher Intelligenz beschäftigen. Genauer gesagt geht es um Sprach- und Bilderkennung. Die ersten Episoden, welche von Alexander Waibel vorgetragen werden, beginnen noch mit relativ einfachen Methoden wie neuronale Netze und stochastischer Mustererkennung, spätestens ab Episode 12 wird es jedoch spannend weil dann rule-based Systems, PDDL und Strips vorgestellt werden. Insgesamt gebe ich dem Podast die bestmögliche Note sehr gut, weil das Niveau der Vorlesung hoch genug ist und vor allem als Unterrichtssprache Deutsch gewählt wurde. Der Podcast ist konkurrenzfähig zu den Online-Lectures von Harvard und Stanford.

Das interessante an dem KIT Podcast ist, dass es kein Vorlesungsmitschnitt ist. Das heißt, die Veranstaltungsreihe wurde nicht an einer traditionellen Universität im Hörsaal aufgenommen sondern wurde als dezidierter Online-Content am KIT produziert. Es gibt noch weiteren hochqualitativen Content der wiederum in Konkurrenz steht zum etablierten Hochschulsystem. Für die Hörer ist das ein Gewinn, weil sie darüber Einblick erhalten in die Themen, welche an den Universitäten nicht unterrichtet werden.

Künstliche Intelligenz in Computerspielen

https://www.youtube.com/watch?v=hkradQTE7kQ Üblicherweise ist die Vermittlung von Künstlicher Intelligenz philosophisch orientiert. Das heißt, der Dozent nähert sich von einem Standpunkt, der nichts mit Informatik zu tun hat und stellt in Aussicht, sich mit menschlichem Denken und Bewusstsein beschäftigen zu wollen. Dieser Ansatz ist vor allem in den universitären Vorlesungen der 1970’er-2000’er verbreitet. Leider ist die Qualität der Vorlesungen nicht hoch und so bietet es sich an über Alternativen nachzudenken. Eine wird im oben verlinkten Video vorgestellt und zwar den Ansatz Künstiche Intelligenz im Kontext Computerspiele zu unterrichten. Auch dort besteht die Gefahr, dass das Niveau der Veranstaltung zu niedrig ist oder der Dozent zu wenig Erfahrung hat, aber es gibt zumindest einen Rahmen innerhalb dem man sich bewegen kann. Das heißt, laut Definition wird Philosophie und Cognitionswissenschaft ausgeblendet und es geht um eher praktische Dinge wie z.b. die Frage, wie man Mario dazu bringt über einen Graben zu springen.

Wirklich andere Bereiche als in einer normalen KI-Vorlesungen wird man nicht verwenden, vielmehr kommen altbekannte Verfahren wie Pathplanning, LISP, Algorithmen usw. zum Einsatz. Der Unterschied besteht jedoch darin, dass sehr viel zielgerichteter argumentiert wird. Es geht eben nicht darum, zu beweisen ob ein Problem np-hard ist, oder wie A* funktioniert, sondern worum es geht, ist einen neuen Highscoore aufzustellen oder das konkrete Spiel zu lösen. Das heißt, Künstliche Intelligenz wird nicht länger anlasslos diskutiert sondern mit einem konkreten Ziel.

Ist das menschliche Gehirn ein Computerprogramm? — Die Thesen des John R. Searle

Obwohl heute Computer einen hohen gesellschaftlichen Stellenwert einnehmen, sind die philosophischen Diskussionen über die Grenzen der Informatik zumindest im öffentlichen Diskurs nicht existent. Man muss schon etwas zurückgehen in die Zeit der 1970’er und 1980’er um die alten Debatten aufzuspüren, die sich mit der Frage beschäftigt haben ob Maschinen denken können. Damals war das Umfeld für derartige Diskussionen ein fruchtbares, es war die Zeit als Computer noch nicht via PC oder Nintendo in die Privathaushalte eingedrungen waren und die Softwareindustrie praktisch nicht existent war. Aus Sicht der damligen Zeit war die angekündigte KI-Revolution gescheitert, die vollmundigen Versprechungen das Roboter und intelligente Maschinen den Alltag bestimmen haben sich nicht bewahrheitet. Das war nicht nur eine Theorie sondern das konnte man damals auch als Laie erkennen, gab es doch in den 1980’er noch nichtmal Computer die gegen Menschen im Schach gewinnen konnten oder die einfach nur eine MP3 Datei abzuspielen in der Lage waren.

Kurz gesagt, früher hatte die These dass Künstliche Intelligenz gescheitert sei durchaus an Schlagkraft. Und so ging die Kritik am vermeintlichen Computerboom soweit, dass auch die These von der starken Künstlichen Intelligenz angezweifelt wurde, z.B. von John R. Searle der sich mit der Frage beschäftigt hat, ob der menschliche Geist ein Computerprogramm ist, http://www.cs.utexas.edu/~mooney/cs343/slide-handouts/philosophy.4.pdf

Seine Schlussfolgerung damals war, dass dies verneint werden konnte, das also Menschen keine Computer sind und es auch nicht möglich wäre, menschliches Verhalten oder gar das menschliche Gehirn zu duplizieren. Von dieser Debattenkultur ist heute nicht mehr viel zu spüren, eher im Gegenteil, durch das neugestartete Großprojekt „Human Brain Projekt“ wird im Grunde daran geforscht ob das menschliche Gehirn nicht vielleicht doch nur ein Computerprogramm sei. Man kann aus soviel Eifer ableiten, dass die Ausführungen von Searle wohl nicht so überzeugend gewesen sind. Und tatsächlich, seine damaligen Überlegungen liegen heute noch im Internet zur Einsicht bereit und sind aus einer sprachwissenschaftlichen Perspektive heraus geschrieben. Rückblickend muss Searle wohl der Vorwurf gemacht werden, dass er nicht wissenschafltich sondern eher moralisch argumentiert hat. wirklich stichhaltige Argumente, dass das menschliche Gehirn nicht womöglich doch ein Computerprogramm ist, konnte er nicht liefern.

Nichts desto trotz ist die Frage nach wie vor unbeantwortet. Der aktuelle wissenschatliche Stand lässt sich ungefähr so zusammenfassen: wenn man Computer ordentlich nach den Methoden des Softwareengineerings programmiert kann man ihnen sogut wie alles beibringen: Schach, Jeopardy, Autofahren, Starcraft Spielen, Notenkomposition usw. Und all die Dinge, die heute noch nicht in Software realisiert worden sind wie z.B. das Ansteuern von humanoiden Laufrobotern kann man zumindest davon ausgehen, dass es allenfalls eine Fleißaufgabe darstellt. Das heißt, es ist anzunehmen dass mit genügend viel Aufwand und rund 100 Mio Lines of Code in Java man einen Roboter so ansteuert, dass er geradeauslaufen kann und nicht umfällt selbst wenn man ihn anstubst. Insofern sind echte Grenzen von Software derzeit nicht erkennbar, und man kann auch nicht zeigen, dass die nächsten 50 Jahre nichts mehr im Bereich Softwareentwicklung passieren wird. Kommen wir zur zweiten Frage, woraus das menschliche Gehirn besteht. Hier ist sich sich die Wissenschaft nach wie vor unklar. Fakt ist zumindest, dass es etwas mit neuronalen Netzen zu tun hat, was man in Experimenten zeigen kann. Aber wie genau die Neuronen das Denken steuern weiß derzeit niemand. Demzufolge wäre es im Bereich des möglichen, dass Neuronen exakt so funktionieren wie ein natürlicher Supercomputer auf dem ein Betriebssystem läuft und wenn Menschen die Augen aufmachen, sehen sie nicht wirklich die Welt, sondern sehen lediglich eine hochentwickelte Software welche im Gehirn ausgeführt wird, so eine Art von Linux für Menschen sozusagen.

Diese These klingt ziemlich abgehoben und beweisen kann man sie nicht. Vor allem ist nicht klar, wer diese Software geschrieben haben soll und wie man sie verändert. Allerdings ist es mindestens genauso schwierig die These zu wiederlegen, also den Beweis zu führen, dass menschliche Gehirne eben keine Computer sind sondern etwas komplett anderes. Und vermutlich wird auch das „Human Brain Projekt“ darauf keine Antwort liefern können, Man kann erkennen, dass wir es hierbei mit einem klassisches wissenschaftliches Rätsel zu tun haben, was die Neugierde beflügelt und die Leute dazu treibt, sich damit näher auseinanderzusetzen. Im Grunde ist Künstliche Intelligenz und das Funktionieren des menschlichen Gehirns eines der wenigen echten Abenteuer die noch geblieben sind. Denn bekanntlich wurden alle Kontinente bereits erforscht, das Universum komplett vermessen und alle Pflanzen katalogisiert, auch die Frage wie man die Pocken heilt ist weitestgehend beantwortet und selbst die Wirkung von Stickstoff auf den Boden ist keine echte Herausforderung mehr.

Das wünschenswerte Ergebnis des Human Brain Projektes ist es in die Fußstapfen zu treten von John R. Searle, also wissenschaftlich zu begründen, dass der menschliche Verstand kein Computerprogramm ist. Leider ist dieser Nachweis nicht ganz einfach zu führen, zumal man mit relativ simplen Mitteln zeigen kann, dass der menschliche Verstand auch nur das kann, was Computer können und das man biologische Neuronen zu einem Computer zusammenbauen kann, auf dem man dann wiederum einen Linux-Kernel ausführen könnte. Im Grunde ist die Vorstellung, dass das menschliche Bewusstsein das eines Roboters ist, etwas was den Menschen Angst macht. Und es würde auch keinen Sinn ergeben, dass man selber zwar von einer Software gesteuert wird, sich dessen aber nicht bewusst ist.

Obwohl im Bereich Neuroinformatik sehr viel darüber geschrieben wird, wie man das menschliche Gehirn nachbauen möchte, ist es beinahe banal einen neuronalen Schaltkreis zu entwickeln. Diesbezügliche Software (Hopfield-Netze oder ähnliche mathematische Verfahren gibt es schon länger und für praktische Anwendungen sind sie nutzlos). Viel spannender ist vielmehr die Frage, ob man aus menschlichen Neuronen einen Transistor bauen kann, also ein simples physikalisches Bauteil was entweder On oder Off sein kann, und was man zu einer Turing-Maschine zusammenschalten kann. Diese Art von Informatik unterscheidet sich in nichts von klassischer Informatik, man muss also keineswegs künstliche Intelligenz erfinden, sondern es reicht einfach aus zu zeigen, dass man auf einem Neurotransistor-Schaltkreis einen Programm ausführen kann, also eines was in der Sprache C, Java oder Assembler erstellt wurde. Und dann braucht man im nächsten Schritt nur noch zu ermitteln, welches Programm denn auf einem Gehirn insgesamt läuft und wie man es zur Laufzeit anpassen kann.

SOAR VS. JIRA

Eine kognitive Architektur wie SOAR soll die Frage beantworten, welche Bedingungen erforderlich sind, damit eine Künstliche Intelligenz entwickelt werden kann. Genauer gesagt möchte SOAR ein Framework sein zur Erstellung einer derartigen Software. Die Features von SOAR entsprechen ungefähr dem, was der Mensch als Bedingungen mitbringt: Visual Modul, Motorik, Sprache, Denken usw.

Das Mißverständnis besteht darin, dass SOAR eine sehr merkwürdige Sicht auf den Softwareentwicklungsprozess hat. SOAR behauptet beispielsweise, dass zur Erstellung von Anwendersoftware wie auch zur Erstellung von hochentwickelten Steuerungsprogrammen für Roboter es nötig sei, Augen, Ohren und eine Nase bereitzustellen. Wird nach dieser Methodik Software entwickelt? Eher nicht, sondern die Voraussetzungen für Softwareentwicklung unterscheidet sich stark von dem was SOAR behauptet.

Es ist zwar richtig, dass Software prinzipiell den Menschen emulieren soll und eine Programm wie Microsoft Word beispielsweise eine gute Sekräterin zu ersetzen vermag, aber daraus zu folgern, dass man zur Entwicklung von MS-Word künstliche Augen benötigen würde oder neuronale Netze der hat die letzten 30 Jahre auf einem anderen Planeten verbraucht. Aber was ist dann die Voraussetzung damit Software entsteht, insbesondere solche Software mit Künstlicher Intelligenz? Mit einem Wort zusammengefasst kann man diese voraussetzung mit Jira bezeichnen, einem Tool für das kolaborative Arbeiten was als Gattungsbegriff für eine Ganze Palette an Bugtracker, Wikis, Versionskontrollsysteme und integrierte Entwicklungsumgebungen steht. Der Begriff Jira bezeichnet im wesentlichen wie ein moderners Softwaregroßprojekt durchgeführt führt, und zwar dass daran mehrere Leute beteiligt sind, dass diese Leute miteinander kommunzieren, dass Projekttermine überschritten werden und dass Anwender sich über fehlende Features beklagen.

Der Unterschied zwischen SOAR und Jira ist, dass man mit Jira zumindest kleinere Software entwickeln kann, wie z.B. 3D Spiele, kommerzielle Software oder auch Steuerungssoftware für Flugzeuge. Während mit SOAR das leider nicht geht, weil die benötigte Funktionalität dort fehlt.

Im Grunde kann man SOAR als ein weiteres Tool aus dem Werkzeugkasten der AI-Community betrachten, es reiht sich ein in die lange Reihe von Expertensystemen, neuronalen Netzen und Lernalgorithmen. Jedesmal hat man es mit theoretisch gut begründeten Verfahren zu tun, welche dazu führen dass man — wenn man das Verfahren richtig verstanden hat — eine vollständige lernfähige Künstliche Intelligenz erhält, die nicht nur in der Lage ist selbstständig zu denken, sondern zusätzlich auch noch perfekt ist. Nur eines kann man mit neuronalen Netzen und ähnlichen Verfahren leider nicht: mehrere hundertausend Lines of Code erzeugen um damit konkrete Aufgabe zu erfüllen, die im Rahmen eines kommerziellen Softwareprojektes erstellt werden müssen. Die Gemeinsamkeit von nahezu allen größeren Softwareprojekte der letzten 20 Jahre wie z.b. Windows XP, IBM OS/2, Linux, Mac OS X, Adobe Photoshop oder SAP R/3 war, dass keines davon mit SOAR als Entwicklungsumgebung durchgeführt wurde. Sondern dass der Code irgendwie anders entstanden ist, also nicht von einer Künstlichen Intelligenz erstellt wurde. Offenbar scheinen zwei Merkmale vorzuliegen: erstens, große Softwareprojekte werden von Menschen durchgeführt, zweitens, große Softwareprojekte bestehen aus sehr viel Lines of Code.

Inwiefern SOAR dabei helfen kann, solche Projekte effizienter durchzuführen ist derzeit unklar, aber vielleicht wissen es ja die Erfinder von kogntiven Architekturen?

Geschichtlich gesehen ist die Künstliche Intelligenz keineswegs eine sehr alte Wissenschaft wie häufig behauptet wird, sondern das erste Mal auf hohem Niveau Schach haben Computer erst im Jahr 1997 gespielt, und das erste Mal erfolgreich ein Automobil gesteuert hat Software erst im Jahr 2005. Auch das erste Sieg eines Computers in Jeopardy ist erst in den letzten Jahren erfolgt. Insofern zeugt es geradezu von einem Desinteresse für die Künstliche Intelligenz, wenn man behauptet, dass mit LISP schon vor langer Zeit denkende Maschinen realisiert wurden. Sondern richtige Künstliche Intelligenz im Sinne einer konkreten Aufgabe die von einer Maschine gelöst wird, wurde erst möglich als es möglich wurde auch größere Softwareprojekte durchzuführen. Von der IBM Watson „Frage-und-Antworte-Rate-Maschine“ weiß man beispielsweise dass ihr Codeumfang die Marke von 1 Mio LoC überschritten hat und das bei dessen Erstellung vermutlich Jira-ähnliche Vorgehensmodelle eingesetzt wurden, also mehrere Leute an der Entwicklung beteiligt waren und dass Sourcecode ein- und ausgecheckt wurde. Es ist anzunehmen, dass auch die Künstliche Intelligenz der Zukunft an die höhere Anforderungen gestellt wird, diesem Prinzip treu bleiben wird. Anders gesagt, es ist vollkommen ausgeschlossen, dass man die DARPA Robotics Challange als Einzelperson mit einem 100 kb großen Sharewareprogramm wird gewinnen können, sondern vermutlich wird man Software in der Größenordnung von IBM Watson oder mehr benötigen.

Interessanterweise wird über derlei Details in der SOAR Community keinerlei Diskussion geführt, dort steht man auf dem Standpunkt es würde ausreichen, einen von diesen supertollen Reinforcement-Learning Algorithmen zu implementieren der beweisbar zur Mustererkennung in der Lage ist, und damit wäre dann die konkrete Aufgabe (so lächerlich sie auch sein mag) praktisch schon gelöst. Das diese Einstellung im Grunde nichts mit Künstlicher Intelligenz zu tun hat, wissen die Beteiligten selbst am besten. Und sehr zur Verwunderung der Öffentlichkeit spricht beim IBM Waton Softwareteam niemand davon, dass man an Künsticher Intelligenz oder gar an AGI arbeiten würde, weil man ja nur versucht eine Software zu entwickeln, die gut Sprache versteht.

KÜNSTLICHE INTELLIGENZ VS JIRA
Schaut man sich einmal an, wie erfolgreiche KI-Projekte der Vergangeheit nach außen präsentiert werden so findet man Erklärungen über die Funktionsweise folgender Art: Der IBM Schachcomputer aus dem Jahr 1997 wurde angeblich softwareseitig über ein Verfahren namens alpha-beta-pruning den Spielbaum durchsuchen und als Hardware ASIC Chips einsetzen um die Geschindigkeit zu erhöhen. Von der IBM Watson Maschine wird verbreitet, dass dort Prolog zum Einsatz kam als Linguistik-Engine, und über das selbstfahrende Auto Stanley wissen die Reporter zu berichten, dass dort ein SLAM Algorithmus zur Positionsbestimmung eingesetzt wurde (ein kompliziertes mathematisches Verfahren was aus Unsicherheit schlussfolgern kann).

Mit diesen Erläuterungen hat man dann einen ganzen Strauß an Begründungen dafür geliefert, warum das jeweilige Projekt in der Lage war die Aufgabe zu lösen, gegen Menschen zu gewinnen oder sonstwie intelligente Leistungen zu zeigen. Im Kern wurden die Systeme als Künstliche Intelligenz bezeichnet und jeweils mit dem Detail einmal in Form von alpha-beta-pruning, einmal als SLAM und einmal als Prolog Implementierung. Nur war diese Erklärung wirklich die Wahrheit? Das derartige Erklärungen nicht nur unvollständig sondern schlichtweg falsch sind, kann man am besten erkennen, wenn man versucht aufgrund dieser Erklärung die Software einmal zu Hause nachzuprogrammieren. Also dann frisch ans Werk: so ein SLAM Algorithmus ist schnell implementiert und benötigt gerade mal 500 Zeilen C++ Code. Auch ein alpha-beta-pruning Algorithmus findet sich als Codesnippet bei Stackoverflow. Nur, führt man diesen Code dann aus, ist man weit davon entfernt eine vergleichbare Leistung zu zeigen wie es IBM oder das Team um Sebastian Thrun. Offenbar reicht es nicht aus, einfach nur einen SLAM Algorithmus zu programmieren.

Die Wahrheit ist, dass jedes dieser Projekt anders durchgeführt wurden. Nicht mit Methoden der Künstlichen Intelligenz und auch nicht mit Prolog, sondern der eigentliche Motor hinter derartigen Projekten war Jira. Rein formell mag es zwar zutreffen, dass damals im Jahr 1997 im Rahmen des Schachprojektes von IBM innerhalb der Jira-Oberfläche auch eine Kommunikation bezüglich alpha-beta-pruning stattfand, allerdings gab es auch jede Menge anderer Themen die damals diskutiert wurden, beispielsweise zu Fragen von Linux vs. OS/2 oder über Programmiersprachen. Insofern ist es geradewegs Unsinn, wenn man behauptet, dass die damals erstellte Software mit Hilfe von alpha-beta-pruning angetrieben wurde.

All diese Beispiele aus der Vergangenheit der Künstlichen Intelligenz zeigen, dass das Hauptproblem nicht die Künstliche Intelligenz als solche war oder bestimmte Algorithmen, die vermeintlich oder tatsächlich denken können, sondern primär waren solche Großprojekte vor Software-Entwicklungsprojekte. Solche Projekte führt erfolgreich dasjenige Team zu Ende, was in der Lage ist termingerecht ausführbaren Sourcecode zu liefern. Und im Gegenzug kann man sagen, dass all jene Projekte scheitern wo genau das nicht funktioniert. Der Grund warum bis heute die Robotik noch nicht marktreif ist liegt nicht etwa daran, dass bestimmte wichtige Algorithmen aus dem Bereich der inversen Kinematik oder der Bilderkennung noch gar nicht erfunden wurden, sondern der eigentliche Grund ist der, dass die entsprechenden Software nicht termingerecht fertiggestellt wurde. Das also entweder noch gar kein Jira-Projekt erstellt wurde, es viel zu viele offene Bugs gibt oder das Meilensteine nicht eingehalten werden.