Facebook Pixel
Searching...
Deutsch
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Hands-On Machine Learning with Scikit-Learn and TensorFlow

Hands-On Machine Learning with Scikit-Learn and TensorFlow

Concepts, Tools, and Techniques to Build Intelligent Systems
von Aurélien Géron 2017 574 Seiten
4.56
2k+ Bewertungen
Hören

Wichtige Erkenntnisse

1. Rekurrente Neuronale Netze (RNNs) ermöglichen die Verarbeitung und Vorhersage von Sequenzen

Die Zukunft vorherzusagen, tun Sie ständig, sei es, dass Sie den Satz eines Freundes beenden oder den Duft von Kaffee beim Frühstück antizipieren.

RNNs verarbeiten Sequenzen. Im Gegensatz zu Feedforward-Neuronalen Netzen haben RNNs Verbindungen, die rückwärts zeigen, was es ihnen ermöglicht, Informationen über vorherige Eingaben zu speichern. Dies macht sie besonders geeignet für Aufgaben, die Sequenzen von Daten betreffen, wie zum Beispiel:

  • Verarbeitung natürlicher Sprache (z. B. Übersetzung, Sentiment-Analyse)
  • Zeitreihenanalyse (z. B. Aktienkurse, Wettervorhersage)
  • Spracherkennung
  • Videoverarbeitung

RNNs können Eingaben und Ausgaben variabler Länge verarbeiten. Diese Flexibilität ermöglicht es ihnen, mit Sequenzen beliebiger Länge zu arbeiten, was sie ideal für Aufgaben macht, bei denen die Größe der Eingabe oder Ausgabe variieren kann, wie etwa maschinelle Übersetzung oder Spracherkennung.

2. RNNs verwenden Gedächtniszellen, um den Zustand über Zeitstufen hinweg zu bewahren

Ein Teil eines neuronalen Netzes, der einen Zustand über Zeitstufen hinweg bewahrt, wird als Gedächtniszelle (oder einfach Zelle) bezeichnet.

Gedächtniszellen sind das Herzstück von RNNs. Diese Zellen ermöglichen es dem Netzwerk, Informationen über die Zeit zu speichern, wodurch es Sequenzen effektiv verarbeiten kann. Der Zustand einer Zelle zu einem beliebigen Zeitpunkt ist eine Funktion von:

  • Ihrem vorherigen Zustand
  • Der aktuellen Eingabe

Arten von Gedächtniszellen:

  • Basis-RNN-Zellen: Einfach, aber anfällig für Probleme mit verschwindenden/explodierenden Gradienten
  • LSTM (Long Short-Term Memory) Zellen: Komplexer, besser geeignet zur Erfassung langfristiger Abhängigkeiten
  • GRU (Gated Recurrent Unit) Zellen: Vereinfachte Version von LSTM, oft mit ähnlicher Leistung

Die Wahl des Zelltyps hängt von der spezifischen Aufgabe und den rechnerischen Einschränkungen des Projekts ab.

3. Das Entfalten von RNNs über die Zeit ermöglicht effizientes Training

Das Entfalten des Netzwerks über die Zeit, wie in Abbildung 14-1 (rechts) dargestellt.

Entfaltung vereinfacht die Visualisierung und Berechnung von RNNs. Wenn ein RNN entfaltet wird, ähnelt es einem Feedforward-Neuronalen Netz, wobei jeder Zeitstufe als Schicht dargestellt wird. Diese entfaltete Darstellung:

  • Erleichtert das Verständnis des Informationsflusses durch das Netzwerk
  • Ermöglicht eine effiziente Berechnung mithilfe von Matrixoperationen
  • Erleichtert die Anwendung von Backpropagation für das Training

Zwei Hauptansätze zur Entfaltung:

  1. Statische Entfaltung: Erstellt ein Netzwerk mit fester Länge
  2. Dynamische Entfaltung: Verwendet die Funktion dynamic_rnn() von TensorFlow, um variabel lange Sequenzen effizienter zu verarbeiten

Dynamische Entfaltung wird im Allgemeinen aufgrund ihrer Flexibilität und Speichereffizienz bevorzugt, insbesondere bei langen oder variablen Sequenzen.

