0
0

More than 3 years have passed since last update.

DeepRunning ~Level4.4.1~

Last updated at Posted at 2020-07-28

Level4.機械学習講座(理論と実践)

4-4.主成分分析

4-4-1.主成分分析とは

  ●予測や分類とは異なるタスクで「次元圧縮」をする。
  ●多変量データの持つ構造をより少数個の指標に圧縮する
   要するに高次元のものを、なるべく情報量を減らさずに低次元に圧縮すること。
   ⇒ 1000次元のものを10次元にする。
     ⇒ 高次元のものを目で見て傾向をつかむことができる。
  ●少数変数を利用した分析や可視化(2・3次元まで)が可能。
   4次元以上になると人間が理解できない。

4-4-2.主成分分析の式

  【学習データ】
    i番目のデータの1個目の要素、2個目の要素・・・とm次元まである。

x_i=(x_{i1},x_{i2},・・・,x_{im}) \in \mathbb R^m

  【平均(ベクトル)】

\bar x = \frac{1}{n}\sum^{n}_{i=1} x_i

  【データ行列】
    原点まわりで分散するようにしてあげる。

\bar X=(x1 - \bar x,・・・,x_n - \bar x)^T \in \mathbb R^{n×m}

  【分散共分散行列】
    $\bar X$さえ求まれば計算できる。

\sum = Var(\bar X) = \frac{1}{n}\bar X^T \bar X

  【線形変換後のベクトル】
    jは射影軸のインデックスであり、3次元を2次元に圧縮ならj=2
    3次元を1次元に圧縮ならj=1となる。

s_j = (s_{1j},・・・,s_{nj})^T = \bar X a_j  a_j \in \mathbb R^m

4-4-3.線形変換後の分散

  ●係数ベクトルが変われば線形変換後の値が変化する。
  ●情報量を分散の大きさと捉える。
  ●線形変換後の変数の分散が最大となる射影軸を探索すること。

s_j = (s_{1j},・・・,s_{nj})^T = \bar X a_j  a_j \in \mathbb R^m

  で、元の空間にある分散$\bar X$に対して、$a$で線形結合する。
  $a$が変われば線も変わる。

  【線形変換後の分散】
    $s_j$を最大にしたい。

Var(s_j) = \frac{1}{n}s_j^Ts_j = \frac{1}{n}(\bar Xa_j)^T(\bar Xa_j)=\frac{1}{n}a_j^T\bar X^T\bar Xa_j = a_j^TVar(\bar X)a_j

4-4-4.制約付き最適化問題を解く

  ●ノルムが1となる制約を入れる。⇒そうしないと無限に解が出てくる。
   例えば、ベクトル(1,1)とベクトル(2,2)は同じ向きなので解が無限に出る。

  【目的関数】

arg \  max_{a \in \mathbb R^m} \ a_j^T Var(\bar X)a_j

  【制約条件】
    ノルムが1になるもののみを考える。

a_j^Ta_j = 1

  ●制約付き最適化問題の解き方
   ラグランジュ関数を最大にする係数ベクトルを探索(微分して0になる点)

  【ラグランジュ関数】
    目的関数 - 制約条件

E(a_j) = a^T_jVar(\bar X)a_j - λ(a^T_ja_j - 1)

   やることは、ラグランジュ関数が作れたら微分し、=0を解いてあげる。
   $a$という式があって、$\hat a$という解が1つ出てくる。
   $\hat a$という解は、上記のような制約付き最適化問題の解と同じになっている。

4-4-5.最適解を求める

  ●ラグランジュ関数を微分して最適解を求める。
   ⇒ 元のデータの分散共分散行列の固有値と固有ベクトルが、制約付き最適化問題の解となる。

  【ラグランジュ関数の微分】
    計算方は復習しておこう。ベクトル微分をする。

\frac{\partial E(a_j)}{\partial a_j} = 2Var(\bar X)a_j - 2λa_j = 0\\

解は・・・ \  Var(\bar X)a_j = λa_j

  ●射影先の分散は固有値と一致する。

Var(s_1) = a^T_1Var(\bar X)a_1 = λ_1a^T_1a_1 = λ_1   (a^T_1a_1=1)

⇒応用数学の固有値、固有ベクトルと同じ形である。
 $a$は元のデータの分散共分散行列の固有値と固有ベクトルを求めてあげれば、
 分散を最大にする軸になっている。主成分分析の結果である。

4-4-6.寄与率

  「分散共分散行列を計算」⇒「固有値問題を解く」
   ⇒「最大m個の固有値と固有ベクトルのペアが出現」

   ●圧縮した結果、どれだけ情報がロスしたのかを知りたい!!
   ●第1~xx次元分の主成分の分散は、元のデータの分散と一致する。
    ⇒ 固有値を全て足したものは、元の空間の分散と一致する。
      分散を全部足し合せたmのが全情報量である。

   ●2次元のデータを2次元の主成分で表示した時、固有値の和と元のデータの分散は一致する。
   ●第k主成分の分散は、主成分に対応する固有値である。

Var_{(total)} = \sum_{i=1}^m \ λ_i

  【寄与率】
    第k主成分の分散の全分散に対する割合のこと。(第k主成分が持つ情報量の割合)

c_k = \frac{λ_k}{\sum_{i=1}^m \ λ_i}  「第k主成分の分散 / 主成分の総分散」

  【累積寄与率】
    第1~k主成分まで圧縮した際の情報損失量の割合のこと。

r_k = \frac{\sum_{j=1}^kλ_j}{\sum_{i=1}^m \ λ_i}  「第1~k主成分の分散 / 主成分の総分散」
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0