Deep Learning für die Biowissenschaften - Bharath Ramsundar - E-Book

Deep Learning für die Biowissenschaften E-Book

Bharath Ramsundar

0,0

Beschreibung

Deep Learning hat bereits in vielen Bereichen bemerkenswerte Ergebnisse erzielt. Jetzt hält es Einzug in die Wissenschaften, insbesondere in die Biowissenschaften. Dieses praxisorientierte Buch bietet Programmierern und Wissenschaftlern einen Überblick darüber, wie Deep Learning in Genomik, Chemie, Biophysik, Mikroskopie, medizinischer Analyse und der Arzneimittelforschung eingesetzt wird. Das Buch vermittelt Deep-Learning-Grundlagen und führt in die Arbeit mit der Python-Bibliothek DeepChem ein. Sie erfahren, wie Deep Learning z.B. zur Analyse von Mikroskopaufnahmen, für molekulare Daten und bei medizinischen Scans genutzt wird. Abschließend zeigen Bharath Ramsundar und seine Co-Autoren anhand einer Fallstudie Techniken für die Entwicklung neuer Therapeutika, eine der größten interdisziplinären Herausforderungen der Wissenschaft. - Lernen Sie, wie Machine Learning auf molekulare Daten angewendet werden kann - Erfahren Sie, warum Deep Learning ein mächtiges Werkzeug für Genetik und Genomik ist - Setzen Sie Deep Learning ein, um biophysikalische Systeme zu verstehen - Erhalten Sie eine kurze Einführung in Machine Learning mit DeepChem - Nutzen Sie Deep Learning zur Auswertung von Mikroskopaufnahmen - Analysieren Sie medizinische Scans mithilfe von Deep-Learning-Techniken - Erfahren Sie mehr über Variational Autoencoder (VAE) und Generative Adversarial Networks (GANs) - Interpretieren Sie, was Ihr Modell tut und wie es funktioniert "Ein wertvoller Beitrag für die wissenschaftliche Community." – Prabhat Teamleader Data and Analytics Services, NERSC, Lawrence Berkeley National Laboratory "Ein hervorragender High-Level-Überblick, dersowohl Einstiegspunkte in bestimmte Techniken bietet als auch die Erörterung der zugrundeliegenden Wissenschaft." – C. Titus Brown Associate Professor, University of California, Davis

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 319

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Zu diesem Buch – sowie zu vielen weiteren O’Reilly-Büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei oreilly.plus+:

www.oreilly.plus

Deep Learning für dieBiowissenschaften

Einsatz von Deep Learning in Genomik,Biophysik, Mikroskopie und medizinischer Analyse

Bharath Ramsundar, Peter Eastman,Patrick Walters, Vijay Pande

Deutsche Übersetzung vonHelena Schock

Bharath Ramsundar, Peter Eastman, Patrick Walters, Vijay Pande

Lektorat: Alexandra Follenius

Übersetzung: Helena Schock

Korrektorat: Sibylle Feldmann, www.richtiger-text.de

Satz: III-satz, www.drei-satz.de

Herstellung: Stefanie Weidner

Umschlaggestaltung: Karen Montgomery, Michael Oréal, www.oreal.de

Bibliografische Information Der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN:

Print978-3-96009-130-1

PDF978-3-96010-353-0

ePub978-3-96010-351-6

mobi978-3-96010-352-3

1. Auflage

Translation Copyright für die deutschsprachige Ausgabe © 2020 dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Authorized German translation of the English edition of Deep Learning for the Life Sciences, ISBN 9781492039839 © 2019 Bharath Ramsundar, Peter Eastman, Patrick Walters, and Vijay Pande. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.

Dieses Buch erscheint in Kooperation mit O’Reilly Media, Inc. unter dem Imprint »O’REILLY«. O’REILLY ist ein Markenzeichen und eine eingetragene Marke von O’Reilly Media, Inc. und wird mit Einwilligung des Eigentümers verwendet.

Hinweis:

Dieses Buch wurde auf PEFC-zertifiziertem Papier aus nachhaltiger Waldwirtschaft gedruckt. Der Umwelt zuliebe verzichten wir zusätzlich auf die Einschweißfolie.

Schreiben Sie uns:

Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.

Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag noch Übersetzer können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.

5 4 3 2 1 0

Inhalt

Vorwort

1Warum Biowissenschaften?

Warum Deep Learning?

In den modernen Biowissenschaften geht es um Daten

Was werden Sie lernen?

2Einführung in Deep Learning

Lineare Modelle

Mehrlagige Perzeptronen

Trainieren der Modelle

Validierung

Regularisierung

Hyperparameteroptimierung

Weitere Arten von Modellen

Convolutional Neural Networks

Recurrent Neural Networks

Weiterführende Literatur

3Machine Learning mit DeepChem

DeepChem-Datensätze

Trainieren eines Modells zur Vorhersage der Toxizität von Molekülen

Fallstudie: Trainieren eines MNIST-Modells

Der MNIST-Datensatz

Eine Konvolutionsarchitektur für MNIST

Fazit

4Machine Learning mit Molekülen

Was ist ein Molekül?

Was sind molekulare Bindungen?

Molekülgraphen

Molekulare Konformationen

Chiralität von Molekülen

Featurization eines Moleküls

SMILES-Strings und RDKit

Konnektivitäts-Fingerprints

Molekulare Deskriptoren

Graph Convolutions

Trainieren eines Modells zur Vorhersage der Löslichkeit

MoleculeNet

SMARTS-Strings

Fazit

5Biophysikalisches Machine Learning

Proteinstrukturen

Proteinsequenzen

Eine kurze Einführung in die Proteinbindung

Biophysikalische Eigenschaften

Grid Featurization

Atomare Featurization

Die PDBBind-Fallstudie

Der PDBBind-Datensatz

Merkmale entwickeln im PDBBind-Datensatz

Fazit

6Deep Learning in der Genomik

DNA, RNA und Proteine

Und nun zur Wirklichkeit

Transkriptionsfaktor-Bindung

Ein Konvolutionsmodell für die TF-Bindung

Zugänglichkeit von Chromatin

RNA-Interferenz

Fazit

7Machine Learning in der Mikroskopie

Eine kurze Einführung in die Mikroskopie

Zeitgemäße Lichtmikroskopie

Die Beugungsgrenze

Elektronen- und Rasterkraftmikroskopie

Superauflösende Mikroskopie

Deep Learning und die Beugungsgrenze?

Vorbereiten biologischer Proben für die Mikroskopie

Einfärben der Proben

Fixierung der Probe

Schneiden der Probe

Fluoreszenzmikroskopie

Artefakte der Probenvorbereitung

Deep-Learning-Anwendungen

Die Zellzählung

Zellsegmentierung

Rechnergestützte Assays

Fazit

8Deep Learning in der Medizin

Computerunterstützte Diagnostik

