Animals
eBook - ePub

Animals

Praxisrezepte für einen schnellen Einstieg

  1. 262 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Animals

Praxisrezepte für einen schnellen Einstieg

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Lassen Sie sich von Deep Learning nicht abschrecken! Dank Frameworks wie Keras und TensorFlow ist der schnelle Einstieg in die Entwicklung von Deep-Learning-Anwendungen nun auch für Softwareentwickler ohne umfassende Machine-Learning-Kenntnisse möglich. Mit den Rezepten aus diesem Buch lernen Sie, typische Aufgabenstellungen des Deep Learning zu lösen, wie etwa die Klassifizierung und Generierung von Texten, Bildern und Musik.Jedes Kapitel behandelt ein Projekt, wie z.B. das Trainieren eines Empfehlungssystems für Musik. Schritt für Schritt wird gezeigt, wie das jeweilige Projekt umgesetzt wird. Darüber hinaus beschreibt der Autor Douwe Osinga zahlreiche Techniken, die Ihnen helfen, wenn Sie einmal nicht mehr weiterwissen. Alle Codebeispiele sind in Python geschrieben und auf GitHub als Python-Notebooks frei verfügbar.Aus dem Inhalt: - Entwickeln Sie Deep-Learning-Anwendungen, die Nutzern einen echten Mehrwert bieten- Berechnen Sie Ähnlichkeiten von Texten mithilfe von Word-Embeddings- Erstellen Sie ein Empfehlungssystem für Filme basierend auf Wikipedia-Links- Visualisieren Sie die internen Vorgänge einer künstlichen Intelligenz, um nachvollziehen zu können, wie diese arbeitet- Entwickeln Sie ein Modell, das passende Emojis für Textpassagen vorschlägt- Realisieren Sie einen Reverse-Image-Search-Dienst mithilfe von vortrainierten Netzwerken- Vergleichen Sie, wie Generative Adversarial Networks, Autoencoder und LSTM-Netzwerke Icons erzeugen- Trainieren Sie ein Klassifikationsmodell für Musikstile und lassen Sie es Musikstücke dementsprechend zuordnen

Häufig gestellte Fragen

Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ja, du hast Zugang zu Animals von Douwe Osinga, Marcus Fraaß, Marcus Fraaß im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatik & Data Mining. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Verlag
O'Reilly
Jahr
2019
ISBN
9783960102656

KAPITEL 1

Werkzeuge und Techniken

In diesem Kapitel werfen wir einen Blick auf die gängigen Werkzeuge und Techniken beim Deep Learning. Dieses Kapitel eignet sich gut, um sich einen Überblick über die Grundlagen zu verschaffen und sie bei Bedarf aufzufrischen.
Zu Beginn schauen wir uns verschiedene Arten neuronaler Netze an, die Ihnen im Verlauf dieses Buchs begegnen werden. Die meisten Rezepte, die wir Ihnen später vorstellen, sind sehr praxisorientiert und behandeln daher nur flüchtig, wie neuronale Netze aufgebaut sind.
Dann besprechen wir, woher wir unsere Daten bekommen. Technologie-Riesen wie Facebook und Google haben Zugang zu gigantischen Datenmengen für ihre Deep-Learning-Forschung, aber auch für uns gibt es genügend zugängliche Daten im Internet, um interessante Projekte durchzuführen. Die Rezepte in diesem Buch verwenden Daten aus einer Vielzahl unterschiedlicher Quellen.
Im nächsten Abschnitt geht es um die Vorverarbeitung von Daten – ein sehr wichtiger Bereich, der allerdings oft übersehen wird. Selbst wenn Sie die richtigen Einstellungen für das neuronale Netz vorgenommen haben und zusätzlich eine gute Datenqualität vorliegt, müssen Sie trotzdem sicherstellen, dass Sie dem Netzwerk Ihre Daten in einer Form zuführen, die für das Netzwerk so geeignet wie möglich ist. Denn Sie wollen es dem Netzwerk so einfach wie möglich machen, die Dinge zu lernen, die es lernen soll, ohne dass andere, irrelevante Informationen in den Daten das Netzwerk dabei stören.

1.1Arten neuronaler Netze

In diesem Kapitel und auch über das gesamte Buch hinweg sprechen wir über Netzwerke und Modelle. Ein Netzwerk (oder auch neuronales Netz) besteht aus einer gewissen Anzahl verbundener Schichten. Man speist Daten auf der einen Seite ein, und die verarbeiteten Daten kommen auf der anderen Seite heraus. Jede Schicht vollzieht dabei eine mathematische Operation an den durchfließenden Daten und besitzt eine Reihe veränderlicher Parameter, die das genaue Verhalten der Schicht bestimmen. In diesem Zusammenhang beziehen sich Daten auf einen Tensor, einen Vektor mit mehreren Dimensionen (üblicherweise zwei oder drei).
Eine vollständige Erläuterung der verschiedenen Arten von Schichten und der Mathematik hinter deren Operationen würde den Rahmen dieses Buchs sprengen. Die einfachste Art von Schicht, die vollständig verbundene Schicht, nimmt ihre Eingabe als Matrix, multipliziert diese mit einer weiteren Matrix, den sogenannten Gewichten, und addiert eine dritte Matrix, den sogenannten Bias. Auf jede Schicht folgt eine Aktivierungsfunktion, eine mathematische Funktion, die die Ausgabe einer Schicht auf die Eingabe der nächsten Schicht abbildet. Zum Beispiel gibt es eine einfache Aktivierungsfunktion namens ReLU, die alle positiven Werte weitergibt, aber alle negativen Werte auf null setzt.
Genau genommen bezieht sich der Begriff Netzwerk auf die Architektur, die Art und Weise, wie die verschiedenen Schichten miteinander verbunden sind, während ein Modell das Netzwerk und zusätzlich alle Variablen beschreibt, die das Verhalten des Modells bestimmen. Das Trainieren eines Modells verändert diese Variablen, um die Vorhersagen besser an die erwarteten Ausgaben anzupassen. In der Praxis werden diese beiden Begriffe jedoch oft synonym verwendet.
Die Begriffe »Deep Learning« und »neuronale Netze« umfassen tatsächlich eine Vielzahl von Modellen. Die meisten dieser Netzwerke haben gewisse Gemeinsamkeiten (beispielsweise verwenden beinahe alle Klassifikationsnetzwerke eine bestimmte Verlustfunktion). Obwohl die Anwendungsbereiche dieser Modelle sehr vielfältig sind, lassen sich fast alle Modelle in gewisse Kategorien unterteilen. Manche Modelle verwenden Elemente mehrerer Kategorien: Beispielsweise haben viele Netzwerke für Bildklassifikationen am Ende einen Bereich mit vollständig verbundenen Schichten, um die eigentliche Klassifikation durchzuführen.

Vollständig verbundene neuronale Netze

Vollständig verbundene neuronale Netze waren die erste Art von Netzwerken, die erforscht wurden, und beherrschten das Forschungsinteresse bis in die späten 1980er-Jahre. In einem vollständig verbundenen Netz wird jeder Ausgabewert als gewichtete Summe aller Eingabewerte berechnet. Aus diesem Verhalten ergibt sich der Begriff »vollständig verbunden«: Jeder Ausgabewert ist mit jedem Eingabewert verbunden. Als Formel lässt sich das wie folgt schreiben:
yi = ΣjWijxj
Der Kürze halber stellen die meisten Forschungsartikel ein vollständig verbundenes Netz in Matrixschreibweise dar. Dafür multiplizieren wir den Eingabevektor mit der Gewichtsmatrix W, um den Ausgabevektor zu erhalten:
y = Wx
Da die Matrixmultiplikation eine lineare Rechenoperation ist, wäre ein Netzwerk, das ausschließlich Matrixmultiplikationen enthält, auf das Erlernen linearer Zusammenhänge beschränkt. Um unser Netzwerk jedoch aussagekräftiger zu machen, folgt auf die Matrixmultiplikation eine nicht-lineare Aktivierungsfunktion. Jede differenzierbare Funktion kann als Aktivierungsfunktion dienen, aber es gibt einige, die man sehr häufig antrifft. Der Tangens hyperbolicus, oder tanh, war bis vor Kurzem die am häufigsten verwendete Art von Aktivierungsfunktion und kann noch immer in einigen Modellen gefunden werden:
image
Das Problem der tanh-Funktion besteht darin, dass sie bei Eingabewerten, die weit von null entfernt sind, sehr »flach« ist. Das wiederum führt zu einem sehr geringen Gradienten, wodurch das Netzwerk sehr lange zum Lernen braucht. Seit Neuestem haben andere Aktivierungsfunktionen an Beliebtheit gewonnen. Eine der am häufigsten verwendeten Aktivierungsfunktionen ist die sogenannte Rectified Linear Unit, ReLU genannt:
image
Außerdem verwenden viele neuronale Netze eine sigmoide Aktivierungsfunktion in der letzten Schicht des Netzwerks. Diese Art von Funktion gibt immer einen Wert zwischen 0 und 1 aus, wodurch die Ausgabewerte als Wahrscheinlichkeiten behandelt werden können:
image
Eine Schicht des Netzwerks entspricht einer Matrixmultiplikation gefolgt von einer Aktivierungsfunktion. Netzwerke können zum Teil aus über 100 Schichten bestehen, wobei die Anzahl der vollständig verbundenen Schichten in der Regel auf eine Handvoll beschränkt ist. Beim Lösen von Klassifikationsaufgaben (»Welche Katzenrasse ist auf diesem Bild zu sehen?«) wird die letzte Schicht als Klassifikationsschicht bezeichnet. Dabei hat diese stets so viele Ausgabewerte, wie es Kategorien zur Auswahl gibt.
Die Schichten in der Mitte des Netzwerks werden verborgene Schichten genannt, und die einzelnen Neuronen (Einheiten) einer verborgenen Schicht werden manchmal als verborgene Neuronen bezeichnet. Der Begriff »verborgen« rührt daher, dass diese Werte nicht direkt von außen als Ein- oder Ausgabewerte unseres Modells sichtbar sind. Die Anzahl der Ausgabewerte in diesen Schichten hängt ganz vom Modell ab:
image
Es existieren zwar ein paar Faustregeln dazu, wie man Anzahl und Größe der verborgenen Schichten wählen sollte, jedoch gibt es generell keine bessere Verfahrensweise für die Auswahl der optimalen Konfiguration, als auszuprobieren.

