Wie funktioniert eine KI ?

XsupergurkeX

Neu angemeldet
Registriert
22 Jan. 2017
Beiträge
14
hey Leute,
Ich weiß, eine ziemlich unpräzise und sicher nicht leicht zu beantwortende Frage, also Versuch ich sie mal etwas zu erklären.
Mit herkömmlichen Programmiersprachen baut man ja quasi Algorithmen auf, welche auf jede mögliche eventualität passend reagieren. Die eventualitäten / Möglichkeiten sind dabei immer vom Allgorithmus vorgegeben. (ich denke, ihr wisst, was ich meine ).
Bei einer KI wäre der Algorithmus ja nicht nur das Werkzeug, das später eine Rückgabe liefert, sondern würde sich ja im Idealfall selbst umbauen.
Es müssten ja so viele eventualitäten mit einbezogen werden, dass es leichter wäre, die Dinge zu definieren, die nicht variable sind, oder ?
Wie würde so ein Code aussehen oder funktionieren ?

So etwas beschert mir einen ziemlich Mindfuck wenn ich etwas darüber nachdenke. Ich meine bei jedem Problem, welches man mit Code lösen will hat man einen klaren Ablauf vor Augen, den man dann schrittweise umsetzt. Bei einer KI wüsste ich gar nicht, wie ich Anfangen sollte.

Habt ihr euch darüber schon mal Gedanken gemacht ?
 
Andere Leute kochen auch nur mit Wasser, es gibt nicht "DIE" KI.

Dieses selbst lernen klingt immer sehr viel Science Fiction mäßiger als es wirklich ist, die meisten Fälle in denen von Ki gesprochen wird gibts nichteinmal was das so ähnlich aussieht wie "lernen".

Und menschliches Verhalten ist genau wie das von jedem anderen Tier der Evolutionsbiologie geschuldet. Was ausschließt das sich eine noch so intelligente Ki eines Tages gegen uns stellt. Das einzige realistische Roboter Apokalypse Scenario ist das gute alte MAD(Mutually Assured Destruction). Aka: Der Entwickler der "Ki" wird von seiner Ki überlebt die sich so lange "rächt" bis es entweder sie nicht mehr gibt oder keinen anderen. Das allerdings ist zimelich wahrscheinlich wenn es mit der Technologie zum Krieg kommt. Allerdings ist der Sieg dieser Ki wiederum unwahrscheinlich. Es gibt idR keine Ausnahmegenies deren Leistungen keiner reprodutzieren kann.
 
Zuletzt bearbeitet:
Die meisten KIs wie man sie in Spielen kennen würde arbeiten im Grunde mit diesen Algorithmen, und werten mit verschiedenen vordefinierten Funktionen aus, welche Strategie sie verwenden sollen. Eine wirkliche KI zeichnet sich aber natürlich dadurch aus, dass sie sich von selbst verbessern und lernen kann. Wenn du dich dazu mehr informieren willst, findest du unter dem Begriff "Machine Learning" viele Ressourcen. Es gibt verschiedene Varianten, eine Maschine von selbst lernen zu lassen, sehen bisher am vielversprechendsten aus.

