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?
machine-learning
Swaroop
quelle
quelle
Antworten:
Dies ist eine große Vereinfachung, aber es gibt heute im Wesentlichen zwei Arten von Bibliotheken für maschinelles Lernen:
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.
quelle
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.
quelle
Ryan Zotti bietet eine gute Antwort, aber das ändert sich. Mit Random Forest , Gradient Boosting und Bayesian-Methoden
TensorFlow
wird 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. Diesscikit learn
ist 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.quelle