Konvolutionsnetze

Zu Beginn wurde in der Forschung versucht, eine Vielzahl von Problemen mit vollständig verbundenen neuronalen Netzen zu lösen. Aber wenn wir mit Bildern als Eingabe arbeiten, sind vollständig verbundene Netzwerke nicht die beste Wahl. Bilder sind häufig sehr groß: Ein einzelnes Bild mit 256 × 256 Pixeln (eine gängige Auflösung für Klassifikationsaufgaben) hat 256 × 256 × 3 Eingabewerte (drei Farben für jeden Pixel). Wenn nun dieses Modell eine einzige verborgene Schicht mit 1.000 verborgenen Neuronen hat, besitzt diese Schicht allein fast 200 Millionen Parameter (trainierbare Werte)! Da Modelle zur Bilderkennung etliche Schichten benötigen, um bei der Klassifikation gut zu funktionieren, würden wir Milliarden von Parametern erhalten, wenn wir nur vollständig verbundene Schichten verwendeten.
Bei so vielen Parametern wäre es fast unmöglich, ein Overfitting unseres Modells zu vermeiden (Overfitting wird im nächsten Kapitel ausführlich behandelt; es beschreibt die Situation, in der ein Netzwerk lediglich die Trainingsdaten auswendig lernt, anstatt sinnvoll zu verallgemeinern). Konvolutionsnetze (Convolutional Neural Networks, CNNs) ermöglichen uns, Bildklassifikatoren mit übermenschlicher Performance mit weitaus weniger Parametern zu trainieren. CN...

Inhaltsverzeichnis

  1. Cover
  2. Titel
  3. Impressum
  4. Inhalt
  5. Vorwort
  6. 1 Werkzeuge und Techniken
  7. 2 Fehlerbehebung
  8. 3 Die Ähnlichkeit von Texten mithilfe von Worteinbettungen berechnen
  9. 4 Ein Empfehlungssystem anhand ausgehender Wikipedia-Links erstellen
  10. 5 Text im Stil eines Beispieltexts generieren
  11. 6 Übereinstimmende Fragen
  12. 7 Emojis vorschlagen
  13. 8 Sequenz-zu-Sequenz-Mapping
  14. 9 Ein vortrainiertes Netzwerk zur Bilderkennung verwenden
  15. 10 Eine Reverse-Image-Suchmaschine erstellen
  16. 11 Mehrere Bildinhalte erkennen
  17. 12 Mit Bildstilen arbeiten
  18. 13 Bilder mit Autoencodern erzeugen
  19. 14 Piktogramme mithilfe von neuronalen Netzwerken erzeugen
  20. 15 Musik und Deep Learning
  21. 16 Machine-Learning-Systeme in Produktion bringen
  22. Index
  23. Über den Autor
  24. Über die Übersetzer
  25. Kolophon