1

このサイトを含む多くの場所で U-Matrix について読みました。U-Matrix の最適な説明は、 U-Matrix が適切に計算される方法に関する正しい情報がほとんどない (元の論文はまったく役に立たない)理由の説明とともに、このサイトのここにあります。

上記の質問に対する答えは、六角形マップの概念を完全に説明しています。しかし、リンクされた質問への回答で U マトリックスを計算するロジックは、マップが長方形の場合には当てはまりません。

たとえば、以下に示すように 3 x 3 の長方形の格子を考えてみましょう。

長方形の地図

上記の格子を使用して、以下に示すように U-Matrix を計算できます。

Uマトリックス

黄色の四角は、青色の四角間の距離です。黄色の四角については確かです。周囲の平均または中央値のみを取得する必要があるため、青色の正方形についても確信があります。

だから私の質問は:赤い四角を計算する方法?

上記で引用した前の質問で言及したものを含むいくつかの情報源を見つけました。長方形の U マトリックスについて私が得た最良の説明は次のとおりです。

説明 1 -> この論文では、著者は赤い四角の計算方法を完全には説明していません。周囲の平均を取る必要があることを説明するだけです。これは明確ではなく、私の意見では適切ではありません(以下を参照)

説明 2 -> この論文では、著者は赤い四角を計算する方法を明確に述べていますが、彼らが提示した論理には欠陥があるようです。

上記が適切ではないかもしれない理由の私の説明

説明 1 で述べたように、周囲の平均を取って赤い四角を計算すると、青い四角の計算が直接影響を受けます。たとえば、U-Matrix の青い正方形の数字 1 の値を計算することを検討してください。その周囲の平均を取る場合、距離 (1,2) 、(1,4) および (1,5) が必要です。対応する赤い四角を (1,5) で塗りつぶすと、(2,4) を計算していないため、青い四角 4 の計算は間違っており、同じ赤い四角がそれを持つ場所になるはずです。したがって、(1,5) と (2,4) の加算を 2*(1.414...) で割る式は、平均に属さない成分があるため機能しません。青い正方形 1 の場合、(2,4) の距離部分はそこに属しません。

2 番目の論文の説明を使用してプログラムしましたが、単純なデータ セットに対して生成された U マトリックスは満足のいくものではありません。以下に示すように、特定のノードの周囲の平均距離は、同じデータセットの U マトリックスよりも優れたパフォーマンスを発揮します。(画像は U-Matrix の後に平均が続きます)

Uマトリックス ここに画像の説明を入力

4

2 に答える 2

2

私はあなたが言及した論文を読んでおらず、主に六角形のマップで作業してきましたが、最も合理的な解決策は、赤い四角を黄色の四角の平均として計算することです。これらは隣接しているためです。長方形のマップを使用する場合、対角線の接続はありません。これは、六角形のマップのようになるためです。したがって、黄色の四角は、考慮すべきものです。赤い四角は、U マトリックスで作成されたノードの補間によって作成されたギャップを埋める「偽の」マップ ユニットと考えてください。ちなみに、下層のデータセットのトポロジーを捉えるには、六角形マップの方が優れていると考えられています。

于 2013-10-15T07:03:59.447 に答える
0

ご質問ありがとうございます。赤い四角を「偽の」マップ単位と考えて、黄色の四角の平均値を割り当てることが良い解決策であるという答えに同意します。さらにシンプルに、トレーニング グリッドと同じサイズの距離マップを作成し、正方形に隣接する正方形の平均値を割り当てます。これがminisomによって採用されたソリューションであることがわかりました。便宜上、次のget_distance()関数を参照してください。__doc__

    def distance_map(self):
        """Returns the distance map of the weights.
        Each cell is the normalised sum of the distances between
        a neuron and its neighbours."""
        um = zeros((self._weights.shape[0], self._weights.shape[1]))
于 2019-09-05T14:36:50.603 に答える