class: center, middle # Künstliche Intelligenz ### Zwischen Faszination und Ernüchterung #### Hauke Goos-Habermann --- ### Über mich / den Vortrag - Bin Entwickler des Softwareverteilungssystems m23, biete Support zu Linux und Freier Software - Bin am Thema "KI" interessiert ohne ein Anwendungszenario zu haben - Meine Interessen - Die Grundlagen hinter *sogenannter KI* - Aktuelle freie KI-Frameworks - Handfeste Beispielprojekte mit vorzeigbaren Ergebnissen - Grenzen und weitere Überlegungen - Der Vortrag ist eine subjektive Auswahl von Punkten, die mich interessieren oder mir wichtig erscheinen --- ### Meine Zeitleiste - 1996: IBMs
Deep Blue
(1996: 216 spezielle VLSI-Schachprozessoren, 36 **GB** Ram, 144 GB Festplatte. 1997: 480 Prozessoren, 30 GB Ram, 120 GB Festplatte) schlägt den damals amtierenden Schachweltmeister Garri Kasparow erstmalig beim Schach und probiert ca. 126 Millionen Stellungen pro Sekunde durch. .copyright[Aus
de.wikipedia.org/wiki/Deep_Blue
(
CC-BY-SA-3.0
)] Zum Vergleich: Mit 8 **MB** Ram waren PCs 1996 gut ausgestattet, 16 und mehr waren eher Luxus. Festplatten waren zwischen 850 MB und 2,5 GB üblich. - 199?: Ein Schulkamerad erzählt, daß er ein künstliches neuronales Netz implementiert hat. - 1996/1998:
"Das Konzept des Spieles
Creatures
ist es, Kreaturen, meist sogenannte Norns, zu züchten. Die Kreaturen im Spiel besitzen ein verhältnismäßig weit entwickeltes neuronales Netzwerk, zusätzlich wird ein biochemisches System und eine DNA simuliert, um die „Kreuzung“ zwischen Kreaturen zu ermöglichen. [...]
Die Spieleengine von Creatures 2 (1998) war so leistungsstark, dass die britische Armee darauf aufmerksam wurde und diese kurzerhand 1998 ein Projekt starteten, in dem die Norns das
Bedienen und Fliegen von Eurofightern
erlernten."
.copyright[Aus
de.wikipedia.org/wiki/Creatures_(Spieleserie)
(
CC-BY-SA-3.0
)] --- ### Meine Zeitleiste - 199?/200?: Für ein Computerrennspiel fanden die Entwickler keinen guten Algorithmus, um die Autos auf der Ideallinie fahren zu lassen. Stattdessen entwarfen, trainierten und verwendeten sie ein (kleines) künstliches neuronales Netzwerk. - 2015:
"
DeepDream
ist eine Software [...] aus dem Bereich Computer Vision, die auf dem Prinzip eines künstlichen neuronalen Netzes basiert. Dabei wird ein Convolutional Neural Network (faltendes neuronales Netzwerk), das eigentlich der Erkennung und Klassifizierung von Inhalten in Bildern dient, zur Veränderung des eingegebenen Bildes verwendet, wobei Strukturen in das Bild eingefügt werden, die beispielsweise Hunden oder Gebäuden ähnlich sehen."
.cls[ .copyright[Aus
de.wikipedia.org/wiki/DeepDream
(
CC-BY-SA-3.0
)] ] ![img33l](gfx/deepdream-out.jpg) ![img33l](gfx/deepdream-out-mini.jpg) --- ### Meine Zeitleiste - 2016: CeBIT: Japanische Universität stellt Ki-Projekte vor: Z.B. eine Gurkensortiermaschine, die Gurken fotografiert, mit
Tensorflow
kategorisiert und mit einem Schieber in verschiedene Behälter schubst. - 2017:
pix2pix
: Transformation von einem Ursprungsbild zu einem Zielbild. .cls[ .copyright[z.B.
github.com/phillipi/pix2pix
(
BSD
)] ] - 2017 (deutsche Variante 2018):
"
Common Voice
ist ein von Mozilla gestartetes Crowdsourcing-Projekt zur Erstellung einer freien Datenbank für Spracherkennungs-Software. Das Projekt wird von Freiwilligen unterstützt, die Beispielsätze mit einem Mikrofon einsprechen und Aufnahmen anderer Nutzer überprüfen. Die transkribierten Sätze werden in einer Stimm-Datenbank gesammelt [...]."
.cls[ .copyright[Aus
de.wikipedia.org/wiki/Common_Voice
(
CC-BY-SA-3.0
)] ] - 2017: Parallel zu Common Voice entwickelt Mozilla die Spracherkennungs-Engine
DeepSpeech
, eine TensorFlow-Implementierung der DeepSpeech-Architektur von Baidu. --- ### Meine Zeitleiste - 2019:
"Im Januar 2019 wurde
AlphaStar
vorgestellt, ein KI-Programm, das das Echtzeit-Strategiespiel StarCraft II spielt. [...]
In zwei Sätzen zu je fünf Spielen gegen die professionellen Spieler Dario „TLO“ Wünsch und Grzegorz „MaNa“ Komincz gewann AlphaStar jedes Spiel. [...]
Besondere Stärken von AlphaStar waren Micromanagement und Multitasking, wurde aber im letzten Spiel durch ungewöhnliche Aktionen des menschlichen Spielers [MaNa] aus dem Tritt gebracht."
.copyright[Aus
de.wikipedia.org/wiki/DeepMind#AlphaStar
(
CC-BY-SA-3.0
)]
Mitschnitte, Analysen, Kommentare und weitere Demonstrationen sind auf YouTube verfügbar. Suchworte: "alphastar starcraft 2". - 2019:
Population Based Training
: Gleichzeitiges Trainieren von vielen zufällig aufgebauten Netzen (Typ und Tiefe) zum Finden der "optimalen" Zusammenstellung (Hyperparameter). Gut funktionierende Netze tauschen ihre Hyperparameter aus, um die Ergebnisse der abgeleiteten Netze weiter zu optimieren.
.copyright[
deepmind.com/blog/population-based-training-neural-networks
] --- ### Wer hat's erfunden? * 1943: McCulloch-Pitts-Zelle * 1950: Alan Turing macht Vorschlag für ein neues "Fachgebiet der künstlichen Intelligenz" * 1956: Als Gründungsveranstaltung der Künstlichen Intelligenz als akademischem Fachgebiet gilt die Dartmouth Conference im Sommer 1956 * Ende der 1960er Jahre entwickelte Joseph Weizenbaum (1923–2008) vom MIT mit einem relativ simplen Verfahren das Programm ELIZA, in dem der Dialog eines Psychotherapeuten mit einem Patienten simuliert wird. * ... Viele Theorien, Gedanken und Abhandlungen, aber praktische Anwendung schwierig. .cls[ .copyright[Aus
de.wikipedia.org/wiki/Geschichte_der_k%C3%BCnstlichen_Intelligenz
(
CC-BY-SA-3.0
)] ] --- ### Warum kommt KI erst jetzt ins Rollen? * Viel Rechenleistung verfügbar: Parallele Berechnung auf (mehreren) Grafikkarten oder Spezialchips wie Googles TPUs (Tensor Processing Unit) * Viele Trainingsdaten frei verfügbar: Große kategorisierte (Bilder-)Datensätze können heruntergeladen werden * OpenSource-Frameworks verfügbar: z.B. TensorFlow (Google), Torch (Facebook) oder Keras, welches verschiedene Backends nutzen kann. * Viele Beispielprogramme verfügbar: Auf GitHub, GitLab und anderen Seiten. Suchworte z.B.: tensorflow, keras, gan, cnn, cyclegan oder lstm. * Ki-Baukästen: Cloudfirmen bieten (vereinfachte) Weboberflächen zum Zusammenklicken von KNN, Hochladen von Trainingsdaten, dem Trainieren und Anwenden an. --- ### Was kann man damit machen? -
Kategorisierung
: z.B. Bilder automatisch mit Stichworten versehen oder den Handlungsverlauf in Videos erkennen und als Text beschreiben. -
Bildtransformationen
mit direkter Entsprechung: z.B. Zeichnung zu Foto (pix2pix), Satellitenbilder zu Vorschlägen für OpenStreetMap-Karten (mapwith.ai) -
Bildtransformationen
ohne
direkte Entsprechung: z.B. Stil von Malern auf Fotos übertragen oder Pferde in Zebras umwandeln -
Spracherkennung
(DeepSpeech), automatische
Übersetzungen
, ... -
Generierung
von Inhalten: z.B. Gesichter, Katzen, fotorealistische Fahrräder, Autos oder Hotelzimmer, Bildauflösung vergrößern und dabei Details hinzuerfinden, Level für Computerspiele, Musikstücke (z.B. magenta.tensorflow.org), Töne, Wetterberichte, Artikel, Drehbücher usw. - Gute KI-Gegner für Computerspiele - ... --- ### Kategorisierung ![img33l](gfx/I_Need_More_Toys,_STAT!-cogdogblog--CC0-1.0.jpg) * Hund: 99% * Katze: 0,7% * Maus: 0,3% .cls[ .copyright[Bild:
cogdogblog
/
Creative Commons CC0 1.0
] ] ![img33l](gfx/Tchiorny_Terrier-Stephan_Czuratis--CC-BY-SA-2.5.jpg) * Hund: 95% * Katze: 4,7% * Maus: 0,3% .cls[ .copyright[Bild:
Stephan Czuratis
/
Creative Commons BY-SA-3.0 de
] ] Projekt z.B.
https://github.com/xblaster/tensor-guess
--- ### Bildtransformationen mit direkter Entsprechung Fassaden anhand eines Bauplanes zusammensetzen ![img50l](gfx/pix2pix-tensorflow-facades-train.jpg) Trainingsdaten (Paare von Ursprungs- und Zielbild) .copyright[Bild:
github.com/affinelayer/pix2pix-tensorflow
/
MIT
] .cls[ ![img50l](gfx/pix2pix-tensorflow-facades-result.jpg) Anwendung des trainierten Netzes .copyright[Bild:
github.com/affinelayer/pix2pix-tensorflow
/
MIT
] ] --- ### Bildtransformationen mit direkter Entsprechung Luftbilder in Straßenkarte umwandeln ![img50l](gfx/pix2pix-tensorflow-maps-train.jpg) Trainingsdaten (Paare von Ursprungs- und Zielbild) .copyright[Bild:
github.com/affinelayer/pix2pix-tensorflow
/
MIT
] .cls[ ![img50l](gfx/pix2pix-tensorflow-maps-result.jpg) Anwendung des trainierten Netzes .copyright[Bild:
github.com/affinelayer/pix2pix-tensorflow
/
MIT
] ] --- ### Bildtransformationen mit direkter Entsprechung ![img50l](gfx/pix2pix-tensorflow-kanten2foto-result.jpg) Anwendung des trainierten Netzes Umriß in fotorealistisches Bild umwandeln .copyright[Bild:
github.com/affinelayer/pix2pix-tensorflow
/
MIT
] .cls[ ![img50l](gfx/pix2pix-tensorflow-tag2nacht-result.jpg) Anwendung des trainierten Netzes Tageslichtaufnahme in Nachtbild umwandeln .copyright[Bild:
github.com/affinelayer/pix2pix-tensorflow
/
MIT
] ] --- ### Bildtransformationen mit direkter Entsprechung ![img50l](gfx/pix2pix-tensorflow-sw2farbe-result.jpg) Anwendung des trainierten Netzes Schwarzweißbild in Farbaufnahme umwandeln .copyright[Bild:
github.com/affinelayer/pix2pix-tensorflow
/
MIT
] --- ### Bildtransformationen mit direkter Entsprechung .cls[ ![img20l](gfx/katze2burg-input.png) Eingabebild .copyright[Bild:
Nicolai Schäfer
/
CC-BY-SA-2.0-de
] ] .cls[ ![img20l](gfx/katze2burg-target.png) Erwünschtes Ergebnis .copyright[Bild:
Kozak1410
/
CC-BY-SA-3.0-pl
] ] .cls[ ![img20l](gfx/katze2burg-output.png) Errechnete Ausgabe ] --- ### Bildtransformationen ohne direkte Entsprechung ![img20](gfx/cycleGAN-foto.jpeg).copyright[Bilder:
github.com/junyanz/CycleGAN
/
MIT
] Nachempfundene Malstile ![img100](gfx/cycleGAN-maler.jpeg) --- ### Bildtransformationen ohne direkte Entsprechung Pferd in Zebra umwandeln ![img100](gfx/horse2zebra.gif) .copyright[Bild:
github.com/junyanz/CycleGAN
/
MIT
] --- ### Generierung von Inhalten 32x32-Pixel-Katzen ![img100](gfx/cat-generator.jpg) .copyright[Bilder:
github.com/aleju/cat-generator
/
MIT
] 32x32-Pixel-Gesichter ![img100](gfx/face-generator.jpg) .copyright[Bilder:
github.com/aleju/face-generator
/
MIT
] --- ### Die Grundidee ![img80](gfx/Eingabe-Netz-Ausgabe.png) Das KNN soll aus Eingabedaten die gewünschten Ausgabedaten erzeugen - Beim Training werden Daten ins Netz geben und dieses solange angepaßt, bis die Ausgabe dem gewünschten Ergebnis ähnlich genug ist. - Beim Anwenden des trainierten Netzes werden Daten hineingeben und die Ausgabe verwenden. --- ### Eine künstliche Zelle ![img100](gfx/1024px-ArtificialNeuronModel_deutsch.png) .cls[ .copyright[Aus
de.wikipedia.org/wiki/Datei:ArtificialNeuronModel_deutsch.png / Chrislb
(
CC-BY-SA-3.0
)] ] Hierbei müssen alle nötigen Informationen zu jedem Zeitpunkt verfügbar sein. --- ### Langes Kurzzeitgedächtnis (LSTM) ![img80](gfx/Long_Short_Term_Memory.png)
.copyright[Bild:
de.wikipedia.org/wiki/Datei:Long_Short_Term_Memory.png / BiObserver
(
CC-BY-SA-3.0
)] LSTM-Zellen sind deutlich komplexer aufgebaut und können selbstständig Informationen für spätere Durchläufe speichern und wieder verwerfen. Sie werden bei Aufgabenstellungen eingesetzt, bei denen nicht alle Informationen zum benötigten Zeitpunkt vorliegen. So ergibt sich der Sinn von gesprochenen Worten beispielsweise erst aus den aufeinanderfolgenden Lautfolgen und dem Kontext. --- ### Von der Zelle zum Netz Neben diesen beiden Zellentypen gibt es weitere, wie unter
de.wikipedia.org/wiki/K%C3%BCnstliches_neuronales_Netz#Klassen_und_Typen_von_KNN
beschrieben. Mehrere Zellen (graue große Kreise) können zu einem Netz zusammengefügt werden. Z.B. zu einem einschichtigen Netz:
![img50](gfx/SingleLayerNeuralNetwork_deutsch.png) .cls[ .copyright[Aus
de.wikipedia.org/wiki/Datei:SingleLayerNeuralNetwork_deutsch.png / Chrislb
(
CC-BY-SA-3.0
)] ] --- ### Zweischichtiges Netz ![img80](gfx/Multi-Layer_Neural_Network-Vector.svg.png) .cls[ .copyright[Aus
de.wikipedia.org/w/index.php?title=Datei:Multi-Layer_Neural_Network-Vector.svg / Offnfopt
(
CC-BY-SA-3.0
)] ] --- ### Rekurrentes Netz (RNN) ![img50](gfx/RecurrentLayerNeuralNetwork_deutsch.png) .cls[ .copyright[Aus
de.wikipedia.org/w/index.php?title=Datei:Multi-Layer_Neural_Network-Vector.svg / Offnfopt
(
CC-BY-SA-3.0
)] ] --- ### Faltendes neuronales Netzwerk (CNN) ![img50l](gfx/3D_Convolution_Animation.gif) * Über das Eingabebild (Graustufenbild) mit der Kernel-Matrix wandern * Jeden Bildpunkt (Zahl zwischen 0-255) des Eingabebildes mit dem dazugehörigen Gewicht aus der Kernel-Matrix multiplizieren * Summe aller Produkte bilden und in Zielmatrix eintragen .cls[ .copyright[
www.martina-nolte.de / Martina Nolte
(
CC-BY-SA-3.0
)] ] --- ### Von einfachen zu tiefen Netzen Diese "Grundnetze" können miteinander kombiniert und mehrfach hintereindergesetzt werden, um ein tiefes Netz aufzubauen. - Mit wachsender Größe der einzelnen Schichten und der Tiefe steigen der Berechnungsaufwand und der Speicherbedarf beim Trainieren und Anwenden des Netzes. - Abhängig von den eingesetzten Zellen (z.B. bei LSTM) steigt der Ressourcenbedarf nochmals erheblich. - Nicht jeder Zelltyp ist für jede Aufgabe geeignet. - Die Dimensionierung des Netzes muß zur Aufgabenstellung passen. --- ### Training *
"Beim
überwachten Lernen
wird dem KNN ein Eingangsmuster gegeben und die Ausgabe, die das Neuronale Netz in seinem aktuellen Zustand produziert, mit dem Wert verglichen, den es eigentlich ausgeben soll. Durch Vergleich von Soll- und Istausgabe kann auf die vorzunehmenden Änderungen
[Stichwort: Fehlerrückführung/Backpropagation]
der Netzkonfiguration geschlossen werden."
*
Frameworks wie TensorFlow verschieben (auf geschickte Weise) die Gewichtungen der Zellen, um eine möglichst geringe Abweichung von Soll- und Istausgabe zu erreichen. * Liegen keine Paare aus Ein- und gewünschter Ausgabe vor, so können durch
bestärkendes Lernen
positive (auch nur zufällige) Ergebnisse eines KNN "belohnt" bzw. negative "bestraft" werden werden. Dies können bei einem Computerspiel das Erhöhen des Punktestandes bzw. der Verlust eines Lebens sein. \*.copyright[Aus
de.wikipedia.org/wiki/K%C3%BCnstliches_neuronales_Netz
(
CC-BY-SA-3.0
)] --- ### Training: Bildtransformationen mit direkter Entsprechung
Überwachtes Lernen
mit dem Ziel: Kategorisierung oder Umwandlung eines Eingabebildes in ein Ausgabebild * Paare aus Eingabebild und gewünschter Ausgabe bilden die
Trainingsdaten
, um ein künstliches neuronales Netzwerk zu trainieren. * Da das
Zielbild
jeweils bekannt ist, kann die
Abweichung
von errechnetem und gewünschtem Ergebnis bestimmt und das Netz dementsprechend angepaßt werden. * Weitere Paare, die nicht zum Trainieren verwendet werden, dienen zum Überprüfen des Lernerfolges. --- ### Training: Generierung von Bildern ![img50l](gfx/GAN.png) *
Bestärkendes Lernen
am Beispiel eines erzeugenden gegnerische Netzwerke (GAN) * Das
Generator
-Netz erzeugt aus zufälligem Rauschen neue Bilder. * Durch eine
ODER
-Weiche werden Bilder vom Generator oder aus einer Liste mit echten Bildern an den Diskriminator weitergeleitet. * Das
Diskriminator
-Netz soll nun entscheiden, ob das Bild aus der Liste oder dem Generator stammt. * Irrt sich der
Diskriminator
in seiner Einschätzung, ob die ODER-Weiche ein echtes oder generiertes Bild an ihn weitergeleitet hat, wird sein Netz entsprechend angepaßt. * Deckt der Diskriminator eine Fälschung vom Generator auf, so wird das Generator-Netz entsprechend angepaßt. --- ### Grenzen - Schlechte, unpassende oder einseitige Trainingsdaten führen zu schlechten Ergebnissen. - Zu wenig Trainingsdaten führen zu schlechten Ergebnissen oder zum "Auswendiglernen". - Zu große Netze sind zu langsam oder passen nicht in den Speicher. - Zu kleine oder unpassend gestaltete Netze passen nicht zum angedachten Answendungsfall und führen zu schlechten Ergebnissen. - Zu wenig optimierte Netze sind zu langsam beim Training und der Anwendung. - Nachvollziehbarkeit der Ergebnisse von Netzen aufgrund der Komplexität nicht oder nur eingeschränkt möglich. --- ### Schlechte Trainingsdaten Wenn Trainingsdaten zu viele gleichartige Beispiele oder Beispiele ohne "markante" Details enthalten, "lernen" die KNN daraus falsche Zusammenhänge: * links: "Leuchtturm" .copyright[(
Hajotthu
/
CC-BY-SA-3.0
)]: Form (Turm) richtig, Kontext falsch * mitte: "Digitale Uhr" .copyright[(
YellowShark
/
CC BY 3.0
)]: Details (Ziffern) zu stark gewichtet, Kontext falsch * rechts: "Qualle" .copyright[(
Nehrams2020
/
CC-BY-SA-3.0
)]: Kontext (Wasser) richtig, Detail (Qualle) fehlt
![img33](gfx/falsch-erkannt-Leuchtturm.jpg) ![img33](gfx/falsch-erkannt-digitaluhr.jpg) ![img33](gfx/falsch-erkannt-Qualle.jpg) (Bilder nachempfunden) --- ### Schlechte Trainingsdaten Weitere Beispiele: -
Erkennung von Hautkrankheiten auf Fotos
: Auf vielen Fotos mit Krankheitsbefund war ein Lineal zu sehen, auf Fotos mit gesunder Haut fehlte es hingegen.
Erkenntnis für die KI: Lineal = krank, kein Lineal = gesund. -
Erkennung feindlicher Einheiten auf Luftbildern
: Auf den Trainingsbildern hatten die eigenen Einheiten die Sonne stets im Rücken, sodaß der Schatten immer in dieselbe Richtung zeigte.
Erkenntnis für die KI: Schatten vor einer Einheit = eigene Einheit, Schatten hinter einer Einheit = feindliche Einheit. - Fazit: - KNN sind "faul" und können sich auf falsche Elemente oder Details konzentrieren, die die Entwickler nicht im Sinn hatten. - Netze lernen komplette Bilder (statt abstrakter Merkmale) auswenig (Overfitting). --- ### Gezielte Täuschung Auch wenn die Trainigsdaten gut waren, so wird das KNN, das Straßenschilder erkennen soll, wahrscheinlich anfällig für gezielte Täuschungen sein. So wird das rechte STOP-Schild, durch die von einem anderen KNN generierten Flecken, als Vorfahrsschild klassifiziert. ![img80](gfx/STOP+Vorfahrt.jpg) (nachgestellt)
.copyright[Aus
commons.wikimedia.org/wiki/File:STOP_sign.jpg / Bidgee
(
CC-BY-SA-3.0
)] --- ### Trainingsdaten erstellen (bei Google) - Bilder stammen von Streetview oder den Kameras von selbstfahrenden Autos - Beliebig oft wiederholen: 1. Kategorisierung durch Menschen, die reCAPTCHA-Rätsel lösen, in Klassen wie z.B. Autos, Motorräder, Ampeln, Schornsteine, ... 2. Ein (mehrere?) KNN (stetig) mit den neuen Bilder trainieren 3. Klassifizierte Bilder per GAN so modifizieren, daß sie vom KNN in falsche Kategorien einsortiert werden 4. Weiter bei 1. --- ### Was StarCraft II so kompliziert macht * Es liegen nie alle Informationen vor, um das ganze Spielgeschehen zu erfassen (anders als z.B. beim Schach). Informationen müssen aktiv z.B. durch Aufdecken der Karte eingeholt werden. * Es gibt keine optimale, immer gültige Strategie, die für jede Aktion eine perfekte Gegenreaktion beinhaltet. Der Aktionsraum mit hunderten von Einheiten und Gebäuden ist sehr groß. * Um zu gewinnen, muß eine KI das Makromanagement, also das langfristige Vorrausplanen von Aktionen und das Mikromanagement, z.B. das Bewegen, Angreifen und den Rückzug von Einheiten, beherrschen. * Die KI muß schnell reagieren, da alle Aktionen in Echtzeit vorgenommen werden. --- ### Ein komplexes Beispiel: AlphaStar - Training von (Anfangs-)Netzen mit
tausenden von Spielverläufen
(überwachtes Lernen) mit einer einfachen Oberfläche, die Listen für Einheiten und deren Eigenschaften enthält. Ausgaben sind "Spielzüge". - Von den Anfangsnetzen wurden leicht anders gewichtete Netze (Agenten) erstellt und trainiert, die Partien in der "AlphaStar league" gegeneinander gespielt haben (verstärkendes Lernen). AlphaStar ist insbesondere beim Mikromanagement (Truppenbewegung) sehr gut. - Neue Agenten werden von (erfolgreichen) Agenten abgeleitet und dynamisch zur "AlphaStar league" hinzugefügt (Vererbung). - Die Netze hatten anfangs Zugriff auf die ganze aufgedeckte Karte. Später wurde die "Spielregeln" so geändert, daß die KI immer nur – wie die menschlichen Spieler – einen Kartenausschnitt "sehen" kann. - Jeder Agent wurde in der "AlphaStar league" 14 Tage auf jeweils 16 TPUv3s trainiert. Dies entspricht bis zu 200 Jahren Spielgeschehen in Echtzeit. - Etwas gemogelt: Die Profispieler wußten nicht, daß sie gegen unterschiedlich trainierte KIs spielten. - Genauere (richtigere) Informationen:
deepmind.com/blog/alphastar-mastering-real-time-strategy-game-starcraft-ii
--- ### Einstieg - Viele Beispiele https://github.com/aymericdamien/TensorFlow-Examples - Einfach mal (auch in Kombination) suchen - Netztypen: DCGAN, GAN, CNN, RNN, LSTM - KI-Frameworks: Tensorflow, Kera, Torch - Zum Ausprobieren im Browser: Jupyter Notebook, IPYNB - Webseiten mit KI-Spielereien - Videos, Tutorials, etc. - Ludwig: Neuronale Netze ohne Code erstellen, trainieren und testen. https://github.com/uber/ludwig --- ### Mein Fazit * KI kann mit heutigen Technologien (Software und Hardware) verblüffende Ergebnisse in *einigen* Disziplinen liefern * Komplexe Problemstellungen sind nur bedingt lösbar * Aktuelle KI-Umsetzungen entsprechen eher hochkomplexen Statistikfunktionen * Wirkliche *Intelligenz* ist nicht vorhanden * Hierfür wären evtl. auch komplett andere Ansätze (oder Kombinationen mit anderen Technologien) nötig --- class: center, middle # Vielen Dank für die Aufmerksamkeit! ## Fragen?