Probabilistische Diagnosen mit Bayes’schen Netzen

Die elektronische Gesundheitsakte

Worin liegen die Gefahren großer EHR-Datenbanken?

Deep Radiology

Röntgenaufnahmen und CT-Scans

Histologie

MRT-Scans

Lernmodelle als Therapeutika

Diabetische Retinopathie

Fazit

Ethische Überlegungen

Arbeitsplatzverluste

Zusammenfassung

9Generative Modelle

Variational Autoencoder

Generative Adversarial Networks

Anwendungen generativer Modelle in den Biowissenschaften

Entwicklung neuer Ideen für die Kernstrukturen

Proteindesign

Ein Tool für wissenschaftliche Entdeckungen

Die Zukunft generativer Modellierung

Mit generativen Modellen arbeiten

Analysieren der Ausgabe des generativen Modells

Fazit

10Interpretieren von Deep-Learning-Modellen

Vorhersagen erklären

Eingaben optimieren

Unsicherheit vorhersagen

Interpretierbarkeit, Erklärbarkeit und reale Konsequenzen

Fazit

11Beispiel eines virtuellen Screening-Workflows

Vorbereiten des Datensatzes

Trainieren eines Vorhersagemodells

Vorbereiten eines Datensatzes für die Vorhersage

Ein Vorhersagemodell anwenden

Fazit

12Chancen und Perspektiven

Medizinische Diagnosen

Personalisierte Medizin

Arzneimittelentwicklung

Biologische Forschung

Fazit

Index

Vorwort

In den vergangenen Jahren sind die Biowissenschaften und Data Science zusammengewachsen. Fortschritte in der Robotik und der Automatisierungstechnik haben es Chemikern und Biologen ermöglicht, riesige Datenmengen zu erzeugen. Heutzutage können Wissenschaftler innerhalb eines Tages mehr Daten erzeugen als ihre Vorgänger vor 20 Jahren während ihrer gesamten Laufbahn. Die Fähigkeit, Daten schnell zu generieren, hat auch zu einer Reihe neuer wissenschaftlicher Herausforderungen geführt. Die Zeit ist vorbei, in der Daten verarbeitet werden, indem sie in eine Tabelle geladen und einige Graphen erstellt werden. Um wissenschaftliche Erkenntnisse aus diesen Daten gewinnen zu können, müssen wir heute in der Lage sein, verborgene Zusammenhänge zu identifizieren und zu extrahieren.

Eine Methode, die sich in den letzten Jahren als wirksames Instrument zur Identifizierung von Mustern und Beziehungen in Daten herauskristallisiert hat, ist Deep Learning. Dabei handelt es sich um Algorithmen, die die Ansätze zur Lösung von Problemen bei Bildanalyse, Sprachübersetzung und Spracherkennung revolutioniert haben. Deep-Learning-Algorithmen zeichnen sich durch die Identifizierung und Nutzung von Mustern in großen Datenmengen aus. Deswegen findet Deep Learning breite Anwendung in allen Bereichen der Biowissenschaften. Dieses Buch vermittelt einen Überblick darüber, wie Deep Learning in einer Vielzahl von Bereichen eingesetzt wird, darunter Genetik, Arzneimittelforschung und ärztlicher Diagnose. Viele der vorgestellten Beispiele werden von Programmcode begleitet, der eine praktische Einführung in die Methoden bietet und Ihnen einen Ausgangspunkt für eigene Erkundungen gibt.

Die in diesem Buch verwendeten Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Kennzeichnet neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen.

Feste Zeichenbreite

Kennzeichnet Programmlistings sowie Programmelemente in Absätzen, wie etwa Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter.

Feste Zeichenbreite fett

Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingegeben werden soll.

Feste Zeichenbreite kursiv

Kennzeichnet Text, der durch Werte ersetzt werden soll, die der Benutzer vorgibt oder die sich aus dem Kontext ergeben.

Dieses Symbol kennzeichnet einen Tipp oder Vorschlag.

Dieses Symbol zeigt eine allgemeine Bemerkung.

Dieses Element symbolisiert einen Warnhinweis.

Verwendung von Codebeispielen

Ergänzendes Material (z.B. Codebeispiele, Übungen usw.) steht unter https://github.com/deepchem/DeepLearningLifeSciences zum Download bereit.

Dieses Buch ist dazu gedacht, Ihnen bei Ihren Aufgaben zu helfen. Grundsätzlich dürfen Sie die mit diesem Buch bereitgestellten Codebeispiele in Ihren Programmen und der dazugehörigen Dokumentation nutzen. Sie müssen uns dazu nicht um Erlaubnis fragen, es sei denn, Sie reproduzieren einen beträchtlichen Teil des Codes. Schreiben Sie beispielsweise ein Programm, das mehrere Codeabschnitte aus diesem Buch enthält, benötigen Sie keine Erlaubnis. Verkaufen oder verteilen Sie dagegen eine CD-ROM mit Beispielen aus Büchern von O’Reilly, benötigen Sie eine Erlaubnis. Eine Frage mit einem Zitat aus diesem Buch unter Angabe eines Codebeispiels zu beantworten, benötigt keine Erlaubnis. Wollen Sie dagegen einen wesentlichen Anteil der Codebeispiele aus diesem Buch in Ihr eigenes Buch integrieren, brauchen Sie eine Erlaubnis.

Wir freuen uns über Quellenangaben, verlangen diese aber nicht. Eine Quellenangabe enthält üblicherweise Titel, Autor, Verlag und ISBN. Zum Beispiel: »Deep Learning in den Biowissenschaften von Bharath Ramsundar, Peter Eastman, Patrick Walters und Vijay Pande (O’Reilly). Copyright 2019 Bharath Ramsundar, Peter Eastman, Patrick Walters und Vijay Pande, ISBN 978-3-96009-130-1.«

Wenn Sie glauben, dass Ihre Nutzung von Codebeispielen über das gewöhnliche Maß hinausgeht oder außerhalb der oben vorgestellten Nutzungsbedingungen liegt, kontaktieren Sie uns bitte unter [email protected].

Danksagung

Wir möchten uns bei Nicole Tache, unserer Lektorin bei O’Reilly, bedanken. Weiterhin danken wir den Tech- und Beta-Reviewern für ihre wertvollen Beiträge zum Buch. Darüber hinaus möchten wir Karl Leswing und Zhenqin (Michael) Wu für ihre Beiträge zum Programmcode und Johnny Israeli für die wertvollen Ratschläge zum Kapitel über Genomik danken.

Bharath möchte sich bei seiner Familie für ihre Unterstützung und Ermutigung während der vielen langen Wochenenden und Abende bei der Arbeit an diesem Buch bedanken.

Peter dankt seiner Frau für ihre unermüdliche Unterstützung und bedankt sich bei den vielen Kollegen, von denen er so viel über Machine Learning gelernt hat.

