いくつかの信号をサンプリングし、それぞれのサンプルのベクトルを構築したとしましょう。これらのベクトルの (非) 類似度を計算する最も効率的な方法は何ですか? サンプリングのオフセットはカウントしてはならないことに注意してください。たとえば、sin 信号と cos 信号のサンプル ベクトルは類似していると見なす必要があります。
他のベクトルの単位を「ローリング」し、各ロール ポイントのユークリッド距離を計算し、最終的に最適な一致 (最小距離) を選択することで、これを行う簡単な方法があります。私の唯一の目標は、ベクトルプールからの入力信号の最も類似したサンプルベクトルを見つけることであるため、このソリューションはうまく機能します。
ただし、ベクトルの次元が大きくなると、上記の解決策も非常に非効率的になります。N 次元ベクトルの「非順次ベクトル マッチング」と比較すると、順次マッチングでは N 倍のベクトル距離計算が必要になります。
異なるオフセットを持つ 2 つのシーケンスを比較するためのより高い/より優れた数学/アルゴリズムはありますか?
このユースケースは、SOM を使用したシーケンス類似性の視覚化です。
編集:各ベクトルの積分とエントロピーを比較するのはどうですか? どちらも「シーケンスセーフ」(= 時不変?) であり、計算が非常に高速ですが、考えられるすべての信号を互いに区別するには、それらだけで十分であるとは思えません。これらに加えて使用できるものは他にありますか?
EDIT2: Victor Zamanianの返信は直接の答えではありませんが、そうかもしれないという考えを私に与えました. 解決策は、フーリエ変換係数を計算し、それらをサンプル ベクトルに挿入することによって元の信号をサンプリングすることです。最初の要素 (X_0) は信号の平均または「レベル」であり、次の (X_n) を直接使用して他のサンプル ベクトルとの類似性を比較できます。FT で計算された係数が多いほど、FT された信号がより正確に表現されるため、n が小さいほど、類似度の計算に影響を与えるはずです。これにより、おまけの質問が表示されます。
FT-6 でサンプリングされたベクトルがあるとしましょう (値は空から落ちてきました)
- X = {4、15、10、8、11、7}
- Y = {4、16、9、15、62、7}
これらのベクトルの類似値は次のように計算できます: |16-15| + (|10 - 9| / 2 ) + (|8 - 15| / 3 ) + (|11-62| / 4 ) + (|7-7| / 5 )
それらの太字のものはおまけの質問です。各FT係数が他の係数との関係で類似性にどの程度影響するかを知るための係数/他の方法はありますか?