4. Der Umgang mit Sequenzen variabler Länge erfordert spezielle Techniken

Was ist, wenn die Eingabesequenzen variable Längen haben (z. B. wie Sätze)?

Padding und Maskierung. Um mit Eingabesequenzen variabler Länge umzugehen:

  • Kürzere Sequenzen mit Nullen auffüllen, um die Länge der längsten Sequenz zu erreichen
  • Eine Maske verwenden, um anzuzeigen, welche Elemente Padding sind und ignoriert werden sollten

Spezifikation der Sequenzlänge. Bei der Verwendung der Funktion dynamic_rnn() von TensorFlow:

  • Geben Sie einen Parameter sequence_length an, um die tatsächliche Länge jeder Sequenz zu spezifizieren
  • Dies ermöglicht es dem RNN, nur die relevanten Teile jeder Sequenz zu verarbeiten

Ausgabehandhabung. Für Ausgaben mit variabler Länge:

  • Verwenden Sie ein End-of-Sequence (EOS) Token, um das Ende der generierten Sequenz zu kennzeichnen
  • Ignorieren Sie alle Ausgaben nach dem EOS-Token

Diese Techniken ermöglichen es RNNs, Sequenzen unterschiedlicher Länge effizient zu verarbeiten und zu generieren, was für viele reale Anwendungen wie maschinelle Übersetzung oder Spracherkennung entscheidend ist.

5. Backpropagation durch die Zeit (BPTT) wird verwendet, um RNNs zu trainieren

Um ein RNN zu trainieren, besteht der Trick darin, es über die Zeit zu entfalten (wie wir es gerade getan haben) und dann einfach die reguläre Backpropagation zu verwenden.

BPTT erweitert die Backpropagation auf Sequenzen. Der Prozess umfasst:

  1. Vorwärtsdurchlauf: Berechnung der Ausgaben für alle Zeitstufen
  2. Verlustberechnung mithilfe einer Kostenfunktion
  3. Rückwärtsdurchlauf: Gradienten über die Zeit zurückpropagieren
  4. Aktualisierung der Modellparameter mithilfe der berechneten Gradienten

Herausforderungen mit BPTT:

  • Verschwindende Gradienten: Gradienten können für lange Sequenzen sehr klein werden, was das Lernen langfristiger Abhängigkeiten erschwert
  • Explodierende Gradienten: Gradienten können exponentiell wachsen, was zu instabilem Training führt

Lösungen:

  • Gradient Clipping: Begrenzung der Größe der Gradienten, um Explosionen zu verhindern
  • Verwendung fortschrittlicherer Zelltypen wie LSTM oder GRU
  • Truncated BPTT: Begrenzung der Anzahl der Zeitstufen für die Gradientenpropagation

Das Verständnis und die Bewältigung dieser Herausforderungen sind entscheidend für das effektive Training von RNNs bei realen Aufgaben.

6. RNNs können auf verschiedene Sequenzaufgaben wie Klassifikation und Zeitreihenvorhersage angewendet werden

Lassen Sie uns ein RNN trainieren, um MNIST-Bilder zu klassifizieren.

Sequenzklassifikation. RNNs können verwendet werden, um ganze Sequenzen zu klassifizieren:

  • Beispiel: Sentiment-Analyse von Text
  • Prozess: Füttern Sie die Sequenz durch das RNN und verwenden Sie den letzten Zustand zur Klassifikation

Zeitreihenvorhersage. RNNs sind hervorragend geeignet, um zukünftige Werte in einer Zeitreihe vorherzusagen:

  • Beispiel: Vorhersage von Aktienkursen, Wettervorhersage
  • Prozess: Trainieren Sie das RNN, um den nächsten Wert(e) basierend auf einer Sequenz vergangener Werte vorherzusagen

Bildklassifikation mit RNNs. Obwohl nicht optimal, können RNNs für die Bildklassifikation verwendet werden:

  • Prozess: Behandeln Sie jedes Bild als Sequenz von Zeilen oder Spalten
  • Leistung: Wird im Allgemeinen von Convolutional Neural Networks (CNNs) bei Bildaufgaben übertroffen

Die Vielseitigkeit von RNNs ermöglicht es ihnen, auf eine breite Palette von sequenzbasierten Problemen angewendet zu werden, was sie zu einem wertvollen Werkzeug im Werkzeugkasten eines Machine-Learning-Praktikers macht.

7. Fortgeschrittene RNN-Architekturen beheben die Einschränkungen grundlegender RNNs

Die Ausgabeschicht ist etwas Besonderes: Anstatt das Skalarprodukt der Eingaben und des Gewichtungsvektors zu berechnen, gibt jeder Neuron das Quadrat der euklidischen Distanz zwischen seinem Eingangsvektor und seinem Gewichtungsvektor aus.

LSTM- und GRU-Zellen. Diese fortgeschrittenen Zelltypen adressieren das Problem der verschwindenden Gradienten:

  • LSTM: Verwendet Tore, um den Informationsfluss zu steuern und langfristige Abhängigkeiten aufrechtzuerhalten
  • GRU: Vereinfachte Version von LSTM mit weniger Parametern

Bidirektionale RNNs. Verarbeiten Sequenzen in beiden Vorwärts- und Rückwärtsrichtungen:

  • Erfassen den Kontext sowohl aus vergangenen als auch zukünftigen Zeitstufen
  • Nützlich für Aufgaben wie maschinelle Übersetzung und Spracherkennung

Encoder-Decoder-Architekturen. Bestehen aus zwei RNNs:

  • Encoder: Verarbeitet die Eingabesequenz in eine feste Repräsentation
  • Decoder: Generiert die Ausgabesequenz aus der kodierten Repräsentation
  • Anwendungen: Maschinelle Übersetzung, Textzusammenfassung

Aufmerksamkeitsmechanismen. Ermöglichen es dem Modell, sich auf relevante Teile der Eingabe zu konzentrieren:

  • Verbessern die Leistung bei langen Sequenzen
  • Erleichtern den Umgang mit langfristigen Abhängigkeiten

Diese fortgeschrittenen Architekturen haben die Fähigkeiten von RNNs erheblich erweitert und ermöglichen es ihnen, zunehmend komplexe sequenzbasierte Aufgaben mit verbesserter Leistung zu bewältigen.

Zuletzt aktualisiert:

Rezensionen

4.56 von 5
Durchschnitt von 2k+ Bewertungen von Goodreads und Amazon.

Praktisches Maschinelles Lernen mit Scikit-Learn und TensorFlow wird weithin als hervorragende Einführung in das maschinelle Lernen gelobt. Die Leser schätzen die umfassende Abdeckung, die praktischen Beispiele und den ausgewogenen Ansatz zwischen Theorie und Anwendung. Das Buch wird für seine klaren Erklärungen, praxisnahen Übungen und die Verwendung beliebter Frameworks hochgelobt. Viele betrachten es als die beste Ressource für Anfänger und Fortgeschrittene im Bereich des maschinellen Lernens. Während einige die Abschnitte über tiefes Lernen als herausfordernd empfinden, sind sich die meisten einig, dass es ein unschätzbares Nachschlagewerk für alle ist, die sich für maschinelles Lernen interessieren.

Über den Autor

Aurélien Géron ist eine hochangesehene Persönlichkeit im Bereich des maschinellen Lernens und der künstlichen Intelligenz. Mit umfangreicher Branchenerfahrung, einschließlich Tätigkeiten bei Google und anderen namhaften Technologieunternehmen, bringt Géron praktische Einblicke in seine Schreibweise ein. Seine Expertise im Produktmanagement und in der KI-Entwicklung spiegelt sich in der Herangehensweise des Buches wider, die den Fokus auf reale Anwendungen legt. Gérons Fähigkeit, komplexe Konzepte verständlich zu erklären, hat ihn zu einem beliebten Autor in der ML-Community gemacht. Seine Arbeiten sind bekannt dafür, ein Gleichgewicht zwischen theoretischen Grundlagen und praktischer Umsetzung zu finden, was sie sowohl für Anfänger als auch für erfahrene Praktiker wertvoll macht.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Unlock Unlimited Listening
🎧 Listen while you drive, walk, run errands, or do other activities
2.8x more books Listening Reading
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jan 25,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →