Vorwort

Deep Learning kapieren ist das Ergebnis von drei Jahren harter Arbeit. Ich habe mindestens doppelt so viele Seiten geschrieben, wie dieses Buch in der vorliegenden Form aufweist. Ein halbes Dutzend Kapitel mussten drei oder vier Mal völlig neu verfasst werden, bevor sie reif für die Veröffentlichung waren, und zwischenzeitlich kamen wichtige Kapitel hinzu, die ursprünglich gar nicht vorgesehen waren.

Von viel größerer Bedeutung ist allerdings, dass ich frühzeitig zwei Entschlüsse gefasst habe, die dieses Buch einzigartig machen: Bis auf grundlegende Arithmetik sind keine mathematischen Kenntnisse erforderlich, und das Buch beruht nicht auf einer der allgemeinen Bibliotheken, die oftmals verbergen können, was eigentlich vor sich geht. Mit anderen Worten: Jeder kann dieses Buch lesen und verstehen, wie Deep Learning tatsächlich funktioniert. Um das zu erreichen, musste ich mir neue Methoden ausdenken, um die grundlegenden Konzepte und Verfahren zu beschreiben, ohne auf höhere Mathematik zurückzugreifen oder ausgeklügelten Code zu verwenden, den jemand anderes geschrieben hat.

Mein Ziel beim Schreiben des Buchs war, den praktischen Einstieg in Deep Learning so einfach wie möglich zu machen. Du liest nicht einfach nur über die Theorie des Deep Learnings, du entdeckst es selbst. Um dich dabei zu unterstützen, habe ich eine Menge Code geschrieben und mir große Mühe gegeben, ihn in der richtigen Reihenfolge zu erklären, damit die für die lauffähigen Demos erforderlichen Codeschnipsel einen Sinn ergeben.

Zusammen mit der Theorie, dem Code und den Beispielen, die du in diesem Buch erkunden wirst, ermöglicht dir dieses Wissen, viel schneller zu experimentieren. Du wirst rasch Erfolge erzielen, dir stehen bessere Karrieremöglichkeiten offen und du wirst fortgeschrittenere Deep-Learning-Konzepte schneller verstehen.

In den vergangenen drei Jahren habe ich nicht nur dieses Buch geschrieben, sondern auch an einem Doktorandenprogramm in Oxford teilgenommen, bin dem Team bei Google beigetreten und habe an der Entwicklung von OpenMined mitgewirkt, einer dezentralisierten Plattform für künstliche Intelligenz. Dieses Buch fasst also Jahre des Denkens, des Lernens und des Lehrens zusammen.

Es gibt eine Vielzahl von Ressourcen, um Deep Learning zu lernen. Es freut mich, dass du dich für diese hier entschieden hast.

Einleitung

Dieses Buch soll dir die Grundlagen des Deep Learnings vermitteln, damit du eines der großen Deep-Learning-Frameworks verwenden kannst. Wir konzentrieren uns zunächst auf elementare neuronale Netze und werfen anschließend einen Blick auf komplexere Schichten und Architekturen.

Wer sollte dieses Buch lesen?

Ich habe das Buch bewusst so geschrieben, dass es möglichst leicht verständlich ist und keine Kenntnisse der linearen Algebra, der Infinitesimalrechnung, konvexer Optimierungen oder auch nur des Machine Learnings voraussetzt. Alles aus diesen Themenbereichen, was für das Verständnis des Deep Learnings erforderlich ist, wird erklärt, sobald wir uns damit befassen. Wenn du in der Schule mit Mathematik zurechtgekommen bist und schon ein wenig in Python programmiert hast, bist du bereit für dieses Buch.

Überblick

Das Buch hat 16 Kapitel:

Konventionen und Downloads

Für den im Buch abgedruckten Code wird eine nicht-proportionale Schrift verwendet, um ihn vom Fließtext zu unterscheiden. Einige der Listings enthalten Anmerkungen, die wichtige Konzepte hervorheben.

Die Codebeispiele kannst du unter https://github.com/iamtrask/grokking-deep-learning oder unter www.mitp.de/0015 herunterladen.

Über den Autor

Andrew Trask ist Gründungsmitglied von Digital Reasonings Machine Learning Lab, in dem Deep-Learning-Ansätze zur Verarbeitung natürlicher Sprache, Bilderkennung und Audiotranskription erforscht werden. Innerhalb weniger Monate gelang es Andrew und seinen Forschungskollegen, die besten veröffentlichten Ergebnisse bei der Stimmungsanalyse und der automatisierten Zuordnung von Wörtern eines Textes zu Wortgruppen (Part-of-Speech-Tagging) zu übertreffen. Er hat das größte künstliche neuronale Netz mit mehr als 160 Milliarden Parametern trainiert. Die Ergebnisse hat er zusammen mit seinem Koautor auf der internationalen Konferenz über Machine Learning vorgestellt. Sie wurden im Journal of Machine Learning veröffentlicht.

Derzeit ist er als Produktmanager für Text- und Audioanalytik bei Digital Reasoning für die Weiterentwicklung der kognitiven Computing-Plattform Systhesis verantwortlich, wobei Deep Learning zu den Kernkompetenzen gehört.

Danksagung

Ich bin allen außerordentlich dankbar, die an der Entstehung des Buchs mitgewirkt haben. An erster Stelle möchte ich mich bei dem tollen Team des amerikanischen Originalverlags Manning bedanken: Bert Bates, der mich lehrte, wie man schreibt, Christina Taylor, die mich drei Jahre lang geduldig zum Fortfahren anhielt, Michael Stephens, dessen Kreativität es dem Buch ermöglichte, schon vor der Veröffentlichung ein Erfolg zu sein, und Marjan Bace, deren Ermunterungen während der ganzen Verzögerungen den Ausschlag gaben.

Das Buch wäre ohne die vielen Beiträge von Lesern per E-Mail, Twitter und GitHub nicht das, was es ist. Ich bin folgenden Personen für ihre Hilfe bei der Verbesserung des Texts und des Codes zu großem Dank verpflichtet: Jascha Swisher, Varun Sudhakar, Francois Chollet, Frederico Vitorino, Cody Hammond, Mauricio Maroto Arrieta, Aleksandar Dragosavljevic, Alan Carter, Frank Hinek, Nicolas Benjamin Hocker, Hank Meisse, Wouter Hibma, Joerg Rosenkranz, Alex Vieira und Charlie Harrington.

Ich danke den Korrektoren, die sich die Zeit genommen haben, das Manuskript während verschiedener Phasen der Entwicklung zu lesen: Alexander A. Myltsev, Amit Lamba, Anand Saha, Andrew Hamor, Cristian Barrientos, Montoya, Eremey Valetov, Gerald Mack, Ian Stirk, Kalyan Reddy, Kamal Raj, Kelvin D. Meeks, Marco Paulo dos Santos Nogueira, Martin Beer, Massimo Ilario, Nancy W. Grady, Peter Hampton, Sebastian Maldonado, Shashank Gupta, Tymoteusz Wołodźko, Kumar Unnikrishnan, Vipul Gupta, Will Fuger und William Wheeler.

Ich danke Mat und Niko bei Udacity, die das Buch in das Nanodegree-Programm aufgenommen haben, was sehr dazu beigetragen hat, es unter angehenden Deep-Learning-Entwicklern bekannt zu machen.

Ich möchte Dr. William Hooper danken, der stets ein offenes Ohr für meine Fragen über Informatik hatte und mich ausnahmsweise an seinem eigentlich schon voll belegten Kurs »Programmieren 1« teilnehmen ließ. Er hat mich dazu inspiriert, eine Laufbahn im Deep Learning zu verfolgen. Ich bin außerordentlich dankbar für all die entgegengebrachte Geduld, die mir sehr geholfen hat.

Und schließlich möchte ich meiner Frau dafür danken, dass sie während all der Nächte und Wochenenden, die ich mit der Arbeit am Buch verbracht habe, so viel Geduld mit mir hatte und dass sie den gesamten Text des Buchs mehrmals eigenhändig redigiert hat und sich um die Erstellung und Pflege des Code-Repositorys bei GitHub gekümmert hat.

Kapitel 1:
Deep Learning: Weshalb man sich damit befassen sollte

Mach’ dir keine Sorgen wegen deiner Schwierigkeiten mit der Mathematik. Ich kann dir versichern, dass meine noch größer sind.

– Albert Einstein

[Bild]In diesem Kapitel:

1.1  Willkommen bei »Deep Learning kapieren«

Du bist im Begriff, dir einige der wichtigsten Fähigkeiten dieses Jahrhunderts anzueignen!

Es ist ein wirklich spannendes Thema, wie du hoffentlich bald selbst feststellen wirst. Deep Learning vereint Machine Learning und künstliche Intelligenz und wird in der Gesellschaft und der Industrie für beträchtliche Umwälzungen sorgen. Die in diesem Buch erörterten Verfahren verändern das alltägliche Leben. Die Optimierung des Motors in deinem Auto oder die Entscheidung, welche Inhalte du dir in sozialen Medien ansiehst – Deep Learning spielt überall eine Rolle, es ist leistungsstark und macht erfreulicherweise sogar Spaß!

1.2  Weshalb du dich mit Deep Learning befassen solltest

Deep Learning ist ein leistungsstarkes Werkzeug für die zunehmende Automatisierung von Intelligenz.

Seit es Menschen gibt, haben sie immer bessere Werkzeuge entwickelt, um ihre Umwelt in den Griff zu bekommen. Deep Learning schlägt in dieser Reihe von Innovationen ein neues Kapitel auf.

Dass dieses Kapitel so spannend ist, liegt vielleicht daran, dass es sich hier eher um eine geistige als um eine mechanische Innovation handelt. Deep Learning versucht, vergleichbar mit verwandten Fachgebieten wie Machine Learning, Intelligenz schrittweise zu automatisieren. In den letzten paar Jahren sind enorme Erfolge und Fortschritte erzielt worden, die frühere Rekorde im Bereich Computer Vision, bei der Spracherkennung, bei maschinellen Übersetzungen und vielen anderen Aufgaben in den Schatten stellen.

In Anbetracht der Tatsache, dass Deep Learning weitestgehend den gleichen, vom Gehirn inspirierten Algorithmus (neuronale Netze) verwendet, ist es besonders bemerkenswert, dass auf so vielen verschiedenen Gebieten Erfolge erreicht wurden. Auch wenn Deep Learning nach wie vor ein Fachgebiet mit vielen Herausforderungen ist, das aktiv weiterentwickelt wird, haben jüngste Entwicklungen für einiges Aufsehen gesorgt: Vielleicht haben wir nicht nur ein mächtiges Werkzeug entdeckt, sondern auch einen Weg gefunden, unseren eigenen Verstand besser zu verstehen.

Deep Learning hat das Potenzial, Arbeitsabläufe in nahezu allen Bereichen zu automatisieren.

Es gibt eine Menge Wirbel um die potenziellen ‌Auswirkungen von Deep Learning, wenn es weiterhin Fortschritte im gegenwärtigen Tempo gibt. Viele der Vorhersagen sind zwar übertrieben, aber eine verdient aus meiner Sicht Beachtung: die Verlagerung von Arbeitsplätzen.‌ Diese Behauptungen sind meiner Meinung nach im Gegensatz zu anderen ernst zu nehmen, denn selbst wenn die mit Deep Learning einhergehenden Innovationen sofort zum Stillstand kämen, gäbe es bereits jetzt rund um den Globus enorme Auswirkungen auf diverse Arbeitsplätze. Callcenter-Mitarbeiter, Taxifahrer und Businessanalysten auf unterer Führungsebene sind überzeugende Beispiele für Berufe, für die Deep Learning eine kostengünstige Alternative bieten kann.

Glücklicherweise wandelt sich die Wirtschaft nicht von heute auf morgen, aber in vielerlei Hinsicht haben wir bereits einen Punkt überschritten, ab dem es angesichts der Leistungsfähigkeit der Technologie kein Zurück mehr gibt. Ich kann nur hoffen, dass du und deine Bekannten mithilfe dieses Buchs von einer vor Umwälzungen stehenden Branche in ein Fachgebiet wechseln können, dem Wachstum und Wohlstand bevorstehen: Deep Learning.

Was es bedeutet, ein Mensch zu sein, kannst du herausfinden, indem du versuchst, Intelligenz und Kreativität zu simulieren.

Ich persönlich bin zum Deep Learning gekommen, weil ich es faszinierend finde. Es handelt sich um eine erstaunliche Schnittmenge von Mensch und Maschine. Genau aufzuschlüsseln, was es eigentlich bedeutet, zu denken, zu schlussfolgern und Neues zu erschaffen, ist erhellend, fesselnd und – für mich jedenfalls – inspirierend. Stell dir vor, dass du über eine Datenmenge verfügst, die sämtliche Bilder enthält, die jemals gemalt worden sind, und sie dazu verwendest, einer Maschine beizubringen, wie Monet zu malen. Es ist verrückt, aber das ist möglich – und es ist unfassbar cool, zu beobachten, wie das funktioniert.

