9

体の部分間の角度に応じて、いくつかの画像をクラスター化しようとしています。

各画像から抽出された特徴は次のとおりです。

angle1 : torso - torso
angle2 : torso - upper left arm
..
angle10: torso - lower right foot

したがって、入力データはサイズが 1057x10 の行列です。ここで、1057 は画像の数を表し、10 は体のパーツと胴体の角度を表します。同様に、testSet は 821x10 マトリックスです。

入力データのすべての行を 88 個のクラスターでクラスター化する必要があります。次に、これらのクラスターを使用して、TestData がどのクラスターに分類されるかを見つけますか?

以前の作業では、非常に単純なK-Means クラスタリングを使用しました。K-Means にデータを 88 個のクラスターにクラスター化するように依頼するだけです。また、テスト データの各行と各クラスターの中心との間の距離を計算する別の方法を実装し、最小値を選択します。これは、対応する入力データ行のクラスターです。

2 つの質問があります。

  1. MATLAB でSOMを使用してこれを行うことは可能ですか? AFAIK SOMはビジュアルクラスタリング用です。ただし、各クラスターの実際のクラスを知る必要があるため、後でテスト データが属するクラスターを計算してラベルを付けることができます。

  2. より良い解決策はありますか?

4

1 に答える 1

17

自己組織化マップ (SOM)は、人工ニューラル ネットワーク (ANN)の教師なしバリエーションと見なされるクラスタリング手法です。競合学習技術を使用してネットワークをトレーニングします (ノードは、特定のデータに対して最も強い活性化を表示するためにノード間で競合します)。

www.lohninger.com/helpcsuite/kohonen_network_-_background_information.htm

SOM は、相互接続されたノード (正方形、六角形など) のグリッドで構成されているかのように考えることができます。各ノードは、重みの N 次元ベクトルです (クラスター化するデータ ポイントと同じ次元サイズ)。

アイデアは単純です。SOM への入力としてベクトルを指定すると、それに最も近いノードを見つけ、その重みと隣接ノードの重みを更新して、入力ベクトルの重みに近づけます (したがって、自己組織化という名前が付けられています)。このプロセスは、すべての入力データに対して繰り返されます。

プロットソンポス

形成されるクラスターは、ノードがどのように組織化され、同様の重みを持つノードのグループを形成するかによって暗黙的に定義されます。それらは視覚的に簡単に見ることができます。

プロットサムンド

SOM はK-Means アルゴリズムに似ていますが、固定数のクラスターを課すのではなく、データに適応させたいグリッド内のノードの数と形状を指定するという点で異なります。

基本的に、トレーニング済みの SOM があり、新しいテスト入力ベクトルを分類したい場合は、それをグリッド上の最も近い (類似性尺度としての距離) ノード (ベスト マッチング ユニットBMU) に割り当て、予測として [多数] その BMU ノードに属するベクトルのクラス。

プロットサムヒッツ

MATLAB の場合、SOM を実装する多くのツールボックスを見つけることができます。

于 2009-11-07T13:24:43.573 に答える