最終更新日: 2023/4/5 Markdown 中の数学記号の表示異常を修正しました
この記事は若绾で最初に公開されました。転載する際は出典を明記してください。
序論#
機械学習やデータサイエンスに関わる際、ベクトル空間の距離は非常に重要な概念です。多くの機械学習アプリケーションでは、データポイントは通常ベクトル形式で表されます。したがって、ベクトル間の距離を計算し比較する方法を理解することは非常に重要です。ベクトル空間の距離は、クラスタリング、分類、次元削減など、さまざまな問題の解決に使用することができます。特にフェデレーテッドラーニングプロジェクトでは、ベクトル空間の距離は重要です。なぜなら、異なるデバイスやデータソースのベクトルを比較し、共同トレーニングに使用するために十分に類似しているかどうかを判断するのに役立つからです。
本記事では、ユークリッド距離、マンハッタン距離、チェビシェフ距離など、ベクトル空間距離の基本的な概念について説明します。これらの距離尺度の計算方法、利点、欠点、およびどの距離尺度を使用するかについても議論します。また、マハラノビス距離やコサイン類似度などのより高度な距離尺度の手法についても紹介し、さまざまな状況での適用性についても探求します。この記事がベクトル空間距離をより理解し、フェデレーテッドラーニングプロジェクトにどのように適用するかをサポートできれば幸いです。
マンハッタン距離(Manhattan distance)#
マンハッタン距離(L1 ノルム)は、2 つのベクトル X と Y の距離を測定する方法の一つであり、その式は以下の通りです:
$D_{M}(X,Y) = \sum_{i=1}^{n}|x_{i} - y_{i}|$
ここで:
-
$D_{M}(X,Y) $ はベクトル X と Y のマンハッタン距離を表します。
-
$x_{i}$ と $y_{i}$ はそれぞれベクトル X と Y の第 i 成分を表します。
-
$n$ はベクトルの成分数です。
マンハッタン距離は、2 つのベクトルの成分間の絶対差の総和を計算することで、それらの距離を測定します。その名前は、マンハッタンの通りの格子状の配置に由来し、2 点間の距離が水平方向と垂直方向の距離の合計であることによります。ユークリッド距離と比較して、マンハッタン距離は高次元空間でのアプリケーションに適しています。なぜなら、高次元空間では、2 点間の距離を水平方向と垂直方向の距離で計算することがより容易だからです。マンハッタン距離は、クラスタリング、分類、画像や音声認識における特徴抽出など、機械学習やデータサイエンスでも広く使用されています。
キャンベラ距離 (Canberra Distance)#
キャンベラ距離は、2 つのベクトルの類似性を測定するための距離尺度であり、データ分析や情報検索などでよく使用されます。その計算式は以下の通りです:
$D_{c}(X,Y) = \sum_{i=1}^{n}\frac{|x_{i} - y_{i}|}{|x_{i}| + |y_{i}|}$
ここで:
-
$D_{c}(X,Y)$ はベクトル X と Y のキャンベラ距離を表します。
-
$x_{i}$ と $y_{i}$ はそれぞれベクトル X と Y の第 i 成分を表します。
-
$n$ はベクトルの成分数です。
キャンベラ距離は、ベクトルの成分間の差の絶対値とそれらの絶対値の和の比を使用して距離を計算する方法です。ベクトルに多くの 0 値の成分が存在する場合、分母が非常に小さくなる可能性があり、距離の不安定性を引き起こすことに注意が必要です。キャンベラ距離は、分類、クラスタリング、推薦システム、情報検索など、機械学習やデータサイエンスでも広く使用されています。
ユークリッド距離 (Euclidean distance)#
ユークリッド距離は、一般的なベクトル距離の測定方法であり、クラスタリング、分類、回帰など、機械学習やデータサイエンスのさまざまなタスクで広く使用されています。
ユークリッド距離は、2 つのベクトル間の距離を計算するために使用されます。2 つのベクトル X と Y があり、それぞれ n 個の成分を含んでいるとします。その場合、ユークリッド距離は以下の式で計算できます:
$D_{E}(X,Y) = \sqrt{\sum_{i=1}^{n}(x_{i} - y_{i})^2}$
ここで:
-
$D_{E}(X,Y)$ はベクトル X と Y のユークリッド距離を表します。
-
$x_{i}$ と $y_{i}$ はそれぞれベクトル X と Y の第 i 成分を表します。
-
$n$ はベクトルの成分数です。
ユークリッド距離の計算方法は、2 つのベクトルの成分間の差の 2 乗を合計し、その平方根を取ることで行われます。その名前は、古代ギリシャの数学者ユークリッドに由来し、平面幾何学でも広く使用されています。機械学習やデータサイエンスでは、ユークリッド距離は通常、特徴空間でのサンプル間の類似性や距離を計算するために使用されます。なぜなら、ユークリッド距離は特徴空間で近くにあるサンプルを識別するのに役立つからです。
標準化ユークリッド距離 (Standardized Euclidean distance)#
標準化ユークリッド距離は、2 つのベクトル間の距離を測定するための尺度であり、ベクトルの成分の変動性を考慮します。これは、異なる尺度やスケールを持つ成分、および成分の変動性が重要な場合に使用されます。
計算式は以下の通りです:
$D_{SE}(X,Y) = \sqrt{\sum_{i=1}^{n}\frac{(x_{i} - y_{i})^2}{s_{i}^2}}$
ここで:
-
$D_{SE}(X,Y)$ はベクトル X と Y の標準化ユークリッド距離を表します。
-
$x_{i}$ と $y_{i}$ はそれぞれベクトル X と Y の第 i 成分を表します。
-
$n$ はベクトルの成分数です。
-
$s_{i}$ はベクトルの第 i 成分の標準偏差です。
標準化ユークリッド距離は、ベクトルの成分の変動性を考慮するため、異なる尺度やスケールを持つ成分、および成分の変動性が重要な場合に使用されます。ユークリッド距離と同様の計算方法を使用しますが、差の計算時に成分の標準偏差で割ることで標準化を行います。
平方ユークリッド距離 (Squared Euclidean distance)#
平方ユークリッド距離は、2 つのベクトル間の距離を計算するための尺度であり、計算式は以下の通りです:
$D_{SE}^2(X,Y) = \sum_{i=1}^{n}(x_{i} - y_{i})^2$
ここで:
-
$D_{SE}^2 (X,Y)$ はベクトル X と Y の平方ユークリッド距離を表します。
-
$x_{i}$ と $y_{i}$ はそれぞれベクトル X と Y の第 i 成分を表します。
-
$n$ はベクトルの成分数です。
平方ユークリッド距離は、成分間の差の 2 乗の和を計算することで、2 つのベクトル間の距離を測定します。ユークリッド距離と比較して、平方ユークリッド距離は平方根の計算を避けるため、計算がより効率的です。平方ユークリッド距離は、クラスタリング、分類、回帰など、機械学習やデータサイエンスでも広く使用されています。
ただし、平方ユークリッド距離は成分の尺度や単位を無視するため、ベクトル間の距離を測定するのに適していない場合があります。その場合は、標準化ユークリッド距離、マンハッタン距離、チェビシェフ距離など、他の距離尺度を使用することができます。
コサイン類似度(Cosine Similarity)#
コサイン類似度は、2 つのベクトルの類似性を測定するための尺度であり、計算式は以下の通りです:
$cos(\theta) = \frac{X \cdot Y}{\left| X\right| \left| Y\right|} = \frac{\sum\limits_{i=1}^{n} x_i y_i}{\sqrt{\sum\limits_{i=1}^{n} x_i^2} \sqrt{\sum\limits_{i=1}^{n} y_i^2}}$
ここで:
-
$cos (\theta)$ はベクトル X と Y のコサイン類似度を表します。
-
$X \cdot Y$ はベクトル X と Y の内積を表します。
-
$\left| X\right|$ と $\left| Y\right|$ はそれぞれベクトル X と Y のモジュラスを表します。
-
$x_i$ と $y_i$ はそれぞれベクトル X と Y の第 i 成分を表します。
-
$n$ はベクトルの成分数です。
コサイン類似度は、ベクトル間の角度を考慮した類似度尺度です。自然言語処理や情報検索などの分野では、テキストの類似性を測定するためによく使用されます。なぜなら、テキストはベクトルとして表現することができ、成分の大きさは重要ではないからです。他の距離尺度と比較して、コサイン類似度の計算はより簡単であり、パフォーマンスも良いです。例えば、2 つのベクトルが完全に同じ場合、コサイン類似度は 1 になります。2 つのベクトルの角度が 90 度の場合、コサイン類似度は 0 になります。2 つのベクトルの方向が逆の場合、コサイン類似度は - 1 になります。
ただし、コサイン類似度はベクトルの成分間の大きさの差異を考慮しないため、一部のデータセットには適用できない場合があります。
チェビシェフ距離#
チェビシェフ距離は、2 つのベクトル間の距離を測定するための尺度であり、計算方法は、2 つのベクトルの成分の差の絶対値の最大値を計算することです。2 つのベクトル X と Y があり、それぞれ n 個の成分を含んでいるとします。その場合、チェビシェフ距離は以下の式で計算できます:
$D_{C}(X,Y) = max_{i=1}^{n}|x_{i} - y_{i}|$
ここで:
-
$D_{C}(X,Y)$ はベクトル X と Y のチェビシェフ距離を表します。
-
$x_{i}$ と $y_{i}$ はそれぞれベクトル X と Y の第 i 成分を表します。
-
$n$ はベクトルの成分数です。
チェビシェフ距離は、ベクトル間の距離を測定するために使用されます。計算方法はマンハッタン距離と似ていますが、差の計算時には絶対値の最大値を取るため、ベクトル間の差異をよりよく捉えることができます。チェビシェフ距離は、画像処理、信号処理、時系列分析など、機械学習やデータサイエンスのさまざまな領域でも広く使用されています。
ただし、チェビシェフ距離は外れ値の影響を受ける可能性があります。なぜなら、差の絶対値の最大値を計算するため、外れ値が存在する場合、チェビシェフ距離は正確な距離尺度を提供しない可能性があるからです。
マハラノビス距離#
マハラノビス距離は、2 つのベクトル間の距離を測定するための尺度であり、各成分間の相関性を考慮しています。2 つのベクトル X と Y があり、それぞれ n 個の成分を含んでいるとします。その場合、マハラノビス距離は以下の式で計算できます:
$D_{M}(X,Y) = \sqrt{(X-Y)^T S^{-1} (X-Y)}$
ここで:
-
$D_{M}(X,Y)$ はベクトル X と Y のマハラノビス距離を表します。
-
$X$ と $Y$ は長さ n のベクトルです。
-
$S$ は $n \times n$ の共分散行列です。
マハラノビス距離の計算式はユークリッド距離と似ていますが、各成分間の相関性を考慮しています。共分散行列が単位行列の場合、マハラノビス距離はユークリッド距離と等価になります。ユークリッド距離と比較して、マハラノビス距離は各成分間の相関性をよりよく捉えることができるため、金融リスク管理、音声認識、画像認識など、相関性を考慮する必要があるいくつかの領域で広く使用されています。
ただし、マハラノビス距離は各成分間が多変量正規分布に従い、共分散行列が正定値であることを要求します。成分間がこれらの条件を満たさない場合、マハラノビス距離は正確な距離尺度を提供しない可能性があります。また、マハラノビス距離は共分散行列の推定誤差の影響を受けます。実際の応用では、共分散行列をサンプルデータから推定する必要があるため、サンプル数とサンプルの品質はマハラノビス距離の正確性に影響を与えます。