TensorFlowは完全な機械学習ライブラリですか?


11

私はTensorFlow初めて使用するので、使用する前にTensorFlowの機能と欠点を理解する必要があります。これはディープラーニングフレームワークであることは知っていますが、テンソルフローで使用できる他の機械学習アルゴリズムは別です。たとえば、TensorFlowを使用してSVMまたはランダムフォレストを使用できますか?(私はこれがクレイジーに聞こえることを知っています)

つまり、TensorFlowでサポートされている機械学習アルゴリズムを知りたいのです。それは単なるディープラーニングか何かですか?


1
TensorFlowに実装されたサポートベクターマシン:github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater

3
念のため:TensorFlowはディープラーニングライブラリではありません。Keras(TensorFlowをバックエンドとして使用できます)はそのようなライブラリです。TensorFlowは、(計算グラフを使用して)重い計算を処理し、複数のハードウェア(CPU、GPUなど)で実行するためのスマートな方法です。
ロビン

回答:


15

これは非常に単純化しすぎていますが、今日利用できる機械学習ライブラリには基本的に2つのタイプがあります。

  1. 深層学習(CNN、RNN、完全接続ネット、線形モデル)
  2. その他すべて(SVM、GBM、ランダムフォレスト、ナイーブベイズ、K-NNなど)

この理由は、ディープラーニングは他の従来のトレーニング方法よりもはるかに計算集約的であるため、ライブラリの高度な特殊化(GPUや分散機能の使用など)が必要になるためです。Pythonを使用していて、アルゴリズムの幅が最も広いパッケージを探している場合は、scikit-learnを試してください。実際には、ディープラーニングと従来の方法を使用したい場合は、複数のライブラリを使用する必要があります。「完全な」パッケージはありません。


1
この回答は2年後も有効ですか?それ以来、TensorFlowは大きく成長しているようです。
ジョンサリバン2018年

7

TensorFlowは特に、深層学習、つまり多くのレイヤーと奇妙なトポロジーを持つニューラルネットワークに適しています。

それでおしまい。Theanoに代わるものですが、Googleによって開発されました。

TensorFlowとTheanoの両方で、シンボリックにプログラミングします。ニューラルネットワークを代数的演算の形式で定義します(これらのノードにはこれらの重みが乗算され、次に非線形変換が適用されますbla bla bla)。これは内部的にグラフ(TensorFlowの場合、 Theanoではなく、実際にニューラルネットワークをデバッグするために表示できます)。

次に、TensorFlow(またはTheano)は、最小化する必要のあるコスト関数を最小化する重みを決定するという重労働を行う最適化アルゴリズムを提供します。ニューラルネットワークが回帰問題の解決を目的としている場合は、予測値と真の値の間の差の2乗の合計を最小化することをお勧めします。TensorFlowは、コスト関数などを区別するという重労働を行います。

編集:もちろん、SVMは一種のニューラルネットワークと見なすことができるので、TensorFlow最適化ツールを使用してSVMをトレーニングできることを忘れていました。しかし、TensorFlowには勾配降下法に基づくオプティマイザーのみが付属しています。これは、局所的な最小値でスタックしないSVMの特定のオプティマイザーがあるため、多くの観測がない限り、SVMのトレーニングに使用するのは少し愚かです。

また、おそらく言及する価値があります。TensorFlowとTheanoはかなり低レベルのフレームワークです。ほとんどの人は、その上に構築されたフレームワークを使用しており、使いやすくなっています。ここでは何もお勧めしません。独自のディスカッションが発生するためです。使いやすいパッケージの提案こちらをご覧ください。


1
TheanoはGoogleが開発したものではありません。彼らのウェブサイトよると、それは「主に学者によって開発された」。TensorflowはGoogleによって開発されました
dantiston

1
@dantistonはい、知っています。「TensorFlowはTheanoの代替であり、TensorFlowはGoogleによって開発された」と私は言うつもりです。Theanoではなく、TensorFlowを参照していました。悪い言葉遣い、ごめんなさい。
Ricardo Cruz

5

Ryan Zottiは良い答えを提供していますが、これは変化しています。にランダムフォレストグラデーションブースティング、およびベイジアンメソッドが追加さTensorFlowれ、ワンストップソリューションになる方向に向かっています。より伝統的なアルゴリズムがここにリストされています。TensorFlowは、拡張性が高く、GPUオペレーションをサポートするように設計されているため、特に有望です。ただし、scikit learnは、多くの標準アルゴリズムを見つけることができる伝統的なワンストップショップです。それらは通常、最新で最高のものではないので、専門的なライブラリも必要になるでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.