t-SNEの問題は、距離も密度も保持しないことです。ある程度だけ、最近傍を保存します。違いはわずかですが、密度ベースまたは距離ベースのアルゴリズムに影響します。
この効果を確認するには、多変量ガウス分布を生成するだけです。これを視覚化すると、外側に向かって密度が高く、密度がはるかに低くなるボールがあります。いくつかの外れ値は実際には遠くにある可能性があります。
次に、このデータに対してt-SNEを実行します。通常、かなり均一な密度の円が得られます。低いパープレキシティを使用する場合、そこに奇妙なパターンがあるかもしれません。しかし、もはや外れ値を実際に区別することはできません。
次に、物事をより複雑にします。(-2,0)の正規分布で250ポイント、(+ 2,0)の正規分布で750ポイントを使用してみましょう。
これは、EMなどの簡単なデータセットであると想定されています。
デフォルトのperplexityを40にしてt-SNEを実行すると、奇妙な形のパターンが得られます。
悪くはありませんが、クラスター化もそれほど簡単ではありませんか?ここで正確に機能するクラスタリングアルゴリズムを見つけるのは困難です。また、人間にこのデータをクラスター化するように依頼したとしても、ここで2つ以上のクラスターを見つける可能性があります。
20などの小さすぎるパープレキシティでt-SNEを実行すると、存在しないこれらのパターンがさらに多く得られます。
これは、DBSCANなどを使用してクラスター化されますが、4つのクラスターが生成されます。したがって、t-SNEは「偽の」パターンを生成する可能性があることに注意してください。
このデータセットの最適な困惑度は約80のようです。しかし、私はこのパラメーターが他のすべてのデータセットに対して機能するとは思わない。
これは視覚的には楽しいですが、分析には向いていません。人間のアノテーターはカットを選択し、適切な結果を得る可能性があります。しかし、この非常に簡単なシナリオでもk-meansは失敗します!密度情報が失われていることはすでに確認できています。すべてのデータはほぼ同じ密度の領域に存在しているようです。代わりに、さらに複雑さを増やすと、均一性が向上し、分離が再び減少します。
結論として、視覚化にはt-SNEを使用し(そして視覚的に心地よいものを得るために異なるパラメーターを試してください!)、むしろクラスタリングを実行せず、特にこの情報が意図的であるため(距離)または密度ベースのアルゴリズムを使用しない失った。近隣グラフベースのアプローチは問題ないかもしれませんが、最初にt-SNEを事前に実行する必要はありません。すぐに近隣を使用するだけです(t-SNEはこのnn-graphをほぼそのまま維持しようとするため)。
その他の例
これらの例は、論文のプレゼンテーション用に準備されました(ただし、後でこの実験を行ったため、まだ論文に記載されていません)
エーリッヒ・シューベルト、マイケル・ゲルツ。
可視化と外れ値検出のための組み込みt-Stochastic Neighbor埋め込み-次元の呪いに対する対策?
In:類似検索およびアプリケーションに関する第10回国際会議(SISAP)の議事録、ドイツ、ミュンヘン。2017年
まず、次の入力データがあります。
ご想像のとおり、これは子供向けの「カラーミー」画像から派生しています。
これをSNEで実行する場合(t-SNEではなく、前身):
うわー、私たちの魚はかなり海の怪物になりました!カーネルサイズはローカルで選択されるため、密度情報の多くは失われます。
しかし、t-SNEの出力には本当に驚くでしょう。
私は実際に2つの実装(ELKIおよびsklearn実装)を試しましたが、両方ともそのような結果を生み出しました。切断されたフラグメントもありますが、それぞれが元のデータとある程度一致しているように見えます。
これを説明する2つの重要なポイント:
SGDは反復的な改良手順に依存しているため、局所的な最適化にとどまる可能性があります。特に、これにより、アルゴリズムが、ミラーリングされたデータの一部を「フリップ」することが難しくなります。これは、分離されるはずの他のポイントを移動するポイントを必要とするためです。そのため、魚の一部がミラーリングされており、他の部分がミラーリングされていない場合、これを修正できない可能性があります。
t-SNEは、投影された空間のt分布を使用します。通常のSNEで使用されるガウス分布とは対照的に、これは、入力ドメインではアフィニティが0(ガウスはすぐにゼロになります)ですが、出力ドメインではアフィニティが0を超えるため、ほとんどのポイントが互いに反発することを意味します。時には(MNISTのように)これにより、より良い視覚化が行われます。特に、入力ドメインよりも少し多くデータセットを「分割」するのに役立ちます。この追加の反発により、ポイントがエリアをより均等に使用するようになることもよくあり、これも望ましい場合があります。しかし、この例では、忌避効果によって実際に魚の断片が分離されます。
ランダムな座標(通常t-SNEで使用される)ではなく、元の座標を初期配置として使用することにより、(このおもちゃのデータセットで)最初の問題を解決できます。今回は、画像はELKIではなくsklearnです。sklearnバージョンには、初期座標を渡すためのパラメーターが既に含まれているためです。
ご覧のとおり、「完全な」初期配置でも、出力ドメインのスチューデントt反発力は入力のガウスアフィニティよりも強いため、t-SNEは元々接続されていた多くの場所で魚を「破壊」します。スペース。
ご覧のとおり、t-SNE(およびSNEも!)は興味深い視覚化手法ですが、慎重に扱う必要があります。結果にk-meansを適用したくありません!結果が大きく歪むため、距離も密度も適切に保持されないためです。代わりに、視覚化に使用してください。