Pat bedankt sich bei seiner Frau Andrea und seinen Töchtern Alee und Maddy für ihre Liebe und Unterstützung. Auch möchte er ehemaligen und aktuellen Kollegen bei Vertex Pharmaceuticals und Relay Therapeutics danken, von denen er so viel gelernt hat.

Abschließend möchten wir uns bei der Open-Source-Community von DeepChem für die Ermutigung und Unterstützung während des gesamten Projekts bedanken.

KAPITEL 1

Warum Biowissenschaften?

Einsatzgebiete für all diejenigen mit technischem Verständnis und Leidenschaft für Daten gibt es viele, aber nur wenige Gebiete haben eine so grundlegende Auswirkung wie die biomedizinische Forschung. Der Beginn der modernen Medizin hat die Natur der menschlichen Existenz grundlegend verändert. In den letzten 20 Jahren wurden wir Zeuge, wie Innovationen das Leben unzähliger Menschen verändert haben. Bei ihrem ersten Auftreten im Jahr 1981 war HIV/Aids eine zumeist tödliche Krankheit. Die kontinuierliche Weiterentwicklung antiretroviraler Therapien hat die Lebenserwartung betroffener Patienten erheblich verlängert. Andere Krankheiten, wie zum Beispiel Hepatitis C, die vor einem Jahrzehnt noch als nicht behandelbar galt, können nun geheilt werden. Fortschritte in der Genetik ermöglichen die Identifikation und, hoffentlich bald, die Behandlung einer Vielzahl von Erkrankungen. Dank innovativer Diagnostik und Instrumentierung können Mediziner Krankheiten im menschlichen Körper spezifisch identifizieren und gezielt behandeln. Viele dieser Durchbrüche haben von rechnergestützten Methoden profitiert und werden durch diese weiter vorangetrieben.

Warum Deep Learning?

Algorithmen für Machine Learning sind inzwischen ein wichtiger Bestandteil des Alltags, vom Onlineshopping bis Social Media. Informatiker entwickeln Algorithmen, die es digitalen Assistenten wie Amazon Echo oder Google Home ermöglichen, Sprache zu verstehen. Fortschritte im Machine Learning haben die Übersetzung von Webseiten im laufenden Betrieb ermöglicht. Des Weiteren hat Machine Learning viele Bereiche der Physik und Biowissenschaften beeinflusst. Algorithmen werden auf alles angewandt, von der Entdeckung neuer Galaxien aus Teleskopaufnahmen bis zur Klassifizierung subatomarer Wechselwirkungen am Large Hadron Collider.

Eine der Triebfedern dieser technologischen Fortschritte war die Entwicklung einer Klasse von Methoden des Machine Learning, die als Deep Neural Networks bekannt sind. Während die technologischen Voraussetzungen für künstliche neuronale Netze in den 1950er-Jahren entwickelt und in den 1980er-Jahren verfeinert wurden, entfaltete sich deren volles Potenzial erst in den letzten zehn Jahren mit der Weiterentwicklung der Computerhardware. Im nächsten Kapitel werden wir eine umfassendere Übersicht über Deep Neural Networks geben, es ist jedoch wichtig, die aus der Anwendung von Deep Learning entstandenen Fortschritte zu würdigen:

Viele der Entwicklungen bei der Spracherkennung, die in Mobiltelefonen, Computern, Fernsehern und anderen mit dem Internet verbundenen Geräten allgegenwärtig sind, wurden durch Deep Learning vorangetrieben.

Die Bilderkennung ist eine Schlüsselkomponente für selbstfahrende Autos, die Internetsuche und andere Anwendungen. Viele der Deep-Learning-Entwicklungen, die Anwendungen für Privatkunden vorangetrieben haben, werden jetzt in der biomedizinischen Forschung eingesetzt, zum Beispiel um Tumorzellen verschiedenen Typen zuzuordnen.

Empfehlungssysteme sind zu einer Schlüsselkomponente des Onlineerlebnisses geworden. Unternehmen wie Amazon wenden Deep Learning an, um ihre Kunden, die ein bestimmtes Produkt gekauft haben, dazu zu bewegen, zusätzliche Einkäufe zu tätigen. Netflix geht ähnlich vor, um Filme vorzuschlagen, die ein Nutzer möglicherweise ebenfalls sehen möchte. Viele der Ideen, die hinter diesen Empfehlungssystemen stehen, werden verwendet, um neue Moleküle zu identifizieren, die als Ausgangspunkte für neue Wirkstoffentdeckungen dienen könnten.

Übersetzungen waren einst die Domäne sehr komplexer statistischer Computerprogramme. In den letzten Jahren hat Deep Learning die Systeme, die jahrelang manuell kuratiert wurden, übertroffen. Viele der gleichen Ideen werden nun genutzt, um Konzepte aus der wissenschaftlichen Literatur zu extrahieren und Wissenschaftler auf Publikationen aufmerksam zu machen, die sie möglicherweise übersehen hätten.

Die hier genannten sind nur einige der Innovationen, die durch die Anwendung von Deep-Learning-Methoden entstanden sind. Es ist eine interessante Zeit, in der sich allgemein verfügbare wissenschaftliche Daten und Methoden zu deren Verarbeitung annähern. Diejenigen, die in der Lage sind, Daten mit neuen Methoden zu kombinieren, um aus Mustern in diesen Daten zu lernen, können wichtige wissenschaftliche Fortschritte erzielen.

In den modernen Biowissenschaften geht es um Daten

Wie bereits erwähnt, hat sich die grundlegende Art der Biowissenschaften verändert. Die Verfügbarkeit von Robotik sowie miniaturisierte Experimente haben zu einem drastischen Anstieg der experimentellen Daten, die erstellt werden können, geführt. In den 1980er-Jahren führte ein Biologe ein einzelnes Experiment durch, das nur ein einzelnes Ergebnis lieferte. Dieses konnte dann meist manuell unter Zuhilfenahme eines Taschenrechners verarbeitet werden. Spulen wir zur heutigen Biologie vor, dann verfügen wir über Instrumente, die in ein oder zwei Tagen Millionen experimenteller Datenpunkte erzeugen können. Die Gensequenzierung beispielsweise, in der riesige Datensätze entstehen, ist kostengünstig und routinemäßig geworden.

Die Fortschritte in der Gensequenzierung haben zur Entwicklung von Datenbanken geführt, die das genetische Erbgut einer Person mit einer Vielzahl von gesundheitlichen Auswirkungen, wie Diabetes, Krebs und genetisch bedingten Erkrankungen wie Mukoviszidose, verknüpfen. Mithilfe analytischer Methoden zur Analyse und Gewinnung dieser Daten entwickeln Wissenschaftler ein Verständnis für die Ursachen dieser Krankheiten und nutzen dieses, um neue Therapien zu entwickeln.