1.3  Ist es schwierig, Deep Learning zu verstehen?

Wie hart musst du arbeiten, bis es eine »ansehnliche« Belohnung gibt?

Das ist meine Lieblingsfrage. Mit einer »ansehnlichen« Belohnung meine ich, zu beobachten, dass etwas von mir Erstelltes von sich aus lernt. Dabei zuzusehen, wie etwas mit eigenen Händen Erschaffenes das vollbringt, ist etwas ganz Besonderes. Wenn du das auch so siehst, ist die Antwort einfach. Am Anfang von Kapitel 3 wirst du dein erstes neuronales Netz erstellen. Die einzige damit verbundene Arbeit ist das Lesen der Seiten von hier bis dorthin.

Nach Kapitel 3 folgt die nächste ansehnliche Belohnung, wenn du dir ein paar Zeilen Code gemerkt hast und weiterliest bis zur Mitte von Kapitel 4. Das läuft in allen Kapiteln so ab: Du merkst dir einen kleinen Codeabschnitt aus dem vorangegangenen Kapitel, liest das nachfolgende und erhältst dann die Belohnung in Form eines neuen lernenden neuronalen Netzes.

1.4  Warum du dieses Buch lesen solltest

Das Buch ermöglicht einen besonders einfachen Einstieg.

Der Grund dafür, dass du dieses Buch lesen solltest, ist der gleiche, aus dem ich es geschrieben habe. Mir ist keine andere Ressource bekannt (Buch, Kurs, Blogbeitragsreihen), die Deep Learning lehrt, ohne fortgeschrittene mathematische Kenntnisse (einen Hochschulabschluss in einem mathematischen Bereich) vorauszusetzen.

Versteh das nicht falsch: Es gibt gute Gründe dafür, dabei auf Mathematik zurückzugreifen. Mathematik ist letzten Endes eine Sprache, die zweifelsohne ein effizienteres Lehren von Deep Learning ermöglicht, aber ich halte es nicht für unbedingt notwendig, fortgeschrittene Mathematikkenntnisse zu besitzen, um ein fähiger und kenntnisreicher Entwickler zu werden, der das »Wie« beim Deep Learning gründlich verstanden hat.

Und weshalb solltest du nun Deep Learning mithilfe dieses Buchs erlernen? Weil ich davon ausgehe, dass du über Mathematikkenntnisse auf Gymnasialniveau verfügst (die auch nicht mehr ganz frisch sind), und ich alles andere erklären werde, wenn es vorkommt. Kannst du dich an Multiplikation und x-y-Koordinatensysteme erinnern (die Quadrate mit den Kurven darin)? Perfekt! Das genügt.

Das Buch hilft dir zu verstehen, was innerhalb eines Frameworks (wie Torch, TensorFlow usw.) vor sich geht.

Es gibt im Wesentlichen zwei Gruppen von Lehrmaterialien (wie Bücher oder Kurse) über Deep Learning. Die eine Gruppe konzentriert sich auf die Verwendung verbreiteter Frameworks und Codebibliotheken wie Torch, TensorFlow, Keras und andere. Die zweite Gruppe konzentriert sich auf das Deep Learning selbst, also auf die wissenschaftlichen Aspekte hinter den Kulissen der großen Frameworks.

Letzten Endes sind Kenntnisse über beide Gruppen wichtig. Wenn du ein NASCAR-Fahrer werden willst, musst du nicht nur dein Automodell kennen (das Framework), sondern auch wissen, wie man fährt (die Wissenschaft und Kenntnisse). Sich nur mit dem Framework zu befassen, ist damit vergleichbar, die Vor- und Nachteile eines Chevrolet SS der 6. Generation auswendig zu lernen, bevor man überhaupt weiß, was ein Schaltknüppel ist. In diesem Buch geht es darum, zu lehren, was Deep Learning ist, damit du darauf vorbereitet bist, ein Framework zu erlernen.

Alles, was mit Mathematik zu tun hat, wird durch anschauliche Analogien erklärt.

Wenn ich auf mathematische Formeln stoße, unternehme ich die beiden folgenden Schritte: Zuerst übersetze ich das Verfahren in eine anschauliche Analogie. Ich nehme eine Formel nur selten einfach so hin, wie sie ist: Ich zerlege sie in Teile, die für sich selbst genommen etwas aussagen. Diesen Ansatz verfolgt auch das Buch. Wenn es um mathematische Konzepte geht, biete ich eine Analogie an, die erläutert, was eine Formel eigentlich leistet.

Man muss die Dinge so einfach wie möglich machen, aber nicht einfacher.
– Albert Einstein zugeschrieben

Nach den einführenden Kapiteln ist alles projektbasiert.

Eines kann ich beim Lernen gar nicht leiden: wenn ich mich fragen muss, ob das, was ich lerne, nützlich oder von Bedeutung ist. Wenn mir jemand alles über einen Hammer beibringen möchte, ohne mir ein paar Nägel in die Hand zu drücken, die ich dann einschlagen kann, dann bringt man mir nicht wirklich bei, wie man einen Hammer benutzt. Ich weiß, dass noch irgendetwas fehlt, und wenn ich dann mit einem Hammer und einer Schachtel Nägel vor einem Stapel Kantholz stehe, bin ich auf Mutmaßungen angewiesen.

In diesem Buch geht es darum, dir Holz, Nägel und Hammer bereitzustellen, bevor erklärt wird, was man damit anfangen kann. Bei jeder Übung stehen Werkzeug und Arbeitsmaterial zur Verfügung, und wie etwas funktioniert, wird erklärt, während es erledigt wird. Auf diese Weise stehst du am Ende nicht nur mit einer Liste der vorhandenen Deep-Learning-Tools da, sondern verfügst über die Fähigkeit, sie einzusetzen, um Aufgaben zu lösen. Darüber hinaus lernst du das, was am wichtigsten ist, nämlich wann und weshalb ein Werkzeug für die Aufgaben, die du lösen möchtest, geeignet ist. Diese Kenntnisse versetzen dich in die Lage, eine Laufbahn in der Forschung oder der Branche einzuschlagen.

1.5  Was du brauchst, um loszulegen

Installiere Jupyter Notebook und die Python-Bibliothek NumPy.

Am liebsten verwende ich Jupyter Notebooks.‌ Beim Erlernen von Deep Learning gehört es – jedenfalls für mich – zu den wichtigsten Dingen, das Training eines Netzes abbrechen zu können, um es bis ins kleinste Detail zu untersuchen. Hier erweisen sich Jupyter Notebooks als außerordentlich nützlich.

Was NumPy‌ betrifft, werden wir nur eine Matrix-Bibliothek verwenden. Auf diese Weise lernst du, wie alles funktioniert, nicht nur, wie man ein Framework benutzt. Dieses Buch lehrt Deep Learning von Grund auf, von A bis Z.

Installationsanleitungen für die beiden Tools sind unter http://jupyter.org und http://numpy.org zu finden. Ich habe die Beispiele mit Python 2.7 erstellt, sie aber auch unter Python 3 getestet. Zur einfachen Installation empfehle ich außerdem das Framework Anaconda: https://docs.continuum.io/anaconda/install.

Mathematik auf Gymnasialniveau

Ein Teil der Mathematik geht über den Rahmen dieses Buchs hinaus, aber mein Ziel ist es, Deep Learning nur mithilfe von grundlegenden Algebra-Kenntnissen zu lehren.

Suche nach einer Aufgabe, an der du persönlich interessiert bist.

Um loszulegen, ist das eigentlich keine echte Notwendigkeit. Aber im Ernst: Ich kann nur dringend empfehlen, sich eine solche Aufgabe zu suchen. Alle mir bekannten Leute, die auf diesem Gebiet Erfolg hatten, wollten eine ganz bestimmte Aufgabe lösen. Sich mit Deep Learning zu befassen, war eigentlich nur ein Mittel zum Zweck, um eine andere interessante Aufgabe zu lösen.

Ich wollte Twitter verwenden, um Aktienkurse vorherzusagen. Für mich war das einfach faszinierend und mein Antrieb, das nächste Kapitel zu lesen und den nächsten Prototyp zu entwickeln.

Wie sich herausstellte, ist dieses Fachgebiet noch so neu und ändert sich so schnell, dass man eher, als man denkt, zu einem führenden Experten für eine bestimmte Aufgabe wird, wenn man sich die nächsten Jahre damit befasst, sein Ziel zu verfolgen. In meinem Fall führte das dazu, dass ich innerhalb von 18 Monaten von jemandem, der praktisch nichts über Programmierung wusste, zu einem Forschungsstipendiaten mit dem Schwerpunkt Hedgefunds wurde, der das Gelernte anwenden konnte. Beim Deep Learning kann eine faszinierende Aufgabe, die eine Datenmenge nutzt, um eine andere vorherzusagen, ein entscheidender Katalysator sein. Such dir also eine solche Aufgabe!

1.6  Python-Kenntnisse sind nützlich

Python ist meine bevorzugte Programmierumgebung, aber ich stelle online auch einige andere Sprachen zur Verfügung.

‌Python ist eine erstaunlich intuitive Sprache. Ich denke, Python dürfte die verbreitetste intuitiv verständliche Programmiersprache sein, die es gibt. Darüber hinaus hat die Python-Community ein Faible für Einfachheit, das nicht zu schlagen ist. Aus diesen Gründen werde ich für alle Beispiele Python verwenden (Python 2.7, um genau zu sein, die Beispiele sind aber auch unter Python 3 getestet). Der Quellcode ist unter https://github.com/iamtrask/Grokking-Deep-Learning verfügbar.

Wie viel Erfahrung mit der Programmierung ist erforderlich?

Wirf doch einmal einen Blick auf den englischen Kurs Python Codecademy (http://www.codecademy.com/learn/python).‌ Wenn du das Inhaltsverzeichnis verstehst und die genannten Begriffe dir geläufig sind, bist du bereit! Falls nicht, dann absolviere den Kurs und lies weiter, wenn du damit fertig bist. Der Kurs ist für Einsteiger gedacht und sehr gut gestaltet.

1.7  Zusammenfassung

Wenn du Jupyter Notebooks verwenden kannst und dir die Grundlagen von Python vertraut sind, bist du bereit für das nächste Kapitel! Es ist das letzte Kapitel, das vornehmlich dialogorientiert ist (ohne Programme zu erstellen). Es soll dir einen Eindruck vom Vokabular der Sprache, von Konzepten und Fachgebieten der künstlichen Intelligenz, des Machine Learnings und – am wichtigsten – des Deep Learnings verschaffen.

Kapitel 2:
Grundlegende Konzepte: Wie lernen Maschinen?

In fünf Jahren wird Machine Learning für jeden erfolgreichen Börsengang verantwortlich sein.

– Eric Schmidt, Vorstandsvorsitzender bei Google, in einer Rede auf der Cloud Computing Platform Conference 2016

[Bild]In diesem Kapitel:

2.1  Was ist Deep Learning?

Deep Learning ist eine Teilmenge der Machine-Learning-Verfahren.

‌Deep Learning ist eine Teilmenge des Machine Learnings, das sich der Untersuchung und der Entwicklung von Maschinen widmet, die lernen können (manchmal auch mit dem Ziel, eine allgemeine künstliche Intelligenz zu erlangen).

In der Industrie wird Deep Learning in verschiedenen Bereichen zum Lösen praktischer Aufgaben eingesetzt, etwa bei Computer Vision (Bilder), bei der Verarbeitung natürlicher Sprache (Text) oder bei der automatischen Spracherkennung (Audio). Deep Learning ist also eine Teilmenge der Verfahren, die beim Machine Learning zum Einsatz kommen, wobei vor allem künstliche neuronale Netze verwendet werden, die zu einer Klasse von Algorithmen gehören, die mehr oder weniger durch das menschliche Gehirn inspiriert wurden.

[Bild]

Die Abbildung zeigt, dass es beim Deep Learning nicht nur um allgemeine künstliche Intelligenz geht (wie bei den empfindungsfähigen Maschinen in Spielfilmen). Viele Anwendungen dieser Technologie lösen die verschiedenartigsten Aufgaben. Dieses Buch soll sich auf die Grundlagen des Deep Learnings konzentrieren, das sowohl in der topaktuellen Forschung als auch in der Industrie zum Einsatz kommt, und dir diese Kenntnisse vermitteln.

2.2  Was ist Machine Learning?

Ein Fachgebiet, das Computern die Fähigkeit verleiht, zu lernen, ohne explizit programmiert zu werden.
– Arthur Samuel zugeschrieben

‌Wenn also Deep Learning eine Teilmenge des Machine Learnings ist, was ist dann eigentlich Machine Learning? Ganz allgemein ist es das, was der Name besagt. Machine Learning ist ein Teilgebiet der Informatik, das sich damit befasst, dass Maschinen lernen, Aufgaben zu erledigen, für die sie nicht explizit programmiert wurden. Oder kurz und bündig: Maschinen beobachten ein Muster und versuchen, es irgendwie zu imitieren, entweder direkt oder indirekt:

Machine Learning ~= Affe sieht, Affe tut

Ich erwähne hier direktes und indirektes Imitieren, um die Analogie zu den beiden Haupttypen des Machine Learnings aufzuzeigen: überwachtes und unüberwachtes Lernen. Überwachtes Machine Learning‌‌ ist das direkte Imitieren des Musters, das einem Datensatz zu eigen ist, bei einem anderen Datensatz. Es ist der Versuch, eine Eingabedatenmenge in eine Ausgabedatenmenge umzuwandeln. Das kann eine unglaublich mächtige und nützliche Fähigkeit sein. Sieh dir die folgenden Beispiele an (die Eingabedatenmengen sind fett gedruckt, die Ausgabedatenmengen kursiv):

All diese Aufgaben gehören zum überwachten Lernen. Der Machine-Learning-Algorithmus versucht stets, das Muster, das die beiden Datenmengen verbindet, so zu imitieren, dass die eine Datenmenge zur Vorhersage der anderen verwendet werden kann. Stell dir vor, du könntest bei all diesen Beispielen die Ausgabedatenmenge nur anhand der Eingabedatenmenge vorhersagen – das wäre schon eine beachtliche Leistung.

2.3  Überwachtes Machine Learning

Überwachtes Lernen transformiert Datenmengen.

‌Überwachtes Lernen ist ein Verfahren, um eine Datenmenge in eine andere umzuwandeln. Wenn du beispielsweise eine Datenmenge namens Aktienkurse am Montag hättest, in der die Kurse aller Aktien an den Montagen der letzten zehn Jahre aufgezeichnet sind, und eine zweite, die die Aktienkurse an den Dienstagen desselben Zeitraums enthält, könnte ein überwachter Lernalgorithmus die eine Datenmenge verwenden, um die andere vorherzusagen.

[Bild]

Wenn du einen überwachten Machine-Learning-Algorithmus erfolgreich mit den Daten von zehn Jahren trainiert hast, bist du in der Lage, den Aktienkurs für einen beliebigen Dienstag in der Zukunft vorherzusagen, wenn dir der Aktienkurs am direkt vorhergehenden Montag bekannt ist. Lege eine kurze Pause ein und denke einen Moment darüber nach.

Überwachtes Machine Learning gehört bei der angewandten künstlichen Intelligenz (der sogenannten schwachen KI) zum Alltag. Es erweist sich als nützlich, um das, was du weißt, als Eingabe zu verwenden und schnell in das umzuwandeln, was du wissen möchtest. Auf diese Weise können Machine-Learning-Algorithmen die Intelligenz und die Fähigkeiten des Menschen auf unzählige Arten erweitern.

Bei der Nutzung der Ergebnisse von Machine Learning besteht der größte Aufwand darin, einen überwachten Klassifikator zu trainieren. Bei der Entwicklung möglichst genauer überwachter Machine-Learning-Algorithmen kommt typischerweise sogar unüberwachtes Machine Learning (dazu gleich mehr) zum Einsatz.

[Bild]

Im folgenden Teil des Buchs wirst du Algorithmen entwickeln, die Eingabedaten mit bestimmten Eigenschaften entgegennehmen. Sie sind beobachtbar, lassen sich aufzeichnen, und sie sind nachvollziehbar. Außerdem lassen sie sich in wertvolle Ausgabedaten umwandeln, für die eine logische Analyse erforderlich ist. All das leistet überwachtes Machine Learning.

2.4  Unüberwachtes Machine Learning

Unüberwachtes Lernen gruppiert deine Daten.

‌‌‌Unüberwachtes und überwachtes Lernen haben etwas gemeinsam: Eine Datenmenge wird in eine andere Datenmenge umgewandelt. Beim unüberwachten Lernen ist die zu transformierende Datenmenge allerdings vorher nicht bekannt. Im Gegensatz zum überwachten Lernen gibt es keine »richtige Antwort«, die das Modell reproduzieren soll. Ein unüberwachter Lernalgorithmus sucht einfach nur nach Mustern in den Daten und zeigt an, was er gefunden hat.

Das Aufteilen einer Datenmenge in Gruppen, das sogenannte Clustering,‌ ist eine Form des unüberwachten Lernens. Beim Clustering wird eine Menge von Datenpunkten in eine Sequenz von Clusterbezeichnungen transformiert. Wenn eine Aufteilung in zehn Cluster vorgenommen wird, verwendet man für die Bezeichnungen üblicherweise die Zahlen von 1 bis 10. Jedem Datenpunkt wird eine Zahl zugewiesen, die angibt, zu welchem Cluster er gehört. Die Menge aus Datenpunkten wird also in eine Menge von Bezeichnungen umgewandelt. Und warum sind die Bezeichnungen Zahlen? Der Algorithmus sagt nichts darüber aus, was die Cluster eigentlich sind. Er stellt lediglich fest: »Hey, Forscher! Ich habe eine Struktur entdeckt. Sieht ganz danach aus, als ob es Gruppen in den Daten gibt – und zwar diese hier!«

[Bild]

Eine gute Nachricht: Dieses Prinzip des Clusterings kannst du dir als Definition des unüberwachten Lernens merken. Es gibt zwar eine Vielzahl verschiedener Arten, aber alle Formen des unüberwachten Lernens können als eine Form des Clusterings betrachtet werden. Mehr zu diesem Thema später im Buch.

[Bild]

Sieh dir das Beispiel an. Der Algorithmus gibt zwar nicht an, wie die Cluster heißen, aber du kannst sicher erkennen, wonach er die Wörter gruppiert hat. (Antwort: 1 == niedlich, 2 == lecker.) Später werden wir uns damit befassen, dass andere Formen des unüberwachten Lernens auch nur eine Art Clustering sind und weshalb sich diese Cluster für das überwachte Lernen als nützlich erweisen.

2.5  Parametrisches und nichtparametrisches Lernen

Grob vereinfacht: Lernen durch Trial and Error vs. Zählen und Wahrscheinlichkeit

‌‌‌‌Auf den letzten Seiten wurden alle Machine-Learning-Algorithmen einer von zwei Gruppen zugeordnet: überwachtem und unüberwachtem Lernen. Jetzt werden wir eine andere Variante erörtern, die gleichen Machine-Learning-Algorithmen in zwei Gruppen zu unterteilen, nämlich in parametrische und nichtparametrische. Wenn wir unsere kleine Machine-Learning-Wolke genau betrachten, stellen wir fest, dass sie über zwei Einstellungen verfügt:

[Bild]

Wie du siehst, gibt es eigentlich vier verschiedene Arten von Algorithmen. Ein Algorithmus ist entweder unüberwacht oder überwacht und entweder parametrisch oder nichtparametrisch. Im vorangegangenen Abschnitt über überwachtes Lernen ging es um die Art des erlernten Musters, bei der Parametrisierung hingegen geht es darum, wie das Gelernte gespeichert wird, und im weiteren Sinne oft um die Lernmethode. Sehen wir uns zunächst einmal die formale Definition von parametrischen und nichtparametrischen Algorithmen an. Man hat sich übrigens noch nicht auf einen genauen Unterschied einigen können.

Ein parametrisches Modell ist dadurch gekennzeichnet, dass es eine feste Anzahl von Parametern besitzt, die Anzahl der Parameter eines nichtparametrischen Modells hingegen ist unbegrenzt (sie wird durch die Daten bestimmt).

Betrachten wir als Beispiel die Aufgabe, einen quadratischen Zapfen in eine passende (quadratische) Öffnung zu stecken. Manche Menschen (etwa Kleinkinder) stopfen den Zapfen einfach in alle Öffnungen, bis er irgendwo passt (parametrisch). Ein Teenager hingegen würde vielleicht die Anzahl der Seiten (vier) zählen und nach einer Öffnung suchen, die ebenso viele Seiten besitzt (nichtparametrisch). Parametrische Modelle verwenden tendenziell das Prinzip von Trial and Error, nichtparametrische dagegen versuchen eher, zu zählen. Das sehen wir uns genauer an.

2.6  Überwachtes parametrisches Lernen

Grob vereinfacht: Lernen durch Trial and Error mithilfe von Drehschaltern

‌Überwachte parametrisch lernende Maschinen besitzen eine festgelegte Anzahl von Drehschaltern (das ist der parametrische Teil), wobei das Lernen durch das Drehen der Schalter erfolgt. Vorliegende Eingabedaten werden entsprechend der Winkel, in dem die Drehschalter stehen, verarbeitet und in eine Vorhersage umgewandelt.

[Bild]

Das Lernen vollzieht sich in der Form, dass die Drehschalter in verschiedenen Winkeln positioniert werden. Wenn du versuchst, vorherzusagen, dass Bayern München die Champions League gewinnt, dann würde dieses Modell zuerst Daten entgegennehmen (wie Statistiken über Siege/Niederlagen oder die durchschnittliche Anzahl der Zehen pro Spieler) und eine Vorhersage treffen (etwa eine Chance von 98 Prozent). Anschließend würde das Modell beobachten, ob die Bayern tatsächlich gewinnen. Wenn feststeht, dass sie gewonnen haben, würde der Lernalgorithmus die Position der Drehschalter aktualisieren, um beim nächsten Mal eine genauere Vorhersage zu treffen, wenn die gleichen oder ähnliche Eingabedaten vorliegen.

Wenn sich der Schalter für »Siege/Niederlagen« bei der Vorhersage als nützlich erwiesen hat, würde das Modell ihn vielleicht etwas »aufdrehen«. Umgekehrt würde es den Schalter für die »durchschnittliche Anzahl der Zehen pro Spieler« »zurückdrehen«, wenn dieser Datenpunkt nicht besonders hilfreich war. Auf diese Weise lernen parametrische Modelle!

Hier ist zu beachten, dass alles, was das Modell gelernt hat, zu jedem Zeitpunkt in Form der Positionen der Drehschalter erfasst werden kann. Du kannst dir diese Art Lernmodell auch wie einen Suchalgorithmus‌ vorstellen. Du »suchst« nach den geeigneten Stellungen der Drehschalter, indem du Konfigurationen ausprobierst, anpasst und wieder testest.

Außerdem musst du bedenken, dass das Prinzip von Trial and Error nicht der formalen Definition entspricht, es wird in parametrischen Modellen aber (mit Ausnahmen) häufig verwendet. Wenn es eine beliebige (aber feststehende) Anzahl von Drehschaltern gibt, muss eine Suche durchgeführt werden, um die optimale Konfiguration zu finden. Das ist beim nichtparametrischen Lernen anders, das oft auf Zählvorgängen beruht und (hin und wieder) neue Drehschalter hinzufügt, wenn etwas Neues gefunden wird, das gezählt werden kann. Wir unterteilen überwachtes parametrisches Lernen in drei Schritte.

Schritt 1: Vorhersage treffen

‌Zur Veranschaulichung des überwachten parametrischen Lernens bleiben wir bei der Analogie, vorherzusagen, ob Bayern München die Champions League gewinnt. Der erste Schritt besteht wie erwähnt darin, Statistiken zusammenzutragen, sie in die Maschine einzuspeisen und eine Vorhersage über die Wahrscheinlichkeit zu treffen, dass die Bayern gewinnen.

[Bild]

Schritt 2: Vergleich mit Faktum

‌Der zweite Schritt besteht darin, die Vorhersage (98 Prozent) mit dem Faktum zu vergleichen, das von Bedeutung ist (ob Bayern München gewonnen hat). Leider haben sie verloren, somit ergibt sich:

Vorhersage: 98 % > Faktum: 0 %

Dieser Schritt erfasst, dass das Modell die bevorstehende Niederlage genau vorhergesehen hätte, wenn die Vorhersage 0 Prozent Gewinnchance gelautet hätte. Die Maschine soll möglichst genau arbeiten, was zu Schritt 3 führt.

Schritt 3: Erlernen des Musters

\[Bild\]‌Dieser Schritt passt die Position der Drehschalter an und berücksichtigt dabei, wie sehr die Vorhersage daneben gelegen hat (98 Prozent) und was die Eingabedaten zum Zeitpunkt der Vorhersage waren (die Statistiken über Siege/Niederlagen). Auf diese Weise soll anhand der Eingabedaten eine genauere Vorhersage erfolgen.

Theoretisch sollte dieser Schritt beim nächsten Vorliegen der gleichen Statistiken über Siege/Niederlagen weniger als 98 Prozent vorhersagen. Beachte auch, dass jeder Drehschalter die Empfindlichkeit der Vorhersage für verschiedene Typen von Eingabedaten repräsentiert. Das ist das, was du änderst, wenn die Maschine »lernt«.

2.7  Unüberwachtes parametrisches Lernen

Heim/Auswärts

# Fans

Heim

100.000

Auswärts

50.000

Heim

100.000

Heim

99.000

Auswärts

50.000

Auswärts

10.000

Auswärts

11.000

Das unüberwachte parametrische Lernen verwendet einen sehr ähnlichen Ansatz. Wir gehen die Schritte einmal der Reihe nach durch. Wie du weißt, geht es beim unüberwachten Lernen immer um das Gruppieren von Daten. Das unüberwachte parametrische Lernen verwendet die Drehschalter, um Daten zu gruppieren. Aber in diesem Fall gibt es für jede Gruppe mehrere Drehschalter, die jeweils die Stärke der Zugehörigkeit der Eingabedaten zu einer bestimmten Gruppe angeben (mit Ausnahmen – das ist eine allgemeine Beschreibung). Betrachten wir ein Beispiel, bei dem du die Daten in drei Gruppen unterteilen möchtest.

Die Datenmenge enthält drei Cluster, die das parametrische Modell entdecken soll. Sie sind durch Textformatierung als Gruppe 1, Gruppe 2 und Gruppe 3 gekennzeichnet. Nun übergeben wir einem trainierten unüberwachten Modell den ersten Datenpunkt. Die Zuordnung (auch Mapping genannt) zur Gruppe 1 ist am stärksten.

[Bild]

Die Maschine jeder Gruppe versucht, die Eingabedaten in eine Zahl zwischen 0 und 1 umzuwandeln und somit die Wahrscheinlichkeit anzugeben, dass die Eingabedaten zu dieser Gruppe gehören. Das Training für die Modelle unterscheidet sich deutlich und führt zu unterschiedlichen Eigenschaften, aber ganz allgemein werden die Parameter angepasst, um die Eingabedaten auf die zugehörige/n Gruppe/n abzubilden.

2.8  Nichtparametrisches Lernen

Grob vereinfacht: Auf Zählvorgängen beruhende Verfahren

‌‌Nichtparametrisches Lernen ist eine Algorithmenklasse, bei der die Anzahl der Parameter von den Daten abhängt (und nicht vorab festgelegt ist). Daher werden im Allgemeinen Verfahren verwendet, die auf die eine oder andere Weise zählen und so die Anzahl der Parameter anhand der in den Daten vorhandenen Objekte erhöhen. Bei einem überwachten nichtparametrischen Modell könnte beispielsweise gezählt werden, wie oft das Auftreten einer bestimmten Farbe einer speziellen Ampel dafür sorgt, dass Autos »losfahren«. Schon nach dem Zählen einiger weniger Beispiele wäre das Modell in der Lage vorherzusagen, dass das Aufleuchten der mittleren Lampe immer (in 100 Prozent der Fälle) dafür sorgt, dass Autos losfahren und das Aufleuchten der rechten Lampe nur manchmal (in 50 Prozent der Fälle).

[Bild]

Dieses Modell hätte drei Parameter: drei Zähler, die angeben, wie oft eine der Lampen aufleuchtet und Autos losfahren (eventuell geteilt durch die Anzahl der Beobachtungen). Bei fünf Lampen gäbe es fünf Zähler (fünf Parameter). Dieses einfache Modell ist nichtparametrisch, weil es die Eigenschaft hat, dass die Anzahl der Parameter sich in Abhängigkeit von den Daten (hier die Anzahl der Lampen) ändert. Das ist bei parametrischen Modellen anders, bei denen die Anzahl der Parameter anfangs zwar festgelegt ist, diese aber nach Ermessen des Forschers, der das Modell trainiert, erhöht oder verringert werden kann (unabhängig von den Daten).

Ein kritischer Beobachter könnte das infrage stellen. Beim vorangegangenen parametrischen Modell gab es offenbar für jeden Eingabedatenpunkt einen Drehschalter. Die meisten parametrischen Modelle benötigen irgendeine Art Eingabe, die von der Anzahl der Klassen in den Daten abhängt. Es gibt also eine Grauzone zwischen parametrischen und nichtparametrischen Algorithmen. Auch parametrische Algorithmen werden in gewisser Weise von der Anzahl der Klassen in den Daten beeinflusst, sogar wenn es sich überhaupt nicht um ein Zählmuster handelt.

Hier wird auch deutlich, dass Parameter ein allgemeiner Begriff ist, der sich lediglich auf die Menge der Zahlen bezieht, die zum Modellieren eines Musters verwendet werden (ohne Berücksichtigung, wie diese Zahlen verwendet werden). Zähler sind Parameter. Gewichte sind Parameter. Normalisierte Varianten von Zählern und Gewichten sind ebenfalls Parameter. Korrelationskoeffizienten können auch Parameter sein. Der Begriff bezeichnet die Menge der Zahlen, die zur Modellierung eines Musters verwendet werden. Und Deep Learning ist eine Klasse von parametrischen Modellen. Ich werde in diesem Buch nicht näher auf nichtparametrische Modelle eingehen, aber es handelt sich um eine hochinteressante und leistungsstarke Algorithmenklasse.

2.9  Zusammenfassung

In diesem Kapitel haben wir die verschiedenen Ausprägungen des Machine Learnings etwas genauer betrachtet. Du hast erfahren, dass ein Machine-Learning-Algorithmus entweder überwacht oder unüberwacht und entweder parametrisch oder nichtparametrisch ist. Darüber hinaus haben wir erkundet, was genau diese vier Gruppen von Algorithmen unterscheidet. Du hast gelernt, dass überwachtes Machine Learning zu einer Algorithmenklasse gehört, bei der eine Datenmenge anhand einer anderen vorhergesagt wird, und dass unüberwachtes Lernen im Allgemeinen eine einzelne Datenmenge zu verschiedenen Clustern gruppiert. Zudem hast du erfahren, dass parametrische Algorithmen eine festgelegte Anzahl von Parametern besitzen und dass nichtparametrische Algorithmen die Anzahl der Parameter den Daten entsprechend anpassen.

Deep Learning verwendet sowohl für überwachte als auch für unüberwachte Vorhersagen neuronale Netze. Bislang sind wir auf theoretischer Ebene verblieben, damit du die Bedeutung für das Fachgebiet als Ganzes erkennst. Im nächsten Kapitel wirst du dein erstes neuronales Netz entwickeln, und alle nachfolgenden Kapitel sind projektbasiert. Also starte dein Jupyter Notebook und los geht’s!

Kapitel 3:
Vorhersage mit neuronalen Netzen: Forward Propagation

Ich versuche, möglichst keine Vorhersagen zu treffen, denn man steht schnell wie ein Idiot da.

– Warren Ellis, Comic- und Romanautor, Drehbuchschreiber

[Bild]In diesem Kapitel:

3.1  Vorhersage

In diesem Kapitel geht es um Vorhersagen.

‌Im letzten Kapitel hast du das Paradigma Vorhersagen, Vergleichen, Erlernen kennengelernt. Der erste Schritt sah ungefähr so aus:

[Bild]

In diesem Kapitel wirst du mehr darüber erfahren, wie diese drei verschiedenen Teile der Vorhersage mit einem neuronalen Netz hinter den Kulissen funktionieren. Betrachten wir zunächst einmal die Daten. In deinem ersten neuronalen Netz wirst du nur jeweils einen Datenpunkt vorhersagen, etwa so:

[Bild]

Später wirst du feststellen, dass die Anzahl der Datenpunkte, die du gleichzeitig verarbeitest, beträchtliche Auswirkungen auf den Aufbau des Netzes hat. Nun wirst du dich vielleicht fragen: »Wie wähle ich die Anzahl der Datenpunkte aus, die gleichzeitig propagiert werden?« Die Antwort hängt davon ab, ob du denkst, dass das neuronale Netz mit den übergebenen Daten richtig funktioniert.

Wenn ich beispielsweise versuche, vorherzusagen, ob auf einem Foto eine Katze zu sehen ist, muss ich meinem Netz eindeutig alle Pixel des Bilds gleichzeitig zur Verfügung stellen. Warum? Wenn ich dir nur ein Pixel eines Bilds bereitstelle, könntest du dann beurteilen, ob auf dem Foto eine Katze zu sehen ist? Ich auch nicht! (Das ist übrigens eine allgemeine Faustregel: Stell dem Netz immer genügend Informationen zur Verfügung. Mit »genügend Informationen« ist dabei ungefähr die Menge gemeint, die auch ein Mensch benötigen würde, um die gleiche Vorhersage zu treffen.)

Zunächst einmal überspringen wir hier das Netz, denn wie sich herausstellt, kannst du ein Netz nur erstellen, wenn du die Form‌ der Eingabe- und Ausgabedatenmenge kennst. (Mit Form ist hier fürs Erste die »Anzahl der Spalten« oder die »Anzahl der Datenpunkte« gemeint, die du gleichzeitig verarbeitest.) Wir bleiben bei einer einfachen Vorhersage der Wahrscheinlichkeit, dass eine Mannschaft gewinnt.

[Bild]

Nun weißt du, dass du einen Eingabedatenpunkt verwenden und eine Vorhersage treffen möchtest, und kannst ein neuronales Netz erstellen. Weil es nur einen Eingabedatenpunkt und eine Ausgabe gibt, wirst du ein Netz mit einem Drehschalter erstellen, der dem Eingabedatenpunkt eine Ausgabe zuordnet. (Diese »Drehschalter« werden abstrakt als Gewichte‌ bezeichnet und ich werde sie von jetzt an so nennen.) Hier also ist ohne weitere Umschweife dein erstes neuronales Netz, mit einem einzelnen Gewicht, das der Eingabe »# Zehen« die Ausgabe »Sieg?« zuordnet.

[Bild]

Wie du siehst, nimmt das Netz mit einem Gewicht jeweils einen Datenpunkt entgegen (die durchschnittliche Anzahl der Zehen pro Spieler) und gibt eine einzelne Vorhersage aus (ob die Mannschaft gewinnen wird).

3.2  Ein einfaches neuronales Netz trifft eine Vorhersage

Beginnen wir mit dem einfachsten neuronalen Netz, das es gibt. ‌‌

[Bild]

[Bild]

[Bild]

[Bild]

3.3  Was ist ein neuronales Netz?

Hier ist das erste neuronale Netz.

Öffne ein Jupyter Notebook und führe folgenden Code aus, um ein neuronales Netz zu erstellen:

weight = 0.1
def neural_network(input, weight): [Bild]
prediction = input * weight
      return prediction

[Bild] Das Netz

Führe nun Folgendes aus:

number_of_toes = [8.5, 9.5, 10, 9]
input = number_of_toes[0]
pred = neural_network(input,weight)
print(pred) [Bild]

[Bild] So verwendest du das Netz, um etwas vorherzusagen.

Du hast soeben dein erstes neuronales Netz erstellt und es verwendet, um eine Vorhersage zu treffen! Glückwunsch! Die letzte Zeile gibt die Vorhersage (pred) aus. Sie sollte 0,85 lauten. Was also ist ein neuronales Netz? Fürs Erste betrachten wir es als ein Gewicht oder mehrere Gewichte, das/die du mit der Eingabe multiplizierst, um eine Vorhersage zu treffen.

Was ist eine Eingabe?

‌Eine Zahl, die du irgendwo aus der echten Welt entnimmst. Normalerweise handelt es sich um etwas, das sich leicht in Erfahrung bringen lässt, wie beispielsweise die heutige Temperatur, die Anzahl der Tore, die ein Spieler in einer Saison erzielt hat, oder ein Aktienkurs von gestern.

Was ist eine Vorhersage?

‌Eine Vorhersage ist das, was ein neuronales Netz liefert, wenn du ihm eine Eingabe bereitstellst, wie etwa »Bei der heutigen Temperatur beträgt die Wahrscheinlichkeit 0 Prozent, dass die Leute einen Trainingsanzug anziehen«, oder »Bei seiner Trefferquote wird der Spieler mit einer Wahrscheinlichkeit von 30 Prozent ein Tor erzielen«, oder auch »In Anbetracht des gestrigen Aktienkurses wird er heute 101.52 betragen.«

Ist die Vorhersage immer richtig?

Nein. Manchmal unterlaufen dem neuronalen Netz Fehler, aber es kann daraus lernen. Wenn die Vorhersage beispielsweise zu hoch war, wird das Gewicht so angepasst, dass die nächste Vorhersage geringer ist (und umgekehrt).

Wie lernt das Netz?

Durch Trial and Error! Das Netz versucht, eine Vorhersage zu treffen, dann prüft es, ob die Vorhersage zu hoch oder zu niedrig war. Anschließend passt es das Gewicht an (größer oder kleiner), um bei der gleichen Eingabe beim nächsten Mal eine genauere Vorhersage zu treffen.