Ist TensorFlow eine vollständige Bibliothek für maschinelles Lernen?

10

Ich bin neu in TensorFlow und muss die Funktionen und Mängel von TensorFlow verstehen, bevor ich es verwenden kann. Ich weiß, dass es sich um ein Deep-Learning-Framework handelt, aber abgesehen von dem, was andere Algorithmen für maschinelles Lernen mit Tensorfluss verwenden können. Können wir beispielsweise mit TensorFlow SVMs oder zufällige Gesamtstrukturen verwenden? (Ich weiß, das klingt verrückt)

Kurz gesagt, ich möchte wissen, welche Algorithmen für maschinelles Lernen von TensorFlow unterstützt werden. Ist es nur tiefes Lernen oder etwas mehr?

Swaroop
quelle
1
Support-Vektor-Maschine in TensorFlow implementiert: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater
3
Nur um sicherzugehen: TensorFlow ist keine Deep-Learning-Bibliothek. Keras (das TensorFlow als Backend verwenden kann) ist eine solche Bibliothek. TensorFlow ist eine intelligente Methode, um umfangreiche Berechnungen (mithilfe eines Berechnungsdiagramms) zu verarbeiten und auf mehreren Hardwarekomponenten (CPU, GPU und andere) auszuführen.
Robin

Antworten:

15

Dies ist eine große Vereinfachung, aber es gibt heute im Wesentlichen zwei Arten von Bibliotheken für maschinelles Lernen:

  1. Deep Learning (CNN, RNN, vollständig verbundene Netze, lineare Modelle)
  2. Alles andere (SVM, GBMs, Random Forests, Naive Bayes, K-NN usw.)

Der Grund dafür ist, dass Deep Learning viel rechenintensiver ist als andere traditionellere Trainingsmethoden und daher eine intensive Spezialisierung der Bibliothek erfordert (z. B. Verwendung einer GPU und verteilter Funktionen). Wenn Sie Python verwenden und nach einem Paket mit der größten Bandbreite an Algorithmen suchen, versuchen Sie es mit scikit-learn. In der Realität müssen Sie mehr als eine Bibliothek verwenden, wenn Sie Deep Learning und traditionellere Methoden verwenden möchten. Es gibt kein "vollständiges" Paket.

Ryan Zotti
quelle
Ist diese Antwort zwei Jahre später noch gültig? Es sieht so aus, als ob TensorFlow seitdem sehr gewachsen ist.
John Sullivan
7

TensorFlow ist besonders für Deep Learning geeignet, dh für neuronale Netze mit vielen Schichten und seltsamen Topologien.

Das ist es. Es ist eine Alternative zu Theano , wurde jedoch von Google entwickelt.

Sowohl in TensorFlow als auch in Theano programmieren Sie symbolisch. Sie definieren Ihr neuronales Netzwerk in Form von algeabreischen Operationen (diese Knoten werden mit diesen Gewichten multipliziert und dann wird eine nichtlineare Transformation angewendet, bla bla bla), die intern durch einen Graphen dargestellt werden (was im Fall von TensorFlow aber der Fall ist) nicht Theano, können Sie tatsächlich sehen, um Ihr neuronales Netzwerk zu debuggen).

Dann bietet TensorFlow (oder Theano) Optimierungsalgorithmen an, mit denen Sie herausfinden können, welche Gewichte die Kostenfunktion minimieren, die Sie minimieren möchten. Wenn Ihr neuronales Netzwerk ein Regressionsproblem lösen soll, möchten Sie möglicherweise die Summe der quadratischen Differenzen zwischen den vorhergesagten Werten und den wahren Werten minimieren. TensorFlow erledigt die schwere Arbeit, Ihre Kostenfunktion und all das zu differenzieren.

BEARBEITEN: Ich habe vergessen zu erwähnen, dass SVMs natürlich als eine Art neuronales Netzwerk angesehen werden können. Daher können Sie eine SVM natürlich mit TensorFlow-Optimierungstools trainieren. TensorFlow enthält jedoch nur Optimierer, die auf Gradientenabstieg basieren und etwas dumm sind, um eine SVM zu trainieren, es sei denn, Sie haben viele Beobachtungen, da es spezielle Optimierer für SVM gibt, die nicht in lokalen Minima stecken bleiben.

Erwähnenswert ist wahrscheinlich auch, dass TensorFlow und Theano ziemlich einfache Frameworks sind. Die meisten Benutzer verwenden Frameworks, die darauf aufbauen und einfacher zu verwenden sind. Ich werde hier keine vorschlagen, da dies zu einer eigenen Diskussion führen würde. Sehen Sie hier Anregungen für einfach zu bedienen Pakete.

Ricardo Cruz
quelle
1
Theano wird nicht von Google entwickelt. Laut ihrer Website wird es "hauptsächlich von Akademikern entwickelt". Tensorflow wurde von Google entwickelt .
Dantiston
1
@ Dantiston Ja, ich weiß. Ich wollte sagen "TensorFlow ist eine Alternative zu Theano und TensorFlow wird von Google entwickelt". Ich bezog mich auf TensorFlow, nicht auf Theano. Schlechte Formulierung, sorry.
Ricardo Cruz
5

Ryan Zotti bietet eine gute Antwort, aber das ändert sich. Mit Random Forest , Gradient Boosting und Bayesian-Methoden TensorFlowwird eine Lösung aus einer Hand geschaffen. Weitere traditionelle Algorithmen sind hier aufgelistet . TensorFlow ist besonders vielversprechend, da es gut skalierbar ist und GPU-Operationen unterstützt. Dies scikit learnist jedoch der traditionelle One-Stop-Shop, in dem Sie viele Standardalgorithmen finden. Sie sind normalerweise nicht die neuesten und besten, daher möchten Sie wahrscheinlich auch spezialisierte Bibliotheken.

Adam Erickson
quelle