Successfully reported this slideshow.
Your SlideShare is downloading. ×

Math in Machine Learning / PCA and SVD with Applications

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 35 Ad

Math in Machine Learning / PCA and SVD with Applications

Download to read offline

Math in Machine Learning / PCA and SVD with Applications

機会学習の数学とPCA/SVD
Colab での練習コードつきです.コードはこちら.
https://colab.research.google.com/drive/1YZgZWX5a7_MGA__HV2bybSuJsqkd4XxD?usp=sharing

Math in Machine Learning / PCA and SVD with Applications

機会学習の数学とPCA/SVD
Colab での練習コードつきです.コードはこちら.
https://colab.research.google.com/drive/1YZgZWX5a7_MGA__HV2bybSuJsqkd4XxD?usp=sharing

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Math in Machine Learning / PCA and SVD with Applications (20)

Advertisement

More from Kenji Hiranabe (20)

Recently uploaded (20)

Advertisement

Math in Machine Learning / PCA and SVD with Applications

  1. 1. 機械学習の数学とPCA 平鍋健児(@hiranabe) 2021/12/5 動画で学ぶデータサイエンス勉強会 2021/12/9 ESM 社内勉強会 = 1
  2. 2. 機械学習の数学(とくに PCA/SVD 周辺) ● 全体像(数学・プログラミング・ML周辺) ● 機械学習の種類のおさらい ● その中で,今⽇の話の道筋 ● PCA の簡単な例 ● 裏の数学 ● おもしろい応⽤
  3. 3. https://drive.mindmup.com/map/1rmfFeOarvJzVE_ZrhSj5OnKIwR5PuONX (内部)
  4. 4. 基礎数学 定番ライブラリ 解析(微積分) 線形代数 確率・統計 フーリエ解析(FFT/DFT) ベイズ推定 特異値分解(SVD)/主成分分析(PCA) 活性化関数 勾配降下 逆伝播 畳込み 最適化数学 凸最適 線形計画 Python MATLAB R Juia Numpy SciPy Pandas matplotlib scikit-learn 言語 数値演算 表データ 可視化 機械学習種々 XGboost CatBoost アンサンブル 視覚認識 推奨/構造 翻訳/テキスト スピーチ/会話 Google(Cloud ML Engin) AWS サービス https://aws.amazon.com/jp/machine-learning/ai-services/ Microsoft もっといっぱい! 分類 目的 用途 クラスタリング 回帰 パターン抽出 推奨 顧客分類 不正検知 未来予測 次元削減 構造発見 3社のサービス比較 https://atmarkit.itmedia.co.jp/ait/articles/2006/22/news020.html https://drive.mindmup.com/map/1r mfFeOarvJzVE_ZrhSj5OnKIwR5P uONX このあたりの手法 のマインドマップ seaborn
  5. 5. https://colab.research.google.com/drive/1YZgZWX5a7_MGA__HV2bybSuJsqkd4XxD?usp=sharing
  6. 6. ざっくり版
  7. 7. 偏差値版
  8. 8. ざっくり版 偏差値版
  9. 9. 線形代数計算の視覚化と ⾏列5分解 〜ストラング先⽣から学んだこと〜 平鍋健児(@hiranabe) Version 1.1 = 10
  10. 10. これは何? • Gilbert Strang 著 『Linear Algebra for Everyone』 は線形代数を直感理解するのに とてもいい本です。 • 定理と証明の連鎖ではなく、マトリックス語法と例⽰で直感的な理解と実⽤的な 応⽤法を得ることができます。 • YouTube の MIT Open Courseware、 先⽣の講義プレイリストである 18.06 と 18.065 には、200万⼈の購読者がいます。(ぼくもその⼀⼈です) • この本のハイライトは、 • AB=C の4つの⾒⽅ • 基本的な4つの部分空間 • 5つのマトリックス分解 • 通常の線形代数の教科書はジョルダン標準形がクライマックスですが、この 本では、SVD です。そして、 • 機械学習を含むデータサイエンスへの⼊⾨につながっています。 • この1と2のコンセプトをグラフィック表現できないか、というアイディアです。 By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 11 1 2
  11. 11. 5つの行列分解 𝐴 = 𝐶𝑅 𝐴 = 𝐿𝑈 𝐴 = 𝑄𝑅 𝑆 = 𝑄Λ𝑄! 𝐴 = 𝑈Σ𝑉! By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 12 独⽴列⾏列と⾏簡約⾏列の積 (⾏ランク=列ランクを⽰す) LU分解=ガウスの消去法 QR分解=Gram-Schmidtの直⾏化 対称⾏列の固有値分解 どんな⻑⽅⾏列にも使える 特異値分解
  12. 12. = = = 3つの数からなる 2つの列ベクトル 2つの数からなる 3つの⾏ベクトル 6つの数 1 つの⾏列 ⾏列の⾒⽅ – 4つ 𝐴 = 𝑎!!𝑎!" 𝑎"!𝑎"" 𝑎#!𝑎#" = | 𝒂𝟏 | | 𝒂𝟐 | = −𝒂! ∗ − −𝒂" ∗ − −𝒂# ∗ − 以降、太字で列ベクトル𝒂𝟏、*を付けて⾏ベクトル𝒂" ∗ 、を表現する。 また、右肩にTをつけて転置ベクトル𝒂𝐓や転置⾏列𝑨𝐓を表現する。 𝐴 = 1 4 2 5 3 6 = 1 4 2 5 3 6 = 1 4 2 5 3 6 By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 17
  13. 13. = = = 内積(スカラー) Rank1の⾏列 v1 = 1 2 3 𝑥 𝑦 = 𝑥 𝑦 2𝑥 2𝑦 3𝑥 3𝑦 ベクトルの積 – 2つ 1 2 3 𝑥! 𝑥" 𝑥# = 1 2 3 , 𝑥! 𝑥" 𝑥# = 𝑥! + 2𝑥" + 3𝑥# 2つの列ベクトル𝒂, 𝒃を𝒂𝒃! の順に掛けると、⾏ 列 (𝐴 = 𝒂𝒃! ) になる。 𝒂, 𝒃どちらも0でなければ、 この⾏列はRankが1になることが分かる。(各 ⾏は定数倍であり、各列も定数倍である) 2つの列ベクトルの内積(𝒂 ) 𝒃)は⾏列形 式では、𝒂! 𝒃 と表現され、1つのスカラ ーになる。 v2 By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 18
  14. 14. = = + ⾏列とベクトルの積 – 2つ 𝐴 の⾏ベクトルと列ベクトルの積 (内積)からなる1つの列ベクトル 𝐴 の列ベクトルの線形結合 𝐴𝒙 = 1 2 3 4 5 6 𝑥! 𝑥" = (𝑥!+2𝑥") (3𝑥! + 4𝑥") (5𝑥! + 6𝑥") 𝐴𝒙 = 1 2 3 4 5 6 𝑥! 𝑥" = 𝑥! 1 3 5 + 𝑥" 2 4 6 最初に左を覚えるだろう。しかし、右の⾒⽅ができるようになると、 𝐴𝒙 が𝐴の列ベクトルの線形結合、すなわち、 𝐴の列ベクトル空間 𝐂(𝐴)、 さらに、 𝐴𝒙 = 0 の解がAの零空間 𝐍(𝐴)と読めるようになる。 Mv 1 Mv 2 By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 19
  15. 15. ⾏列と⾏列の積 – 4つ = 1 2 3 4 5 6 𝑥" 𝑦" 𝑥# 𝑦# = (𝑥"+2𝑥#) (𝑦"+2𝑦#) (3𝑥"+4𝑥#) (3𝑦"+4𝑦#) (5𝑥"+6𝑥#) (5𝑦"+6𝑦#) 1 2 3 4 5 6 𝑥" 𝑦" 𝑥# 𝑦# = 𝐴 𝒙 𝒚 = 𝐴𝒙 𝐴𝒚 = = 結果の各列 𝐴𝒙, 𝐴𝒚 は、それぞれ𝐴 の列ベクトルの線形結合 結果の各要素は、⾏ベクトルと列ベクトルの内積 MM 1 MM 2 By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 21
  16. 16. 便利な応⽤パターン – 3つ 2 3 = 1 2 3 1 1 = 2 1 + 3 + 2 = 2 1 + 3 + 3 = 2 1 + 3 + MM 2 Mv 2 右からの操作は、列に作⽤する。 この表現は、右の3つの線形結合を 1つの⾏列表現で表したものだとも ⾔える。 P1 using By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 22
  17. 17. = = 𝐴𝐷 = 𝒂𝟏 𝒂𝟐 𝒂𝟑 𝑑! 𝑑" 𝑑# = 𝑑!𝒂𝟏 𝑑"𝒂𝟐 𝑑"𝒂𝟐 𝐷𝐵 = 𝑑! 𝑑" 𝑑# 𝒃! ∗ 𝒃! ∗ 𝒃! ∗ = 𝑑!𝒃! ∗ 𝑑!𝒃! ∗ 𝑑!𝒃! ∗ 対⾓⾏列を右から掛けると各列がスカラー倍 対⾓⾏列を左から掛けると各⾏がスカラー倍 これらを⽬に焼き付けると、さらに、、、、 P1ʼ P2ʼ By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 23 便利な応⽤パターン – 3つ
  18. 18. = + + 𝑈𝛴𝑉* = 𝒖𝟏 𝒖𝟐 𝒖𝟑 𝜎! 𝜎" 𝜎# 𝒗! * 𝒗" * 𝒗# * = 𝜎!𝒖!𝒗! * + 𝜎"𝒖"𝒗" *+ 𝜎#𝒖#𝒗# * rank 1⾏列の和 (SVDや対称⾏列のスペクトル分解で活⽤) P4 By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 24 便利な応⽤パターン – 3つ
  19. 19. 𝐴 = 𝐶𝑅 𝐴 = 𝐿𝑈 𝐴 = 𝑄𝑅 𝑆 = 𝑄Λ𝑄! 𝐴 = 𝑈Σ𝑉! By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 25 独⽴列⾏列と⾏簡約⾏列の積 (⾏ランク=列ランクを⽰す) LU分解=ガウスの消去法 QR分解=Gram-Schmidtの直⾏化 対称⾏列の固有値分解 どんな⻑⽅⾏列にも使える 特異値分解 ⾏列の有名分解 – 5つ
  20. 20. 𝐴 = 𝑈Σ𝑉* 𝐴の⾏空間ℝ$ の正規直交基底として𝑉、列空間 ℝ% の正規直交規定として𝑈をそれぞれうまく取ると、対 ⾓化される。これを特異値分解という。さらに、これを rank 1 ⾏列の和に分解できる。 𝐴が⼀般の⻑⽅⾏列の場合でも、特異値分解は必ず可能。 = + = 1 1 2 2 2 3 1 1 2 P4 using By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 26 𝑈 Σ 𝐴 𝑉* 𝜎! 𝒖𝟏𝒗! * 𝜎" 𝒖𝟐𝒗" * 𝑈𝑈* = 𝐼+ 𝑉𝑉* = 𝐼, 𝐴 = 𝑈Σ𝑉*= | 𝒖𝟏 | | 𝒖𝟐 | | 𝒖𝟑 | 𝜎! 𝜎" −𝒗! * − −𝒗" * − =𝜎! | 𝒖𝟏 | − 𝒗! * − + 𝜎" | 𝒖𝟐 | − 𝒗" * − = 𝜎!𝒖𝟏𝒗! * + 𝜎"𝒖𝟐𝒗" * PCAとは⾏と列が反対であることに注意︕
  21. 21. SVDの応⽤からの理解︓ eigenface Washington ⼤学の Steve Brunton 先⽣の YouTube チャネル にて、120回以上の動画で詳しくこの本の中について解説されて いる。その中の、eigenface の回をご紹介。 Databookuw.com By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang
  22. 22. Eigenfaces – Yale B Dataset By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 28 256値×32K 画素×64枚× 36⼈、から、特異値ベクトルを抽出
  23. 23. Eigenfaces – Yale B Dataset By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 29 256値×32K 画素×64枚× 36⼈、から、特異値ベクトルを抽出
  24. 24. 最初の 64 eigenfaces(ちょっと怖い…) By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 30
  25. 25. ⾏列の意味(データとしてみる) 2. ℝ! のデータセットが𝑛列と⾒る。 By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 32 𝑎!, 𝑎", … , 𝑎# ∈ ℝ$ m次元列ベクトルのデータ 𝑢!, 𝑢", … , 𝑢$ ∈ ℝ$ m次元列ベクトルの底 | 𝒂𝟏 | | 𝒂𝟐 | | 𝒂𝟑 | = | 𝒆𝟏 | | 𝒆𝟐 | | 𝒆𝟑 | 1 0 1 2 3 1 1 3 4 2 3 = 1 2 3 1 1 = 2 1 + 3 + 2 = 2 1 + 3 + 3 = 2 1 + 3 + P1 𝒂𝟏 = 𝒖𝟏, 𝒂𝟐 = 𝒖𝟐, 𝒂𝟐 = 𝒖𝟏 + 𝒖𝟐 | 𝒂𝟏 | | 𝒂𝟐 | | 𝒂𝟑 | = | 𝒖𝟏 | | 𝒖𝟐 | | 𝒖𝟑 | 1 0 1 0 0 1 0 1 0 新しい基底(u1,u2,u3)の線形結合として各列を表す 通常の基底(e1,e2,e3)の線形結合として各列を表す 基底 この基底での「座標」 もしくは「成分」が 縦に並ぶ。 各データベクトル 𝑨 = 1 0 1 2 3 1 1 3 4 フーリエ変換等でもデータ圧縮可能 だが、SVDではデータ駆動で(デー タ全体を⾒てから)有効な底を決め る。 PCAとは⾏と列が反対であることに注意︕
  26. 26. 特異値/特異ベクトル 1. 𝑛個の ℝ! のデータセットと⾒る。 By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 35 2 3 1 2 3 1 1 = 2 1 + 3 + 2 = 2 1 + 3 + 3 = 2 1 + 3 + 新基底 各データベクトル (各⾃の顔データ) 2 3 1 = = 新基底 (eigen face) 𝐴 = 𝑈Σ𝑉* 𝐴 = | 𝒖𝟏 | | 𝒖𝟐 | | 𝒖𝟑 | 𝜎! 𝜎" 𝜎# −𝒗! * − −𝒗" * − −𝒗# * − 𝐴 𝑉% 𝑈 Σ (Σ𝑉%) 𝑈 = = A の各列(face)は、新基底(eigenface)の線形結合。 A 全体の中での信号の強さが特異値。 データごとの Mixture(Vの⾏) 信号の強さ (特異値) 新基底での座標 (各⾃の顔の成分) 新基底での座標 (各⾃の顔の成分)
  27. 27. By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 39 顔データを元よりも少数 次元の基底によって復元 する。 基底は、U を特異値の⼩ さい⽅を削除ししまった 近似。 このU平⾯に新しい顔を 射影し、その座標(少数) をαという。このαを使っ て、新しい顔を表現する。 (データ圧縮) 顔を次元を順次増 やして復元。 効率は良くないが、 ⽝も表現できるよ。 (だいぶ怖い)
  28. 28. 参照⽂献と 謝辞 • Linear Algebra for Everyone (⽇本語 来年) http://math.mit.edu/everyone/ • MIT OpenCourseWare 18.06 http://web.mit.edu/18.06/www/vi deos.shtml • A 2020 Vision of Linear Algebra https://ocw.mit.edu/resources/res -18-010-a-2020-vision-of-linear- algebra-spring-2020/ • マトリックスワールド https://anagileway.com/2020/09/ 29/matrix-world-in-linear-algebra- for-everyone/ • 4つの部分空間 Tシャツ https://anagileway.com/2020/06/ 04/prof-gilbert-strang-linear- algebra/ This work is inspired by Prof. Strangʼs books and lecture videos. I deeply appreciate his work, passion and personality. By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 40
  29. 29. By Kenji Hiranabe with the kindest help of Prof. Gilbert Strang 41 Tシャツ作った!
  30. 30. Thank you for reading! Any comments or feedbacks are welcome to: Kenji Hiranabe (hiranabe@gmail.com) = 42

×