Fachgebiete, die ehemals hauptsächlich auf menschlicher Beobachtung beruhten, verwenden nun Datensätze, die nicht länger manuell ausgewertet werden können. Heutzutage wird routinemäßig Machine Learning eingesetzt, um Bilder von Zellen zu klassifizieren. Die Ergebnisse dieser Machine-Learning-Modelle werden verwendet, um Krebstumore zu identifizieren und zu klassifizieren und die Auswirkung möglicher Krebstherapien zu bewerten.

Fortschritte in experimentellen Techniken haben zum Aufbau mehrerer Datenbanken geführt, in denen die Strukturen von Chemikalien und die Auswirkungen dieser Chemikalien auf eine Vielzahl von biologischen Prozessen oder Aktivitäten katalogisiert werden. Diese Struktur-Aktivitäts-Beziehungen (SARs) bilden die Grundlagen eines Wissenschaftszweigs, der als Cheminformatik bezeichnet wird. Wissenschaftler nutzen diese umfangreichen Datensätze zum Erstellen von Vorhersagemodellen, die die nächste Generation der Arzneimittelentwicklung vorantreiben werden.

Diese großen Datenmengen erfordern eine neue Generation von Wissenschaftlern, die sowohl in der Wissenschaft als auch der Informatik zu Hause sind. Diejenigen, die Kenntnisse aus beiden Bereichen besitzen, haben das Potenzial, Muster und Trends in großen Datensätzen aufzudecken und die wissenschaftlichen Entdeckungen von morgen zu sein.

Was werden Sie lernen?

In den ersten Kapiteln dieses Buchs geben wir einen Überblick über Deep Learning und wie es in den Biowissenschaften angewendet werden kann. Wir fangen mit Machine Learning an, das definiert wird als »die Wissenschaft (und Kunst), Rechner so zu programmieren, dass sie aus Daten lernen können«.1

Kapitel 2 enthält eine kurze Einführung in Deep Learning. Wir beginnen mit einem Beispiel, in dem gezeigt wird, wie diese Art des Machine Learning verwendet werden kann, um eine einfache Aufgabe wie die lineare Regression auszuführen, und gehen dann zu komplexeren Modellen über, die häufig zur Lösung von realen Problemen in den Biowissenschaften verwendet werden. Im Machine Learning wird ein Datensatz zunächst in einen Trainingsdatensatz, der zur Entwicklung des Models genutzt wird, und einen Testdatensatz, anhand dessen die Leistung des Modells ermittelt wird, aufgeteilt. In Kapitel 2 besprechen wir einige Details rund um Training und Validierung von Vorhersagemodellen. Sobald ein Modell erzeugt wurde, kann seine Leistung in der Regel durch Anpassen mehrerer Parameter, auch bekannt als Hyperparameter, optimiert werden. Das Kapitel gibt einen Überblick über diesen Ablauf. Deep Learning ist keine für sich stehende Technik, sondern beinhaltet eine Reihe verwandter Methoden. Kapitel 2 endet mit einer Einführung in einige der wichtigsten Deep-Learning-Varianten.

In Kapitel 3 stellen wir DeepChem vor, eine Open-Source-Programmbibliothek, die eigens entwickelt wurde, um die Erstellung von Deep-Learning-Modellen für eine Vielzahl biowissenschaftlicher Anwendungen zu vereinfachen. Nach dem Überblick über DeepChem stellen wir unser erstes Programmierbeispiel vor, das zeigt, wie mit der DeepChem-Bibliothek ein Modell zur Vorhersage der Toxizität von Molekülen erstellt werden kann. In einem zweiten Programmierbeispiel zeigen wir, wie mit DeepChem Bilder klassifiziert werden können, eine in der modernen Biologie häufig anzutreffende Aufgabe. Wie bereits kurz erwähnt, wird Deep Learning in einer Vielzahl von bildgebenden Verfahren eingesetzt, die von der Krebsdiagnose bis zur Erkennung von Glaukomen reichen. Die Vorstellung dieser spezifischen Anwendungen mündet dann in eine Erklärung einiger der inneren Funktionsweisen von Deep-Learning-Methoden.

Kapitel 4 gibt einen Überblick darüber, wie Machine Learning auf Moleküle angewendet werden kann. Wir beginnen mit einer Einführung zu Molekülen, den Bausteinen von allem, das uns umgibt. Obwohl Moleküle mit Bausteinen gleichgesetzt werden können, sind sie nicht starr. Vielmehr sind Moleküle flexibel und zeigen dynamisches Verhalten. Um Moleküle mithilfe eines analytischen Verfahrens wie dem Deep Learning charakterisieren zu können, müssen wir in der Lage sein, Moleküle in einem Computer darzustellen. Diese Codierungen ähneln der Art und Weise, in der ein Bild als eine Ansammlung von Pixeln dargestellt werden kann. Im zweiten Teil von Kapitel 4 beschreiben wir eine Reihe von Darstellungsmöglichkeiten von Molekülen und wie diese Darstellungen in Deep-Learning-Modellen verwendet werden können.

Kapitel 5 bietet eine Einführung in das Gebiet der Biophysik, bei der die Gesetze der Physik auf biologische Phänomene angewendet werden. Wir beginnen mit Proteinen, den molekularen Maschinen, die das Leben ermöglichen. Eine Schlüsselkomponente für die Vorhersage von Arzneimittelauswirkungen auf den Körper ist das Verständnis ihrer Wechselwirkungen mit Proteinen. Um diese Effekte zu verstehen, beginnen wir mit einem Überblick darüber, wie Proteine aufgebaut sind und wie sich die Proteinstrukturen unterscheiden. Proteine sind Entitäten, deren 3-D-Struktur ihre biologische Funktion bestimmt. Damit ein Machine-Learning-Modell den Einfluss eines Wirkstoffmoleküls auf die Funktion eines Proteins vorhersagen kann, müssen wir diese 3-D-Struktur in eine Form bringen, die von einem Machine-Learning-Programm verarbeitet werden kann. Im zweiten Teil von Kapitel 5 untersuchen wir eine Reihe von Möglichkeiten, wie Proteinstrukturen dargestellt werden können. Mit dem nun vorhandenen Wissen betrachten wir ein weiteres Codebeispiel, in dem wir Deep Learning verwenden, um vorherzusagen, inwieweit ein Wirkstoffmolekül mit einem Protein interagieren wird.