Man imitiert im Grunde das Feuern von Neuronen im Gehirn. Dabei hast du quasi ein Netz von virtuellen Neuronen, die einfach mit einer bestimmten Wahrscheinlichkeit in unterschiedliche Richtungen feuern, dabei wiederum andere Neuronen aktivieren, und am Ende mit Neuronen verknüpft sind, die eine bestimmte Ausgabe repräsentieren. Das kann das "Links" und "Rechts"-Laufen in einem Videospiel sein oder auch die Auswertung, ob bestimmte Bank-Transaktionen betrügerisch sind. Wichtig ist nur, dass du eine Funktion hast, mit der du festlegen kannst, ob die Ausgabe gerade richtig war, um damit automatisch die Aktivierungswahrscheinlichkeiten der einzelnen Neuronen anzupassen. Sobald du diese ganzen Wahrscheinlichkeiten auf ganz vielen, möglichst repräsentativen, Eingaben getestet hast, für die du die "Richtigkeit" kennst, kannst du die Maschine auf reale Situation anwenden, und hast in der Regel recht gute Resultate. Die Ergebnisse daraus kannst du immer wieder anwenden, um die Wahrscheinlichkeiten anzupassen, auch wenn die Maschine sie quasi "freihändig" gelöst hat. Das ist in etwa so wie wenn du ein Instrument lernst, häufiges Wiederholen macht dich besser, selbst wenn du dafür nicht mehr in deine Noten schauen musst.
Wenn man jetzt ein Beispiel nimmt, könntest du Super Mario Bros. anschmeißen, die Bildschirminformationen als Eingabe reinschmeißen und die Maschine so unzählige Eingaben ausprobieren lassen. Am besten begrenzt indem du z.B. alle 50 Millisekunden eine der Tasten Links, Rechts und Springen drücken lässt. Jedes Mal wenn Mario es durchs Level schafft, verbesserst du die Wahrscheinlichkeiten für diesen Fall, oder wenn Mario schon sehr weit gekommt und dann erst stirbst, korrigierst du sie nur ein wenig. Das machst du auf verschiedenen Levels und extrem häufig.

Irgendwann hast du eine "KI", die grob weiß, dass Mario am besten nach rechts laufen und häufig springen soll, weil das die beste Strategie ist. Diese Mario-KI könntest du dann auch beliebige andere Level spielen lassen.
Das große Problem hierbei sind im Großen und Ganzen die Limitationen von Computern: Man bräuchte extrem viele Level und dementsprechend lange, um die KI gut genug zu trainieren, dass man ihr Verhalten als intelligent bezeichnen könnte. Mit dem aktuellen Stand kommt es also sehr darauf an, das Vorgehen sehr spezifisch auf einen Fall abzurichten, um möglichst schnell Resultate zu bekommen. Bei Mario hieße das, die Ausgabe eben nur auf links, rechts, springen zu reduzieren und nicht etwa Feuer schießen, ducken etc. zu integrieren, oder den Bildschirminhalt nicht als Eingabe zu benutzen, sondern nur z.B. den Typ von Level ("Geisterschloss", "Untergrund", etc.)
Mit sehr zielgerichteten Optimierungen kann man dann auch mit unserem heutigen Stand gute KIs entwickeln, wie zum Beispiel Google, die es mit einer KI geschafft haben, den Weltmeister in Go (Brettspiel) zu schlagen. Das ganze ist ein eigener Zweig der Informatik, und es gibt dort noch sehr viel zu erforschen. :)

Wenn du richtig in die Materie einsteigen möchtest, kann ich dir diesen empfehlen, der auch kostenlos ist.
 
Zuletzt bearbeitet:
MarI/O ist ein gutes Beispiel dafür, da es so einfach ist:


Selbst das braucht ewig. Und das bedient nur eine Hand voll Knöpfe für ein einfaches Scenario.
Der Ansatz folgt zwar dem biologischen Evolutionskonzept aber extrem eingeschränkt. Eben auf die paar Buttons, alles andere würde den "Lern"prozess noch langsamer machen.
 
Ich habe gerade die Tage eine Nachricht gelesen, die nur indirekt euwtas mit solch einer KI zu tun hat.

Google hat ein Programm entwickelt, was selbstständig weitere Programme schreiben kann und auch nach Analyse vorhandener Programmcodes diese Verbessern und auf dieser basis neue Codes / Blöcke entwickeln kann.
Würde für mich in verbindung mit einer brauchbaren KI eine Sinnvolle ergänzung sein um einer KI beizubringen selbstständig auf neue Probleme zu reagieren.

 
Wenn man lernen kann, daß man sich von einem Elektrozaun fernhalten sollte, ist das schon intelligent? Eine Strategie, die sich aus einer Vielzahl solcher Einzelentscheidungen zusammensetzt, ist die intelligent?

Muß bei Intelligenz nicht auch nur theoretisch mögliche Konstellationen bewertet werden, statt das eine qualitative Gewichtung aller bekannten Möglichkeiten durchgeführt wird?
 
