観測データの線形変換
平均ベクトルと共分散行列
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
【復習】分散、共分散、共分散行列、標準偏差:
分散:
各データが平均値(期待値)からどれだけ離れて散らばっているかを示すもの
通常平均値とデータの距離の二乗の平均で求める
共分散:
複数のデータ群を考慮した分散で、各データ群の平均とデータ群内の各データの差を掛けあわせて平均を取ったもの
共分散行列:
対角上に分散、それ以外に共分散をもった行列のこと
標準偏差:
分散は符号の影響を排除し、ばらつきの大きさのみを見るため二乗しているもの
標準偏差は元データの単位と同様になるよう、分散の正の平方根を取ったもの
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
平均ベクトル
前提として、観測データを$ d次元の特徴ベクトルを$ x = (x_1, \ ..., \ x_d)^T \in R^d, その確率分布を$ p(x)とします。$ xは各特徴量でデータごとに値が変動するので、確率変数ベクトルとなります。
平均ベクトル$ \muは、各特徴量ごとに計算した平均値を並べて、次のように定義されます。
$ \mu = (\mu_1, \ ..., \ \mu_d)^T = (E\{x_1\}, \ ..., \ E\{x_d\})^T
$ E\{x_i\}は$ i番目の特徴量の期待値を意味していて、次式で定義されます。$ p(x_i)は$ i番目の特徴量を表す確率変数$ x_iの確率分布で、$ p(x)の周辺確率と呼ばれます。
$ \mu_i = E\{x_i\} = \int_{R^d}x_ip(x)dx = \int_{-\infty}^{\infty}x_ip(x_i)dx_i
また、観測データが$ \{x_1, \ ..., \ x_N\}のように$ N個与えられている場合、平均ベクトルは次のようになります。
$ \mu = \overline{x} = \frac{1}{N}\sum_{i=1}^Nx_i
共分散行列
観測データ$ xは平均ベクトル$ \muの周囲に分布し、この分布の広がり方を共分散行列$ \Sigmaで表すことができます。$ sigma_{ii} = \sigma^2と表し、$ \sigma_iを標準偏差といいます。
$ \Sigma = Var\{x\} = E\{(x - \mu)(x - \mu)^T\} = (\sigma_{ij}) = \left\{\begin{array}{ll} i = j \ 分散 \\ i \neq j \ 共分散 \end{array}\right.
また、共分散行列の各要素$ \sigma_ijの計算法は、$ xが連続量の場合、
$ \sigma = E\{(x_i - \mu_i)(x_j - \mu_j)\} = \int\int (x_i - \mu_i)(x_j - \mu_j)p(x_i, x_j)dx_idx_j
のように、$ i番目と$ j番目の特徴量の同時確率を用いて計算されます。
観測データが$ N個与えられている場合は、$ n番目のデータの$ i番目の特徴量を$ x_{ni}, $ j番目の特徴量を$ x_njで表せば、共分散は次のようにあらわされます。
$ \sigma_{ij} = E\{(x_i - \mu_i)(x_j - \mu_j)\} = \frac{1}{N}\sum_{n=1}^N(x_{ni} - \mu_i)(x_{nj} - \mu_j)
相関係数
$ i番目と$ j番目の特徴間の相関係数$ \rho_{ij}は、それぞれの標準偏差$ \sigma_iと$ \sigma_j, 共分散$ \sigma_{ij}用いて、次のように定義され、$ -1 \leq \rho_{ij} \leq 1の範囲の値を取ります。
$ \rho_{ij} = \frac{\sigma_{ij}}{\sigma_i\sigma_j} \ (-1 \leq \rho_{ij} \leq 1)
$ x_iが$ \mu_iより大きい、もしくは小さい時、$ x_jも$ \mu_jより大きい、もしくは小さくなる場合は正の相関となり、逆に$ x_jが$ \mu_jより小さい、もしくは大きくなる場合は負の相関となります。規則性がない場合、相関係数は0となります。
観測データの標準化
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
【復習】線形変換:
線形変換(一次変換)とは、線形写像のうち、特に同一次元のベクトル間の変換のこと。
以下の条件が満たされるとき成立する。
$ n次元ベクトル空間$ Rに含まれる任意のベクトル$ xと$ y及び、任意の実数$ kについてが次式が満たされる。
$ f(x+y) = f(x) + f(y)
$ f(kx) = kf(x)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
標準化は、個々の特徴の平均を$ 0, 分散を$ 1にすることで、学習データを構成する個々の特徴の測定単位の影響を取り除くことができます。
一般に、特徴$ xの線形変換を$ y = ax + bとすると、$ yの平均$ E\{y\}と分散$ Var\{y\}は次式のようになります。
$ E\{y\} = E\{ax + b\} = aE\{x\} + b = a\mu + b
$ Var\{y\} = E\{(y - E\{y\})^2\} = E\{(ax + b - a\mu - b)^2\} = E\{(a(x - \mu))^2\} = E\{a^2(x - \mu)^2\} = a^2Var\{x\} = a^2\sigma^2
ここで、これをもとに$ xの平均$ \muと標準偏差$ \sigmaを用いた線形変換$ z = \frac{x - \mu}{\sigma} = \frac{x}{\sigma} - \frac{\mu}{\sigma}を考えます。この式を先ほどの$ y = ax + bと照らし合わせると、$ a = \frac{1}{\sigma}, $ b = -\frac{\mu}{\sigma}なので、下記に示すように$ zの平均は$ 0, 分散は$ 1となります。
$ E\{z\} = \frac{\mu}{\sigma} - \frac{\mu}{\sigma} = 0
$ Var\{z\} = (\frac{1}{\sigma})^2\sigma^2 = 1
つまり、標準化とは元のデータの平均と標準偏差を用いて$ zのような式で線形変換することをいいます。標準化するとデータの中心が原点に移動します(中心化)。
https://gyazo.com/85d9d0d75958c7b6cff3986f2b2e3ac0https://gyazo.com/55596e9db6eb222322d4e1c72807842b
観測データの無相関化
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
【復習】固有値問題、実対称行列、正規直交基底、対角行列、対角化:
固有値問題:
ある線形空間$ R上の線形変換$ Aに対して、$ Ax = \lambda x($ xはベクトル、$ \lambdaは実数、$ x \neq 0)を満たすベクトル$ xと実数$ \lambdaを求めること。ベクトル$ xを$ Aの固有ベクトル、実数$ \lambdaを$ Aの固有値という
実対称行列:
要素が実数で対称な行列
正規直交基底:
それぞれのベクトルの大きさが$ 1(単位ベクトル)で、互いのベクトルが直交する(内積が$ 0)のベクトルの組合わせ
対角行列:
対角成分以外が$ 0の正方行列
対角化
正方行列を線形変換することで、元の行列と相似な対角行列にすること
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
観測データの特徴間から相関を無くす処理を無相関化といいます。
観測データから作られた共分散行列$ \Sigmaの固有値問題$ \Sigma s = \lambda sを考えます。
そしてこれを解いて得られた$ d個の固有値を$ \lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_d, 対応する固有ベクトルを$ s_1, s_2, \cdots, s_dと定義します。これらの固有ベクトルを並べて行列$ Sを定義します。
$ S = (s_1, \ s_2, \ \cdots, \ s_d)
共分散行列は実対称行列なので、各固有値は実数で固有ベクトルは互いに直交します。とくに、共分散行列の固有ベクトルは長さが$ 1の正規直交基底となります。
行列$ Sは正規直交行列となるので、$ Sによる線形変換は元の座標系を固有ベクトル方向に回転します。そのため、行列$ Sは回転行列とよばれます。
また、正規直交行列$ Sでは、$ S^T = S^{-1}が成り立つことが下記の通り証明されています。
$ \begin{pmatrix}s_1^T\\ \cdot \\ \cdot \\ \cdot \\s_d^T\end{pmatrix}(s_1, \cdots, s_d) = I = S^{-1}S
観測データ$ xを$ S^Tで線形変換することを考えます。線形変換されたデータは、$ y = S^Txで与えられ、その平均値と共分散行列は、下記のようになります。
$ E\{y\} = E\{S^Tx\} = S^T\mu
$ Var\{y\} = E\{(y - E\{y\})(y - E\{y\})^T\} = E\{(S^Tx - S^T\mu)(S^Tx - S^T\mu)^T\} = E\{S^T(x - \mu)(x - \mu)^TS\}
$ = S^{-1}E\{(x - \mu)(x - \mu)^T\}S = S^{-1}\Sigma S
$ S^{-1}\Sigma S = \Lambda = \begin{pmatrix}\lambda_1 & 0 & \cdots & 0\\ 0 & \lambda_2 & \cdots & 0\\ \cdot& \cdot & \cdot & \cdot\\ \cdot & \cdot & \cdot & \cdot \\0 & 0 & \cdots & \lambda_d \end{pmatrix}
このように、共分散行列の固有ベクトルを並べた正規直交行列は、元のデータの共分散行列を対角化するので、各固有値は対応する固有ベクトル方向の分散となります。
また、変換された特徴間の相互相関(対角化行列の共分散の部分)が$ 0になるので、これを観測データの無相関化といいます。
https://gyazo.com/51a93d63575a21be8ffa6a37d747b49chttps://gyazo.com/551b86d2b53c8e85cd5ec5e2dc6d76f6
白色化
共分散行列$ \Sigmaを対角化することで特徴間の相関はなくなりますが、固有値相当分、特徴量の標準偏差に違いが残ります。この違いをなくして、すべての特徴量の標準偏差を$ 1に正規化し、かつ、中心化を行う操作を白色化(whitening)といいます。
これは、無相関化した結果を標準化したようなイメージを持つと良いです。 つまり、白色化するとデータは各次元間の相関がなくなった上に平均が 0 で標準偏差が 1 になります。
手法として、まずは、無相関化の時と同様に中心化したデータの共分散行列について固有値問題を解いて回転ベクトル$ Sを手に入れます。 次に、回転ベクトルの逆行列と共分散行列と回転行列の内積を計算して、これを$ \lambdaとおきます。
$ S^{-1}\Sigma S = \Lambda
続いて$ \Lambdaの逆行列の平方根と、回転行列と、中心化したデータの内積を計算して$ uとおきます。白色化後の座標系を$ u = (u_1, ...., u_d)^Tとすると、$ uは以下で表されます。
$ u = \Lambda^{-\frac{1}{2}}S^T(x - \mu)
https://gyazo.com/92338802494b1c93eb595fbaf21e553ehttps://gyazo.com/b1f4e9aef3ce14cf94efeca7fe8a2167
$ uの共分散行列は単位行列になります。以下のようにして求めることができます。
$ E\{u\} = \Lambda^{-\frac{1}{2}}S^T(E\{x\} - \mu) = \Lambda^{-\frac{1}{2}}S^T(\mu - \mu) = 0
$ Var\{u\} = E\{uu^T\} = E\{\Lambda^{-\frac{1}{2}}S^T(x - \mu)(x - \mu)^TS\Lambda^{-\frac{T}{2}}\} = \Lambda^{-\frac{1}{2}}S^{-1}E\{(x - \mu)(x - \mu)^T\}S\Lambda^{-\frac{T}{2}}
$ = \Lambda^{-\frac{1}{2}}S^{-1}\Sigma S\Lambda^{-\frac{T}{2}}
$ S^{-1}\Sigma S = \Lambda, $ \Lambda^{-\frac{T}{2}} = \Lambda^{-\frac{1}{2}} より、
$ Var\{u\} = \Lambda^{-\frac{1}{2}}\Lambda\Lambda^{-\frac{T}{2}} = I