2016-11-03 10 views
4

最近、私は市内のデータサイエンス会議に出席しました。ニューラルネットワークとSVMを接続する話がありました。残念ながらプレゼンターはプレゼンテーションの直後に終了しなければならなかったので、私はいくつかの質問をすることができませんでした。KerasニューラルネットワークとSKlearn SVM.SVC

私はそれがどのように可能かと思いましたか?彼は分類にニューラルネットワークを使用することを話していましたが、後でSVM分類器を使用して精度と精度を約10%向上させていました。

私はニューラルネットワークのKerasと残りのMLのSKlearnを使用しています。

+2

最終的なプレディクターがSVMである場合、常に[アンサンブル/スタッキング](https://en.wikipedia.org/wiki/Ensemble_learning)を使用できます。おそらくもっと興味深いアプローチは、[このペーパー](http://deeplearning.net/wp-content/uploads/2013/03/dlsvm.pdf)で説明されているように、最終レイヤーをSVMレイヤー(そして共同してトレイン)に置き換えることです。 – sascha

+0

最後のレイヤーを置き換えることは、 "厳しい"アプローチのように聞こえます。私はニューラルネットワークの最後の層を取ってSVMで処理しようと考えていました。 – sebb

+1

これらのレイヤーを置き換えることは、すべてのタスクでうまくいくわけではありませんが、some.Itに何かを追加することは、理論的に正当化されたメソッドを非線形予測子の一部に追加する素晴らしいアプローチです。あなたのアプローチとの違いは次のとおりです。マックスマージンに基づくアプローチがレイヤーとして追加された場合*これは共同で学習されたものです!*これは運とアーキテクチャが少し違っているためNNは非線形プリプロセッサマックスマージンclassif。最後の層であなたのアプローチでは、NN内のSVMについて全く知らなくても、両方のモデルを学ぶことができます。これは一般的にはあまり強力ではありません – sascha

答えて

3

これは完全に可能であり、実際には非常に一般的です。ニューラルネットワークのレイヤーの出力を選択し、これを特徴ベクトルとして使用してSVMを訓練します。一般に、特徴ベクトルも正規化する。

(畳み込み)ニューラルネットワークによって学習された機能は、さまざまな種類のオブジェクトや全く異なる画像にも一般化できるほど強力です。例については、CNN Features off-the-shelf: an Astounding Baseline for Recognitionの論文を参照してください。

ニューラルネットワークを訓練してから、レイヤーの1つ(通常は完全に接続されたレイヤーまたは最初に完全に接続されたレイヤーの直前のもの)を選択し、データセットでニューラルネットワークを実行し、すべて次に、異なるライブラリ(例えばsklearn)を用いてSVMを訓練する。

関連する問題