カーネルPCAのカーネルを選択するには?


12

カーネルPCA(主成分分析)による最終的なデータ出力で適切なデータ分離をもたらすカーネルを選択する方法と、カーネルのパラメーターを最適化する方法は何ですか?

できればレイマンの用語を大いに歓迎し、そのような方法を説明する論文へのリンクもいいでしょう。


1
「良いデータ分離」と言うとき、正確には何を指しているのですか?カーネルPCAのどのアプリケーションを考えていますか?「データ分離」と関係がある場合は、kPCAの代わりに(カーネルサポートベクターマシンなどの)分類手法を使用しているのでしょうか。それとは別に、良い質問です。+ 1。私はカーネルの選択の経験がないので、ここであなたを助けることはできません。
amoeba氏は、2015

@amoeba非線形次元削減に使用されます。私はCSコースを一度も受けたことがないため、サポートベクターに関する私の知識は少し制限されています。私は学部生で、オンラインペーパーで学んでいます。「優れたデータ分離」とは、このホワイトペーパーのプロット例で示されていることを意味します。私はMatlabで作業しており、私のカーネルPCAコードは、シンプル、ポリ、ラジアルベース、およびシグモイドカーネルで稼働していますが、最良の結果を得るには、いつ使用するかを知っておくと役立ちます。
チャイブ、2015年

カーネルを選択する最良の(唯一の?)方法は交差検証を使用することだと思います。ここを参照してください:SVMのカーネルを選択する方法?相互検証を使用するには、kPCAのパフォーマンス測定値のみが必要です。それが目的あれば、クラスの分離は適切な尺度になる可能性がありますが、PCA / kPCAは適切なクラスの分離をもたらすように設計されていないことに注意してください。それは単に捕捉された分散を最大化することです。
amoeba氏は、2015

私はいくつか読んだので、結局あなたの質問に答えられるかもしれません。しかし、しばらく時間がかかる場合があります。
amoebaは、モニカ

@amoeba分散を最大化することは、あなたがそれを言及した今、私には理にかなっています。自分で相互検証を検討しますが、時間を見つけることができれば、もう少し検討してもらえたら最高です。ありがとうございました。
チャイブ2015年

回答:


7

カーネルベースのメソッドで最適なカーネル(カーネルのタイプ、またはカーネルパラメータのいずれか)を選択する一般的なアプローチは、相互検証です。サポートベクターマシンのカーネル選択の説明については、ここを参照してください:SVMのカーネルを選択する方法?

相互検証の背後にある考え方は、「テスト」データを省略し、アルゴリズムを実行して残りの「トレーニング」データにモデルを適合させ、結果のモデルがテストデータをどの程度説明しているか(およびエラーの大きさ)を確認することです。です)。これは、除外されたさまざまなデータに対して繰り返され、エラーが平均化されて平均相互検証エラーが形成されます。次に、さまざまなアルゴリズムを比較して、エラーが最も少ないものを選択できます。SVMでは、モデルのパフォーマンスの尺度として、たとえば分類精度(または関連する尺度)を使用できます。次に、テストデータの最適な分類を生成するカーネルを選択します。

次に、問題は次のようになります。kPCAで使用できるモデルパフォーマンスの測定値はどれですか。「適切なデータ分離」(おそらく適切なクラス分離)を達成したい場合は、トレーニングデータでそれを何らかの方法で測定し、それを使用して最適なカーネルを見つけることができます。ただし、PCA / kPCAは適切なデータ分離を実現するように設計されていないことに注意してください(クラスラベルはまったく考慮さていません)。したがって、一般的に言えば、クラスに関係のない別のモデルパフォーマンスの測定値が必要になります。

標準PCA では、テストセットのパフォーマンス測定として再構成エラーを使用できます。カーネルPCAでは、再構成エラーを計算することもできますが、問題は、異なるカーネル間で比較できないことです。再構成エラーは、ターゲットフィーチャ空間で測定された距離です。異なるカーネルは異なるターゲット空間に対応します...それで問題があります。

この問題に取り組む1つの方法は、ターゲット空間ではなく、元の空間で再構築エラーを何らかの方法で計算することです。明らかに、除外されたテストデータポイントは元の空間にあります。しかし、そのkPCA再構成は、ターゲットスペースの[の低次元サブスペース]にあります。しかし、できることは、元の空間でこの再構成ポイントに可能な限り近くマッピングされるポイント(「プリイメージ」)を見つけ、テストポイントとこのプリイメージ間の距離を測定することです。再構成エラーとして。

ここではすべての式を示すのではなく、いくつかの論文を参照して、ここにいくつかの図のみを挿入します。

kPCAの「プリイメージ」のアイデアは、このペーパーで明らかに導入されました。

ミカ他 は相互検証を行っていませんが、ノイズ除去のために事前画像が必要です。次の図を参照してください。

ミカ等からのkPCAノイズ除去。

ノイズ除去された(太い)ポイントは、kPCA投影の事前イメージです(テストとトレーニングはここにはありません)。これらのプリイメージを見つけることは簡単な作業ではありません。勾配降下法を使用する必要があり、損失関数はカーネルに依存します。

そして、ここにクロス検証の目的とカーネル/ハイパーパラメーターの選択のために事前画像を使用したごく最近の論文があります:

これは彼らのアルゴリズムです:

アラムと福水

そして、ここにいくつかの結果があります(私はそれはかなり自明です):

アラムと福水


1
(+1)このプレイメージは、特定のクラスターに割り当てられたポイントのフレシェ/カーチャーの手段のセットであり、必ずしも何かに役立つわけではないことに注意してください。
Dougal、2015年

xxyyzz

考え直してみると、以前は十分な注意を払っていなかったと思います。私のコメントはkPCAではなくカーネルk-meansに適用されます。プリイメージは間違いなくその概念に関連していますが、まったく同じものではありません。ノイズでごめんなさい。:)
Dougal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.