Die Genetik ist zu einer Schlüsselkomponente der heutigen Medizin geworden. Die genetische Tumorsequenzierung hat personalisierte Krebstherapien ermöglicht und das Potenzial, die Medizin zu revolutionieren. Die ehemals komplexe und sehr kostenintensive Gensequenzierung ist heutzutage alltäglich und wird routinemäßig durchgeführt. Wir haben sogar den Punkt erreicht, an dem Hundebesitzer kostengünstige Gentests bekommen können, um die Abstammungslinie ihrer Haustiere zu bestimmen. In Kapitel 6 geben wir einen Überblick über Genetik und Genomik und beginnen mit einer Einführung in DNA und RNA, die Vorlagen der Proteinherstellung. Jüngste Entdeckungen haben enthüllt, dass die Wechselwirkungen zwischen DNA und RNA viel komplexer sind, als ursprünglich angenommen. In der zweiten Hälfte von Kapitel 6 stellen wir einige Codebeispiele vor, die zeigen, wie mithilfe von Deep Learning mehrere Faktoren vorhergesagt werden können, die die Wechselwirkungen von DNA und RNA beeinflussen.

Wir haben in diesem Kapitel bereits auf die vielen Fortschritte hingewiesen, die auf der Anwendung von Deep Learning auf die Analyse biologischer und medizinischer Bilder basieren. Viele der in diesen Experimenten untersuchten Phänomene sind zu klein, um mit bloßem Auge beobachtet werden zu können. Um die Bilder zu erhalten, die für Deep-Learning-Methoden benötigt werden, müssen wir ein Mikroskop benutzen. Kapitel 7 gibt einen Überblick über die unzähligen Formen der Mikroskopie, angefangen mit dem einfachen Lichtmikroskop, das wir alle aus der Schule kennen, bis hin zu hoch entwickelten Instrumenten, die in der Lage sind, Bilder in atomarer Auflösung zu machen. Des Weiteren werden einige der Grenzen aktueller Ansätze aufgezeigt und Informationen zu den experimentellen Pipelines gegeben, um die Bilder für Deep-Learning-Modelle zu erhalten.

Ein sehr vielversprechender Bereich ist die Anwendung von Deep Learning für medizinische Diagnosen. Die Medizin ist unglaublich komplex, und kein Arzt kann das gesamte verfügbare medizinische Wissen in sich vereinen. Im Idealfall könnte ein Machine-Learning-Modell die medizinische Literatur verarbeiten und Mediziner beim Stellen von Diagnosen unterstützen. Obwohl wir so weit noch nicht sind, sind wir auf einem guten Weg. Kapitel 8 beginnt mit der Geschichte des Machine Learning im Stellen von Diagnosen und skizziert den Übergang von manuell codierten Regeln hin zur statistischen Analyse der medizinischen Ergebnisse. Wie bereits bei vielen anderen Themen angesprochen, ist ein wichtiger Bestandteil die Darstellung medizinischer Informationen in einem Format, das ein Machine-Learning-Programm verarbeiten kann. In diesem Kapitel stellen wir die elektronische Patientenakte vor und weisen auf einige der Probleme hin, die diese Aufzeichnungen betreffen. Oftmals sind medizinische Bilder sehr komplex, und die Auswertung sowie die Interpretation dieser Bilder gestalten sich selbst für erfahrene Spezialisten schwierig. In diesen Fällen kann Deep Learning die Fähigkeiten eines Menschen erweitern, indem Bilder klassifiziert und Schlüsselmerkmale identifiziert werden. Kapitel 8 schließt mit einer Reihe von Beispielen dafür, wie Deep Learning in einer Vielzahl von Bereichen zur Analyse medizinischer Bilder verwendet wird.

Wie bereits erwähnt, ist Machine Learning ein wichtiger Bestandteil der Suche nach neuen Wirkstoffen. Wissenschaftler wenden Deep Learning an, um die Wechselwirkungen zwischen Wirkstoffmolekülen und Proteinen auszuwerten. Diese Wechselwirkungen können biologische Reaktionen hervorrufen, die therapeutische Auswirkungen für einen Patienten haben. Die Modelle, die wir bisher besprochen haben, waren diskriminative Modelle. Ausgehend von einer Reihe von Eigenschaften eines Moleküls erstellt das Modell eine Vorhersage einer anderen Eigenschaft. Diese Vorhersagen benötigen ein Input-Molekül, das aus einer Datenbank vorhandener Moleküle oder der Fantasie eines Wissenschaftlers entstammen kann. Was wäre, wenn wir uns nicht auf Vorhandenes oder der Fantasie Entstammendes verlassen müssten, sondern ein Computerprogramm hätten, das neue Moleküle »erfinden« könnte? Kapitel 9 stellt eine weitere Methode des Deep Learning vor, das generative Modell. Ein generatives Modell wird zunächst auf verfügbaren Molekülen trainiert und anschließend genutzt, um neue Moleküle zu erzeugen. Das Deep-Learning-Programm, das diese Moleküle erzeugt, kann auch durch weitere Modelle beeinflusst werden, die die Aktivität der neuen Moleküle vorhersagen.

Bisher haben wir Deep-Learning-Modelle als »Blackboxes« betrachtet. Das Modell erhält Eingabedaten und erstellt eine Vorhersage, jedoch ohne jegliche Erklärung dazu, wie oder warum die Vorhersage erzeugt wurde. Diese Art der Vorhersage kann in vielen Situationen suboptimal sein. Wenn wir ein Deep-Learning-Modell zum Stellen von Diagnosen haben, wollen wir in der Regel die Gründe für die Diagnose verstehen. Eine Erklärung der Gründe für die Diagnose gibt dem Arzt mehr Vertrauen in die Vorhersage und kann auch die Entscheidungen bezüglich einer Therapie beeinflussen. Ein historischer Wermutstropfen beim Deep Learning ist die Tatsache, dass die Modelle, obwohl oft zuverlässig, schwierig zu deuten sind. Derzeit werden Techniken entwickelt, die den Benutzern ermöglichen sollen, zu verstehen, welche Faktoren zu einer Vorhersage geführt haben. Kapitel 10 gibt eine Übersicht zu einigen dieser Techniken, die das menschliche Verständnis von Vorhersagemodellen ermöglicht. Ein weiterer wichtiger Aspekt von Vorhersagemodellen ist die Genauigkeit der Vorhersagen. Das Verständnis für die Genauigkeit eines Modells kann uns dabei helfen, festzustellen, wie sehr wir uns auf dieses Modell verlassen können. Da mit Machine Learning möglicherweise lebensrettende Diagnosen gestellt werden können, ist das Verständnis der Modellgenauigkeit von entscheidender Bedeutung. Im letzten Abschnitt von Kapitel 10 geben wir einen Überblick über einige der Techniken, mit denen sich die Genauigkeit eines Modells beurteilen lässt.