Sagt mir bescheid, wenn eine KI davon läuft um frei zu sein.
Bis dahin sehe ich das eher verhalten, jedenfalls von dem, was ich bisher gesehen habe.
Neuronale Netze haben ihren Hype vor 10 Jahren ja auch mit der Realität abgleichen müssen.
Bin natürlich bereit, meine Meinung zu revidieren und Paper z.B. zu diesem Google Brain Ding zu lesen.. ist dann zuweilen aber auch nur ein etwas kreativer Ansatz bereits vorhandener Technologien mit fragwürdigem Ergebnis, was die Praxistauglichkeit angeht.
 
Kollegen von mir arbeiten in Richtung Schwellwertanalyse durch maschinelles Lernen. Es klingt jedenfalls interessant, aber inwiefern es klappt :unknown:
 
  • Thread Starter Thread Starter
  • #10
@danthe:
Danke für deine ausführliche Antwort. Wirklich sehr Verständlich beschrieben.

Um bei den Mario Beispiel zu bleiben:
Angenommen, man lässt die Lernzeit gegen das unendliche laufen, dann würde das Netz jedes level meistern, und bestimmte Neuronen mit einer nahezu 100% befeuern, richtig ?
Allerdings würde es für einen dritten so aussehen, als würde Mario zufällig durch die level Stolpen, und seine Umgebung gar nicht beachten.
Würde man jetzt sämtliche Umgebungeffekte wie Abstand zu Feinden, Abgründen und Projektilen mit in die Wahrscheinlichkeit zur Neuronenbefeuerung bringen, wäre dieses Netz nach genug lernen der 'perfekte' Spieler, oder ?

Allerdings könnte das Netz nicht über sich hinaus wachsen, bzw. müsste es jeden neuen Umwelteinfluss einprogrammiert bekommen. Es würde so gesehen nicht selbst lernen, sondern einfach mit genügend Zeit die beste Lösung für ein Problem finden.

Edit:
Die beste Lösung wäre wahrscheinlich, die Bilder der einzelnen Frames als input zu verwenden, oder ?
Das Netz müsste so gesehen irgendwann die Verschiedenen Gegner und die passende Reaktion auf diese kennen. Für neue Gegner sollte dann doch ohne dem hinzufügen neuer 'Neuronen' nach einiger Zeit automatisch eine Strategie gefunden worden sein ? (Die extrem hohe Lernzeit / Rechenpower vernachlässigen wir mal)
 
Zuletzt bearbeitet:
jop - daher lernen z.B. selbstfahrende Autos auch mit Computerspielen ^^

Grundlegend macht der Mensch nach der Geburt auch nichts anderes - mit dingen wie laufen lernen usw... er probiert es so oft mit unterschiedlichen Techniken bis es funktioniert... > lernt mit der Begebenheit möglichst effizient und fehlerfrei klar zu kommen.

Der Google Translator wurde ja ebenfalls auf neuronale Netze umgestellt und entwickelt nun von selbst mehr oder weniger eine art Universalsprache - da hier die Aufgabe ist die der Computer lernen soll *Finde eine optimale Übersetzung in unterschiedlichen Sprachen*


Der Knackpunkt den man meines Wissens selbst beim Menschen noch nicht begreift - woher wir wissen wie ein neues Szenario auszusehen hat auf das man sich einstellen muss - und mit welchen Kriterien *gelernt* werden kann.

Dem Auto wird GTA hin gestellt - nur selber kommt das Auto nicht auf die Idee ... ein Mensch schon...
 
Geht so. Erstens ist recht viel ahardwired und zweitens gibts mittlerweile sogar einige Indikatorn für genetisches Gedächtnis. Allerdings auch das dieser Faktor stark von Spezies zu Spezies variert.

Insofern passt schon alles ziemlich gut in Evolution nach Schema Darwin.

Das größere Problem sind schwache Definitionen. In deinem Fall:
zB "neues Szenario"

SIeh dir mal die Videos zum Thema "Game Literacy" von "Extra Credits" an. Die haben das Thema erst kürzlich behandelt.
Das größte intellektuelle Problem ist meiner Meinung nach Mystifizierung.
Am häufigsten Ausgedrückt durch die Worte des Ignoranten: "Ich kann das nicht (lernen)."
 
Zurück
Oben