カーネル化トリック、ニューラルネットワーク用


9

ニューラルネットワークとSVMについて学習してきました。私が読んだチュートリアルでは、SVMにとってカーネル化がいかに重要であるかを強調しました。カーネル関数がない場合、SVMは単なる線形分類器です。カーネル化により、SVMは非線形機能を組み込むこともできるため、より強力な分類器になります。

カーネル化をニューラルネットワークに適用することもできるように思えますが、私が見たニューラルネットワークのチュートリアルではこれについて言及していません。人々は一般的にニューラルネットワークでカーネルトリックを使用しますか?それが大きな違いを生むかどうかを確かめるために誰かが実験していたに違いないと思います。カーネル化は、SVMと同じくらいニューラルネットワークに役立ちますか?なぜですか、なぜそうではありませんか?

(カーネルトリックをニューラルネットワークに組み込むいくつかの方法を想像できます。1つの方法は、適切なカーネル関数を使用して、入力(Rのベクトル)をより高次元の入力であるベクトルに前処理することですin Rメートル for メートル。複数層のニューラルネットの場合、別の方法は、ニューラルネットワークの各レベルでカーネル関数を適用することです。


2
カーネルトリックは、データポイントへの計算アクセスがコンピューティング内積で構成される場合に機能します。ニューラルネットワークの場合はそうではありません。
Yuval Filmus 2013年

回答:


6

問題を混乱させるような方法で用語を混乱させているかもしれません。SVMは、線形決定境界、つまり超平面を定義することによって機能します。この超平面は、点間の内積で定義できます。したがって、この内積を高次元または無限次元の空間に定義すると、この新しい空間の超平面のように見えるものは、元の特徴空間では必ずしも線形である必要はありません。したがって、すべてが依然として線形であり、私たちが行った唯一のことは、いくつかの高次元空間に暗黙的に(新しい内積を介して)ポイントを埋め込むことです。多分あなたはすでにすべてこれを知っています。

ニューラルネットワークに関して考慮すべき2つの問題があります。1つ目は、@ Yuval Filmusによって提唱されました。これは、隠れ層ニューラルネットワークが、ポイント間の内積以上のものに依存しているためです。非表示層を削除すると、ロジスティック回帰のようなものになり、カーネル化されたバージョンがあります。これを回避する方法はあるかもしれませんが、私にはわかりません。

次に、無限ではない、より高い次元の空間に射影して入力を前処理することについて言及します。ニューラルネットワークは決定面を定義し、この面は線形に制約されません。つまり、ポイントを高次元の空間に投影することによるゲインは異なります。つまり、適切な重みのセットを見つけやすくなる可能性がありますが、必ずしもモデルをより強力にする必要はありません。これは、任意の関数を(いくつかの制限の下で)近似できる十分な数の非表示単位が与えられていることを示す普遍近似定理に基づいています。この最後のステートメントはかなり空虚であり、私はそれについて言及するのがちょっと嫌いです。適切な重みを見つける方法について何も言わないことで、アプリケーションの観点からはテーブルに多くをもたらすことはありません。


ありがとうございました。はい。私たちは、SVMを元の入力をより高い(または無限の)次元空間にマッピングし、そのより高い次元空間で線形決定境界を作成することと考えることができることを知っています。では、ニューラルネットワークでもそれを行うことができますか?入力をより高い次元の空間にマッピングし、それをニューラルネットワークへの実際の入力として扱うことはできますか?私はできると思います(必要に応じて、各レイヤーでこれを行うこともできると思います)。そして、もし可能なら、私の本当の質問は、これは、SVMの場合と同様に、ニューラルネットワークに(実際のところ)大きな改善をもたらすのか?なぜですか、なぜそうではありませんか?
DW

私は普遍近似定理について知っていますが、それは実際に質問に答えるものではありません(ご指摘のとおり)。私が気にしているのは、ニューラルワークが実際にどれほどうまく機能するかです。カーネル化のトリックを介して入力を前処理することで、ニューラルネットワークが実際にうまく機能するようになるかどうか疑問に思っています。もちろん、保証はありませんし、何かを行うと事態が悪化する可能性は常にありますが、実際には、典型的な動作について疑問に思っています(カーネル化がSVMを大幅に効果的にする傾向があると同じ意味で)練習)。
DW

2
@DWカーネル化によってSVMがより効果的になるのは、非線形の決定境界を定義できるためです。ニューラルネットワークはすでに非線形の決定境界を定義できるため、データをより高い次元の空間に投影する唯一の利点は、最適化の問題を簡単にすることです。
alto

1

SVMの学習プロセスには特別な特性があるため、SVMのカーネルトリックは可能です。ニューラルネットワークはその特性を備えていないようです(私の知る限り)。

ましょうトレーニングセット内のポイントも。通常、機械学習アルゴリズムはの値を調べます。ただし、SVMの学習プロセスにはかなり優れた特性があります。の値を知る必要はありません。入力ポイントの任意のペアについてを計算できれば十分です(つまり、選択した任意の入力ベクトルのペアについて内積を計算できます)。SVM学習プロセスに必要なのはこれだけです。X I 、X I 、X IX Jバツ1バツRdバツバツバツバツj

SVM学習プロセスのこの特別な特性により、カーネルトリックを使用できます。カーネル関数定義して、が入力の非線形変換のドット積になるようにすることができます。入力ベクトルを非線形変換(一部の)で変換する場合、を定義します。次の優れた特性は、いくつかの非線形変換に対して、明示的に計算してからドット積を計算するよりも効率的に計算できることです。計算できますKKバツバツjφRdRメートルメートル>dKバツバツj=φバツφバツjφKバツバツjφバツφバツjKバツバツjでよりもむしろ時間(例えば)時間。OdOメートル

残念ながら、ニューラルネットワークの学習プロセスは値(または)だけに依存していないように思われるため、ニューラルネットワークにはこのクールなトリックを利用する方法がないようです。すべてのの完全な値が必要です。したがって、必要に応じて、非線形関数を介して非線形ネットワークへの入力を実際に事前変換することができますが、SVMのようにカーネルトリックを使用してこれをより効率的にする方法はないようです。バツバツjKバツバツjバツ


1

私がこれまでに得たいくつかの観察を共有したいと思います。入力ディメンション:144。ニューラルネットワークをトレーニングしました。トレーニング中に、隠れ層の出力がロジスティック回帰の入力として与えられ、モデルのフィッティング後の損失関数の平均値がプロットされました。ここに画像の説明を入力してください

ここに画像の説明を入力してください

レイヤーサイズの増加に伴い、非表示レイヤーの機能または出力が線形的に分離可能になっていることがわかります。これがカーネル化された特徴ベクトルを学習する目的ですが、ニューラルネットワークは内部でこれを行っているようです。 ここに画像の説明を入力してください

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