In Kapitel 11 stellen wir eine reale Fallstudie unter Verwendung von DeepChem vor. In diesem Beispiel verwenden wir ein Verfahren namens »virtuelles Screening«, um mögliche Ausgangspunkte für die Entdeckung neuer Medikamente zu identifizieren. Die Entdeckung neuer Arzneimittel ist ein komplexer Prozess, der häufig mit einer Technik beginnt, die als Screening bekannt ist. Durch Screening werden Moleküle identifiziert, die optimiert werden können, um schließlich Medikamente zu erzeugen. Das Screening kann experimentell durchgeführt werden, wobei Millionen von Molekülen in miniaturisierten biologischen Tests, auch bekannt als Assays, getestet werden, oder unter Verwendung des virtuellen Screenings am Computer. Beim virtuellen Screening werden bekannte Medikamente oder andere biologisch aktive Moleküle genutzt, um ein Machine-Learning-Modell zu trainieren. Dieses Modell wird dann zur Vorhersage der Aktivität einer großen Menge von Molekülen verwendet. Dank der hohen Geschwindigkeit der Machine-Learning-Methoden können Hunderte Millionen Moleküle meist innerhalb weniger Tage verarbeitet werden.

Im letzten Kapitel dieses Buchs untersuchen wir die aktuellen Auswirkungen und das zukünftige Potenzial von Deep Learning in den Biowissenschaften. Eine Reihe von Herausforderungen der aktuellen Bemühungen, einschließlich der Verfügbarkeit und Qualität von Datensätzen, werden besprochen. Des Weiteren zeigen wir Chancen und mögliche Fallstricke in anderen Bereichen auf, darunter Diagnostik, personalisierte Medizin, pharmazeutische Entwicklung und biologische Forschung.

KAPITEL 2

Einführung in Deep Learning

Dieses Kapitel führt Sie in die Grundprinzipien von Deep Learning ein. Sollten Sie bereits über einiges an Erfahrung mit Deep Learning verfügen, können Sie dieses Kapitel auch nur überfliegen und dann zum nächsten gehen. Falls Sie weniger Erfahrung haben, sollten Sie dieses Kapitel sorgfältig lesen, da das darin enthaltene Wissen für das weitere Verständnis des Buchs unentbehrlich ist.

Bei den meisten Aufgabenstellungen, die wir behandeln werden, besteht unsere Arbeit darin, eine mathematische Formel zu erstellen:

Beachten Sie bitte, dass x und y fett geschrieben sind. Das bedeutet, hierbei handelt es sich um Vektoren. Eine Funktion kann viele Eingabewerte haben, möglicherweise Tausende oder gar Millionen, und viele Ausgabewerte erzeugen. Hier einige Funktionsbeispiele:

x

enthält die Farben aller Pixel eines Bilds.

f

(

x

) ergibt 1, wenn auf dem Bild eine Katze abgebildet ist, und 0, wenn das nicht der Fall ist.

Das Gleiche wie oben, außer dass

f

(

x

) ein Vektor von Zahlen ist. Das erste Element zeigt an, ob das Bild eine Katze enthält, das zweite, ob es sich um einen Hund handelt, das dritte, ob ein Flugzeug zu sehen ist, und so weiter für Tausende von Objekten.

x

beinhaltet die DNA-Sequenz eines Chromosoms.

y

ist ein Vektor, dessen Länge der Anzahl der Basen im Chromosom entspricht. Jedes Element ergibt 1, wenn diese Base Teil einer Region ist, die für ein Protein codiert, und 0, falls nicht.

x

beschreibt die Struktur eines Moleküls. (Wir besprechen die verschiedenen Darstellungsmöglichkeiten von Molekülen in späteren Kapiteln.)

y

stellt einen Vektor dar, in dem jedes Element eine physikalische Eigenschaft des Moleküls beschreibt: wie einfach es sich in Wasser auflöst, wie stark es an andere Moleküle bindet usw.

Wie Sie sehen können, kann es sich bei f(x) um eine sehr komplizierte Funktion handeln! In der Regel wird ein langer Vektor als Eingabe verwendet, aus dem versucht wird, Informationen zu extrahieren, die nur anhand der eingegebenen Zahlen nicht ersichtlich sind.

Der übliche Ansatz zur Lösung dieser Aufgabenstellung besteht darin, eine Funktion von Hand zu entwerfen. Sie würden damit beginnen, die Aufgabe zu zerlegen. Welche Pixelmuster deuten auf die Anwesenheit einer Katze hin? Welche DNA-Muster neigen dazu, codierende von nicht codierenden Regionen zu unterscheiden? Sie würden Computercode schreiben, um bestimmte Arten von Merkmalen zu erkennen, und dann versuchen, Kombinationen von Merkmalen zu identifizieren, die zuverlässig das beabsichtigte Ergebnis erzeugen. Dieser Ablauf ist langsam und arbeitsaufwendig und hängt stark von den Fachkenntnissen des Auszuführenden ab.

Machine Learning geht ganz anders vor. Anstatt eine Funktion von Hand zu entwerfen, ermöglichen Sie dem Computer, seine eigene Funktion anhand von Daten zu erlernen. Sie sammeln Tausende oder Millionen von Bildern, die jeweils kennzeichnen, ob eine Katze enthalten ist. Sie geben die gesamten Trainingsdaten dem Computer und lassen ihn nach einer Funktion suchen, die für Bilder mit Katzen durchgehend nahe 1 und für die ohne nahe 0 liegt.

Was bedeutet es, den Computer nach einer Funktion suchen zu lassen? Im Allgemeinen erstellen Sie ein Modell, das eine große Klasse von Funktionen definiert. Die Modelle beinhalten Parameter, das sind Variablen, die einen beliebigen Wert annehmen können. Durch die Wahl der Parameterwerte legen Sie eine bestimmte Funktion aus den vielen Funktionen in der vom Modell definierten Klasse fest. Die Aufgabe des Computers besteht darin, die Werte für die Parameter auszuwählen. Er wird versuchen, die Werte so zu finden, dass bei Verwendung der Trainingsdaten als Eingabe die Ausgabe den entsprechenden Vorgaben möglichst nahekommt.

Lineare Modelle

Eines der einfachsten Modelle, die Sie ausprobieren sollten, ist das lineare Modell:

In dieser Gleichung ist M eine Matrix (manchmal als »Gewicht« bezeichnet), und b ist ein Vektor (auch »Bias« genannt). Ihre Größen werden anhand der Anzahl der Ein- und Ausgabewerte bestimmt. Wenn x die Länge T hat und y die Länge S haben soll, ist M eine S × T-Matrix und b ein Vektor der Länge S. Zusammen bilden sie die Parameter des Modells. Diese Formel besagt einfach, dass jeder Ausgabewert eine lineare Kombination der Eingabewerte ist. Durch Festlegen der Parameter (M und b) können Sie für jede Komponente eine beliebige lineare Kombination auswählen.

Dies war eines der frühesten Modelle im Machine Learning. Es wurde bereits 1957 eingeführt und Perzeptron genannt. Der Name hat erstaunliches Marketingpotenzial: Er klingt nach Science-Fiction und scheint wundervolle Dinge zu versprechen, obwohl es tatsächlich nichts anderes als eine lineare Transformation ist. Wie auch immer, der Name hat seit mehr als einem halben Jahrhundert Bestand.

Es ist sehr einfach, das lineare Modell völlig allgemein zu formulieren. Es hat immer die gleiche Form, unabhängig von der Aufgabenstellung, auf die es angewendet wird. Den einzigen Unterschied zwischen linearen Modellen bilden die Längen der Eingabe- und Ausgabevektoren. Von dort aus müssen nur noch die Werte der Parameter ausgewählt werden, was mit allgemeinen Algorithmen auf einfache Weise möglich ist. Das ist genau das, was wir für Machine Learning brauchen: ein Modell und Algorithmen, die unabhängig von der zu lösenden Aufgabe sind. Es müssen nur Trainingsdaten zur Verfügung gestellt werden, die Parameter, die das allgemeine Modell in eine spezifische Gleichung umwandeln, werden automatisch bestimmt.

Leider sind lineare Modelle stark eingeschränkt. Wie in Abbildung 2-1 dargestellt, kann ein lineares Modell (in einer Dimension, also eine Gerade) einfach nicht die meisten realen Datensätze fitten. Das Problem verschlimmert sich sogar, wenn hochdimensionale Daten verwendet werden sollen. Keine lineare Kombination von Pixeln eines Bilds erkennt zuverlässig, ob sich auf dem Bild eine Katze befindet. Für diese Aufgabe wird ein komplizierteres, nicht lineares Modell benötigt. Tatsächlich wird jedes Modell, das dieses Problem löst, notwendigerweise sehr kompliziert und sehr nicht linear sein. Wie können wir es allgemein formulieren? Der Raum aller möglichen nicht linearen Funktionen ist unendlich komplex. Wie können wir ein Modell so definieren, dass wir nur anhand gewählter Parameterwerte fast jede nicht lineare Gleichung erstellen können, die wir jemals benötigen werden?

Abbildung 2-1: Ein lineares Modell kann keine Datenpunkte fitten, die einer Kurve folgen. Hierfür wird ein nicht lineares Modell benötigt.

Mehrlagige Perzeptronen

Ein einfacher Ansatz besteht darin, mehrere lineare Transformationen hintereinanderzuschalten. Zum Beispiel könnten wir Folgendes schreiben:

Schauen Sie sich genau an, was wir hier gemacht haben. Wir beginnen mit einer gewöhnlichen linearen Transformation, M1x + b1. Anschließend übergeben wir das Ergebnis an eine nicht lineare Funktion φ(x) und wenden dann eine zweite lineare Transformation auf dieses Ergebnis an. Die Gleichung, φ(x), die als Aktivierungsfunktion bezeichnet wird, ist ein wesentlicher Bestandteil dessen, was diese Funktion ausmacht. Ohne sie wäre das Modell immer noch linear und nicht leistungsfähiger als das vorherige. Eine lineare Kombination von linearen Kombinationen ist selbst nichts anderes als eine lineare Kombination der ursprünglichen Eingabe! Durch Hinzufügen einer Nichtlinearität ermöglichen wir dem Modell, einen viel größeren Funktionsumfang zu erlernen.

Wir müssen es nicht bei zwei linearen Transformationen belassen. Wir können so viele übereinanderschichten, wie wir möchten:

...

Dieses Modell wird mehrlagiges Perzeptron oder kurz MLP genannt. Die Zwischenschritte hi werden als Hidden-Layer bezeichnet. Der Name bezieht sich auf den Umstand, dass es sich weder um Eingaben noch um Ausgaben handelt, sondern nur um Zwischenwerte, die bei der Berechnung des Ergebnisses verwendet werden. Beachten Sie bitte auch, dass wir jedem φ(x) einen Index hinzugefügt haben. Dies weist daraufhin, dass unterschiedliche Ebenen unterschiedliche Nichtlinearitäten verwenden können.

Wie in Abbildung 2-2 dargestellt, kann diese Berechnung als ein Stapel von Ebenen veranschaulicht werden. Jede Ebene entspricht einer linearen Transformation, gefolgt von einer Nichtlinearität. Die Information fließt von einer Ebene zur nächsten, wobei die Ausgabe einer Schicht zur Eingabe der nächsten wird. Jede Ebene hat ein eigenes Set von Parametern, die bestimmen, wie die Ausgabe anhand der Eingabe berechnet wird.

Abbildung 2-2: Ein mehrlagiges Perzeptron, das als Stapel von Schichten betrachtet wird, wobei Informationen von einer Schicht zur nächsten fließen.

Mehrlagige Perzeptronen und ihre Varianten werden manchmal auch als neuronale Netze bezeichnet. Der Name spiegelt die Parallelen zwischen Machine Learning und Neurobiologie wider. Ein biologisches Neuron verbindet sich mit vielen anderen Neuronen. Es empfängt Signale von ihnen, summiert diese auf und sendet dann seine eigenen Signale basierend auf dem Ergebnis. Kurzum, MLPs funktionieren genauso wie die Neuronen in Ihrem Gehirn!

Wie soll die Aktivierungsfunktion φ(x) sein? Die überraschende Antwort lautet, dass es meistens egal ist. Das entspricht natürlich nicht ganz den Tatsachen. Offensichtlich ist es wichtig, aber nicht so sehr, wie Sie es vielleicht erwarten. Fast jede Funktion (monoton, stetig differenzierbar) kann funktionieren. Im Laufe der Jahre wurden viele verschiedene Funktionen getestet, und obwohl einige besser arbeiten als andere, können fast alle ordentliche Ergebnisse liefern.

Abbildung 2-3: Drei gebräuchliche Aktivierungsfunktionen: ReLU, hyperbolischer Tangens und die logistische Sigmoidfunktion.

Wir müssen noch zwei weitere Eigenschaften des MLP wählen: seine Breite und seine Tiefe. Beim linearen Modell gab es keine Wahlmöglichkeiten. Durch die Länge von x und y waren die Größen von M und b bereits festgelegt. Bei verborgenen Schichten ist das nicht der Fall. Die Breite bezieht sich auf die Größe der verborgenen Ebenen. Wir können für jedes hi eine beliebige Länge wählen. Je nach Problemstellung können sie viel größer oder viel kleiner als die Eingabe- und Ausgabevektoren gewählt werden.

Die Tiefe bezieht sich auf die Anzahl der Schichten im Modell. Ein Modell mit nur einem Hidden-Layer wird als flach bezeichnet. Ein Modell mit vielen verborgenen Ebenen wird tief genannt. In der Tat ist das der Ursprung des Begriffs »Deep Learning«; einfach ausgedrückt, bedeutet es »Machine Learning mit vielschichtigen Modellen«.

