Da Sie dieses Buch lesen, ist Ihnen vermutlich bewusst, welchen außerordentlichen Fortschritt Deep Learning auf dem Gebiet der KI (der Künstlichen Intelligenz) in jüngster Zeit darstellt. In nur fünf Jahren hat sich die Bild- und Spracherkennung von einem nahezu unbrauchbaren Zustand zu einem Werkzeug mit fast übermenschlichen Fähigkeiten entwickelt.
Die mit diesem Fortschritt einhergehenden Folgen betreffen fast sämtliche Industriezweige. Für die Anwendung von Deep-Learning-Technologien auf alle erdenklichen Aufgaben müssen wir sie so vielen Menschen wie möglich zugänglich machen – auch Laien, die keine Forscher oder Doktoranden sind. Deep Learning muss radikal demokratisiert werden, damit es sein volles Potenzial ausschöpfen kann.
Als ich im März 2015 die erste Version des Deep-Learning-Frameworks Keras veröffentlichte, hatte ich eigentlich die Demokratisierung der KI gar nicht im Sinn. Ich hatte mehrere Jahre auf dem Gebiet des Machine Learnings geforscht und Keras für meine eigenen Experimente entwickelt. Aber in den Jahren 2015 und 2016 befassten sich immer mehr Menschen mit Deep Learning. Viele davon entschieden sich für Keras, weil es das für Einsteiger am einfachsten verwendbare Framework war und noch immer ist. Nachdem ich beobachten konnte, dass Scharen von Neulingen Keras auf unerwartete, leistungsstarke Weise einsetzten, wurde mir klar, dass ich mich um die Zugänglichkeit und Demokratisierung der KI bemühen sollte. Ich stellte fest, dass diese Technologien umso nützlicher und wertvoller wurden, je weiter sie sich verbreiteten. Bei der Entwicklung von Keras wurde die einfache Zugänglichkeit schnell zu einem ausdrücklichen Ziel, und die Entwicklergemeinde erzielte in einigen wenigen Jahren bemerkenswerte Erfolge auf diesem Gebiet. Wir ermöglichten Zehntausenden von Entwicklern, Deep Learning einzusetzen, die es ihrerseits zum Lösen bedeutsamer Probleme verwendeten, von denen wir bis vor Kurzem gar nicht wussten, dass es sie überhaupt gibt.
Das Buch, das Sie in Ihren Händen halten, ist ein weiterer Schritt auf dem Weg, Deep Learning für so viele Menschen wie möglich verfügbar zu machen. Es war schon lange überfällig, einen begleitenden Kurs für Keras zu erarbeiten, der nicht nur die Grundlagen des Deep Learnings behandelt, sondern gleichzeitig auch typische Anwendungsmuster und bewährte Verfahren in Keras aufzeigt. Dieses Buch stellt meinen Versuch dar, solch einen Lehrgang anzubieten. Ich habe mich beim Schreiben darauf konzentriert, die dem Deep Learning zugrunde liegenden Konzepte und deren Implementierung so verständlich wie möglich zu schildern. Dabei habe ich keinerlei Vereinfachungen vorgenommen – ich bin der festen Überzeugung, dass beim Deep Learning keine wirklich schwierigen Konzepte auftreten. Ich hoffe, dass Ihnen dieses Buch von Nutzen sein wird und Ihnen dabei hilft, intelligente Anwendungen für die Aufgaben zu entwickeln, die für Sie von Bedeutung sind.
Dieses Buch richtet sich an Leser, die Deep Learning von Grund auf erlernen oder ihre vorhandenen Kenntnisse vertiefen möchten. Es spielt dabei keine Rolle, ob Sie ein Machine-Learning-Entwickler im Praxiseinsatz, ein Programmierer oder ein Student sind: In diesem Buch ist auch für Sie etwas dabei.
Der Autor gibt Ihnen eine praxisorientierte, interaktive Einführung in das Deep Learning und verzichtet dabei weitgehend auf mathematische Formeln. Stattdessen werden anhand von Codebeispielen quantitative Konzepte verdeutlicht, um eine praktische Vorstellung von den grundlegenden Konzepten des Machine Learnings und des Deep Learnings zu vermitteln.
Sie werden anhand von mehr als 30 Codebeispielen – mit ausführlichen Kommentaren, praxisnahen Empfehlungen und zusammenfassenden Erklärungen – alles erfahren, was Sie benötigen, um Deep Learning zum Lösen konkreter Aufgabenstellungen einzusetzen.
Die Codebeispiele verwenden das auf TensorFlow aufbauende Deep-Learning-Framework Keras für Python. Keras ist eines der beliebtesten und am schnellsten wachsenden Deep-Learning-Frameworks und ist das am besten geeignete Tool zum Einstieg ins Deep Learning.
Nach der Lektüre dieses Buchs werden Sie über solide Kenntnisse des Deep Learnings verfügen und beurteilen können, wann es anwendbar ist und wo es an Grenzen stößt. Sie werden mit dem typischen Workflow bei der Bewältigung von für das Machine Learning geeigneten Aufgaben vertraut sein und wissen, wie sich häufig auftretende Probleme lösen lassen. Sie werden in der Lage sein, praxisnahe Aufgaben vom maschinellen Sehen bis zur Sprachverarbeitung mit Keras anzugehen: Bildklassifizierung, Vorhersage von Zeitreihen, Stimmungsanalyse, Erzeugung von Bildern und Texten und vieles andere mehr.
Das Buch wendet sich an Leser, die bereits Programmiererfahrung mit Python haben und die ins Machine Learning und Deep Learning einsteigen möchten. Es kann jedoch auch für viele andere Leser von Nutzen sein:
Falls Sie Data Scientist sind und Ihnen Machine Learning bereits vertraut ist, bietet das Buch eine solide und praxisnahe Einführung ins Deep Learning, das am schnellsten wachsende und bedeutendste Teilgebiet des Machine Learnings.
Falls Sie Deep-Learning-Experte sind und sich mit dem Deep-Learning-Framework vertraut machen möchten, werden Sie feststellen, dass dieses Buch den besten verfügbaren Keras-Schnellkurs darstellt.
Falls Sie Doktorand sind und sich in einer formalen Umgebung mit Deep Learning befassen, werden Sie feststellen, dass dieses Buch eine praxisorientierte Ergänzung Ihrer Ausbildung ist, die Ihnen eine Vorstellung vom Verhalten tiefer neuronaler Netze vermittelt und Sie mit den wichtigsten bewährten Verfahren vertraut macht.
Auch technisch Interessierte, die selbst nicht regelmäßig programmieren, werden das Buch als Einführung in die grundlegenden und weiterführenden Konzepte des Deep Learnings nützlich finden.
Für den Einsatz von Keras sind hinreichende Python-Kenntnisse unverzichtbar. Darüber hinaus ist es zwar keine Bedingung, dass Sie mit der Numpy-Bibliothek vertraut sind, aber durchaus hilfreich. Erfahrung mit Machine Learning oder Deep Learning wird nicht vorausgesetzt: Das Buch erläutert alle erforderlichen Grundlagen. Fortgeschrittene Mathematikkenntnisse sind ebenfalls nicht notwendig – Schulkenntnisse sollten für das Verständnis ausreichen.
Das Buch besteht aus zwei Teilen. Sofern Sie noch keine Erfahrung mit Machine Learning haben, sollten Sie zunächst Teil I lesen, bevor Sie sich mit Teil II befassen. Wir werden anfangs einfache Beispiele behandeln und uns im weiteren Verlauf des Buchs zunehmend Verfahren annähern, die dem Stand der Technik entsprechen.
Teil I ist eine allgemeine Einführung in das Deep Learning und erläutert die grundlegenden Zusammenhänge und Begriffe sowie alle erforderlichen Konzepte, die für den Einstieg ins Deep Learning und in neuronale Netze wichtig sind:
In Kapitel 1 wird das wesentliche Hintergrundwissen rund um die Themen KI, Machine Learning und Deep Learning erläutert.
Kapitel 2 stellt die für das Verständnis von Deep Learning erforderlichen grundlegenden Konzepte vor: Tensoren, Tensoroperationen sowie Gradientenabstiegs- und Backpropagation-Verfahren. Dieses Kapitel enthält auch das erste Beispiel für ein funktionierendes neuronales Netz.
Kapitel 3 enthält alles, was Sie wissen müssen, um neuronale Netze zu verwenden: eine Einführung in Keras, das Deep-Learning-Framework der Wahl, einen Leitfaden zum Einrichten Ihres Arbeitsplatzrechners und drei grundlegende Codebeispiele mit ausführlichen Erklärungen. Am Ende dieses Kapitels werden Sie in der Lage sein, einfache neuronale Netze für Klassifizierungs- und Regressionsaufgaben zu trainieren. Außerdem werden Sie eine klare Vorstellung davon haben, was beim Trainieren eigentlich im Hintergrund vor sich geht.
Kapitel 4 erörtert den typischen Workflow beim Machine Learning. Darüber hinaus lernen Sie einige häufig auftauchende Fallstricke kennen und erfahren, wie man diese umgeht.
Teil II befasst sich ausführlich mit den praktischen Anwendungen des Deep Learnings beim maschinellen Sehen (engl. Computer Vision) und bei der Verarbeitung natürlicher Sprache. Viele der hier vorgestellten Beispiele können Ihnen als Vorlage zum Lösen von Problemen dienen, die Ihnen in der Praxis des Deep Learnings begegnen werden:
Kapitel 5 untersucht eine Reihe von Beispielen für das maschinelle Sehen und legt dabei einen Schwerpunkt auf die Klassifizierung von Bildern.
In Kapitel 6 sammeln Sie Erfahrung mit Verfahren zur Verarbeitung sequenzieller Daten, wie etwa Texten und Zeitreihen.
Kapitel 7 stellt einige erweiterte Verfahren zum Erstellen von Deep-Learning-Modellen vor, die dem gegenwärtigen Stand der Technik entsprechen.
Kapitel 8 erläutert sogenannte generative Modelle: Deep-Learning-Modelle, die in der Lage sind, Bilder und Texte zu erzeugen, und manchmal erstaunlich künstlerisch wirkende Ergebnisse erzielen.
Kapitel 9 fasst die im Buch erörterten Inhalte zusammen, wirft einen Blick auf die Beschränkungen des Deep Learnings und erkundet die voraussichtliche Zukunft dieses Fachgebiets.
Sämtliche Codebeispiele in diesem Buch verwenden das quelloffene und kostenlose Deep-Learning-Framework Keras (http://keras.io). Sie sollten über Zugang zu einem UNIX-System verfügen. Es ist zwar auch möglich, Windows zu verwenden, davon rate ich jedoch ab. In Anhang A ist die Einrichtung vollständig beschrieben.
Darüber hinaus empfehle ich, eine neuere NVIDIA-GPU wie z.B. die TITAN X zu verwenden. Das ist zwar nicht unbedingt notwendig, erleichtert die Arbeit aber ungemein, da die Codebeispiele erheblich schneller ausgeführt werden. Weitere Informationen zur Einrichtung eines Deep-Learning-Rechners finden Sie in Abschnitt 3.3.
Sollte Ihnen kein Zugang zu einem Arbeitsplatzrechner mit einer neueren NVIDIA-GPU zur Verfügung stehen, können Sie stattdessen eine Google-Cloud-Instanz (wie etwa eine n1-standard-8-Instanz mit zusätzlicher NVIDIA Tesla K80) oder von Amazon Web Services (AWS) bereitgestellte GPU-Instanzen (wie z.B. eine p2.xlarge-Instanz) verwenden. In Anhang B ist ein möglicher Cloud-Workflow ausführlich beschrieben, der via Jupyter-Notebooks eine AWS-Instanz ausführt, auf die Sie per Webbrowser zugreifen können.
Sämtliche Codebeispiele stehen in Form von Jupyter-Notebooks zum Herunterladen bereit (unter http://www.mitp.de/838 oder https://github.com/fchollet/deep-learning-with-python-notebooks).
Der amerikanische Originalverlag Manning Publications betreibt unter https://forums.manning.com/forums/deep-learning-with-python ein Webforum zum Buch. Dort können Sie auf Englisch Kommentare schreiben, technische Fragen stellen und Hilfe vom Autor und anderen Forumsteilnehmern erhalten. Weitere Information und Hinweise zu den Verhaltensregeln finden Sie unter https://forums.manning.com/forums/about.
François Chollet ist bei Google in Mountain View, Kalifornien, tätig und befasst sich mit Deep Learning. Er ist der Entwickler der Deep-Learning-Bibliothek Keras und hat bedeutende Beiträge zum Machine-Learning-Framework TensorFlow geleistet. Er forscht auf dem Gebiet des Deep Learnings mit den Schwerpunkten maschinelles Sehen und der Anwendung des Machine Learnings auf formales Schließen. Seine Forschungsergebnisse wurden auf bedeutenden Veranstaltungen des Fachgebiets veröffentlicht, unter anderem auf der Conference on Computer Vision and Pattern Recognition (CVPR), der Conference on Neural Information Processing Systems (NIPS), der International Conference on Learning Representations (ICLR) und weiteren.
Alexander Bresk ist Unternehmer, Data Engineer, Machine Teacher, Autor und Basketball-Nerd. Er arbeitet als Senior Data Engineer bei der LOVOO GmbH. Dort beschäftigt er sich mit den Themen Recommendation und Online Segmentation. Seinen Master of Science erwarb Alexander an der HTW Dresden, wo er Angewandte Informationstechnologien studierte. Seit seinem Master im Bereich des Question Answering forscht er aktiv an Verfahren zur Verarbeitung natürlicher Sprache (NLP), wobei er unter anderem Deep Learning Frameworks einsetzt. Außerdem organisiert er zusammen mit Kollegen und Freunden Meetups, Konferenzen und andere Veranstaltungen in den Bereichen Tech, Machine Learning und Startups. Mit seiner Firma Machine Rockstars berät er Unternehmen beim Einstieg in das Thema Digitalisierung sowie bei der Einführung von Machine Learning.
Alexander Bresks Homepage: http://alexander.bre.sk
Ich danke der Keras-Community dafür, dass sie dieses Buch ermöglicht hat. Inzwischen gibt es mehrere Hundert Entwickler, die Beiträge leisten, und mehr als 200.000 Benutzer. Eure Beiträge und euer Feedback haben Keras zu dem gemacht, was es heute ist.
Außerdem danke ich Google für die Unterstützung des Keras-Projekts. Es war großartig zu erleben, dass Keras als TensorFlows High-Level-API übernommen wurde. Die reibungslose Zusammenführung von Keras und TensorFlow ist sowohl für TensorFlow- als auch für Keras-User von Vorteil und ermöglicht fast allen Entwicklern den Zugang zum Deep Learning.
Ich danke den Mitarbeitern des amerikanischen Originalverlags Manning, die dieses Buch ermöglicht haben: dem Herausgeber Marjan Bace und allen Redaktions- und Produktionsmitgliedern, insbesondere Christina Taylor, Janet Vail, Tiffany Taylor, Katie Tennant, Dottie Marsico und vielen anderen, die hinter den Kulissen tätig waren.
Großer Dank gebührt auch dem von Aleksandar Dragosavljevic geleiteten technischen Korrektorenteam – Diego Acuña Rozas, Geoff Barto, David Blumenthal-Barby, Abel Brown, Clark Dorman, Clark Gaylord, Thomas Heiman, Wilson Mar, Sumit Pal, Vladimir Pasman, Gustavo Patino, Peter Rabinovitch, Alvin Raj, Claudio Rodriguez, Srdjan Santic, Richard Tobias, Martin Verzilli, William E. Wheeler und Daniel Williams – sowie den Mitgliedern des Forums. Sie wiesen auf technische Fehler, unpassende Terminologie und Tippfehler hin und lieferten Themenvorschläge. Alle diese Überprüfungen und die Rückmeldungen zu den im Forum erörterten Themen haben das Manuskript mitgeformt und mitgestaltet.
Was technische Fragen betrifft, gebührt Jerry Gaines, der als technischer Redakteur tätig war, sowie den technischen Korrekturlesern Alex Ott und Richard Tobias besonderer Dank. Bessere technische Redakteure hätte ich mir nicht wünschen können.
Und abschließend möchte ich meiner Frau Maria meinen Dank für die unglaubliche Unterstützung während der Entwicklung von Keras und beim Schreiben dieses Buchs aussprechen.
Die Themen in diesem Kapitel:
Allgemeine Definitionen und grundlegende Konzepte
Chronologie der Entwicklung des Machine Learnings
Entscheidende Faktoren bei der zunehmenden Verbreitung des Deep Learnings und zukünftiges Potenzial
In den vergangenen Jahren sorgte die Künstliche Intelligenz (engl. Artificial Intelligence oder kurz AI) für einen weitreichenden Medienrummel. Machine Learning, Deep Learning und KI waren Gegenstand unzähliger Artikel, häufig auch jenseits technologieorientierter Publikationen. Man hat uns eine Zukunft mit intelligenten Chatbots, selbstfahrenden Autos und virtuellen Assistenten versprochen – eine Zukunft, die mitunter düster beschrieben wird, aber auch als eine Utopie, in der menschliche Arbeit selten ist und die meisten wirtschaftlichen Tätigkeiten von Robotern oder KI-Agenten erledigt werden. Für zukünftige und heutige Anwender des Machine Learnings ist es von großer Bedeutung, das Signal in all dem Rauschen zu erkennen, um wirklich weltbewegende Entwicklungen von hochgejubelten Pressemitteilungen unterscheiden zu können. Hier steht nicht weniger als unsere Zukunft auf dem Spiel – eine Zukunft, in der Sie eine aktive Rolle einnehmen müssen: Nach der Lektüre dieses Buchs gehören Sie zu denjenigen, die KI-Agenten entwickeln werden. Setzen wir uns also mit den folgenden Fragen auseinander: Was kann Deep Learning heute schon leisten? Wie bedeutsam ist es? Worauf steuern wir zu? Darf man dem Hype Glauben schenken?
Dieses Kapitel erläutert das wesentliche Hintergrundwissen rund um die Themen KI, Machine Learning und Deep Learning.
Zunächst einmal müssen wir eindeutig definieren, was wir eigentlich meinen, wenn wir von KI sprechen. Was sind KI, Machine Learning und Deep Learning (siehe Abbildung 1.1) eigentlich genau? In welcher Beziehung stehen sie zueinander?
Abb. 1.1: Künstliche Intelligenz, Machine Learning und Deep Learning
Die Künstliche Intelligenz wurde in den 1950er-Jahren entwickelt, als sich einige Pioniere der damals aufblühenden Informatik fragten, ob es möglich sei, einem Computer das »Denken« beizubringen – eine Frage, mit deren Auswirkungen wir uns auch heute noch befassen. Eine kompakte Definition dieses Fachgebiets lautet folgendermaßen: der Versuch, normalerweise von Menschen erledigte geistige Aufgaben automatisiert zu lösen. In diesem Sinne ist die KI ein allgemeines Fachgebiet, das Machine Learning und Deep Learning einschließt, aber auch viele andere Ansätze umfasst, die nichts mit Lernen zu tun haben. So verwendeten beispielsweise die ersten Schachprogramme lediglich einen von den Programmierern fest vorgegebenen Regelsatz – dabei handelte es sich jedoch nicht um Machine Learning. Viele Experten gingen lange davon aus, dass sich eine KI auf menschlichem Niveau durch einen hinreichend großen Regelsatz zur Verarbeitung von Wissen erreichen ließe. Dieser Ansatz ist unter der Bezeichnung symbolische KI bekannt und war von Mitte der 1950er- bis Ende der 1980er-Jahre das vorherrschende Paradigma der KI. Diese Sichtweise erreichte Mitte der 1980er-Jahre während des Booms der sogenannten Expertensysteme ihren Höhepunkt.
Die symbolische KI erwies sich zwar als durchaus brauchbar, um wohldefinierte logische Aufgaben wie etwa Schachspielen zu lösen, es gelang jedoch nicht, explizite Regeln zur Lösung komplexer, weniger deutlich umrissener Aufgabenstellungen zu finden, wie z.B. die Klassifizierung von Bildern, die Erkennung natürlicher Sprache und die Übersetzung von Fremdsprachen. So ergab sich ein neuer Ansatz, der den Platz der symbolischen KI einnehmen sollte: Machine Learning.
Lady Ada Lovelace war im viktorianischen England mit Charles Babbage, dem Erfinder der Analytical Engine (engl. für analytische Maschine), befreundet und arbeitete mit ihm zusammen. Die Analytical Engine war visionär und ihrer Zeit weit voraus, allerdings war sie nicht als Allzweckcomputer gedacht, als sie während der 1830er- und 1840er-Jahre entworfen wurde, denn das Konzept eines Allzweckcomputers musste erst noch erfunden werden. Sie war lediglich dafür ausgelegt, bestimmte Berechnungen auf dem Fachgebiet der mathematischen Analyse durch mechanische Vorgänge zu automatisieren – daher auch der Name Analytical Engine. Ada Lovelace kommentierte die Erfindung 1843 folgendermaßen: »Die Analytical Engine beansprucht für sich in keinerlei Weise, Neues zu erschaffen. Sie kann das leisten, von dem wir wissen, wie wir es befehlen können [...] Sie dient dazu, uns dabei zu unterstützen, uns bereits Bekanntes bereitzustellen.«
Diese Anmerkung wurde 1950 von Alan Turing in seiner bahnbrechenden Arbeit Computing Machinery and Intelligence[1] zitiert und als »Lady Lovelaces Einspruch« bezeichnet. In dieser Arbeit schlug er den Turing-Test sowie weitere entscheidende die KI prägende Konzepte vor. Turing zitierte Ada Lovelace, während er darüber nachgrübelte, ob Allzweckcomputer in der Lage wären, zu lernen oder originell zu sein. Er kam zu dem Schluss, dass dies der Fall sei.
Machine Learning entstand aufgrund folgender Frage: Könnte ein Computer über das, »von dem wir wissen, wie wir es befehlen können«, hinausgehen und selbst erlernen, wie eine bestimmte Aufgabe erledigt wird? Könnte ein Computer uns überraschen? Könnte ein Computer automatisch Regeln erlernen, indem er Daten betrachtet, ohne dass Programmierer diese Datenverarbeitungsregeln von Hand erstellen müssen?
Diese Fragen öffneten einem neuen Programmierparadigma Tür und Tor. Bei der klassischen Programmierung, der symbolischen KI, geben Menschen Regeln (ein Programm) und die gemäß diesen Regeln zu verarbeitenden Daten vor, was zu Antworten führt (siehe Abbildung 1.2). Beim Machine Learning geben Menschen sowohl die Daten als auch die dazugehörigen Antworten vor, und heraus kommen die Regeln. Diese Regeln sind dann auf neue Daten anwendbar und liefern eigenständige Antworten.
Abb. 1.2: Machine Learning, ein neues Programmierparadigma
Ein Machine-Learning-System wird also nicht explizit programmiert, sondern vielmehr trainiert. Dem System werden viele für die zu lösende Aufgabe relevante Beispiele bereitgestellt, in denen es nach einer statistischen Struktur sucht, die ihm letztendlich erlaubt, Regeln für die Automatisierung der Aufgabe zu erstellen. Wenn Sie beispielsweise die Verschlagwortung Ihrer Urlaubsfotos automatisieren möchten, könnten Sie dem System Ihre bereits von Menschen verschlagworteten Bilder zur Verfügung stellen. Das System würde dann statistische Regeln erlernen, um bestimmten Fotos bestimmte Schlagwörter zuzuweisen.
So richtig blühte das Machine Learning zwar erst in den 1990er-Jahren auf, es wurde jedoch dank der Verfügbarkeit schnellerer Hardware und größerer Datenmengen rasch zum verbreitetsten und erfolgreichsten Teilgebiet der KI. Machine Learning ist eng mit der mathematischen Statistik verwandt, unterscheidet sich aber in einigen wichtigen Punkten. Im Gegensatz zur Statistik kommen beim Machine Learning tendenziell sehr große, komplexe Datenmengen zum Einsatz (wie z.B. eine Datenmenge, die aus mehreren Millionen Fotos mit jeweils Zehntausenden von Pixeln besteht), für die klassische statistische Verfahren wie eine Bayes‘sche Analyse nicht praktikabel wären. Daher spielt die mathematische Theorie beim Machine Learning und insbesondere beim Deep Learning nur eine vergleichsweise kleine – vielleicht zu kleine – Rolle. In diesem praxisorientierten Fachgebiet werden Ideen häufiger empirisch erprobt als theoretisch vorhergesagt.
Um Deep Learning zu definieren und um den Unterschied zwischen Deep Learning und anderen Ansätzen des Machine Learnings zu verstehen, müssen wir zunächst einmal eine Vorstellung davon erlangen, wie Machine-Learning-Algorithmen eigentlich funktionieren. Ich habe soeben dargelegt, dass beim Machine Learning anhand von Beispielen für die zu erwartenden Ergebnisse Regeln gesucht werden, um die Verarbeitung von Daten zu erledigen. Für das Machine Learning sind also drei Dinge erforderlich:
Eingabedaten – Bei einer Spracherkennung könnte es sich bei den Eingabedaten beispielsweise um Tondateien handeln, die Sprachaufnahmen enthalten, oder bei der Verschlagwortung von Fotos um Bilddateien.
Beispiele für die zu erwartende Ausgabe – Bei einer Spracherkennung könnten die Beispiele in Form von durch Menschen erstellten Textdateien vorliegen, die den Inhalt der Tondateien wiedergeben. Bei einer Bilderkennung wären die zu erwartenden Ausgaben Kennzeichnungen wie »Hund«, »Katze« usw.
Eine Möglichkeit, zu messen, ob der Algorithmus gut funktioniert – Diese Messung ist erforderlich, um die Abweichungen der aktuellen Ausgabe des Algorithmus von der zu erwartenden Ausgabe zu ermitteln. Das Messergebnis dient als Feedback-Signal zur Anpassung der Funktionsweise des Algorithmus.
Ein Machine-Learning-Modell wandelt die Eingabedaten in sinnvolle Ausgaben um. Dieser Vorgang wird anhand der bekannten Beispiele für Ein- und Ausgaben »erlernt«. Die grundsätzliche Aufgabe beim Machine Learning und beim Deep Learning besteht darin, Daten sinnvoll umzuwandeln. Mit anderen Worten: Es müssen sinnvolle Repräsentationen der gegebenen Eingabedaten erlernt werden – Repräsentationen, die uns der zu erwartenden Ausgabe näherbringen. Aber bevor wir fortfahren: Was genau ist eine Repräsentation? Im Grunde genommen handelt es sich um eine andere Art, Daten zu betrachten – Daten zu repräsentieren oder zu codieren. Ein Farbfoto kann beispielsweise im RGB-Format (Rot, Grün, Blau) oder im HSV-Format (Hue, Saturation, Value – Farbwert, Farbsättigung und Helligkeitswert) codiert sein. Dabei handelt es sich um zwei unterschiedliche Repräsentationen derselben Daten. Manche Aufgaben, die mit einer der Repräsentationen schwierig sind, können in einer anderen Repräsentation ganz einfach sein. Die Aufgabe, alle roten Pixel eines Bilds auszuwählen, ist im RGB-Format einfacher, die Aufgabe, die Farbsättigung zu verringern, ist hingegen im HSV-Format einfacher. Bei Machine-Learning-Modellen geht es immer auch darum, angemessene Repräsentationen der Eingabedaten zu finden – Transformationen der Daten, die eine gegebene Aufgabe vereinfachen, wie z.B. eine Klassifizierung.
Betrachten wir ein konkretes Beispiel, nämlich ein aus einer x- und einer y-Achse bestehendes Koordinatensystem sowie einige Punkte, die durch ihre (x,y)
-Koordinaten definiert sind (siehe Abbildung 1.3).
Abb. 1.3: Einige Beispieldaten
Wie Sie sehen, gibt es ein paar weiße und einige schwarze Punkte. Nehmen wir an, wir möchten einen Algorithmus entwickeln, der die (x,y)
-Koordinaten eines Punkts entgegennimmt und ausgibt, ob der Punkt wahrscheinlich schwarz oder weiß ist. Hier gilt:
Die Eingaben sind die Koordinaten der Punkte.
Die zu erwartenden Ausgaben sind die Farben der Punkte.
Eine Möglichkeit, zu messen, ob der Algorithmus gut funktioniert, wäre beispielsweise der Prozentsatz der richtig klassifizierten Punkte.
Wir benötigen hier eine neue Repräsentation der Daten, die weiße und schwarze Punkte eindeutig voneinander trennt. Eine von vielen möglichen Transformationen wäre beispielsweise ein Wechsel des Koordinatensystems, wie in Abbildung 1.4 gezeigt.
Abb. 1.4: Wechsel des Koordinatensystems
In diesem neuen Koordinatensystem stellen die Koordinaten der Punkte eine andere Repräsentation der Daten dar. Und zwar eine bessere! Bei dieser Repräsentation kann die Klassifizierung der Punkte als schwarz oder weiß durch eine einfache Regel formuliert werden: »Für schwarze Punkte gilt x > 0« oder »Für weiße Punkte gilt x < 0.« Diese neue Repräsentation löst die Klassifizierungsaufgabe schon.
In diesem Fall haben wir das Koordinatensystem von Hand neu definiert. Wenn wir stattdessen systematisch nach möglichen Änderungen des Koordinatensystems suchen und den Prozentsatz der korrekt klassifizierten Punkte als Feedback verwenden, betreiben wir Machine Learning. Im Kontext des Machine Learnings beschreibt das Learning die automatische Suche nach besseren Repräsentationen.
Machine-Learning-Algorithmen bestehen stets aus der automatischen Suche nach solchen Transformationen, die für eine gegebene Aufgabe nützlichere Repräsentationen der Daten liefern. Bei diesen Operationen kann es sich, wie Sie gerade gesehen haben, um den Wechsel des Koordinatensystems, lineare Projektionen (bei denen Informationen verloren gehen können), Parallelverschiebungen, nicht lineare Operationen (wie etwa »Wähle alle Punkte aus, für die x > 0 gilt«) usw. handeln. Machine-Learning-Algorithmen sind bei der Suche nach solchen Transformationen für gewöhnlich nicht sonderlich kreativ, sondern durchsuchen einfach nur eine vorgegebene Menge von Operationen, die als Hypothesenraum bezeichnet wird.
Technisch betrachtet, ist Machine Learning also die Suche nach nützlichen Repräsentationen der Eingabedaten in einer vorgegebenen Menge von Möglichkeiten unter Berücksichtigung eines Feedback-Signals. Diese einfache Idee ermöglicht es, geistige Aufgaben von bemerkenswerter Bandbreite zu lösen, die von der Spracherkennung bis zu selbstfahrenden Autos reichen.
Nachdem wir nun geklärt haben, was mit Learning gemeint ist, wenden wir uns der Frage nach dem Besonderen des Deep Learnings zu.
Deep Learning ist ein Teilgebiet des Machine Learnings: ein neuer Ansatz, die Repräsentationen anhand von Daten zu erkennen, der den Schwerpunkt auf das Erlernen aufeinanderfolgender Layer (Schichten) mit zunehmend sinnvolleren Repräsentationen legt. Das Deep in Deep Learning bezieht sich also nicht auf irgendein tiefer gehendes durch diesen Ansatz erzielbares Verständnis, sondern steht für das Konzept aufeinanderfolgender Repräsentations-Layer. Die Anzahl der zu einem Datenmodell beitragenden Layer wird als die Tiefe des Modells bezeichnet. Man hätte Deep Learning auch als Lernen durch schichtweise Repräsentationen oder Lernen durch hierarchische Repräsentationen bezeichnen können. Deep Learning umfasst heutzutage oft Dutzende oder sogar Hunderte aufeinanderfolgender Repräsentations-Layer – die alle durch die Bereitstellung der Trainingsdaten automatisch erlernt werden. Andere Ansätze des Machine Learnings konzentrieren sich tendenziell auf nur einen oder zwei Repräsentations-Layer und werden deshalb mitunter als Shallow Learning (»flaches« Lernen) bezeichnet.
Beim Deep Learning werden die Repräsentations-Layer (fast immer) durch ein Modell erlernt, das neuronales Netz genannt wird (Neural Network, ab sofort meistens mit NN bezeichnet). NNs sind aus buchstäblich übereinandergestapelten Layern aufgebaut. Der Begriff entstammt zwar der Neurobiologie, aber obwohl einige der grundlegenden Konzepte des Deep Learnings zum Teil durch unser Verständnis vom Gehirn inspiriert wurden, sind Deep-Learning-Modelle keine Nachbildungen des Gehirns. Es gibt keinerlei Hinweise darauf, dass das Gehirn irgendwelche Verfahren einsetzt, die den in modernen Deep-Learning-Modellen eingesetzten Lernmechanismen ähneln. In populärwissenschaftlichen Artikeln wird gelegentlich behauptet, Deep Learning funktioniere wie das Gehirn oder sei dem Gehirn nachgebildet worden, aber das stimmt nicht. Für Neulinge in diesem Fachgebiet wäre es verwirrend und kontraproduktiv, wenn sie annähmen, dass Deep Learning irgendetwas mit Neurobiologie zu tun hat. Vergessen Sie die Mythen und Rätsel, die um die Vorstellung »genau wie unser Gehirn« gesponnen wurden, und am besten auch alles, was Sie über hypothetische Zusammenhänge zwischen Deep Learning und Biologie gelesen haben. Für unsere Zwecke ist Deep Learning ein mathematisches Framework zum Erlernen der Repräsentationen anhand von Daten.
Wie sehen die von einem Deep-Learning-Algorithmus erlernten Repräsentationen eigentlich aus? Sehen wir uns doch einmal an, wie ein mehrere Layer umfassendes Deep Neural Network (tiefes neuronales Netz, kurz DNN) das Bild einer Ziffer umwandelt, um zu erkennen, um welche Ziffer es sich handelt (siehe Abbildung 1.5).
Abb. 1.5: Ein DNN zur Klassifizierung von Ziffern
Der folgenden Abbildung 1.6 können Sie entnehmen, dass das Netz das Bild der Ziffer in Repräsentationen transformiert, die sich zunehmend vom ursprünglichen Bild unterscheiden und bezüglich des Endergebnisses immer aussagekräftiger werden. Stellen Sie sich ein DNN wie eine mehrstufige Operation zum Herausdestillieren von Informationen vor, bei der die Informationen aufeinanderfolgende Filter passieren und dabei immer »reiner« werden, also immer aussagekräftiger bezüglich einer bestimmten Aufgabe.
Abb. 1.6: Die von einem Klassifizierungsmodell erlernten Repräsentationen
Technisch betrachtet, ist Deep Learning ein mehrstufiges Verfahren, um Repräsentationen von Daten zu erlernen. Eigentlich eine ganz simple Idee – aber wie sich herausstellen wird, kann dieser einfache Mechanismus wahre Wunder bewirken, wenn er nur hinreichend oft durchlaufen wird.
Sie wissen bereits, dass es beim Machine Learning darum geht, Eingaben (wie z.B. Bilder) Zielen (wie etwa der Kennzeichnung »Katze«) zuzuordnen, indem viele Beispiele für Eingaben und Ziele betrachtet werden. Darüber hinaus wissen Sie, dass DNNs diese Zuordnung über eine Sequenz von einfachen Datentransformationen (den Layern) vornehmen und dass diese Transformationen anhand der Beispiele erlernt werden. Sehen wir uns doch einmal an, wie dieses Erlernen konkret stattfindet.
Die Angabe, was ein Layer mit den Eingabedaten anfängt, ist in den Gewichtungen des Layers gespeichert. Bei diesen handelt es sich im Wesentlichen um einen Haufen Zahlen. Man spricht hier davon, dass die von einem Layer implementierte Transformation durch die Gewichtungen parametrisiert ist (siehe Abbildung 1.7). (Die Gewichtungen werden manchmal auch als die Parameter des Layers bezeichnet.) In diesem Zusammenhang bedeutet Learning, einen Satz von Werten für die Gewichtungen aller Layer eines Neural Networks zu finden, der dafür sorgt, dass das Netz alle Eingabebeispiele den zugehörigen Zielen korrekt zuordnet. Und hier liegt das Problem: DNNs können zig Millionen Parameter besitzen. Den richtigen Wert für all diese Parameter zu finden, scheint eine entmutigende Aufgabe zu sein, insbesondere in Anbetracht der Tatsache, dass das Modifizieren eines Parameters Auswirkungen auf das Verhalten aller anderen hat!
Abb. 1.7: Ein neuronales Netz wird durch seine Gewichtungen parametrisiert.
Man muss zunächst einmal in der Lage sein, etwas beobachten zu können, um es zu steuern. Zur Steuerung der Ausgabe eines neuronalen Netzes muss man messen können, wie stark die Ausgabe von dem erwarteten Wert abweicht. Diese Aufgabe erfüllt die Verlustfunktion des neuronalen Netzes, die manchmal auch als Zielfunktion bezeichnet wird. Die Verlustfunktion berechnet anhand der Vorhersage des Netzes und des tatsächlichen Zielwerts (des Werts, den das Netz ausgeben sollte) einen Verlustscore, der auf diese Weise erfasst, wie gut das Netz für dieses spezielle Beispiel funktioniert (siehe Abbildung 1.8).
Abb. 1.8: Die Verlustfunktion bemisst die Qualität der Ausgabe eines neuronalen Netzes.
Beim Deep Learning besteht der eigentliche Trick darin, dass dieser Score als Feedback-Signal zur Feinabstimmung der Gewichtungen dient. Die Werte werden so geändert, dass sich der Verlustscore für das aktuelle Beispiel verringert (siehe Abbildung 1.9). Diese Anpassung ist die Aufgabe des Optimierers, der einen sogenannten Backpropagation-Algorithmus implementiert, den Hauptalgorithmus beim Deep Learning. Im nächsten Kapitel wird die Funktionsweise der Backpropagation ausführlicher erläutert.
Abb. 1.9: Der Verlustscore dient als Feedback-Signal zur Anpassung der Gewichtungen.
Zunächst werden den Gewichtungen zufällige Werte zugewiesen – das neuronale Netz implementiert also eine Reihe zufälliger Transformationen. Die Ausgabe ist natürlich weit von den idealen Werten entfernt, und der Verlustscore ist anfangs dementsprechend groß. Doch mit jedem weiteren vom neuronalen Netz verarbeiteten Beispiel werden die Gewichtungen so angepasst, dass der Verlustscore abnimmt. Hierbei handelt es sich um die Trainingsschleife, die, nachdem sie hinreichend oft durchlaufen wurde (typischerweise etwa zehn Mal mit jeweils Tausenden von Beispielen), Gewichtungen liefert, die die Verlustfunktion minimieren. Bei einem neuronalen Netz mit minimaler Verlustfunktion liegen die Ausgabewerte so nah wie möglich an den Zielwerten: Man spricht in diesem Fall von einem trainierten neuronalen Netz. Tatsächlich ist es dieser einfache Mechanismus, der wahre Wunder bewirken kann, wenn er nur hinreichend oft durchlaufen wird.
Deep Learning ist zwar ein vergleichsweise altes Teilgebiet des Machine Learnings, erlangte aber erst Anfang der 2010er-Jahre größere Bedeutung. In den wenigen seither vergangenen Jahren sorgte es jedoch für eine regelrechte Revolution auf diesem Fachgebiet und erzielte erstaunliche Leistungen bei Aufgaben der Sinneswahrnehmung wie Hören und Sehen – für Menschen natürliche und intuitive Fähigkeiten, die für Maschinen jedoch lange unerreichbar waren.
Mit Deep Learning konnte auf den folgenden traditionell schwierigen Gebieten des Machine Learnings Durchbrüche erzielt werden:
Bildklassifizierung auf nahezu menschlichem Niveau
Spracherkennung auf nahezu menschlichem Niveau
Handschriftenerkennung auf nahezu menschlichem Niveau
Verbesserung der Übersetzung von Fremdsprachen
Verbesserung der Sprachsynthese
Digitale Assistenten wie Google Now oder Amazon Alexa
Selbstfahrende Autos auf nahezu menschlichem Niveau
Verbesserung gezielter Werbung, wie sie Google, Baidu und Bing einsetzen
Verbesserung der Suchergebnisse im Web
Beantwortung von in natürlicher Sprache gestellten Fragen
Ein Programm schlägt den besten menschlichen Go-Spieler
Wir sind noch immer damit beschäftigt, das Ausmaß dessen zu erkunden, was mit Deep Learning erreicht werden kann. Inzwischen wird es für eine Vielzahl von Aufgaben jenseits der Sinneswahrnehmung und des Verstehens natürlicher Sprache eingesetzt, wie etwa für das formale Schließen. Wenn sich diese Ansätze als erfolgreich erweisen, könnte das der Beginn eines neuen Zeitalters sein, in dem Deep Learning Menschen bei der Forschung, der Softwareentwicklung und vielem anderen unterstützt.
Deep Learning hat zwar in den letzten Jahren bemerkenswerte Fortschritte erzielt, allerdings sind die Erwartungen in Bezug darauf, was auf diesem Gebiet im kommenden Jahrzehnt erreicht werden kann, viel zu hoch gesteckt. Auch wenn weltbewegende Anwendungen wie selbstfahrende Autos schon in greifbarer Nähe sind, werden viele andere wahrscheinlich noch lange unerreichbar bleiben, wie etwa glaubwürdige Sprachdialogsysteme, Übersetzungen zwischen beliebigen Sprachen oder das Verständnis natürlicher Sprache auf menschlichem Niveau. Vor allem die Berichte über allgemeine Intelligenz auf menschlichem Niveau sollten nicht allzu ernst genommen werden. Hohe Erwartungen, die kurzfristig nicht erfüllt werden, weil die Technologie noch nicht so weit ist, bringen das Risiko mit sich, dass weniger in die Forschung investiert wird und sich der Fortschritt auf diese Weise nachhaltig verlangsamt.
Es wäre nicht das erste Mal. In der Vergangenheit kam es schon zwei Mal vor, dass bezüglich der KI erst immenser Optimismus herrschte, dem Enttäuschung und Skepsis folgten, was zu einem Mangel an Fördergeldern führte. Den Anfang machte die symbolische KI in den 1960er-Jahren. In diesen frühen Tagen wurden hochgesteckte Prognosen bezüglich der KI geäußert. Marvin Minsky war einer der bekanntesten Pioniere und Verfechter der symbolischen KI. 1967 behauptete er: »Innerhalb der nächsten Generation [...] wird die Aufgabe, eine ›Künstliche Intelligenz‹ zu erschaffen, im Wesentlichen gelöst sein.« Drei Jahre später, also 1970, traf er eine genauere Vorhersage: »In den nächsten drei bis acht Jahren wird es eine Maschine mit der allgemeinen Intelligenz eines durchschnittlichen Menschen geben.« Auch 2017 scheint das Erreichen dieses Ziels noch in ferner Zukunft zu liegen – so fern, dass wir nicht vorhersagen können, wie lange es noch dauern wird. Doch in den 1960er- und frühen 1970er-Jahren waren einige Experten (so wie viele Menschen heutzutage) davon überzeugt, dass der Durchbruch kurz bevorsteht. Nachdem sich die hohen Erwartungen einige Jahre später nicht erfüllt hatten, wendeten sich die Wissenschaftler von diesem Forschungsgebiet ab, und die Regierung strich die Fördergelder. Das war der Anfang des ersten KI-Winters (eine Anspielung auf den nuklearen Winter, denn diese Ereignisse fanden kurz nach dem Höhepunkt des Kalten Kriegs statt).
Es sollte nicht der letzte KI-Winter gewesen sein. In den 1980er-Jahren entwickelte sich ein neuer Ansatz für die symbolische KI, die sogenannten Expertensysteme, die in größeren Unternehmen allmählich Fahrt aufnahmen. Einige wenige anfängliche Erfolgsgeschichten lösten eine Investitionswelle aus. Unternehmen rund um den Globus gründeten ihre eigenen KI-Abteilungen, um Expertensysteme zu entwickeln. Mitte der 1980er-Jahre gaben die Unternehmen jedes Jahr mehr als eine Milliarde Dollar für diese Technologie aus. Anfang der 1990er-Jahre stellte sich dann heraus, dass der Unterhalt dieser Systeme kostspielig war, dass sie sich nur schwer skalieren ließen und dass sie lediglich in wenigen Bereichen einsetzbar waren – das Interesse verlief im Sande. Somit begann der zweite KI-Winter.
Möglichweise sind wir gerade Zeugen eines dritten Zyklus von KI-Hype und nachfolgender Enttäuschung – und befinden uns noch in der Phase des immensen Optimismus. Am besten mäßigen wir unsere kurzfristigen Erwartungen und vergewissern uns, dass die mit den technischen Aspekten weniger vertrauten Menschen die richtige Vorstellung davon haben, was mit Deep Learning möglich ist und was nicht.
Auch wenn die kurzfristigen Erwartungen an die KI unrealistisch sind, sieht die Zukunft langfristig doch rosig aus. Wir haben gerade erst damit angefangen, Deep Learning auf viele wichtige Aufgabenstellungen anzuwenden, die sich als umwälzend erweisen könnten – von medizinischen Diagnoseverfahren bis zum digitalen Assistenten. Die KI-Forschung hat in den vergangenen fünf Jahren, größtenteils aufgrund einer in der kurzen Geschichte der KI beispiellosen Summe von Fördergeldern, erstaunlich schnell Fortschritte erzielt. Allerdings ist nur relativ wenig von diesem Fortschritt in Form von Produkten oder Verfahren in unserem Alltag angekommen. Die meisten Forschungsergebnisse finden noch keine Anwendung oder zumindest keine Anwendung auf sämtliche Aufgabenstellungen, die sie in allen Industriezweigen lösen könnten. Ihr Arzt setzt noch keine KI ein, ebenso wenig wie Ihr Buchhalter. Und Sie selbst werden im Alltag vermutlich auch keine KI nutzen. Sie können natürlich Ihrem Smartphone einfache Fragen stellen und vernünftige Antworten erhalten. Auch die Produktempfehlungen von Amazon können ziemlich nützlich sein. Oder Sie geben bei Google Fotos den Suchbegriff »Geburtstag« ein, und augenblicklich werden Ihnen die Bilder von der Geburtstagsfeier Ihrer Tochter im letzten Monat angezeigt. Diese Technologien haben sich schon deutlich weiterentwickelt.
Aber diese Tools sind noch immer nur Beiwerk des täglichen Lebens. Der Übergang dahin, dass die KI die Art und Weise bestimmt, wie wir arbeiten, denken und leben, hat noch nicht stattgefunden.
Heutzutage ist es schwer vorstellbar, dass die KI große Auswirkungen auf unsere Welt haben wird, weil sie bislang noch kaum im Einsatz ist. Auch 1995 wäre es schwer zu glauben gewesen, welchen Einfluss das Internet in der Zukunft haben würde. Damals konnten sich die meisten Menschen nicht vorstellen, welche Bedeutung das Internet für sie haben könnte und wie es ihr Leben verändern würde. Gleiches gilt heute für Deep Learning und KI. Aber machen wir uns nichts vor: Die KI wird sich unaufhaltsam durchsetzen. In nicht allzu ferner Zukunft wird eine KI Ihr Assistent sein, vielleicht sogar Ihr Freund. Sie wird Ihre Fragen beantworten, bei der Erziehung der Kinder zur Hand gehen und auf Ihre Gesundheit achten. Sie wird Ihnen Lebensmittel bis vor die Haustür bringen und Sie von A nach B befördern. Sie wird Ihre Schnittstelle zu einer immer komplexeren und informationsintensiveren Welt sein. Noch wichtiger ist, dass die KI der gesamten Menschheit Fortschritte ermöglichen wird, indem sie menschlichen Wissenschaftlern bei bahnbrechenden Entdeckungen auf allen Forschungsgebieten assistiert, von der Genetik bis hin zur Mathematik.
Bis es so weit ist, wird es womöglich einige Rückschläge oder vielleicht einen neuen KI-Winter geben, auf ähnliche Weise wie das Internet in den Jahren 1998 und 1999 übertrieben hochgejubelt wurde und schließlich unter einem Zusammenbruch zu leiden hatte, der zu einem Rückgang der Investitionen führte, der bis Anfang der 2000er-Jahre anhielt. Aber irgendwann wird es so weit sein. Die KI wird auf nahezu alle Vorgänge angewendet werden, die unsere Gesellschaft und unseren Alltag ausmachen, ganz so wie heutzutage das Internet.
Schenken Sie dem kurzfristigen Hype keinen Glauben, aber vertrauen Sie auf die langfristige Vision. Es wird wohl noch eine Weile dauern, bis das volle Potenzial der KI ausgeschöpft werden kann – ein Potenzial, von dem noch niemand auch nur zu träumen gewagt hat. Aber die KI wird sich unaufhaltsam durchsetzen und unsere Welt auf fantastische Weise verändern.