Deep Learning für die Biowissenschaften (eBook)
236 Seiten
O'Reilly Verlag
978-3-96010-351-6 (ISBN)
Bharath Ramsundar ist Mitbegründer und CTO von Computable. Peter Eastman entwickelt Software für rechnergestützte Chemie und Biologie an der Universität Stanford. Pat Walters leitet die Computation & Informatics Group bei Relay Therapeutics. Vijay Pande ist aktiver Teilhaber bei Andreessen Horowitz.
Bharath Ramsundar ist Mitbegründer und CTO von Computable. Peter Eastman entwickelt Software für rechnergestützte Chemie und Biologie an der Universität Stanford. Pat Walters leitet die Computation & Informatics Group bei Relay Therapeutics. Vijay Pande ist aktiver Teilhaber bei Andreessen Horowitz.
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:
y = f(x)
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:
y = Mx + b
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:
y = M2φ(M1x + b1) + b2
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:
h1 = φ1(M1x + b1)
h2 = φ2(M2h1 + b2)
...
hn – 1 = φn – 1(Mn – 1hn – 2 + bn – 1)
y =...
Erscheint lt. Verlag | 25.2.2020 |
---|---|
Übersetzer | Helena Schock |
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik |
Schlagworte | AI • Artificial Intelligence • Biophysik • Computational life sciences • DeepChem • Genetik • Genomik • KI • Künstliche Intelligenz • Künstliche Neuronale Netze • Life Sciences • machine learning • Mikroskopie • Neuronale Netze • Wirkstoffforschung |
ISBN-10 | 3-96010-351-4 / 3960103514 |
ISBN-13 | 978-3-96010-351-6 / 9783960103516 |
Haben Sie eine Frage zum Produkt? |
Größe: 16,4 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich