
TensorFlow Machine Learning Cookbook
Ein Packt -Verlagsbuch
Von Nick McClure
==================
Bauen:
==================
Inhaltsverzeichnis
- Ch 1: Erste Schritte mit Tensorflow
- Ch 2: Der TensorFlow -Weg
- Ch 3: Lineare Regression
- CH 4: Vektormaschinen unterstützen
- Ch 5: Nächste Nachbarmethoden
- CH 6: Neuronale Netze
- Ch 7: Verarbeitung natürlicher Sprache
- Ch 8: Faltungsnetzwerke mit Faltungsstücken
- Ch 9: wiederkehrende neuronale Netze
- Ch 10: Tensorflow zur Produktion nehmen
- Ch 11: Mehr mit Tensorflow
Ch 1: Erste Schritte mit Tensorflow

Dieses Kapitel beabsichtigt, die Hauptobjekte und Konzepte in Tensorflow einzuführen. Wir stellen auch vor, wie Sie auf die Daten für den Rest des Buches zugreifen und zusätzliche Ressourcen zum Erlernen des Tensorflows bereitstellen.
- Allgemeiner Umriss der TF -Algorithmen
- Hier führen wir TensorFlow und den allgemeinen Umriss vor, wie die meisten Tensorflow -Algorithmen funktionieren.
- Tensoren erstellen und verwenden
- So erstellen und initialisieren Sie Tensoren im Tensorflow. Wir zeigen auch, wie diese Vorgänge in Tensorboard erscheinen.
- Verwenden von Variablen und Platzhaltern
- So erstellen und verwenden Sie Variablen und Platzhalter in Tensorflow. Wir zeigen auch, wie diese Vorgänge in Tensorboard erscheinen.
- Arbeiten mit Matrizen
- Das Verständnis, wie Tensorflow mit Matrizen funktionieren kann, ist entscheidend, um zu verstehen, wie die Algorithmen funktionieren.
- Operationen deklarieren
- So verwenden Sie verschiedene mathematische Operationen im Tensorflow.
- Aktivierungsfunktionen implementieren
- Aktivierungsfunktionen sind einzigartige Funktionen, die TensorFlow für Ihre Verwendung in Algorithmen eingebaut hat.
- Arbeiten mit Datenquellen
- Hier zeigen wir, wie Sie auf alle verschiedenen erforderlichen Datenquellen im Buch zugreifen können. Es gibt auch Links, die die Datenquellen beschreiben und woher sie kommen.
- Zusätzliche Ressourcen
- Meistens offizielle Ressourcen und Papiere. Die Papiere sind Tensorflow -Papiere oder Deep -Learning -Ressourcen.
Ch 2: Der TensorFlow -Weg

Nachdem wir die grundlegenden Objekte und Methoden im Tensorflow etabliert haben, möchten wir nun die Komponenten festlegen, aus denen Tensorflow -Algorithmen besteht. Wir beginnen mit der Einführung von Rechendiagrammen und wechseln dann zu Verlustfunktionen und der Rückverbreitung. Wir enden mit dem Erstellen eines einfachen Klassifikators und zeigen dann ein Beispiel für die Bewertung von Regressions- und Klassifizierungsalgorithmen.
- Ein Betrieb als Rechendiagramm
- Wir zeigen, wie Sie einen Vorgang in einem Rechendiagramm erstellen und sie mithilfe von Tensorboard visualisieren.
- Schichten verschachtelter Operationen
- Wir zeigen, wie Sie mehrere Operationen in einem Rechendiagramm erstellen und sie mithilfe von Tensorboard visualisieren.
- Arbeiten mit mehreren Schichten
- Hier erweitern wir die Verwendung des Rechendiagramms, um mehrere Ebenen zu erstellen und zu zeigen, wie sie in Tensorboard erscheinen.
- Implementierung von Verlustfunktionen
- Um ein Modell auszubilden, müssen wir in der Lage sein zu bewerten, wie gut es geht. Dies wird durch Verlustfunktionen gegeben. Wir zeichnen verschiedene Verlustfunktionen und sprechen über die Vorteile und Einschränkungen einiger.
- Implementierung der Rückverbreitung
- Hier zeigen wir, wie Sie Verlustfunktionen verwenden, um durch Daten und Rückenfehler für Regression und Klassifizierung zu iterieren.
- Arbeiten mit stochastischem und Batch -Training
- TensorFlow erleichtert es einfach, sowohl das Stapel als auch das stochastische Training zu verwenden. Wir zeigen, wie wir beide implementieren und über die Vorteile und Einschränkungen der einzelnen sprechen.
- Alles kombinieren
- Wir kombinieren jetzt alles, was wir gelernt haben, und erstellen einen einfachen Klassifikator.
- Bewertung von Modellen
- Jedes Modell ist nur so gut wie die Bewertung. Hier zeigen wir zwei Beispiele für (1) Bewertung eines Regressionsalgorithmus und (2) eines Klassifizierungsalgorithmus.
Ch 3: Lineare Regression

Hier zeigen wir, wie verschiedene lineare Regressionstechniken im Tensorflow implementiert werden können. Die ersten beiden Abschnitte zeigen, wie die lineare Standard -Regressionsdeliespunkte in Tensorflow durch die Standardmatrix durchführen. Die verbleibenden sechs Abschnitte zeigen, wie verschiedene Regressionstypen mithilfe von Rechengraphen in TensorFlow implementiert werden können.
- Unter Verwendung der Matrix -Inverse -Methode
- So lösen Sie eine 2D -Regression mit einer Matrix in Tensorflow.
- Implementierung einer Zersetzungsmethode
- Lösen einer 2D -linearen Regression mit Cholesky -Zersetzung.
- Lernen des Tensorflow -Weges der linearen Regression
- Lineare Regression durch ein Rechendiagramm mit L2 -Verlust.
- Verlustfunktionen in der linearen Regression verstehen
- L2 gegen L1 -Verlust der linearen Regression. Wir sprechen über die Vorteile und Einschränkungen beider.
- Implementierung der Deming -Regression (Gesamtregression)
- Deming (Gesamt) Regression, die in TensorFlow durch Ändern der Verlustfunktion implementiert ist.
- Implementierung der Regression von Lasso und Ridge
- Lasso und Ridge Regression sind Möglichkeiten, die Koeffizienten zu regulieren. Wir implementieren beide in TensorFlow, indem wir die Verlustfunktionen ändern.
- Implementierung der elastischen Netto -Regression
- Das elastische Netz ist eine Regularisierungstechnik, die den L2- und L1 -Verlust für Koeffizienten kombiniert. Wir zeigen, wie Sie dies in TensorFlow implementieren können.
- Implementierung der logistischen Regression
- Wir implementieren eine logistische Regression durch die Verwendung einer Aktivierungsfunktion in unserem Rechendiagramm.
CH 4: Vektormaschinen unterstützen

Dieses Kapitel zeigt, wie verschiedene SVM -Methoden mit TensorFlow implementiert werden. Wir erstellen zunächst eine lineare SVM und zeigen auch, wie es für die Regression verwendet werden kann. Wir stellen dann Kerne (RBF Gaußscher Kernel) ein und zeigen, wie Sie sie verwenden, um nichtlineare Daten aufzuteilen. Wir beenden eine mehrdimensionale Implementierung von nichtlinearen SVMs, um mit mehreren Klassen zu arbeiten.
- Einführung
- Wir stellen das Konzept von SVMS vor und wie wir sie im TensorFlow -Framework implementieren werden.
- Arbeiten mit linearen SVMs
- Wir erstellen eine lineare SVM, um I. setosa basierend auf Sepallänge und Pedalbreite im IRIS -Datensatz zu trennen.
- Reduktion der linearen Regression
- Das Herz von SVMs trennt Klassen mit einer Linie. Wir ändern den Algorithmus leicht, um die SVM -Regression durchzuführen.
- Arbeiten mit Kerneln im Tensorflow
- Um SVMs in nichtlineare Daten auszudehnen, erklären wir und zeigen, wie verschiedene Kernel im Tensorflow implementiert werden können.
- Implementierung nichtlinearer SVMs
- Wir verwenden den Gaußschen Kernel (RBF), um nichtlineare Klassen zu trennen.
- Implementierung von SVMs mit mehreren Klassen
- SVMs sind von Natur aus binäre Prädiktoren. Wir zeigen, wie man sie in einer One-VS-All-Strategie im Tensorflow erweitert.
Ch 5: Nächste Nachbarmethoden

Die nächsten Nachbarmethoden sind ein sehr beliebter ML -Algorithmus. Wir zeigen, wie man K-nearest-Nachbarn, gewichtete K-nearste Nachbarn und K-nearste Nachbarn mit gemischten Abstandsfunktionen implementieren. In diesem Kapitel zeigen wir auch, wie Sie die Levenshtein -Entfernung (Entfernung bearbeiten) in Tensorflow verwenden und die Entfernung zwischen Zeichenfolgen berechnen. Wir beenden dieses Kapitel mit dem Zeigen, wie K-Nearest-Nachbarn für die kategorische Vorhersage mit der mnist handgeschriebenen Ziffernerkennung verwendet wird.
- Einführung
- Wir stellen die Konzepte und Methoden ein, die für die Durchführung von K-Nearest-Nachbarn in Tensorflow erforderlich sind.
- Arbeiten mit den nächsten Nachbarn
- Wir schaffen einen nächsten Nachbaralgorithmus, der versucht, einen Wohnraum (Regression) vorherzusagen.
- Arbeiten mit textbasierten Entfernungen
- Um eine Entfernungsfunktion im Text zu verwenden, zeigen wir, wie die Bearbeitungsentfernungen im TensorFlow verwendet werden.
- Computing -Mischdistanzfunktionen
- Hier implementieren wir die Skalierung der Entfernungsfunktion durch die Standardabweichung der Eingabefunktion für K-Nearest-Nachbarn.
- Verwenden von Adressanpassungen
- Wir verwenden eine gemischte Distanzfunktion, um die Adressen zu entsprechen. Wir verwenden die numerische Distanz für Postleitzahlen und String Distanz für Straßennamen. Die Straßennamen dürfen Tippfehler haben.
- Verwenden der nächsten Nachbarn zur Bilderkennung
- Die MNIST-Ziffernbildsammlung ist ein großartiger Datensatz, um die Ausführung von K-Nearest-Nachbarn für eine Bildklassifizierungsaufgabe zu veranschaulichen.
CH 6: Neuronale Netze

Neuronale Netze sind aufgrund der Hauptbrühe in früheren ungelösten Problemen sehr wichtig für maschinelles Lernen und wachsender Beliebtheit. Wir müssen mit der Einführung von "flachen" neuronalen Netzwerken beginnen, die sehr leistungsfähig sind und uns helfen können, unsere früheren ML -Algorithmusergebnisse zu verbessern. Wir beginnen mit der Einführung der sehr grundlegenden NN -Einheit, dem Betriebstor. Wir fügen allmählich immer mehr zum neuronalen Netzwerk hinzu und enden mit dem Training eines Modells zum Spielen von Tic-Tac-Toe.
- Einführung
- Wir stellen das Konzept der neuronalen Netzwerke vor und wie Tensorflow so erstellt wird, dass diese Algorithmen problemlos behandelt werden.
- Implementierung von operativen Toren
- Wir implementieren ein operatives Tor mit einem Vorgang. Dann zeigen wir, wie Sie dies auf mehrere verschachtelte Operationen ausdehnen können.
- Arbeiten mit Toren und Aktivierungsfunktionen
- Jetzt müssen wir Aktivierungsfunktionen an den Toren einführen. Wir zeigen, wie unterschiedliche Aktivierungsfunktionen funktionieren.
- Implementierung eines neuronalen Netzwerks mit einer Schicht
- Wir haben alle Teile, um unser erstes neuronales Netzwerk zu implementieren. Wir tun dies hier mit Regression auf den IRIS -Datensatz.
- Implementierung verschiedener Ebenen
- In diesem Abschnitt wird die Faltungsschicht und die Max-Pool-Schicht eingeführt. Wir zeigen, wie diese in einem 1D- und 2D -Beispiel mit vollständig verbundenen Schichten zusammenketten.
- Verwendung von mehrschichtigen neuronalen Netzwerken
- Hier zeigen wir, wie verschiedene Ebenen und Variablen für ein saubereres mehrschichtiges neuronales Netzwerk funktionalisieren.
- Verbesserung der Vorhersagen linearer Modelle
- Wir zeigen, wie wir die Konvergenz unserer vorherigen logistischen Regression mit einer Reihe versteckter Schichten verbessern können.
- Tic-Tac-Toe spielen lernen
- Angesichts einer Reihe von Tic-Tac-TOE-Boards und entsprechenden optimalen Bewegungen schulen wir ein für das Spielen der Klassifizierungsmodell eines neuronalen Netzwerks. Am Ende des Drehbuchs können Sie versuchen, gegen das ausgebildete Modell zu spielen.
Ch 7: Verarbeitung natürlicher Sprache

Natürliche Sprachverarbeitung (NLP) ist eine Möglichkeit, Textinformationen in numerische Zusammenfassungen, Merkmale oder Modelle zu verarbeiten. In diesem Kapitel werden wir motivieren und erklären, wie man mit Text in TensorFlow am besten umgeht. Wir zeigen, wie Sie die klassischen "Bag-of-Words" -Bewerte implementieren und dass es möglicherweise bessere Möglichkeiten gibt, Text basierend auf dem vorliegenden Problem einzubetten. Es gibt ein neuronales Netzwerk-Einbettungsdings, das Word2VEC (CBOW und Skip-Gram) und Doc2VEC bezeichnet. Wir zeigen, wie Sie all dies in TensorFlow implementieren können.
- Einführung
- Wir führen Methoden zum Umwandeln von Text in numerische Vektoren ein. Wir stellen auch die Tensorflow -Einbettung ein.
- Arbeiten mit Taschen
- Hier verwenden wir TensorFlow, um ein hindeles Kodieren von Wörtern, die als Wörtertasche bezeichnet werden. Wir verwenden diese Methode und logistische Regression, um vorherzusagen, ob eine Textnachricht Spam oder Schinken ist.
- TF-IDF implementieren
- Wir implementieren die Textfrequenz - inverse Dokumentfrequenz (TFIDF) mit einer Kombination aus Sci -Kit -Lernen und Tensorflow. Wir führen die logistischen Regression auf TFIDF-Vektoren durch, um unsere Spam/Ham-Text-Message-Vorhersagen zu verbessern.
- Arbeiten mit Skip-Gramm
- Unsere erste Implementierung von Word2VEC mit dem Titel "Skip-Gram" in einer Filmbewertungsdatenbank.
- Arbeiten mit CBOW
- Als nächstes implementieren wir eine Form von Word2VEC mit dem Namen "CBOW" (Continuous -Tack of Words) in einer Filmbewertungsdatenbank. Wir führen auch die Methode zum Speichern und Laden von Worteinbettungen vor.
- Implementierung von Word2Vec -Beispiel
- In diesem Beispiel verwenden wir die vorherigen gespeicherten CBOW-Wort-Einbettungen, um unsere TF-IDF-logistische Regression des Filmbewertungsgefühls zu verbessern.
- Durchführung der Stimmungsanalyse mit DOC2VEC
- Hier stellen wir eine DOC2VEC -Methode (Verkettung von DOC- und Word -Einbettungen) vor, um das logistische Modell des Filmbewertungsgefühls zu verbessern.
Ch 8: Faltungsnetzwerke mit Faltungsstücken