Die Auswahl von Anzahl und Breite der Ebenen in Ihrem Modell erfordert ebenso viel Kunst wie Wissenschaft. Oder, um es formeller auszudrücken: »Dies ist immer noch ein aktives Forschungsgebiet.« Oft kommt es nur darauf an, viele Kombinationen auszuprobieren und zu sehen, was funktioniert. Es gibt jedoch einige Grundsätze, die Ihnen möglicherweise als Anleitung dienen oder zumindest dabei helfen könnten, Ihre Ergebnisse im Nachhinein zu verstehen:

Ein MLP mit einer verborgenen Ebene ist ein

universeller Approximator

.

Dies bedeutet, dass es sich jeder Funktion annähern kann (innerhalb bestimmter Grenzen). In gewisser Weise wird nie mehr als ein Hidden-Layer benötigt. Das ist bereits ausreichend, um jede Gleichung abzubilden, die Sie jemals haben wollen. Leider ist dieses Ergebnis mit einer großen Einschränkung verbunden: Die Genauigkeit der Approximation hängt von der Breite der verborgenen Ebene ab, und man benötigt möglicherweise eine sehr breite Schicht, um für eine bestimmte Fragestellung eine ausreichende Genauigkeit zu erzielen. Das bringt uns zum zweiten Grundsatz.

Tiefe Modelle neigen dazu, weniger Parameter zu benötigen als flache.

Diese Aussage ist absichtlich etwas vage. Für bestimmte Sonderfälle können strengere Aussagen gelten, als allgemeine Richtlinie ist sie dennoch gültig. Anders ausgedrückt: Jede Aufgabenstellung erfordert ein Modell mit einer bestimmten Tiefe, um eine akzeptable Genauigkeit zu erzielen. Bei geringeren Tiefen nimmt die erforderliche Breite der Ebenen (und damit die Gesamtzahl der Parameter) schnell zu. Das klingt so, als sollte man immer tiefe Modelle gegenüber flachen bevorzugen. Leider wird das teilweise vom dritten Grundsatz widerlegt.

Tiefe Modelle sind in der Regel schwerer zu trainieren als flache.

Bis ungefähr 2007 waren die meisten Machine-Learning-Modelle flach. Zwar waren die theoretischen Vorteile der tiefen Modelle bekannt, jedoch scheiterten Wissenschaftler daran, diese zu trainieren. Seitdem hat eine Reihe von Fortschritten die Nützlichkeit tiefer Modelle verbessert. Dazu gehören bessere Trainingsalgorithmen, neue Modelle, die einfacher zu trainieren sind, und natürlich leistungsfähigere Rechner in Kombination mit größeren Datensätzen, auf denen die Modelle trainiert werden können. Aus diesen Fortschritten entstand »Deep Learning«. Trotz der Verbesserungen hat der allgemeine Grundsatz Bestand: Tiefere Modelle sind in der Regel schwerer zu trainieren als flache.

Trainieren der Modelle

Das bringt uns zum nächsten Punkt: Wie trainiert man überhaupt ein Modell? MLPs bieten uns ein (meist) allgemeines Modell, das für jedes Problem verwendet werden kann. (Wir werden später andere, speziellere Modelltypen vorstellen.) Zunächst brauchen wir einen ähnlich allgemeinen Algorithmus, um die optimalen Werte der Modellparameter für eine gegebene Aufgabenstellung zu finden. Wie gehen wir vor?

Als Erstes benötigen wir natürlich Daten, auf denen trainiert werden kann, auch bekannt als der Trainingsdatensatz. Er sollte aus einer großen Anzahl von (x,y)-Paaren bestehen, auch bekannt als Datenpunkte. Jeder Datenpunkt beschreibt eine Eingabe für das Modell und wie die entsprechende Ausgabe aussehen soll, wenn diese Eingabe erfolgt. Zum Beispiel könnte der Trainingsdatensatz eine Bildersammlung sein, die zusammen mit der Beschriftung angibt, ob jedes Bild eine Katze enthält oder nicht.

Als Nächstes wird die Fehlerfunktion L(y, ŷ) definiert, wobei y die tatsächliche Ausgabe des Modells und ŷ der im Trainingsdatensatz angegebene Zielwert ist. So kann gemessen werden, ob das Modell die Trainingsdaten richtig nachbildet. Anschließend wird über jeden Datenpunkt im Trainingsdatensatz gemittelt:

L(y, ŷ) sollte klein sein, wenn die Parameter nahe beieinanderliegen, und groß, wenn sie weit voneinander entfernt sind. Anders gesagt, wir nehmen jeden Datenpunkt im Trainingsdatensatz, versuchen, diese als Modelleingabe zu verwenden, und sehen, wie nahe die Ausgabe am Zielwert ist. Dann mitteln wir das über den gesamten Trainingsdatensatz.

Nachdem wir nun messen können, wie gut das Modell funktioniert, müssen wir es verbessern. Wir wollen die Parameterwerte finden, die den durchschnittlichen Fehler im Trainingsdatensatz minimieren. Dafür gibt es viele Möglichkeiten, aber meistens wird im Deep Learning eine Variante des Gradientenverfahrens angewandt. θ soll die Menge aller Parameter des Modells darstellen. Das Gradientenverfahren besteht aus einer Reihe kleiner Schritte:

wobei 〈L〉 der mittlere Fehler im Trainingsdatensatz ist. Mit jedem Schritt geht es ein kleines Stück bergab. Jeder Modellparameter wird dabei ein klein wenig verändert mit dem Ziel, den durchschnittlichen Fehler zu senken. Auf diese Weise werden schließlich Parameter erzeugt, mit denen die Fragestellung gut gelöst werden kann. ɛ wird Lernrate genannt und bestimmt, um wie viel sich die Parameter pro Schritt ändern. Sie muss mit Bedacht gewählt werden: Ein zu kleiner Wert führt zu sehr langsamem Lernen, während ein zu hoher Wert den Algorithmus davon abhält, überhaupt zu lernen.

Dieser Algorithmus funktioniert zwar, hat jedoch ein ernsthaftes Problem. Für jeden Schritt im Gradientenverfahren müssen wir jeden Datenpunkt im Trainingsdatensatz durchlaufen. Das bedeutet, die benötigte Zeit, um das Modell zu trainieren, ist proportional zur Größe des Trainingsdatensatzes! Angenommen, wir hätten eine Million Datenpunkte im Trainingsdatensatz, die Berechnung des Gradienten für einen Datenpunkt benötigt eine Million Aktionen, und es sind eine Million Schritte erforderlich, um ein gutes Modell zu finden. (Die genannten Zahlen sind ziemlich typisch für echte Deep-Learning-Anwendungen.) Somit wären für das Training eine Trillion Aktionen erforderlich. Das dauert lange, selbst mit einem schnellen Rechner.

Glücklicherweise gibt es eine bessere Lösung: 〈L〉 kann durch Mittelung über eine Stichprobe geschätzt werden. Das ist die Grundlage für das stochastische Gradientenverfahren (SGD). Bei jedem Schritt ziehen wir eine Stichprobe (Batch