olearning-prml13

22
Text Osaka PRML Learning 13 Kousuke Takeuchi

Upload: kousuke-takeuhi

Post on 05-Jul-2015

212 views

Category:

Technology


0 download

DESCRIPTION

Learning ML at GrandFront in Osaka, chapter11 source code: https://github.com/u651601f/OLerning-PRML

TRANSCRIPT

Page 1: Olearning-prml13

Text

Osaka PRML Learning 13Kousuke Takeuchi

Page 2: Olearning-prml13

CHAPTER 13

教師なし次元削減 (Unsupervised Dimensionality Reduction)

Page 3: Olearning-prml13

多次元データの恐怖 (Fear of Multidimensional Data)

1次元あたり5つのデータが存在

e.g.) x = [1,2,3,4,5]

!

2次元になると…

e.g.) xy = [(1,1), (1,2),…., (1,5), (2,1),…(5,5)]

つまり、5 × 5 = 25個のデータが存在

!

n次元になると、5 × 5 × 5 × ・・・= 5^n個のデータが存在 (指数的)

Page 4: Olearning-prml13

埋め込み行列T(Embedded Matrix)を使って、行列積による変換をする

!

→ 変換後のデータzにTの逆行列をかけると元のデータに戻る

d次元のデータをm次元に (transform d-dim data to m-dim)

Page 5: Olearning-prml13

Section 1

主成分分析 (Principal Component Analysis)

Page 6: Olearning-prml13

主成分分析の手順 (How to PCA)

1. 主成分分析の基準面(線)を 決める

2. 基準から各データへの距離をとる。この距離は数学的に正射影(Orthogonal Projection)と呼ぶ

3. この距離を多次元データの主成分とする

Page 7: Olearning-prml13

正射影の条件から埋め込み行列へ (Calculate Embedded)

z が x の正射影になるとき、以下の式が成り立つ

!

ここで、埋め込み行列Tによって変換された z に、Tの転置行列をかけて、元の x に戻ればよい。(完全に元には戻らない)

(x) -> 変換 -> (z) -> 逆変換 -> (x’) と、元の x との誤差 || x’ - x || が最小になるように T を決定する

Page 8: Olearning-prml13

線形代数学の二次形式の公式を使うと・・・

!

ただし、Cは標本の分散共分散行列(Variance-covariance matrix)を表す

!

従って、学習基準は次式で表される

Page 9: Olearning-prml13

学習基準の式は、固有値問題の形式に変換出来るので、以下の固有値問題を解けば埋め込み行列Tが算出出来る

!

固有ベクトルをξ1, ξ2, ・・・, ξmとすると、

Page 10: Olearning-prml13

Rで主成分分析1. 標本データの分散共分散行列を作成

2. 分散共分散行列の固有値問題を解いて、固有ベクトルを取り出す

3. 固有ベクトルと標本データの行列積を計算すれば、主成分分析の完了

Page 11: Olearning-prml13

まずは主成分分析を極めよう (You should start PCA)

参考書には、主成分分析の他にもカーネル主成分分析や局所性保存射影などが紹介されていた

しかし、今回紹介した主成分分析だけでも、かなりのデータを分析できる

e.g.) 偏差値というのは分散を元に計算されるため、数学と物理のテストの偏差値を同等に扱えない。

→ 主成分分析を使うと物理と数学のテストの点数の重みが同じになり、数学: 60, 物理: 80なら、140の学力があると計算出来る

→ 数学的には「マハラノビス距離」というが、参考書の範囲外なので割愛

Page 12: Olearning-prml13

Section 2

主成分分析を使ったプログラム (Program using PCA)

Page 13: Olearning-prml13

新聞社を分類する新聞社の内部に対する評価のデータを使用

項目は、「社風」「給与」「環境」など

VOKERS(http://www.vorkers.com) のデータを利用

Page 14: Olearning-prml13

1. データを取り込むJSONデータを用意

データフレームに変換

Page 15: Olearning-prml13

2. データからPCA先ほど作成したデータフレーム

prcomp関数でPCA計算

計算結果 第n主成分

Page 16: Olearning-prml13

3. どこまで変数を減らせるか?

累積寄与率 → 元の変数の情報をどれだけ含んでいるか

95%の寄与率を満たしているので、第1~4主成分までを新しい変数とする

Page 17: Olearning-prml13

4. 次元を4つに減らしてクラスタリング

k平均法の関数

クラスタリングされたデータのグラフを表示するライブラリを使用

Page 18: Olearning-prml13

5. 結果 (k = 4で分類)

主成分分析で 次元削減したデータ 元のデータ

Page 19: Olearning-prml13

6. 結果の考察寄与率95%の主成分分析による次元削減をすることによって、元のデータの情報を壊さずに変換する

その結果、クラスタリングをしても、元の次元が高いデータと全く同じクラス分けが出来た

このクラスタリングを1000回実行して、計算速度を測ると、次元削減したデータの方が高速で実行出来る

!

今回は次元数を8から4にしか減らせず、更にデータ自体も少ないので、そこまで速度改善は感じることは無かったが、今後大規模なデータ(画像、文章など)を解析する場合にとても役立つと思う

PCA: 元のデータ:

Page 20: Olearning-prml13

最後に

Page 21: Olearning-prml13

機械学習ライブラリ

Java : Apache Mahout

Python : scikit-learn, NLTK(自然言語処理)

Ruby : ai4r, cabalist(Rails Gem) ・・・遅い。

他のおすすめ言語 : Clojure, Scala(ScalaNLP)

Page 22: Olearning-prml13

機械学習の実用例異常検出 : クレカなどの不正利用の発見

レコメンデーション : FBやAmazonなど有名

メールのスパムフィルター (SVM)

画像認識 (クラスタリング)

→ まだ応用実績が少ないように思える