Faltungsnetzwerke (CNNs) sind Möglichkeiten, neuronale Netze für die Umgang mit Bilddaten zu erhalten. CNN leitet ihren Namen aus der Verwendung einer Faltungsschicht ab, die einen Filter mit fester Größen über ein größeres Bild anwendet und ein Muster in einem beliebigen Teil des Bildes erkennt. Es gibt viele andere Tools, die sie verwenden (Max-Pooling, Dropout usw.), die wir zeigen, wie sie mit TensorFlow implementiert werden. Wir zeigen auch, wie man eine vorhandene Architektur wiederholt und CNNs mit Stylenet und Deep Dream weiter übernimmt.
- Einführung
- Wir führen Faltungsnetzwerke (CNN) ein und wie wir sie im Tensorflow verwenden können.
- Implementierung eines einfachen CNN.
- Hier zeigen wir, wie Sie eine CNN -Architektur erstellen, die bei der MNIST -Aufgabe der Ziffer -Erkennung gut abschneidet.
- Implementierung eines fortschrittlichen CNN.
- In diesem Beispiel zeigen wir, wie eine Architektur für die CIFAR-10-Bilderkennungsaufgabe repliziert wird.
- Umschulung einer vorhandenen Architektur.
- Wir zeigen, wie Sie die CIFAR-10-Daten für das TensorFlow-Umschulungs-/Feinabstimmungs-Tutorial herunterladen und einrichten.
- Mit Stylenet/NeuralStyle.
- In diesem Rezept zeigen wir eine grundlegende Implementierung der Verwendung von Stylenet oder NeuralStyle.
- Tiefen Traum implementieren.
- Dieses Skript zeigt eine zeilenweise Erklärung des Deepdream-Tutorials von TensorFlow. Vom Tensorflow von Deepdream genommen. Beachten Sie, dass der Code hier in Python 3 konvertiert wird.
Ch 9: wiederkehrende neuronale Netze

Wiederkehrende neuronale Netzwerke (RNNs) sind den regulären neuronalen Netzwerken sehr ähnlich, außer dass sie "wiederkehrende" Verbindungen oder Schleifen zulassen, die von den vorherigen Zuständen des Netzwerks abhängen. Dies ermöglicht es RNNs, mit sequentiellen Daten effizient umzugehen, während andere Arten von Netzwerken dies nicht können. Anschließend motivieren wir die Verwendung von LSTM -Netzwerken (langfristig kurzfristiger Speicher), um regelmäßige RNN -Probleme anzugehen. Dann zeigen wir, wie einfach es ist, diese RNN -Typen in Tensorflow zu implementieren.
- Einführung
- Wir führen wiederkehrende neuronale Netzwerke ein und wie sie in einer Sequenz füttern und entweder ein festes Ziel (kategorisch/numerisch) oder eine andere Sequenz (Sequenz zur Sequenz) vorhersagen können.
- Implementierung eines RNN -Modells für die Spam -Vorhersage
- In diesem Beispiel erstellen wir ein RNN -Modell, um unsere SPAM/HAM -SMS -Textvorhersagen zu verbessern.
- Implementierung eines LSTM -Modells für die Textgenerierung
- Wir zeigen, wie ein LSTM -RNN (langfristiger Speicher) für Shakespeare -Sprachgenerierung implementiert werden kann. (Wortschatzstufe)
- Stapeln mehrerer LSTM -Schichten
- Wir stapeln mehrere LSTM -Schichten, um unsere Shakespeare -Sprachgenerierung zu verbessern. (Vokabular auf Charakterebene)
- Erstellen einer Sequenz zur Sequenzübersetzungsmodell (SEQ2SEQ)
- Hier verwenden wir TensorFlows Sequenz-zu-Sequenz-Modelle, um ein englisch-deutsches Übersetzungsmodell zu trainieren.
- Schulung einer siamesischen Ähnlichkeitsmaßnahme
- Hier implementieren wir einen siamesischen RNN, um die Ähnlichkeit von Adressen vorherzusagen und sie für die Datensatzanpassung zu verwenden. Die Verwendung von RNNs für die Datensatzanpassung ist sehr vielseitig, da wir keinen festen Satz von Zielkategorien haben und das geschulte Modell verwenden können, um Ähnlichkeiten über neue Adressen hinweg vorherzusagen.
Ch 10: Tensorflow zur Produktion nehmen

Natürlich hat TensorFlow mehr als nur maschinelles Lernen zu erstellen und anzupassen. Sobald wir ein Modell haben, das wir verwenden möchten, müssen wir es in Richtung Produktionsverwendung bewegen. In diesem Kapitel werden Tipps und Beispiele für die Implementierung von Unit -Tests, die Verwendung mehrerer Prozessoren, mit mehreren Maschinen (Tensorflow verteilt) und mit einem vollständigen Produktionsbeispiel enthält.
- Implementierung von Unit -Tests
- Wir zeigen, wie verschiedene Arten von Unit -Tests an Tensoren (Platzhalter und Variablen) implementiert werden.
- Verwenden mehrerer Ausführender (Geräte)
- So verwenden Sie eine Maschine mit mehreren Geräten. Z. B. eine Maschine mit einer CPU und einem oder mehreren GPUs.
- Parallelisierender Tensorflow
- So richten und verwenden Sie TensorFlow, die auf mehreren Maschinen verteilt sind.
- Tipps für den Tensorflow in der Produktion
- Verschiedene Tipps für die Entwicklung mit Tensorflow
- Ein Beispiel für die Produktionalisierung von Tensorflow
- Wir zeigen, wie man das RNN -Modell zur Vorhersage von Ham/Spam (aus Kapitel 9, Rezept 2) einnimmt und es in zwei Produktionsebenendateien einfügt: Training und Bewertung.
Ch 11: Mehr mit Tensorflow

Um zu veranschaulichen, wie vielseitig Tensorflow ist, werden wir in diesem Kapitel zusätzliche Beispiele zeigen. Wir beginnen mit dem Zeigen, wie das Tensorboard für Protokollierung/Visualisierung von Tools verwendet wird. Dann veranschaulichen wir, wie K-Means-Clustering durchführt, einen genetischen Algorithmus verwenden und ein ODES-System lösen.
- Visualisierung von Rechendiagrammen (mit Tensorboard)
- Ein Beispiel für die Verwendung von Histogrammen, Skalarzusammenfassungen und Erstellen von Bildern in Tensorboard.
- Arbeiten mit einem genetischen Algorithmus
- Wir erstellen einen genetischen Algorithmus, um ein Individuum (Array von 50 Zahlen) für die Grundwahrheitsfunktion zu optimieren.
- Clustering mit K-Means
- So verwenden Sie TensorFlow, um K-Means-Clustering zu machen. Wir verwenden den IRIS-Datensatz, setzen K = 3 und verwenden K-Means, um Vorhersagen zu treffen.
- Lösen eines ODES -Systems
- Hier zeigen wir, wie man TensorFlow verwendet, um ein ODES -System zu lösen. Das System der Besorgnis ist das Lotka-Volterra-Predator-Prey-System.
- Verwenden eines zufälligen Waldes
- Wir veranschaulichen, wie TensorFlows Gradienten die Regressions- und Klassifizierungsbäume verwendet werden.
- Verwenden von Tensorflow mit Keras
- Hier zeigen wir, wie Sie das Sequentialmodellgebäude von Keras für ein vollständig verbundenes neuronales Netzwerk und ein CNN -Modell mit Rückrufen verwenden.