からっぽのしょこ

読んだら書く!書いたら読む!同じ事は二度調べ(たく)ない

マハラノビス距離の性質の導出

はじめに

 機械学習で登場する確率分布について色々な角度から理解したいシリーズです。

 この記事では、マハラノビス距離の性質を数式を使って解説します。

【前の内容】

www.anarchive-beta.com

【他の内容】

www.anarchive-beta.com

【今回の内容】

マハラノビス距離の性質の導出

 マハラノビス距離(Mahalanobis' distance)の性質を導出します。

マハラノビス距離の定義式

 まずは、マハラノビス距離の定義を数式で確認します。

  D 次元の変数を  \mathbf{x}、平均ベクトルを  \boldsymbol{\mu}、分散共分散行列を  \boldsymbol{\Sigma} とします。

 \displaystyle
\mathbf{x}
    = \begin{bmatrix}
          x_1 \\
          x_2 \\
          \vdots \\
          x_D
      \end{bmatrix}
,\ 
\boldsymbol{\mu}
    = \begin{bmatrix}
          \mu_1 \\
          \mu_2 \\
          \vdots \\
          \mu_D
      \end{bmatrix}
,\ 
\boldsymbol{\Sigma}
    = \begin{bmatrix}
          \sigma_1^2 & \sigma_{1,2} & \cdots & \sigma_{1,D} \\
          \sigma_{2,1} & \sigma_2^2 & \cdots & \sigma_{2,D} \\
          \vdots & \vdots & \ddots & \vdots \\
          \sigma_{D,1} & \sigma_{D,2} & \cdots & \sigma_D^2
      \end{bmatrix}

  \mu_d x_d の平均、 \sigma_d x_d の標準偏差、 \sigma_d^2 = \sigma_{d,d} x_d の分散、 \sigma_{i,j} = \sigma_{j,i} x_i, x_j の共分散です。平均パラメータ  \mu_d は実数、分散パラメータ  \sigma_d^2 は正の実数、共分散パラメータ  \sigma_{i,j} は実数、また  \boldsymbol{\Sigma} は正定値行列を満たす必要があります。

 点  \boldsymbol{\mu} を中心とする点  \mathbf{x} のマハラノビス距離は、精度行列(分散共分散行列の逆行列)を用いた二次形式のルートで定義されます。

 \displaystyle
\Delta
    = \sqrt{
          (\mathbf{x} - \boldsymbol{\mu})^{\top}
          \boldsymbol{\Sigma}^{-1}
          (\mathbf{x} - \boldsymbol{\mu})
      }

 変数とパラメータの関係やパラメータと二次形式の関係については「変数ベクトルと平均ベクトル・分散共分散行列の関係の導出 - からっぽのしょこ」を参照してください。

ユークリッド距離の定義式

 続いて、ユークリッド距離(Euclidean distance)の定義を数式で確認します。

 点  \boldsymbol{\mu} を中心とする点  \mathbf{x} のユークリッド距離は、偏差の2乗和(偏差ベクトルの内積)のルートで定義されます。

 \displaystyle
\begin{aligned}
\Delta_{\mathrm{euclid}}
   &= \sqrt{
          (\mathbf{x} - \boldsymbol{\mu})^{\top}
          (\mathbf{x} - \boldsymbol{\mu})
      }
\\
   &= \sqrt{
          \sum_{d=1}^D
              (x_d - \mu_d)^2
      }
\end{aligned}


マハラノビス距離の性質

 次は、マハラノビス距離の性質を導出します。

ユークリッド距離との関係

 共分散が  \sigma_{i,j} = 0 (無相関)で分散が  \sigma_d^2 = 1 のとき、分散共分散行列は単位行列  \mathbf{I} になります。

 \displaystyle
\boldsymbol{\Sigma}
    = \begin{bmatrix}
          1 & 0 & \cdots & 0 \\
          0 & 1 & \cdots & 0 \\
          \vdots & \vdots & \ddots & \vdots \\
          0 & 0 & \cdots & 1
      \end{bmatrix}
    = \mathbf{I}

 単位行列の逆行列は単位行列  \mathbf{I}^{-1} = \mathbf{I} なので、精度行列(分散共分散行列の逆行列)も単位行列になります。

 \displaystyle
\boldsymbol{\Sigma}^{-1}
    = \mathbf{I}

 このとき、マハラノビス距離の2乗(二次形式)は、偏差の2乗和になります。

 \displaystyle
\begin{aligned}
\Delta_{\mathrm{mahal}}^2
   &= (\mathbf{x} - \boldsymbol{\mu})^{\top}
      \mathbf{I}^{-1}
      (\mathbf{x} - \boldsymbol{\mu})
\\
   &= \begin{bmatrix}
          x_1 - \mu_1 & x_2 - \mu_2 & \cdots & x_D - \mu_D
      \end{bmatrix}
      \begin{bmatrix}
          1 & 0 & \cdots & 0 \\
          0 & 1 & \cdots & 0 \\
          \vdots & \vdots & \ddots & \vdots \\
          0 & 0 & \cdots & 1
      \end{bmatrix}
      \begin{bmatrix}
          x_1 - \mu_1 \\
          x_2 - \mu_2 \\
          \vdots \\
          x_D - \mu_D
      \end{bmatrix}
\\
   &= \begin{bmatrix}
          x_1 - \mu_1 & x_2 - \mu_2 & \cdots & x_D - \mu_D
      \end{bmatrix}
      \begin{bmatrix}
          x_1 - \mu_1 \\
          x_2 - \mu_2 \\
          \vdots \\
          x_D - \mu_D
      \end{bmatrix}
\\
   &= (x_1 - \mu_1)^2
      + (x_2 - \mu_2)^2
      + \cdots
      + (x_D - \mu_D)^2
\\
   &= \sum_{d=1}^D
          (x_d - \mu_d)^2
\end{aligned}

 よって、マハラノビス距離の式は、ユークリッド距離の式になります。

 \displaystyle
\begin{aligned}
\Delta_{\mathrm{mahal}}
   &= \sqrt{
          (\mathbf{x} - \boldsymbol{\mu})^{\top}
          \mathbf{I}^{-1}
          (\mathbf{x} - \boldsymbol{\mu})
      }
\\
   &= \sqrt{
          \sum_{d=1}^D
              (x_d - \mu_d)^2
      }
    = \Delta_{\mathrm{euclid}}
\end{aligned}

 分散共分散行列が単位行列のとき、マハラノビス距離とユークリッド距離が一致します。
 マハラノビス距離とユークリッド距離の関係については「【R】分散共分散行列とユークリッド距離・マハラノビス距離の関係の可視化 - からっぽのしょこ」も参照してください。

平均パラメータとの関係

 精度行列(分散共分散行列の逆行列)の要素を  \lambda_{i,j} で表すと、二次形式は次の式になりました。

 \displaystyle
\begin{aligned}
\Delta^2
   &= (\mathbf{x} - \boldsymbol{\mu})^{\top}
      \boldsymbol{\Sigma}^{-1}
      (\mathbf{x} - \boldsymbol{\mu})
\\
   &= \sum_{i=1}^D \sum_{j=1}^D
          (x_i - \mu_i) \lambda_{i,j} (x_j - \mu_j)
\end{aligned}

 詳しくは「変数ベクトルと平均ベクトル・分散共分散行列の関係の導出」を参照してください。

 さらに、変数が平均ベクトル  \mathbf{x} = \boldsymbol{\mu} のとき、二次形式は

 \displaystyle
\begin{aligned}
\sum_{i=1}^D \sum_{j=1}^D
    (x_i - \mu_i) \lambda_{i,j} (x_j - \mu_j)
   &= \sum_{i=1}^D \sum_{j=1}^D
          (\mu_i - \mu_i) \lambda_{i,j} (\mu_j - \mu_j)
\\
   &= \sum_{i=1}^D \sum_{j=1}^D
          0 \lambda_{i,j} 0
\\
   &= 0
\end{aligned}

となります。全ての偏差が0になり消えます。
 よって、平均ベクトルの点  \boldsymbol{\mu} のマハラノビス距離は  \Delta = \sqrt{0} = 0 になり、 \boldsymbol{\mu} は中心の座標と言えます。

標準偏差パラメータとの関係

 共分散が  \sigma_{i,j} = 0 (無相関)のとき、分散共分散行列は対角行列  \mathrm{diag}(\cdot) になります。

 \displaystyle
\boldsymbol{\Sigma}
    = \begin{bmatrix}
          \sigma_1^2 & 0 & \cdots & 0 \\
          0 & \sigma_2^2 & \cdots & 0 \\
          \vdots & \vdots & \ddots & \vdots \\
          0 & 0 & \cdots & \sigma_D^2
      \end{bmatrix}
    = \mathrm{diag}(\sigma_1^2, \sigma_2^2, \cdots, \sigma_D^2)

 このとき、二次形式は次の式になりました。

 \displaystyle
\begin{aligned}
\Delta^2
   &= (\mathbf{x} - \boldsymbol{\mu})^{\top}
      \mathrm{diag}(\sigma_1^2, \sigma_2^2, \cdots, \sigma_D^2)^{-1}
      (\mathbf{x} - \boldsymbol{\mu})
\\
   &= \sum_{d=1}^D
          \frac{(x_d - \mu_d)^2}{\sigma_d^2}
\end{aligned}

 詳しくは「変数ベクトルと平均ベクトル・分散共分散行列の関係の導出」を参照してください。

 さらに、変数が平均ベクトル  \boldsymbol{\mu} の1つの次元(要素)のみに標準偏差  \sigma_d を加えたベクトル  \mathbf{x} = (\mu_1, \cdots, \mu_d+\sigma_d, \cdots, \mu_D) のとき、二次形式は

 \displaystyle
\begin{aligned}
\sum_{d'=1}^D
    \frac{(x_{d'} - \mu_{d'})^2}{\sigma_{d'}^2}
   &= \frac{(x_1 - \mu_1)^2}{\sigma_1^2}
      + \cdots
      + \frac{(x_d - \mu_d)^2}{\sigma_d^2}
      + \cdots
      + \frac{(x_D - \mu_D)^2}{\sigma_D^2}
\\
   &= \frac{(\mu_1 - \mu_1)^2}{\sigma_1^2}
      + \cdots
      + \frac{(\mu_d + \sigma_d - \mu_d)^2}{\sigma_d^2}
      + \cdots
      + \frac{(\mu_D - \mu_D)^2}{\sigma_D^2}
\\
   &= \frac{0}{\sigma_1^2}
      + \cdots
      + \frac{\sigma_d^2}{\sigma_d^2}
      + \cdots
      + \frac{0}{\sigma_D^2}
\\
   &= 1
\end{aligned}

となります。 \sigma_d を加えた項は1になり、それ以外の項は0になり消えます。
 よって、中心から標準偏差  \sigma_d 1つ分離れた点のマハラノビス距離は  \Delta = \sqrt{1} = 1 になります。

 この記事では、マハラノビス距離を数式で確認しました。次からの記事では、図で確認します。

参考文献

おわりに

 多次元ガウス分布の本編が進まぬまま脱線シリーズがまだ続きます。

  • 2024.08.15:加筆修正しました。

 この記事は、分散共分散行列シリーズの記事「分散共分散行列とユークリッド距離・マハラノビス距離の関係の導出」だったのですが、マハラノビス距離シリーズの記事「マハラノビス距離の性質の導出」に鞍替えしました。分散共分散行列シリーズは多次元ガウス分布シリーズの補足シリーズで、マハラノビス距離シリーズは多次元ガウス分布の派生シリーズとしてこの度誕生しました。マハラノビス距離シリーズが確率分布シリーズに含まれてるのも据わりが悪いので、独立させて距離シリーズでも作ろうかと思いますが、はてさて。
 意訳:記事のファイル管理やカテゴリ管理って面倒臭い。

 何度目にしても"マハラノビス"の文字列を正確に覚えられません。正しくても打ち間違ってるように見えます。アダマール積とかもね。

【次の内容】

www.anarchive-beta.com

www.anarchive-beta.com