Kapitel 1. Erkundung der Landschaft der künstlichen Intelligenz
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Es folgen die Worte aus Dr. May Carsons(Abbildung 1-1) bahnbrechendem Aufsatz über die sich verändernde Rolle der künstlichen Intelligenz (KI) im menschlichen Leben des einundzwanzigsten Jahrhunderts:
Künstliche Intelligenz wird oft als die Elektrizität des 21. Jahrhunderts bezeichnet. Jahrhunderts bezeichnet. Heute haben Programme der künstlichen Intelligenz die Macht, alle Formen der Industrie (einschließlich des Gesundheitswesens) voranzutreiben, medizinische Geräte zu entwickeln und neue Arten von Produkten und Dienstleistungen zu bauen, einschließlich Robotern und Automobilen. Während die KI voranschreitet, arbeiten Unternehmen bereits daran, sicherzustellen, dass diese Programme der künstlichen Intelligenz ihre Arbeit erledigen und vor allem Fehler oder gefährliche Unfälle vermeiden können. Unternehmen brauchen KI, aber sie erkennen auch, dass nicht alles, was sie mit KI machen können, eine gute Idee ist.
Wir haben umfangreiche Studien darüber durchgeführt, was es braucht, um künstliche Intelligenz mit diesen Techniken und Strategien zu betreiben. Die wichtigste Schlussfolgerung ist, dass der Geldbetrag, der pro Person und Jahr für KI-Programme ausgegeben wird, ungefähr gleich hoch ist wie der Betrag, der für ihre Erforschung, Entwicklung und Produktion aufgewendet wird. Das scheint offensichtlich, ist aber nicht ganz richtig.
Erstens brauchen KI-Systeme Unterstützung und Wartung, um ihre Funktionen zu erfüllen. Um wirklich zuverlässig zu sein, brauchen sie Menschen, die sie bedienen und ihnen bei der Erfüllung einiger ihrer Aufgaben helfen. Es ist wichtig, dass KI-Organisationen Arbeitskräfte zur Verfügung stellen, die die komplexen Aufgaben erledigen, die für diese Dienste benötigt werden. Es ist auch wichtig, die Menschen zu verstehen, die diese Aufgaben erledigen, vor allem wenn die KI komplexer ist als der Mensch. Zum Beispiel werden die meisten Menschen in Jobs arbeiten, die fortgeschrittenes Wissen erfordern, aber nicht unbedingt mit Systemen arbeiten, die gebaut und gewartet werden müssen.
Eine Entschuldigung
Wir müssen jetzt zugeben, dass alles, was in diesem Kapitel bis jetzt passiert ist, komplett gefälscht war. Buchstäblich alles! Der gesamte Text (mit Ausnahme des ersten kursiv gedruckten Satzes, der von uns als Seed geschrieben wurde) wurde mit dem GPT-2-Modell (gebaut von Adam King) auf der Website TalkToTransformer.com erstellt. Der Name des Autors wurde mit dem "Nado Name Generator" auf der Website Onitools.moe erstellt. Zumindest das Bild des Autors muss echt sein, oder? Nein, das Bild wurde von der Website ThisPersonDoesNotExist.com generiert, die uns mit der Magie von Generative Adversarial Networks (GANs) jedes Mal, wenn wir die Seite neu laden, neue Bilder von nicht existierenden Personen zeigt.
Obwohl es uns, gelinde gesagt, unangenehm ist, das ganze Buch mit einer unehrlichen Bemerkung zu beginnen, hielten wir es für wichtig, den Stand der KI zu zeigen, wenn du, unser Leser, es am wenigsten erwartest. Ehrlich gesagt ist es verblüffend, erstaunlich und erschreckend zugleich, zu sehen, wozu KI bereits fähig ist. Die Tatsache, dass sie aus dem Nichts Sätze bilden kann, die intelligenter und wortgewandter sind als manche Staatsoberhäupter der Welt, ist... sagen wir mal, große Klasse.
Eines kann uns die KI allerdings noch nicht abnehmen: die Fähigkeit, Spaß zu haben. Wir hoffen, dass diese ersten drei falschen Absätze die trockensten in diesem ganzen Buch sind. Schließlich wollen wir nicht als "die Autoren, die langweiliger sind als eine Maschine" bekannt sein.
Die echte Einführung
Erinnere dich an, als du eine Zaubershow gesehen hast, in der dich ein Trick so verblüfft hat, dass du dachtest: "Wie zum Teufel haben die das gemacht? Hast du dich das auch schon mal bei einer KI-Anwendung gefragt, die es in die Nachrichten geschafft hat? In diesem Buch wollen wir dir das Wissen und die Werkzeuge an die Hand geben, um eine ähnliche Anwendung nicht nur zu dekonstruieren, sondern auch zu bauen.
In leicht verständlichen, schrittweisen Erklärungen nehmen wir reale Anwendungen unter die Lupe, die KI nutzen, und zeigen, wie du sie auf einer Vielzahl von Plattformen erstellen kannst - von der Cloud über den Browser und Smartphones bis hin zu Edge-KI-Geräten und schließlich zur ultimativen Herausforderung der KI: autonome Autos.
In den meisten Kapiteln beginnen wir mit einem motivierenden Problem und bauen dann Schritt für Schritt eine End-to-End-Lösung auf. In den ersten Abschnitten des Buches entwickeln wir die notwendigen Fähigkeiten, um das Gehirn der KI zu bauen. Aber das ist nur die halbe Miete. Der wahre Wert der KI liegt in der Entwicklung brauchbarer Anwendungen. Und wir reden hier nicht von Spielzeugprototypen. Wir wollen, dass du Software entwickelst, die in der realen Welt von echten Menschen genutzt werden kann, um ihr Leben zu verbessern. Daher auch das Wort "praktisch" im Buchtitel. Zu diesem Zweck besprechen wir verschiedene Möglichkeiten, die uns zur Verfügung stehen, und wählen die geeigneten Optionen anhand von Kompromissen in Bezug auf Leistung, Energieverbrauch, Skalierbarkeit, Zuverlässigkeit und Datenschutz aus.
In diesem ersten Kapitel gehen wir einen Schritt zurück, um diesen Moment in der Geschichte der KI zu würdigen. Wir untersuchen die Bedeutung von KI, insbesondere im Zusammenhang mit Deep Learning, und die Abfolge der Ereignisse, die dazu geführt haben, dass Deep Learning zu einem der bahnbrechendsten Bereiche des technologischen Fortschritts zu Beginn des 21. Außerdem untersuchen wir die Kernkomponenten einer kompletten Deep-Learning-Lösung, um uns auf die folgenden Kapitel vorzubereiten, in denen wir uns die Hände schmutzig machen.
Unsere Reise beginnt also hier, mit einer sehr grundlegenden Frage.
Was ist KI?
In diesem Buch verwenden wir die Begriffe "künstliche Intelligenz", "maschinelles Lernen" und "Deep Learning" häufig und manchmal auch synonym. Streng technisch gesehen bedeuten sie jedoch unterschiedliche Dinge. Hier ist eine Übersicht über die Begriffe (siehe auch Abbildung 1-2):
- AI
-
Diese gibt Maschinen die Fähigkeit, menschliches Verhalten zu imitieren. IBMs Deep Blue ist ein bekanntes Beispiel für KI.
- Maschinelles Lernen
-
ist der Zweig der KI, in dem Maschinen statistische Techniken nutzen, um aus früheren Informationen und Erfahrungen zu lernen. Das Ziel ist, dass die Maschine in Zukunft auf der Grundlage von Beobachtungen aus der Vergangenheit handeln kann. Wenn du gesehen hast, wie IBMs Watson gegen Ken Jennings und Brad Rutter bei Jeopardy! angetreten ist, hast du maschinelles Lernen in Aktion gesehen. Wenn das nächste Mal eine Spam-E-Mail nicht in deinem Posteingang landet, kannst du dich beim maschinellen Lernen bedanken.
- Deep Learning
-
ist ein Teilbereich des maschinellen Lernens, in dem tiefe, mehrschichtige neuronale Netze verwendet werden, um Vorhersagen zu treffen, die sich vor allem in den Bereichen Computer Vision, Spracherkennung, natürliches Sprachverständnis usw. auszeichnen.
In diesem Buch konzentrieren wir uns hauptsächlich auf Deep Learning.
Motivierende Beispiele
Bringen wir es auf auf den Punkt. Was hat uns dazu bewogen, dieses Buch zu schreiben? Warum hast du dein hart verdientes Geld ausgegeben1 dieses Buch zu kaufen? Unsere Motivation war einfach: Wir wollten mehr Menschen für die Welt der KI begeistern. Die Tatsache, dass du dieses Buch liest, bedeutet, dass wir unsere Aufgabe bereits zur Hälfte erfüllt haben.
Um dein Interesse zu wecken, schauen wir uns ein paar herausragende Beispiele an, die zeigen, wozu KI bereits in der Lage ist:
-
"DeepMinds KI-Agenten besiegen menschliche Profis bei StarCraft II": The Verge, 2019
-
"AI-Generated Art Sells for Nearly Half a Million Dollars at Christie's": AdWeek, 2018
-
"KI schlägt Radiologen bei der Erkennung von Lungenkrebs": American Journal of Managed Care, 2019
-
"Boston Dynamics Atlas Robot Can Do Parkour": ExtremeTech, 2018
-
"Facebook, Carnegie Mellon bauen erste KI, die Profis im 6-Spieler-Poker schlägt": ai.facebook.com, 2019
-
"Blinde Nutzer können mit Microsofts sehender KI jetzt Fotos durch Berührung erkunden": TechCrunch, 2019
-
"IBMs Supercomputer Watson besiegt Menschen im letzten Jeopardy-Spiel": VentureBeat, 2011
-
"Googles ML-Jam fordert Musiker heraus, mit KI zu improvisieren und zusammenzuarbeiten": VentureBeat, 2019
-
"Das Go-Spiel ohne menschliches Wissen meistern": Nature, 2017
-
"Chinesische KI übertrifft Ärzte bei der Diagnose von Hirntumoren": Popular Mechanics, 2018
-
"Zwei neue Planeten mit künstlicher Intelligenz entdeckt": Phys.org, 2019
-
"Nvidias neueste KI-Software verwandelt grobe Kritzeleien in realistische Landschaften": The Verge, 2019
Diese Anwendungen der KI dienen als unser Nordstern. Das Niveau dieser Leistungen entspricht dem einer olympischen Goldmedaille. Anwendungen, die eine Vielzahl von Problemen in der realen Welt lösen, entsprechen dagegen einem 5 km-Lauf. Für die Entwicklung dieser Anwendungen ist kein jahrelanges Training erforderlich, aber es ist eine große Befriedigung für den Entwickler, wenn er die Ziellinie überquert. Wir sind hier, um dich durch diese 5 km zu begleiten.
In diesem Buch legen wir bewusst Wert auf ein breites Spektrum. Das Feld der KI verändert sich so schnell, dass wir nur hoffen können, dich mit der richtigen Denkweise und einer Reihe von Werkzeugen auszustatten. Wir werden nicht nur einzelne Probleme angehen, sondern auch untersuchen, wie verschiedene, scheinbar nicht verwandte Probleme grundlegende Überschneidungen haben, die wir zu unserem Vorteil nutzen können. Bei der Geräuscherkennung werden zum Beispiel Convolutional Neural Networks (CNNs) eingesetzt, die auch die Grundlage für modernes Computer Vision bilden. Wir gehen auf praktische Aspekte verschiedener Bereiche ein, damit du schnell von 0 auf 80 kommst und reale Probleme lösen kannst. Wenn wir genug Interesse geweckt haben, dass du dich entscheidest, von 80 auf 95 zu kommen, sehen wir unser Ziel als erreicht an. Wie es so schön heißt, wollen wir die KI "demokratisieren".
Es ist wichtig festzuhalten, dass ein Großteil des Fortschritts in der KI erst in den letzten paar Jahren stattgefunden hat - das kann man gar nicht hoch genug einschätzen. Um zu verdeutlichen, wie weit wir gekommen sind, nimm dieses Beispiel: Vor fünf Jahren brauchte man einen Doktortitel, um in der Branche einen Fuß in die Tür zu bekommen. Fünf Jahre später brauchst du nicht einmal mehr einen Doktortitel, um ein ganzes Buch über dieses Thema zu schreiben. (Im Ernst, schau dir unsere Profile an!)
Auch wenn die modernen Anwendungen des Deep Learning ziemlich erstaunlich erscheinen, haben sie es nicht ganz allein geschafft. Sie standen auf den Schultern vieler Giganten der Branche, die schon seit Jahrzehnten die Grenzen ausloten. Wir können die Bedeutung dieser Zeit nur dann richtig einschätzen, wenn wir einen Blick auf die gesamte Geschichte werfen.
Eine kurze Geschichte der KI
Gehen wir ein wenig in der Zeit zurück: Unser ganzes Universum befand sich in einem heißen, dichten Zustand. Dann, vor fast 14 Milliarden Jahren, begann die Ausdehnung... warte... okay, so weit müssen wir nicht zurückgehen (aber jetzt hast du das Lied für den Rest des Tages im Kopf, oder?). Es ist wirklich erst 70 Jahre her, dass die ersten Samen der KI gepflanzt wurden. Alan Turing stellte 1950 in seinem Aufsatz "Computing Machinery and Intelligence" zum ersten Mal die Frage: "Können Maschinen denken?" Dies führt zu einer größeren philosophischen Debatte über das Gefühl und was es bedeutet, ein Mensch zu sein. Bedeutet es, die Fähigkeit zu besitzen, ein Konzert zu komponieren und zu wissen, dass man es komponiert hat? Turing empfand diesen Rahmen als zu eng und schlug stattdessen einen Test vor: Wenn ein Mensch eine Maschine nicht von einem anderen Menschen unterscheiden kann, ist das dann wirklich wichtig? Eine KI, die einen Menschen imitieren kann, ist im Grunde genommen ein Mensch.
Aufregende Anfänge
Der Begriff "künstliche Intelligenz" wurde 1956 von John McCarthy im Rahmen des Dartmouth Summer Research Project geprägt. Physikalische Computer gab es damals noch gar nicht, daher ist es bemerkenswert, dass sie über futuristische Bereiche wie Sprachsimulation, selbstlernende Maschinen, Abstraktionen von Sinnesdaten und vieles mehr diskutieren konnten. Vieles davon war natürlich theoretisch. Es war das erste Mal, dass KI zu einem Forschungsgebiet und nicht zu einem einzelnen Projekt wurde.
Der Aufsatz "Perceptron: A Perceiving and Recognizing Automaton" von Frank Rosenblatt aus dem Jahr 1957 legte den Grundstein für tiefe neuronale Netze. Er postulierte, dass es möglich sein sollte, ein elektronisches oder elektromechanisches System zu konstruieren, das lernt, Ähnlichkeiten zwischen Mustern optischer, elektrischer oder tonaler Informationen zu erkennen. Dieses System würde ähnlich wie das menschliche Gehirn funktionieren. Anstatt ein regelbasiertes Modell zu verwenden (wie es damals für Algorithmen üblich war), schlug er vor, statistische Modelle zu verwenden, um Vorhersagen zu treffen.
In diesem Buch verwenden wir immer wieder den Begriff " neuronales Netzwerk". Was ist ein neuronales Netzwerk? Es ist ein vereinfachtes Modell des menschlichen Gehirns. Ähnlich wie das Gehirn hat es Neuronen, die aktiviert werden, wenn sie auf etwas Bekanntes stoßen. Die verschiedenen Neuronen sind über Verbindungen (die den Synapsen in unserem Gehirn entsprechen) miteinander verbunden, die den Informationsfluss von einem Neuron zum anderen ermöglichen.
In Abbildung 1-3 siehst du ein Beispiel für das einfachste neuronale Netz: ein Perzeptron. Mathematisch lässt sich das Perceptron wie folgt ausdrücken:
output = f(x1, x2, x3) = x1 w1 + x2 w2 + x3 w3 + b
1965 veröffentlichten Ivakhnenko und Lapa das erste funktionierende neuronale Netz in ihrer Arbeit "Group Method of Data Handling-A Rival Method of Stochastic Approximation". Es gibt einige Kontroversen in diesem Bereich, aber Ivakhnenko wird von einigen als der Vater des Deep Learning angesehen.
Zu dieser Zeit wurden kühne Vorhersagen darüber gemacht, wozu Maschinen fähig sein würden. Maschinelle Übersetzung, Spracherkennung und vieles mehr würden besser funktionieren als Menschen. Regierungen auf der ganzen Welt waren begeistert und begannen, ihre Brieftaschen zu öffnen, um diese Projekte zu finanzieren. Dieser Goldrausch begann in den späten 1950er Jahren und hielt bis Mitte der 1970er Jahre an.
Die kalten und dunklen Tage
Mit Millionen von Dollar wurden die ersten Systeme in die Praxis umgesetzt. Es stellte sich heraus, dass viele der ursprünglichen Prophezeiungen unrealistisch waren. Die Spracherkennung funktionierte nur, wenn auf eine bestimmte Weise gesprochen wurde, und selbst dann nur für eine begrenzte Anzahl von Wörtern. Die Sprachübersetzung erwies sich als sehr fehleranfällig und viel teurer, als wenn sie von einem Menschen durchgeführt würde. Perceptrons (im Wesentlichen einschichtige neuronale Netze) stießen schnell an ihre Grenzen, wenn es darum ging, zuverlässige Vorhersagen zu treffen. Das schränkt ihre Nützlichkeit für die meisten Probleme in der realen Welt ein. Das liegt daran, dass es sich um lineare Funktionen handelt, während Probleme in der realen Welt oft einen nichtlinearen Klassifikator für genaue Vorhersagen erfordern. Stell dir vor, du versuchst, eine Linie an eine Kurve anzupassen!
Was passiert also, wenn du zu viel versprichst und zu wenig lieferst? Man verliert die Finanzierung. Die Defense Advanced Research Project Agency, allgemein bekannt als DARPA (ja, diese Leute; diejenigen, die das ARPANET gebaut haben, aus dem später das Internet wurde), finanzierte viele der ursprünglichen Projekte in den Vereinigten Staaten. Doch die fehlenden Ergebnisse über fast zwei Jahrzehnte hinweg frustrierten die Behörde zunehmend. Es war einfacher, einen Menschen auf dem Mond zu landen, als einen brauchbaren Spracherkenner zu entwickeln!
Auf der anderen Seite des großen Teichs wurde 1974 der Lighthill-Bericht veröffentlicht, in dem es hieß: "Der Allzweckroboter ist eine Fata Morgana". Stell dir vor, du wärst ein Brite im Jahr 1974 und würdest in der BBC miterleben, wie die hohen Tiere der Informatik darüber debattieren, ob KI eine Verschwendung von Ressourcen ist. Die Folge war, dass die KI-Forschung im Vereinigten Königreich und später auf der ganzen Welt dezimiert wurde, was viele Karrieren zerstörte. Diese Phase des verlorenen Vertrauens in die KI dauerte etwa zwei Jahrzehnte und wurde als "KI-Winter" bekannt. Wenn Ned Stark damals nur da gewesen wäre, um sie zu warnen.
Ein Schimmer von Hoffnung
Sogar auf wurden in diesen eisigen Tagen einige bahnbrechende Arbeiten auf diesem Gebiet geleistet. Sicher, Perceptrons - lineare Funktionen - hatten nur begrenzte Möglichkeiten. Wie konnte man das ändern? Indem man sie in einem Netzwerk verkettet, so dass die Ausgabe eines (oder mehrerer) Perceptrons die Eingabe für ein (oder mehrere) Perceptrons ist. Mit anderen Worten: ein mehrschichtiges neuronales Netz, wie in Abbildung 1-4 dargestellt. Je höher die Anzahl der Schichten ist, desto mehr Nichtlinearität lernt es, was zu besseren Vorhersagen führt. Es gibt nur ein Problem: Wie kann man es trainieren? Hier kommen Geoffrey Hinton und seine Freunde ins Spiel. Sie veröffentlichten 1986 in der Arbeit "Learning representations by back-propagating errors" eine Technik namens Backpropagation. Wie funktioniert das? Du machst eine Vorhersage, siehst, wie weit die Vorhersage von der Realität abweicht, und überträgst die Größe des Fehlers zurück in das Netzwerk, damit es lernen kann, ihn zu korrigieren. Du wiederholst diesen Prozess, bis der Fehler unbedeutend wird. Ein einfaches, aber wirkungsvolles Konzept. Wir verwenden den Begriff Backpropagation immer wieder in diesem Buch.
1989 lieferte George Cybenko den ersten Beweis für das Universal Approximation Theorem, das besagt, dass ein neuronales Netzwerk mit einer einzigen versteckten Schicht theoretisch in der Lage ist, jedes Problem zu modellieren. Das war bemerkenswert, denn es bedeutete, dass neuronale Netze (zumindest theoretisch) jeden maschinellen Lernansatz übertreffen können. Sie könnten sogar das menschliche Gehirn imitieren. Aber all das war nur auf dem Papier. Die Größe dieses Netzwerks würde in der realen Welt schnell an seine Grenzen stoßen. Dies könnte durch die Verwendung mehrerer versteckter Schichten und das Training des Netzwerks mit... warte mal... Backpropagation überwunden werden!
Auf hat ein Team der Carnegie Mellon University 1986 das allererste autonome Fahrzeug, NavLab 1, gebaut(Abbildung 1-5). Es benutzte zunächst ein einschichtiges neuronales Netz, um den Winkel des Lenkrads zu steuern. Dies führte 1995 zu NavLab 5. Bei einer Demonstration fuhr ein Auto die gesamte Strecke von Pittsburgh nach San Diego (2.850 Meilen) bis auf 50 Kilometer selbstständig. NavLab erhielt seinen Führerschein, bevor viele Tesla-Ingenieure überhaupt geboren waren!
Ein weiteres herausragendes Beispiel aus den 1980er Jahren stammt vom United States Postal Service (USPS). Der Dienst musste die Post automatisch nach den Postleitzahlen (ZIP-Codes) sortieren, an die sie adressiert war. Da ein Großteil der Post schon immer handschriftlich verfasst war, konnte die optische Zeichenerkennung (OCR) nicht verwendet werden. Um dieses Problem zu lösen, nutzten Yann LeCun et al. in ihrer Arbeit "Backpropagation Applied to Handwritten Zip Code Recognition" handschriftliche Daten des National Institute of Standards and Technology (NIST), um zu zeigen, dass neuronale Netze in der Lage sind, diese handgeschriebenen Ziffern zu erkennen. Das Netzwerk der Behörde, LeNet, wurde vom USPS jahrzehntelang für das automatische Scannen und Sortieren der Post verwendet. Das war bemerkenswert, denn es war das erste neuronale Faltungsnetzwerk, das wirklich in der freien Natur funktionierte. In den 1990er Jahren nutzten die Banken schließlich eine weiterentwickelte Version des Modells namens LeNet-5, um handgeschriebene Zahlen auf Schecks zu lesen. Damit wurde der Grundstein für die moderne Computer Vision gelegt.
Diejenigen von euch, die über den MNIST-Datensatz gelesen haben, haben vielleicht schon eine Verbindung zu dem gerade erwähnten NIST-Datensatz bemerkt. Denn der MNIST-Datensatz besteht im Wesentlichen aus einer Teilmenge von Bildern aus dem ursprünglichen NIST-Datensatz, die mit einigen Modifikationen (das "M" in "MNIST") versehen wurden, um den Trainings- und Testprozess für das neuronale Netz zu vereinfachen. Zu den Änderungen, von denen du einige in Abbildung 1-6 sehen kannst, gehören die Größenänderung auf 28 x 28 Pixel, die Zentrierung der Ziffer in diesem Bereich, Antialiasing und so weiter.
Einige andere forschten weiter, darunter Jürgen Schmidhuber, der Netzwerke wie das Long Short-Term Memory (LSTM) mit vielversprechenden Anwendungen für Text und Sprache vorschlug.
Zu diesem Zeitpunkt waren die Theorien zwar schon weit genug fortgeschritten, aber die Ergebnisse konnten in der Praxis nicht demonstriert werden. Der Hauptgrund dafür war, dass die damalige Hardware zu rechenintensiv war und die Skalierung für größere Aufgaben eine Herausforderung darstellte. Selbst wenn die Hardware wie durch ein Wunder zur Verfügung stand, waren die Daten, um ihr volles Potenzial auszuschöpfen, sicher nicht leicht zu beschaffen. Schließlich befand sich das Internet noch in seiner Einwahlphase. Support Vector Machines (SVMs), eine maschinelle Lerntechnik, die 1995 für Klassifizierungsprobleme eingeführt wurde, war schneller und lieferte auch bei kleineren Datenmengen recht gute Ergebnisse und wurde daher zur Norm.
Das führte dazu, dass der Ruf von KI und Deep Learning schlecht war. Doktoranden wurden davor gewarnt, Deep Learning zu erforschen, weil dies der Bereich sei, "in dem intelligente Wissenschaftler ihre Karriere beenden würden". Menschen und Unternehmen, die auf diesem Gebiet arbeiten, benutzten alternative Begriffe wie Informatik, kognitive Systeme, intelligente Agenten, maschinelles Lernen und andere, um sich von der Bezeichnung KI zu distanzieren. Es ist ein bisschen so, wie damals, als das US-Kriegsministerium in Verteidigungsministerium umbenannt wurde, um der Bevölkerung schmackhafter zu sein.
Wie Deep Learning zu einer Sache wurde
Zum Glück brachten die 2000er Jahre Hochgeschwindigkeits-Internet, Smartphone-Kameras, Videospiele und Foto-Sharing-Seiten wie Flickr und Creative Commons (mit denen man die Fotos anderer Leute legal weiterverwenden kann). Die Menschen konnten massenweise Fotos mit einem Gerät in ihrer Tasche aufnehmen und sofort hochladen. Der Datensee füllte sich, und nach und nach gab es reichlich Gelegenheiten, darin zu baden. Der ImageNet-Datensatz mit 14 Millionen Bildern entstand aus diesem glücklichen Zusammentreffen und der großartigen Arbeit von Fei-Fei Li (damals in Princeton) und seinen Kollegen.
Im selben Jahrzehnt wurden PC- und Konsolenspiele richtig ernst. Die Spieler verlangten von ihren Videospielen eine immer bessere Grafik. Das wiederum veranlasste Hersteller von Grafikprozessoren (GPUs) wie NVIDIA, ihre Hardware ständig zu verbessern. Der wichtigste Punkt, an den du dich erinnern musst, ist, dass Grafikprozessoren verdammt gut bei Matrixoperationen sind. Warum ist das so? Weil die Mathematik es verlangt! In der Computergrafik werden bei alltäglichen Aufgaben wie dem Bewegen von Objekten, dem Drehen von Objekten, dem Ändern ihrer Form, dem Anpassen ihrer Beleuchtung usw. Matrixoperationen verwendet. Und GPUs sind darauf spezialisiert, sie auszuführen. Und weißt du, was noch eine Menge Matrixberechnungen benötigt? Neuronale Netze. Das ist ein großer glücklicher Zufall.
Mit ImageNet wurde 2010 die jährliche ImageNet Large Scale Visual Recognition Challenge (ILSVRC) ins Leben gerufen, um Forscher/innen herauszufordern, bessere Techniken zur Klassifizierung dieser Daten zu entwickeln. Eine Teilmenge von 1.000 Kategorien, bestehend aus etwa 1,2 Millionen Bildern, stand zur Verfügung, um die Grenzen der Forschung zu erweitern. Die modernsten Computer-Vision-Techniken wie Scale-Invariant Feature Transform (SIFT) + SVM ergaben eine Top-5-Fehlerquote von 28 % (2010) bzw. 25 % (2011) (d. h., wenn eine der fünf nach Wahrscheinlichkeit geordneten Vermutungen zutrifft, gilt sie als richtig).
Und dann kam 2012 ein Beitrag auf der Bestenliste, der die Fehlerquote fast halbierte und auf 16 % senkte. Alex Krizhevsky, Ilya Sutskever (der später OpenAI gründete) und Geoffrey Hinton von der University of Toronto reichten diesen Beitrag ein. Der treffend AlexNet genannte CNN wurde von LeNet-5 inspiriert. Selbst mit nur acht Schichten hatte AlexNet gewaltige 60 Millionen Parameter und 650.000 Neuronen, was zu einem 240 MB großen Modell führte. Es wurde eine Woche lang mit zwei NVIDIA-GPUs trainiert. Dieses einmalige Ereignis überraschte alle und bewies das Potenzial von CNNs, die das moderne Zeitalter des Deep Learning einleiteten.
Abbildung 1-7 quantifiziert die Fortschritte, die CNNs in den letzten zehn Jahren gemacht haben. Seit der Einführung des Deep Learning im Jahr 2012 ist die Fehlerquote bei den ImageNet LSVRC-Gewinnern im Vergleich zum Vorjahr um 40 % gesunken. Je tiefer die CNNs wurden, desto weiter sank der Fehler.
Behalte im Hinterkopf, dass wir die Geschichte der KI stark vereinfachen und sicherlich einige Details auslassen. Im Wesentlichen war es ein Zusammentreffen von Daten, Grafikprozessoren und besseren Techniken, das zu dieser modernen Ära des Deep Learning führte. Und der Fortschritt dehnte sich immer weiter in neue Gebiete aus. Wie Tabelle 1-1 zeigt, ist das, was noch als Science-Fiction galt, bereits Realität.
2012 | Das neuronale Netzwerk des Google Brain Teams erkennt Katzen, nachdem es YouTube-Videos angesehen hat |
2013 |
|
2014 |
|
2015 |
|
2016 |
|
2017 |
|
2018 |
|
2019 |
|
Hoffentlich hast du jetzt einen historischen Überblick über KI und Deep Learning und verstehst, warum dieser Zeitpunkt so wichtig ist. Es ist wichtig zu erkennen, wie schnell der Fortschritt in diesem Bereich ist. Aber wie wir bisher gesehen haben, war das nicht immer der Fall.
Die ursprüngliche Schätzung von für die Verwirklichung von Computer Vision in der realen Welt war "ein Sommer" in den 1960er Jahren, so zwei der Pioniere auf diesem Gebiet. Sie lagen damit nur ein halbes Jahrhundert daneben! Es ist nicht leicht, ein Futurist zu sein. In einer Studie von Alexander Wissner-Gross wurde festgestellt, dass im Durchschnitt 18 Jahre zwischen dem Vorschlag eines Algorithmus und dem Durchbruch vergehen. Zwischen der Veröffentlichung eines Datensatzes und dem Durchbruch, zu dem er beigetragen hat, lagen dagegen im Durchschnitt nur drei Jahre! Schau dir einen der Durchbrüche des letzten Jahrzehnts an. Der Datensatz, der diesen Durchbruch ermöglichte, wurde höchstwahrscheinlich erst ein paar Jahre zuvor verfügbar gemacht.
Die Daten waren eindeutig der begrenzende Faktor. Das zeigt, welche entscheidende Rolle ein guter Datensatz für Deep Learning spielen kann. Daten sind jedoch nicht der einzige Faktor. Schauen wir uns die anderen Säulen an, die die Grundlage für die perfekte Deep Learning-Lösung bilden.
Rezept für die perfekte Deep Learning Lösung
Bevor Gordon Ramsay mit dem Kochen beginnt, stellt er sicher, dass er alle Zutaten parat hat. Das Gleiche gilt für das Lösen eines Problems mit Deep Learning(Abbildung 1-8).
Und hier ist deine Deep Learning-Mise en Place!
Dataset + Model + Framework + Hardware = Deep Learning Solution
Schauen wir uns jede dieser Möglichkeiten etwas genauer an.
Datensätze
So wie Pac-Man hungrig nach Punkten ist, ist Deep Learning hungrig nach Daten - vielen, vielen Daten. Es braucht diese Menge an Daten, um aussagekräftige Muster zu erkennen, die zu zuverlässigen Vorhersagen führen können. In den 1980er und 1990er Jahren war das traditionelle maschinelle Lernen die Norm, weil es auch mit wenigen hundert bis tausend Beispielen funktionierte. Im Gegensatz dazu benötigen Deep Neural Networks (DNNs), wenn sie von Grund auf neu entwickelt werden, viel mehr Daten für typische Vorhersageaufgaben. Der Vorteil ist, dass sie viel bessere Vorhersagen machen.
In diesem Jahrhundert erleben wir eine Datenexplosion mit Quintillionen von Bytes an Daten, die jeden Tag entstehen - Bilder, Texte, Videos, Sensordaten und mehr. Aber um diese Daten effektiv zu nutzen, brauchen wir Kennzeichnungen. Um einen Sentiment-Klassifikator zu erstellen, der erkennt, ob eine Amazon-Rezension positiv oder negativ ist, brauchen wir Tausende von Sätzen und für jeden eine zugewiesene Emotion. Um ein System zur Segmentierung von Gesichtern für eine Snapchat-Linse zu trainieren, brauchen wir die genaue Position von Augen, Lippen, Nase und so weiter auf Tausenden von Bildern. Um ein selbstfahrendes Auto zu trainieren, brauchen wir Videosegmente, die mit den Reaktionen des menschlichen Fahrers auf Bedienelemente wie Bremsen, Gaspedal, Lenkrad und so weiter versehen sind. Diese Markierungen dienen unserer KI als Lehrer und sind viel wertvoller als unmarkierte Daten allein.
Die Beschaffung von Etiketten kann teuer sein. Kein Wunder, dass es eine ganze Branche gibt, die sich mit dem Crowdsourcing von Etikettierungsaufgaben unter Tausenden von Arbeitskräften beschäftigt. Jedes Label kann zwischen ein paar Cent und Dollar kosten, je nachdem, wie viel Zeit die Arbeiter/innen für die Zuweisung aufwenden. Bei der Entwicklung des Microsoft COCO (Common Objects in Context)-Datensatzes dauerte es zum Beispiel etwa drei Sekunden, um den Namen jedes Objekts in einem Bild zu beschriften, etwa 30 Sekunden, um ein Begrenzungsrechteck um jedes Objekt herum zu platzieren, und 79 Sekunden, um die Umrisse jedes Objekts zu zeichnen. Wenn du das hunderttausendmal wiederholst, kannst du dir die Kosten für einige der größeren Datensätze vorstellen. Einige Labeling-Unternehmen wie Appen und Scale AI werden bereits mit jeweils mehr als einer Milliarde Dollar bewertet.
Wir haben vielleicht keine Million Dollar auf unserem Bankkonto. Aber zu unserem Glück sind bei dieser Deep-Learning-Revolution zwei gute Dinge passiert:
-
Riesige beschriftete Datensätze wurden von großen Unternehmen und Universitäten großzügig öffentlich gemacht.
-
Eine Technik namens Transfer-Lernen, die es uns ermöglicht, unsere Modelle auf Datensätze mit Hunderten von Beispielen abzustimmen - vorausgesetzt, unser Modell wurde ursprünglich auf einem größeren Datensatz trainiert, der unserem aktuellen Datensatz ähnelt. Wir verwenden diese Methode wiederholt in diesem Buch, unter anderem in Kapitel 5, wo wir experimentieren und beweisen, dass wir mit dieser Technik schon mit einigen Dutzend Beispielen eine gute Leistung erzielen können. Transfer Learning räumt mit dem Mythos auf, dass große Datenmengen notwendig sind, um ein gutes Modell zu trainieren. Willkommen in der Welt der kleinen Daten!
Tabelle 1-2 zeigt einige der beliebten Datensätze, die es heute für eine Vielzahl von Deep Learning-Aufgaben gibt.
Datentyp | Name | Details |
---|---|---|
Bild |
Bilder öffnen V4 (von Google) |
|
Microsoft COCO |
|
|
Video | YouTube-8M |
|
Video, Bilder |
BDD100K (von der UC Berkeley) |
|
Offener Datensatz von Waymo | 3.000 Fahrszenen mit insgesamt 16,7 Stunden Videodaten, 600.000 Frames, ca. 25 Millionen 3D Bounding Boxes und 22 Millionen 2D Bounding Boxes | |
Text | SQuAD | 150.000 Frage- und Antwortschnipsel aus Wikipedia |
Yelp-Bewertungen | Fünf Millionen Yelp-Bewertungen | |
Satellitendaten | Landsat-Daten | Mehrere Millionen Satellitenbilder (100 Seemeilen Breite und Höhe), zusammen mit acht Spektralbändern (15 bis 60 Meter räumliche Auflösung) |
Audio |
Google AudioSet | 2.084.320 10-sekündige Soundclips von YouTube mit 632 Kategorien |
LibriSpeech | 1.000 Stunden englische Sprache lesen |
Modell Architektur
Auf ist ein Modell einfach eine Funktion. Es nimmt eine oder mehrere Eingaben entgegen und gibt eine Ausgabe aus. Die Eingabe kann in Form von Text, Bildern, Audio, Video und mehr erfolgen. Die Ausgabe ist eine Vorhersage. Ein gutes Modell ist eines, dessen Vorhersagen zuverlässig mit der erwarteten Realität übereinstimmen. Die Genauigkeit des Modells in einem Datensatz ist ein entscheidender Faktor dafür, ob es sich für den Einsatz in einer realen Anwendung eignet. Für viele Menschen ist das alles, was sie über Deep Learning-Modelle wissen müssen. Richtig interessant wird es aber erst, wenn wir einen Blick in das Innenleben eines Modells werfen(Abbildung 1-9).
Innerhalb des Modells befindet sich ein Graph, der aus Knoten und Kanten besteht. Die Knoten stellen mathematische Operationen dar, während die Kanten zeigen, wie die Daten von einem Knoten zum anderen fließen. Mit anderen Worten: Wenn die Ausgabe eines Knotens die Eingabe für einen oder mehrere Knoten sein kann, werden die Verbindungen zwischen diesen Knoten durch Kanten dargestellt. Die Struktur dieses Graphen bestimmt die mögliche Genauigkeit, die Geschwindigkeit, den Ressourcenverbrauch (Speicher, Rechenleistung und Energie) und die Art der Eingaben, die er verarbeiten kann.
Die Anordnung der Knoten und Kanten wird als Architektur des Modells bezeichnet. Im Grunde ist es eine Blaupause. Der Bauplan ist aber nur die Hälfte des Bildes. Wir brauchen noch das eigentliche Gebäude. Das Training ist der Prozess, der diesen Bauplan nutzt, um das Gebäude zu errichten. Wir trainieren ein Modell, indem wir es wiederholt 1) mit Eingabedaten füttern, 2) seine Ergebnisse erhalten, 3) beobachten, wie weit diese Vorhersagen von der erwarteten Realität (d.h. den mit den Daten verknüpften Bezeichnungen) entfernt sind, und dann 4) die Größe des Fehlers an das Modell zurückgeben, damit es nach und nach lernen kann, sich selbst zu korrigieren. Dieser Trainingsprozess wird iterativ durchgeführt, bis wir mit der Genauigkeit der Vorhersagen zufrieden sind.
Das Ergebnis dieses Trainings ist eine Reihe von Zahlen (auch als Gewichte bekannt), die jedem der Knoten zugeordnet werden. Diese Gewichte sind die notwendigen Parameter für die Knoten im Graphen, um die ihnen gegebenen Eingaben zu verarbeiten. Bevor das Training beginnt, weisen wir den Gewichten normalerweise Zufallszahlen zu. Das Ziel des Trainingsprozesses besteht im Wesentlichen darin, die Werte der einzelnen Gewichte schrittweise zu verändern, bis sie in Verbindung mit den entsprechenden Knoten zufriedenstellende Vorhersagen liefern.
Um die Gewichte etwas besser zu verstehen, schauen wir uns den folgenden Datensatz mit zwei Eingaben und einer Ausgabe an:
Eingabe1 | Eingabe2 | Ausgabe |
---|---|---|
1 | 6 | 20 |
2 | 5 | 19 |
3 | 4 | 18 |
4 | 3 | 17 |
5 | 2 | 16 |
6 | 1 | 15 |
Mithilfe der linearen Algebra (oder durch Vermutungen in unserem Kopf) können wir ableiten, dass die Gleichung für diesen Datensatz lautet:
output = f(input1, input2) = 2 x input1 + 3 x input2
In diesem Fall sind die Gewichte für diese mathematische Operation 2 und 3. Ein tiefes neuronales Netz hat Millionen solcher Gewichtungsparameter.
Je nach Art der verwendeten Knoten eignen sich unterschiedliche Modellarchitekturen besser für verschiedene Arten von Eingabedaten. CNNs werden zum Beispiel für Bild- und Audiodaten verwendet, während rekurrente neuronale Netze (RNNs) und LSTMs oft bei der Textverarbeitung eingesetzt werden.
Im Allgemeinen kann es ziemlich viel Zeit in Anspruch nehmen, eines dieser Modelle von Grund auf zu trainieren, möglicherweise sogar Wochen. Zum Glück haben viele Forscherinnen und Forscher die schwierige Aufgabe, sie auf einem allgemeinen Datensatz (wie ImageNet) zu trainieren, bereits erledigt und diese Modelle für alle zugänglich gemacht. Und was noch besser ist: Wir können diese verfügbaren Modelle nehmen und sie auf unseren speziellen Datensatz abstimmen. Dieser Prozess wird als Transfer-Lernen bezeichnet und deckt den Großteil der Bedürfnisse von Praktikern ab.
Im Vergleich zum Training von Grund auf bietet das Transferlernen einen doppelten Vorteil: Die Trainingszeit ist deutlich kürzer (wenige Minuten bis Stunden statt Wochen) und es kann mit einem wesentlich kleineren Datensatz arbeiten (Hunderte bis Tausende von Datenproben statt Millionen). Tabelle 1-4 zeigt einige bekannte Beispiele für Modellarchitekturen.
Aufgabe | Beispielhafte Modellarchitekturen |
---|---|
Bildklassifizierung | ResNet-152 (2015), MobileNet (2017) |
Textklassifizierung | BERT (2018), XLNet (2019) |
Bildsegmentierung | U-Net (2015), DeepLabV3 (2018) |
Bildübersetzung | Pix2Pix (2017) |
Objekterkennung | YOLO9000 (2016), Maske R-CNN (2017) |
Spracherzeugung | WaveNet (2016) |
Für jedes der Modelle aus Tabelle 1-4 gibt es eine veröffentlichte Genauigkeitskennzahl für Referenzdatensätze (z. B. ImageNet für Klassifizierung, MS COCO für Erkennung). Außerdem haben diese Architekturen ihre eigenen charakteristischen Ressourcenanforderungen (Modellgröße in Megabyte, Rechenanforderungen in Gleitkommaoperationen oder FLOPS).
In den nächsten Kapiteln werden wir uns eingehend mit dem Transfer Learning beschäftigen. Schauen wir uns nun an, welche Arten von Deep Learning-Frameworks und -Diensten uns zur Verfügung stehen.
Als Kaiming He et al. 2015 die 152-schichtige ResNet-Architektur vorstellten - eine Meisterleistung, wenn man bedenkt, dass das bisher größte GoogLeNet-Modell aus 22 Schichten bestand - gab es nur eine Frage, die alle beschäftigte: "Warum nicht 153 Schichten?" Wie sich herausstellte, war der Grund dafür, dass Kaiming der GPU-Speicher ausging!
Rahmenwerke
Es gibt mehrere Deep-Learning-Bibliotheken, mit denen wir unsere Modelle trainieren können. Außerdem gibt es Frameworks, die darauf spezialisiert sind, diese trainierten Modelle zu nutzen, um Vorhersagen (oder Schlussfolgerungen) zu treffen, und die für den Standort der Anwendung optimiert sind.
Wie bei Software im Allgemeinen sind in der Vergangenheit viele Bibliotheken aufgetaucht und wieder verschwunden - Torch (2002), Theano (2007), Caffe (2013), Microsoft Cognitive Toolkit (2015), Caffe2 (2017) - und die Landschaft hat sich schnell weiterentwickelt. Die Erkenntnisse aus den einzelnen Bibliotheken haben den Einstieg erleichtert, das Interesse geweckt und die Produktivität von Anfängern und Experten gleichermaßen verbessert. Tabelle 1-5 gibt einen Überblick über einige der beliebtesten Bibliotheken.
Rahmenwerk | Am besten geeignet für | Typische Zielplattform |
---|---|---|
TensorFlow (einschließlich Keras) | Ausbildung | Desktops, Server |
PyTorch | Ausbildung | Desktops, Server |
MXNet | Ausbildung | Desktops, Server |
TensorFlow Servieren | Inferenz | Server |
TensorFlow Lite | Inferenz | Mobile und eingebettete Geräte |
TensorFlow.js | Inferenz | Browsers |
ml5.js | Inferenz | Browsers |
Kern ML | Inferenz | Apple Geräte |
Xnor AI2GO | Inferenz | Eingebettete Geräte |
TensorFlow
Im Jahr 2011 entwickelte Google Brain die DNN-Bibliothek DistBelief für die interne Forschung und Entwicklung. Sie half beim Training von Inception (dem Gewinner des ImageNet Large Scale Visual Recognition Challenge von 2014) und bei der Verbesserung der Spracherkennung in Google-Produkten. Da es stark in die Google-Infrastruktur eingebunden ist, war es nicht einfach, es zu konfigurieren und den Code mit externen Machine-Learning-Enthusiasten zu teilen. Google erkannte die Einschränkungen und begann mit der Arbeit an einem verteilten Machine-Learning-Framework der zweiten Generation, das universell einsetzbar, skalierbar, hochleistungsfähig und auf viele Hardware-Plattformen übertragbar sein sollte. Und das Beste daran: Es war Open Source. Google nannte es TensorFlow und kündigte seine Veröffentlichung im November 2015 an.
TensorFlow hat viele der oben genannten Versprechen erfüllt und ein durchgängiges Ökosystem von der Entwicklung bis zum Einsatz entwickelt und dabei eine große Anhängerschaft gewonnen. Mit mehr als 100.000 Sternen auf GitHub gibt es keine Anzeichen dafür, dass es aufhört. Als die Akzeptanz zunahm, kritisierten die Nutzer der Bibliothek jedoch zu Recht, dass sie nicht einfach genug zu bedienen sei. Der Witz war, dass TensorFlow eine Bibliothek von Google-Ingenieuren, von Google-Ingenieuren für Google-Ingenieure war, und wenn du schlau genug warst, TensorFlow zu benutzen, warst du schlau genug, um dort eingestellt zu werden.
Aber Google war hier nicht allein. Seien wir ehrlich. Noch 2015 war klar, dass die Arbeit mit Deep-Learning-Bibliotheken unweigerlich eine unangenehme Erfahrung sein würde. Die Installation einiger dieser Frameworks führte dazu, dass man sich die Haare ausreißen wollte. (Caffe-Benutzer da draußen - klingelt's da bei dir?)
Keras
Als Antwort auf die Schwierigkeiten der Deep-Learning-Praktiker/innen veröffentlichte François Chollet im März 2015 das Open-Source-Framework Keras, und die Welt ist seitdem nicht mehr dieselbe. Diese Lösung machte Deep Learning plötzlich auch für Anfänger/innen zugänglich. Keras bot eine intuitive und einfach zu bedienende Schnittstelle für die Programmierung, die dann andere Deep-Learning-Bibliotheken als Backend-Rechenframework nutzen konnte. Mit Theano als erstem Backend förderte Keras das schnelle Prototyping und reduzierte die Anzahl der Codezeilen. Mit der Zeit wurde diese Abstraktion auf andere Frameworks ausgeweitet, darunter Cognitive Toolkit, MXNet, PlaidML und, ja, TensorFlow.
PyTorch
Unter begann PyTorch Anfang 2016 bei Facebook, wo Ingenieure die Grenzen von TensorFlow kennenlernten. PyTorch unterstützte von Anfang an native Python-Konstrukte und Python-Debugging, was es flexibel und benutzerfreundlich machte und es schnell zu einem Favoriten unter KI-Forschern machte. Es ist das zweitgrößte End-to-End Deep Learning System. Facebook hat außerdem Caffe2 entwickelt, um PyTorch-Modelle in die Produktion zu überführen und mehr als eine Milliarde Nutzer/innen zu bedienen. Während PyTorch in der Forschung eingesetzt wurde, wurde Caffe2 hauptsächlich in der Produktion verwendet. Im Jahr 2018 wurde Caffe2 in PyTorch integriert, um ein vollständiges Framework zu bilden.
Eine sich ständig weiterentwickelnde Landschaft
Wäre diese Geschichte mit der Leichtigkeit von Keras und PyTorch zu Ende gegangen, hätte dieses Buch nicht das Wort "TensorFlow" im Untertitel. Das TensorFlow-Team hat erkannt, dass es das Tool einfacher machen muss, wenn es seine Reichweite wirklich vergrößern und die KI demokratisieren will. Daher war es eine willkommene Nachricht, als Keras offiziell als Teil von TensorFlow aufgenommen wurde und das Beste aus beiden Welten bot. So konnten Entwickler/innen Keras für die Definition des Modells und das Training nutzen und TensorFlow für seine leistungsstarke Datenpipeline, einschließlich verteiltem Training und Ökosystem. Das war wie geschaffen für den Himmel! Und als Krönung des Ganzen bot TensorFlow 2.0 (veröffentlicht 2019) Unterstützung für native Python-Konstrukte und Eager Execution, wie wir es von PyTorch kennen.
Bei so vielen konkurrierenden Frameworks stellt sich unweigerlich die Frage nach der Portabilität. Stell dir vor, eine neue Forschungsarbeit wird veröffentlicht und das neueste Modell wird in PyTorch veröffentlicht. Wenn wir nicht in PyTorch arbeiten würden, wären wir von der Forschung ausgeschlossen und müssten das Modell neu implementieren und trainieren. Entwickler möchten Modelle frei austauschen können und nicht auf ein bestimmtes Ökosystem beschränkt sein. Organisch haben viele Entwickler Bibliotheken geschrieben, um Modellformate von einer Bibliothek in eine andere zu konvertieren. Das war eine einfache Lösung, führte aber zu einer kombinatorischen Explosion von Konvertierungswerkzeugen, denen es aufgrund ihrer schieren Anzahl an offizieller Unterstützung und ausreichender Qualität mangelte. Um dieses Problem zu lösen, wurde der Open Neural Network Exchange (ONNX) von Microsoft und Facebook zusammen mit anderen wichtigen Akteuren der Branche ins Leben gerufen. ONNX stellte eine Spezifikation für ein gemeinsames Modellformat zur Verfügung, das offiziell von einer Reihe beliebter Bibliotheken gelesen und geschrieben werden konnte. Außerdem wurden Konverter für Bibliotheken bereitgestellt, die dieses Format nicht von Haus aus unterstützen. Dies ermöglichte es Entwicklern, in einem Framework zu trainieren und Inferenzen in einem anderen Framework durchzuführen.
Neben von diesen Frameworks gibt es mehrere Graphical User Interface (GUI) Systeme, die ein codefreies Training ermöglichen. Mithilfe von Transfer Learning erzeugen sie schnell trainierte Modelle in verschiedenen Formaten, die für Inferenzen nützlich sind. Mit Point-and-Click-Schnittstellen kann jetzt sogar deine Oma ein neuronales Netz trainieren!
Service | Plattform |
---|---|
Microsoft CustomVision.AI | Webbasiert |
Google AutoML | Webbasiert |
Clarifai | Webbasiert |
IBM Visuelle Erkennung | Webbasiert |
Apple Create ML | macOS |
NVIDIA DIGITS | Desktop |
Startbahn ML | Desktop |
Warum haben wir TensorFlow und Keras als Hauptframeworks für dieses Buch ausgewählt? In Anbetracht der schieren Menge an verfügbarem Material, einschließlich Dokumentation, Stack Overflow-Antworten, Online-Kursen, der riesigen Gemeinschaft von Mitwirkenden, Plattform- und Geräteunterstützung, der Akzeptanz in der Industrie und, ja, der verfügbaren offenen Aufträge (etwa dreimal so viele TensorFlow-bezogene Stellen im Vergleich zu PyTorch in den Vereinigten Staaten), dominieren TensorFlow und Keras derzeit die Landschaft, wenn es um Frameworks geht. Für uns war es daher sinnvoll, diese Kombination zu wählen. Allerdings lassen sich die in diesem Buch behandelten Techniken auch auf andere Bibliotheken übertragen. Die Einarbeitung in ein neues Framework sollte nicht allzu lange dauern. Wenn du also wirklich zu einem Unternehmen wechseln willst, das ausschließlich PyTorch verwendet, solltest du nicht zögern, dich dort zu bewerben.
Hardware
Als James W. Marshall 1848 in Kalifornien Gold entdeckte, verbreitete sich die Nachricht wie ein Lauffeuer in den Vereinigten Staaten. Hunderttausende von Menschen stürmten in den Bundesstaat, um dort nach Reichtümern zu schürfen. Dies wurde als der kalifornische Goldrausch bekannt. Die ersten, die sich auf den Weg machten, konnten einen anständigen Batzen abbauen, aber die Nachzügler hatten nicht annähernd so viel Glück. Doch der Ansturm hielt noch viele Jahre an. Kannst du erraten, wer in dieser Zeit das meiste Geld verdiente? Die Schaufelbauer!
Cloud- und Hardware-Unternehmen sind die Schaufelbauer des einundzwanzigsten Jahrhunderts. Du glaubst uns nicht? Dann sieh dir die Entwicklung der Aktien von Microsoft und NVIDIA in den letzten zehn Jahren an. Der einzige Unterschied zwischen 1849 und heute ist die unfassbar große Auswahl an Schaufeln, die uns zur Verfügung steht.
Angesichts der Vielfalt der verfügbaren Hardware ist es wichtig, die richtige Wahl für die Einschränkungen zu treffen, die sich aus den Ressourcen, der Latenz, dem Budget, dem Datenschutz und den rechtlichen Anforderungen der Anwendung ergeben.
Je nachdem, wie deine Anwendung mit dem Nutzer interagiert, wartet in der Inferenzphase normalerweise ein Nutzer am anderen Ende auf eine Antwort. Dies führt zu Einschränkungen bei der Art der Hardware, die verwendet werden kann, sowie beim Standort der Hardware. Eine Snapchat-Linse kann zum Beispiel aufgrund der Netzwerklatenz nicht in der Cloud laufen. Außerdem muss sie nahezu in Echtzeit laufen, um ein gutes Nutzererlebnis (UX) zu bieten. Daher gibt es eine Mindestanforderung an die Anzahl der verarbeiteten Bilder pro Sekunde (in der Regel >15 fps). Andererseits muss ein Foto, das in eine Bildbibliothek wie Google Fotos hochgeladen wird, nicht sofort kategorisiert werden. Eine Latenzzeit von einigen Sekunden oder Minuten ist akzeptabel.
Das andere Extrem ist, dass die Ausbildung viel mehr Zeit in Anspruch nimmt: zwischen Minuten, Stunden und Tagen. Je nach Trainingsszenario liegt der wahre Wert besserer Hardware darin, dass wir schneller experimentieren und mehr Iterationen durchführen können. Für alles, was über einfache neuronale Netze hinausgeht, kann bessere Hardware einen gewaltigen Unterschied ausmachen. In der Regel beschleunigen GPUs die Dinge um das 10- bis 15-fache im Vergleich zu CPUs, und das bei einer viel höheren Leistung pro Watt, wodurch sich die Wartezeit bis zum Abschluss unseres Experiments von einer Woche auf ein paar Stunden verkürzt. Das kann den Unterschied ausmachen, ob man sich einen Dokumentarfilm über den Grand Canyon anschaut (zwei Stunden) oder ob man tatsächlich zum Grand Canyon reist (vier Tage).
Im Folgenden findest du einige grundlegende Hardware-Kategorien und wie sie typischerweise charakterisiert werden (siehe auch Abbildung 1-10):
- Zentrale Recheneinheit (CPU)
-
Billig, flexibel, langsam. Zum Beispiel: Intel Core i9-9900K.
- GPU
-
Hoher Durchsatz, großartig für Stapelverarbeitung, um Parallelverarbeitung zu nutzen, teuer. Zum Beispiel die NVIDIA GeForce RTX 2080 Ti.
- Feldprogrammierbares Gate-Array (FPGA)
-
Schnell, stromsparend, umprogrammierbar für individuelle Lösungen, teuer. Zu den bekannten Unternehmen gehören Xilinx, Lattice Semiconductor und Altera (Intel). Aufgrund der sekundenschnellen Ausführung und der Konfigurierbarkeit für jedes KI-Modell setzt Microsoft Bing den Großteil seiner KI auf FPGAs.
- Anwendungsspezifische integrierte Schaltung (ASIC)
-
Speziell angefertigter Chip. Extrem teuer in der Entwicklung, aber preiswert, wenn er in großem Maßstab gebaut wird. Wie in der pharmazeutischen Industrie kostet das erste Produkt am meisten, weil der Aufwand für Forschung und Entwicklung für die Entwicklung und Herstellung am höchsten ist. Die Herstellung großer Mengen ist relativ kostengünstig. Konkrete Beispiele sind die folgenden:
- Tensor Processing Unit (TPU)
-
ASIC, spezialisiert auf Operationen für neuronale Netze, nur in der Google Cloud verfügbar.
- Kanten TPU
-
Kleiner als ein US-Penny, beschleunigt die Rückschlüsse auf die Kanten.
- Neural Processing Unit (NPU)
-
Dieser Chip, der oft von Smartphone-Herstellern eingesetzt wird, beschleunigt die Inferenz neuronaler Netzwerke.
Schauen wir uns ein paar Szenarien an, für die jedes von ihnen verwendet werden könnte:
-
Einstieg in die Ausbildung → CPU
-
Training großer Netzwerke → GPUs und TPUs
-
Inferenz auf Smartphones → Mobile CPU, GPU, Digitaler Signalprozessor (DSP), NPU
-
Wearables (z. B. Smart Glasses, Smartwatches) → Kanten TPU, NPUs
-
Eingebettete KI-Projekte (z. B. Hochwasservermessungsdrohne, autonomer Rollstuhl) → Beschleuniger wie Google Coral, Intel Movidius mit Raspberry Pi oder GPUs wie NVIDIA Jetson Nano, bis hin zu 15-Dollar-Mikrocontrollern (MCUs) für die Wake-Word-Erkennung in Smart Speakers
Im Laufe des Buches werden wir viele von ihnen genauer untersuchen.
Verantwortungsvolle KI
Bislang haben wir die Macht und das Potenzial der KI erforscht. Sie verspricht, unsere Fähigkeiten zu verbessern, uns produktiver zu machen und uns Superkräfte zu verleihen.
Aber mit großer Macht kommt auch große Verantwortung.
So sehr KI der Menschheit helfen kann, so sehr hat sie auch das Potenzial, uns zu schaden, wenn sie nicht mit Bedacht und Sorgfalt entwickelt wurde (entweder absichtlich oder unabsichtlich). Die Schuld liegt nicht bei der KI, sondern bei ihren Entwicklern.
Betrachte einige reale Vorfälle, die in den letzten Jahren für Schlagzeilen gesorgt haben.
-
"____ kann angeblich allein durch die Analyse deines Gesichts feststellen, ob du ein Terrorist bist"(Abbildung 1-11): Computerwelt, 2016
-
"KI schickt Menschen ins Gefängnis - und macht es falsch": MIT Tech Review, 2019
-
"____ Supercomputer empfahl 'unsichere und falsche' Krebsbehandlungen, interne Dokumente zeigen": STAT News, 2018
-
"____ hat ein KI-Tool entwickelt, um Leute einzustellen, musste es aber wieder abschalten, weil es Frauen diskriminiert hat": Business Insider, 2018
-
"____ KI-Studie: Große Objekterkennungssysteme bevorzugen Menschen mit mehr Geld": VentureBeat, 2019
-
"____ bezeichnete Schwarze als 'Gorillas'" USA Today, 2015. "Zwei Jahre später löst ____ das Problem des "rassistischen Algorithmus", indem es die Bezeichnung "Gorilla" aus dem Bildklassifikator entfernt": Boing Boing, 2018
-
"____ bringt seinen neuen KI-Bot Tay zum Schweigen, nachdem Twitter-Nutzer ihm Rassismus beigebracht haben": TechCrunch, 2016
-
"KI verwechselt Bus-Werbung mit berühmtem CEO und beschuldigt sie des Überschreitens der Fahrbahn": Caixin Global, 2018
-
"____ will KI-Auftrag des Pentagons nach Einwänden von Mitarbeitern gegen das 'Geschäft mit dem Krieg' fallen lassen": Washington Post, 2018
-
"Selbstfahrendes Todesauto ____ hat Fußgängerin sechs Sekunden vor dem Überfahren entdeckt": The Sun, 2018
Kannst du die Lücken hier ausfüllen? Wir geben dir einige Möglichkeiten - Amazon, Microsoft, Google, IBM und Uber. Mach schon und fülle sie aus. Wir werden warten.
Es gibt einen Grund, warum wir sie leer gelassen haben. Damit wollen wir deutlich machen, dass es sich nicht um das Problem einer bestimmten Person oder eines Unternehmens handelt. Es ist das Problem von allen. Und obwohl diese Dinge in der Vergangenheit passiert sind und vielleicht nicht den aktuellen Stand widerspiegeln, können wir daraus lernen und versuchen, nicht die gleichen Fehler zu machen. Der Silberstreif am Horizont ist, dass alle aus diesen Fehlern gelernt haben.
Wir als Entwickler/innen, Designer/innen, Architekt/innen und Leiter/innen von KI haben die Verantwortung, über das technische Problem hinaus zu denken. Im Folgenden sind nur eine Handvoll Themen aufgeführt, die für jedes Problem, das wir lösen (KI oder andere), relevant sind. Sie dürfen nicht in den Hintergrund rücken.
Bias
Oft bringen wir bei unserer täglichen Arbeit wissentlich oder unwissentlich unsere eigenen Vorurteile ein. Dies ist das Ergebnis einer Vielzahl von Faktoren, darunter unser Umfeld, unsere Erziehung, kulturelle Normen und sogar unsere angeborene Natur. Schließlich wurden KI und die Datensätze, die sie antreiben, nicht in einem Vakuum geschaffen - sie wurden von Menschen mit ihren eigenen Vorurteilen entwickelt. Computer schaffen nicht auf magische Weise selbst Vorurteile, sondern spiegeln und verstärken bestehende Vorurteile.
Nimm das Beispiel aus den Anfangstagen der YouTube-App, als die Entwickler feststellten, dass etwa 10 % der hochgeladenen Videos auf dem Kopf standen. Wäre die Zahl niedriger gewesen, sagen wir 1 %, hätte man das vielleicht als Benutzerfehler abtun können. Aber 10 % war eine zu hohe Zahl, um ignoriert zu werden. Weißt du, wer zufällig 10% der Bevölkerung ausmacht? Linkshänder! Diese Nutzerinnen und Nutzer hielten ihre Handys in der entgegengesetzten Ausrichtung wie ihre rechtshändigen Kollegen. Aber die Ingenieure von YouTube hatten diesen Fall bei der Entwicklung und dem Testen ihrer mobilen App nicht berücksichtigt, also lud YouTube Videos in der gleichen Ausrichtung für Links- und Rechtshänder auf seinen Server hoch.
Dieses Problem hätte viel früher erkannt werden können, wenn die Entwickler auch nur eine einzige linkshändige Person im Team gehabt hätten. Dieses einfache Beispiel zeigt, wie wichtig Vielfalt ist. Die Händigkeit ist nur ein kleines Merkmal, das eine Person ausmacht. Zahlreiche andere Faktoren, die sich oft ihrer Kontrolle entziehen, kommen ins Spiel. Faktoren wie Geschlecht, Hautfarbe, wirtschaftlicher Status, Behinderung, Herkunftsland, Sprachmuster oder sogar etwas so Triviales wie die Haarlänge können für jemanden lebensverändernde Auswirkungen haben, auch darauf, wie ein Algorithmus ihn behandelt.
Das Google-Glossar zum maschinellen Lernen listet unter verschiedene Formen von Verzerrungen auf, die eine Pipeline für maschinelles Lernen beeinträchtigen können. Die folgenden sind nur einige davon:
- Auswahlverzerrung
-
Der Datensatz ist nicht repräsentativ für die Verteilung des Problems in der realen Welt und ist zu einer Untergruppe von Kategorien verzerrt. Bei vielen virtuellen Assistenten und Smart-Home-Lautsprechern sind zum Beispiel einige gesprochene Akzente überrepräsentiert, während andere Akzente im Trainingsdatensatz überhaupt nicht vorkommen, was zu einer schlechten UX für große Teile der Weltbevölkerung führt.
Auswahlverzerrungen können auch durch das gleichzeitige Auftreten von Begriffen entstehen. Wenn Google Translate zum Beispiel die Sätze "Sie ist eine Ärztin. Er ist Krankenpfleger" in eine geschlechtsneutrale Sprache wie Türkisch und dann wieder zurück übersetzt, werden die Geschlechter vertauscht, wie in Abbildung 1-12 gezeigt. Das liegt wahrscheinlich daran, dass der Datensatz eine große Anzahl von Koinzidenzen von männlichen Pronomen und dem Wort "Arzt" sowie weiblichen Pronomen und dem Wort "Krankenschwester" enthält.
- Implizite Voreingenommenheit
-
Diese Art von Voreingenommenheit schleicht sich aufgrund von impliziten Annahmen ein, die wir alle machen, wenn wir etwas sehen. Betrachte den hervorgehobenen Teil in Abbildung 1-13. Jeder, der ihn sieht, könnte mit großer Sicherheit annehmen, dass diese Streifen zu einem Zebra gehören. Wenn man bedenkt, wie sehr ImageNet-trainierte Netzwerke Texturen bevorzugen,2 werden die meisten von ihnen das gesamte Bild als Zebra klassifizieren. Wir wissen aber, dass das Bild ein Sofa zeigt, das mit einem zebraähnlichen Stoff gepolstert ist.
- Verzerrte Berichterstattung
-
Manchmal sind die lautesten Stimmen im Raum die extremsten und dominieren das Gespräch. Ein Blick auf Twitter könnte den Anschein erwecken, als ginge die Welt unter, während die meisten Menschen damit beschäftigt sind, ein langweiliges Leben zu führen. Leider verkauft sich langweilig nicht.
- Voreingenommenheit innerhalb der Gruppe/außerhalb der Gruppe
-
Ein Annotator aus Ostasien sieht sich vielleicht ein Bild der Freiheitsstatue an und vergibt Tags wie "Amerika" oder "Vereinigte Staaten", während jemand aus den USA sich dasselbe Bild anschaut und granularere Tags wie "New York" oder "Liberty Island" vergibt. Es liegt in der menschlichen Natur, die eigene Gruppe differenziert zu sehen und andere Gruppen als homogener zu betrachten, und das spiegelt sich auch in unseren Datensätzen wider.
Rechenschaftspflicht und Erklärbarkeit
Stell dir vor, Herr Karl Benz erzählt dir Ende des 19. Jahrhunderts, dass er ein vierrädriges Gerät erfunden hat, das dich schneller als alles andere transportieren kann. Nur hatte er keine Ahnung, wie es funktioniert. Er wusste nur, dass es eine hochentzündliche Flüssigkeit verbrauchte, die in seinem Inneren mehrmals explodierte, um es vorwärts zu treiben. Wodurch bewegte es sich? Wodurch hielt es an? Was hielt es davon ab, die Person, die in ihm saß, zu verbrennen? Er hatte keine Antworten. Wenn das die Entstehungsgeschichte des Autos wäre, würdest du wahrscheinlich nicht in dieses Gefährt einsteigen wollen.
Genau das passiert jetzt mit KI. Beim traditionellen maschinellen Lernen mussten Datenwissenschaftler/innen früher manuell Merkmale (Vorhersagevariablen) aus den Daten auswählen, aus denen dann ein maschinelles Lernmodell lernen sollte. Dieser manuelle Auswahlprozess war zwar mühsam und einschränkend, gab ihnen aber mehr Kontrolle und Einblick in das Zustandekommen der Vorhersage. Beim Deep Learning werden diese Merkmale jedoch automatisch ausgewählt. Datenwissenschaftler/innen sind in der Lage, Modelle zu erstellen, indem sie viele Daten zur Verfügung stellen, und diese Modelle machen am Ende irgendwie zuverlässige Vorhersagen - meistens. Aber der Datenwissenschaftler weiß nicht genau, wie das Modell funktioniert, welche Merkmale es gelernt hat, unter welchen Umständen das Modell funktioniert und - noch wichtiger - unter welchen Umständen es nicht funktioniert. Dieser Ansatz mag akzeptabel sein, wenn Netflix uns Fernsehsendungen empfiehlt, die auf dem basieren, was wir bereits gesehen haben (obwohl wir ziemlich sicher sind, dass sie die Zeile recommendations.append("Stranger Things")
irgendwo in ihrem Code haben). Aber KI macht heutzutage viel mehr, als nur Filme zu empfehlen. Polizei und Justiz beginnen, sich auf Algorithmen zu verlassen, um zu entscheiden, ob jemand ein Risiko für die Gesellschaft darstellt und ob er vor seinem Prozess inhaftiert werden sollte. Das Leben und die Freiheiten vieler Menschen stehen auf dem Spiel. Wir dürfen wichtige Entscheidungen nicht an eine unkontrollierbare Blackbox auslagern. Zum Glück gibt es eine Dynamik, um das zu ändern, indem in erklärbare KI investiert wird, bei der das Modell nicht nur Vorhersagen machen kann, sondern auch die Faktoren erklärt, die es zu einer bestimmten Vorhersage veranlasst haben, und Bereiche mit Einschränkungen aufzeigt.
Darüber hinaus beginnen Städte (wie New York), ihre Algorithmen gegenüber der Öffentlichkeit rechenschaftspflichtig zu machen, indem sie anerkennen, dass die Öffentlichkeit ein Recht darauf hat, zu erfahren, welche Algorithmen sie für wichtige Entscheidungen verwenden und wie sie funktionieren, indem sie Überprüfungen und Audits durch Experten zulassen, indem sie das Fachwissen in den Behörden verbessern, um jedes von ihnen hinzugefügte System besser bewerten zu können, und indem sie Mechanismen bereitstellen, um eine von einem Algorithmus getroffene Entscheidung anzufechten.
Reproduzierbarkeit
Wissenschaftliche Forschung findet nur dann breite Akzeptanz in der Gemeinschaft, wenn sie reproduzierbar ist, d.h. jeder, der die Forschung studiert, sollte in der Lage sein, die Testbedingungen zu wiederholen und dieselben Ergebnisse zu erzielen. Wenn wir die Ergebnisse eines Modells in der Vergangenheit nicht reproduzieren können, können wir es auch in der Zukunft nicht zur Rechenschaft ziehen. Ohne Reproduzierbarkeit ist die Forschung anfällig für p-hacking - die Veränderungder Parameter eines Experiments, bis die gewünschten Ergebnisse erzielt werden. Es ist wichtig, dass Forscher/innen ihre Versuchsbedingungen, einschließlich der Datensätze, Benchmarks und Algorithmen, ausführlich dokumentieren und die Hypothese, die sie testen wollen, vor der Durchführung eines Experiments bekannt geben. Das Vertrauen in Institutionen ist so gering wie nie zuvor, und Forschungsergebnisse, die nicht auf der Realität beruhen, aber von den Medien als Sensation dargestellt werden, können dieses Vertrauen noch mehr untergraben. Traditionell galt die Nachahmung einer Forschungsarbeit als dunkle Kunst, weil viele Details der Durchführung ausgelassen wurden. Die gute Nachricht ist, dass Forscherinnen und Forscher jetzt allmählich anfangen, öffentlich zugängliche Benchmarks zu verwenden (im Gegensatz zu ihren privat erstellten Datensätzen) und den Code, den sie für ihre Forschung verwendet haben, offen zu legen. Die Mitglieder der Gemeinschaft können diesen Code nutzen, um zu beweisen, dass er funktioniert, und um ihn zu verbessern, was schnell zu neuen Innovationen führt.
Robustheit
Es gibt ein ganzes Forschungsgebiet über Ein-Pixel-Angriffe auf CNNs. Im Wesentlichen geht es darum, ein einzelnes Pixel in einem Bild zu finden und so zu verändern, dass ein CNN etwas völlig anderes vorhersagt. Die Veränderung eines einzigen Pixels in einem Bild eines Apfels könnte zum Beispiel dazu führen, dass ein CNN diesen als Hund klassifiziert. Viele andere Faktoren können die Vorhersagen beeinflussen, z. B. Rauschen, Lichtverhältnisse, Kamerawinkel und vieles mehr, das die Fähigkeit eines Menschen, eine ähnliche Entscheidung zu treffen, nicht beeinflusst hätte. Das ist besonders wichtig für selbstfahrende Autos, da ein bösartiger Akteur auf der Straße den Input, den das Auto sieht, verändern könnte, um es dazu zu bringen, schlechte Dinge zu tun. Tatsächlich konnte das Keen Security Lab von Tencent eine Schwachstelle in Teslas AutoPilot ausnutzen, indem es strategisch kleine Aufkleber auf der Straße platzierte, die das Auto dazu brachten, die Spur zu wechseln und auf die Gegenfahrbahn zu fahren. Damit wir ihr vertrauen können, brauchen wir eine robuste KI, die Geräusche, leichte Abweichungen und absichtliche Manipulationen aushält.
Datenschutz
dem Bestreben, immer bessere KI zu entwickeln, müssen Unternehmen viele Daten sammeln. Leider überschreiten sie dabei manchmal ihre Grenzen und sammeln übereifrig Informationen über das hinaus, was für die anstehende Aufgabe notwendig ist. Ein Unternehmen könnte glauben, dass es die gesammelten Daten nur für gute Zwecke verwendet. Was aber, wenn es von einem Unternehmen übernommen wird, das nicht dieselben ethischen Grenzen für die Datennutzung hat? Die Daten des Verbrauchers könnten für andere Zwecke als die ursprünglich beabsichtigten verwendet werden. Außerdem sind all diese an einem Ort gesammelten Daten ein attraktives Ziel für Hacker, die persönliche Informationen stehlen und sie auf dem Schwarzmarkt an kriminelle Unternehmen verkaufen. Außerdem versuchen die Regierungen schon jetzt, jede einzelne Person zu überwachen.
All das steht im Widerspruch zu dem allgemein anerkannten Menschenrecht auf Privatsphäre. Die Verbraucher/innen wünschen sich Transparenz darüber, welche Daten über sie gesammelt werden, wer Zugriff darauf hat, wie sie verwendet werden und Mechanismen, um der Datenerfassung zu widersprechen und bereits gesammelte Daten zu löschen.
Als Entwickler wollen wir uns über alle Daten, die wir sammeln, im Klaren sein und uns fragen, ob es überhaupt notwendig ist, diese Daten zu sammeln. Um die gesammelten Daten so gering wie möglich zu halten, könnten wir datenschutzfreundliche maschinelle Lerntechniken wie Federated Learning (das in der Google-Tastatur verwendet wird) einsetzen, mit denen wir Netzwerke auf den Geräten der Nutzer/innen trainieren können, ohne personenbezogene Daten an einen Server senden zu müssen.
Es hat sich herausgestellt, dass bei vielen der eingangs erwähnten Schlagzeilen die schlechte PR dazu geführt hat, dass diese Themen in das Bewusstsein der Öffentlichkeit gerückt sind, dass Verantwortlichkeiten eingeführt wurden und dass ein branchenweites Umdenken stattgefunden hat, um Wiederholungen in Zukunft zu verhindern. Wir müssen uns selbst, Wissenschaftler/innen, Branchenführer/innen und Politiker/innen weiterhin für jeden Fehltritt zur Rechenschaft ziehen und schnell handeln, um die Fehler zu korrigieren. Jede Entscheidung, die wir treffen, und jede Maßnahme, die wir ergreifen, hat das Potenzial, einen Präzedenzfall für die nächsten Jahrzehnte zu schaffen. Wenn KI allgegenwärtig wird, müssen wir gemeinsam die schwierigen Fragen stellen und Antworten darauf finden, um den potenziellen Schaden zu minimieren und gleichzeitig den größtmöglichen Nutzen daraus zu ziehen.
Zusammenfassung
In diesem Kapitel haben wir die Landschaft der aufregenden Welt der KI und des Deep Learning erkundet. Wir haben die Geschichte der KI von ihren bescheidenen Anfängen über vielversprechende Zeiten und die dunklen KI-Winter bis hin zu ihrem heutigen Wiederaufleben nachgezeichnet. Dabei haben wir auch die Frage beantwortet, warum es dieses Mal anders ist. Dann haben wir uns die notwendigen Zutaten für den Aufbau einer Deep Learning-Lösung angesehen, darunter Datensätze, Modellarchitekturen, Frameworks und Hardware. Damit sind wir bereit für weitere Untersuchungen in den kommenden Kapiteln. Wir wünschen dir viel Spaß mit dem Rest des Buches. Es ist an der Zeit, loszulegen!
Häufig gestellte Fragen
-
Ich fange gerade erst an. Muss ich viel Geld für den Kauf leistungsstarker Hardware ausgeben?
Zu deinem Glück kannst du sogar mit deinem Webbrowser loslegen. Alle unsere Skripte sind online verfügbar und können dank der freundlichen Leute von Google Colab(Abbildung 1-14), die großzügigerweise leistungsstarke GPUs kostenlos zur Verfügung stellen (bis zu 12 Stunden am Stück), auf kostenlosen GPUs ausgeführt werden. Damit solltest du anfangen können. Wenn du mehr Experimente durchführst (vor allem als Profi oder mit großen Datenmengen), solltest du dir einen Grafikprozessor zulegen, entweder indem du ihn in der Cloud mietest (Microsoft Azure, Amazon Web Services (AWS), Google Cloud Platform (GCP) und andere) oder die Hardware kaufst. Aber pass auf die Stromrechnungen auf!
-
Colab ist toll, aber ich habe bereits einen leistungsstarken Computer, den ich zum Spielen von <Name des Videospiels einfügen> gekauft habe. Wie soll ich meine Umgebung einrichten?
Idealerweise wird Linux verwendet, aber auch Windows und macOS funktionieren. Für die meisten Kapitel brauchst du Folgendes:
-
Python 3 und PIP
-
tensorflow
odertensorflow-gpu
PIP-Paket (Version 2 oder höher) -
Kopfkissen
Wir mögen es, wenn die Dinge sauber und in sich geschlossen sind, deshalb empfehlen wir die Verwendung von virtuellen Python-Umgebungen. Du solltest die virtuelle Umgebung immer dann verwenden, wenn du ein Paket installierst oder ein Skript oder ein Notizbuch ausführst.
Wenn du keinen Grafikprozessor hast, bist du mit der Einrichtung fertig.
Wenn du einen NVIDIA-Grafikprozessor hast, musst du die entsprechenden Treiber installieren, dann CUDA, dann cuDNN und dann das Paket
tensorflow-gpu
. Wenn du Ubuntu benutzt, gibt es eine einfachere Lösung als die manuelle Installation dieser Pakete, die selbst für die Besten unter uns mühsam und fehleranfällig sein kann: Installiere einfach die gesamte Umgebung mit nur einer Zeile mit Lambda Stack.Alternativ kannst du alle deine Pakete mit der Anaconda Distribution installieren, die für Windows, Mac und Linux gleichermaßen gut funktioniert.
-
-
Wo finde ich den in diesem Buch verwendeten Code?
Fertige Beispiele findest du unter http://PracticalDeepLearning.ai.
-
Was sind die Mindestvoraussetzungen, um dieses Buch lesen zu können?
Ein Doktortitel in Bereichen wie Kalkulation, statistische Analyse, Variations-Autocodierung, Operations Research und so weiter ist definitiv nicht notwendig, um dieses Buch zu lesen (wir haben dich ein bisschen nervös gemacht, oder?). Ein paar grundlegende Programmierkenntnisse, Vertrautheit mit Python, eine gesunde Portion Neugier und ein Sinn für Humor sollten ausreichen, um sich den Stoff anzueignen. Auch wenn ein grundlegendes Verständnis der mobilen Entwicklung (mit Swift und/oder Kotlin) hilfreich ist, haben wir die Beispiele so gestaltet, dass sie auch für jemanden, der noch nie eine mobile App geschrieben hat, einfach zu handhaben sind.
-
Welche Frameworks werden wir verwenden?
Keras + TensorFlow für das Training. Und Kapitel für Kapitel erkunden wir verschiedene Inferenz-Frameworks.
-
Werde ich ein Experte sein, wenn ich dieses Buch beendet habe?
Wenn du diesem Buch folgst, hast du das Know-how zu einer Vielzahl von Themen, vom Training über die Inferenz bis hin zur Leistungsmaximierung. Auch wenn sich dieses Buch in erster Linie auf die Computer Vision konzentriert, kannst du das gleiche Wissen auch auf andere Bereiche wie Text, Audio usw. übertragen und so sehr schnell auf den neuesten Stand kommen.
-
Wer ist die Katze vom Anfang des Kapitels?
Das ist Mehers Katze, Vader. Er wird im Laufe des Buches mehrere Auftritte haben. Und keine Sorge, er hat bereits ein Model-Release-Formular unterschrieben.
-
Kann ich dich kontaktieren?
Klar, schick uns eine E-Mail an PracticalDLBook@gmail.com mit Fragen, Korrekturen oder was auch immer, oder tweet uns @PracticalDLBook.
1 Wenn du eine Raubkopie liest, sind wir enttäuscht von dir.
Get Praktisches Deep Learning für Cloud, Mobile und Edge now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.