Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

データサイエンス概論第一=3-1 線形代数に基づくデータ解析の基礎

1,087 views

Published on

九州大学大学院システム情報科学研究院「データサイエンス実践特別講座」が贈る,数理・情報系『でない』学生さんのための「データサイエンス講義

Published in: Data & Analytics
  • Be the first to comment

データサイエンス概論第一=3-1 線形代数に基づくデータ解析の基礎

  1. 1. 1 九州大学大学院システム情報科学研究院 データサイエンス実践特別講座 データサイエンス概論第一 第3回 主成分分析と回帰分析: 3-1 線形代数に基づくデータ解析の基礎 システム情報科学研究院情報知能工学部門 内田誠一
  2. 2. 2 データサイエンス概論第一の内容  データとは  データのベクトル表現と集合  平均と分散  データ間の距離  データ間の類似度  データのクラスタリング (グルーピング)  線形代数に基づくデータ解析の基礎  主成分分析と因子分析  回帰分析  相関・頻度・ヒストグラム  確率と確率分布  信頼区間と統計的検定  時系列データの解析  異常検出
  3. 3. 3 ちょっと「くどい」感じですが, これがわからないと 主成分分析もよくわからないと思います  線形代数に基づくデータの解析  「分析」の基本的な考え方  ベクトルの分解と合成  基底  完全にもとに戻らくなくてもOKなケース  画像で考えてみる  データ解析に適した基底とは何か?  データ集合の主成分分析  主成分分析の原理  主成分分析でわかること(その1)  顔画像データ集合を例に主成分分析 の挙動を理解する  主成分を求める実際の方法  主成分分析でわかること(その2)  因子分析との関係  データ集合に関する回帰  「回帰による予測」の基本的考え方  「モデルあてはめ」の方法  重回帰分析  より複雑なモデルの利用  回帰分析で注意したい点
  4. 4. 4 線形代数に基づく データの解析 ベクトルと内積さえわかればOK! これを学べば主成分分析やフーリエ解析など 非常によくわかります!
  5. 5. 5 線形代数に基づくデータの解析① 「分析」の基本的な考え方 あなたのカレーにジャガイモは何グラム入ってる?
  6. 6. 66 「分析」とは? (デジタル大辞泉より) 1. 複雑な事柄を一つ一つの要素や成分に分け、その構成 などを明らかにすること。「情勢の―があまい」「事故の原 因を―する」 2. 哲学で、複雑な現象・概念などを、それを構成している 要素に分けて解明すること。⇔総合。 3. 物質の組成を調べ、その成分の種類や量の割合を明ら かにすること。
  7. 7. 7 分析の例: カレーにジャガイモは何グラム入ってる? 何がどれぐらい混ざっているか わかったら,どんなカレーか クリアになる! ジャガイモ 50g 分析 色々なものが混ざっているので パッと見ただけでは どんなカレーかわからない 玉ねぎ 80gニンジン 0g 肉150g カレー粉 10g
  8. 8. 8 参考:「温泉の成分表」 これがあるからどんな温泉かがわかる! 8 環境省「鉱泉分析法指針」より
  9. 9. 9 分析の際にケアすべきポイント(1/4) 基本的に見落としはNG ジャガイモ 50g 玉ねぎ 80gニンジン 0g 肉150g カレー粉 10g 混ぜ 合わせ 水 2000g 見落とし 後述の 「完備性」と関係 水無しカレー!
  10. 10. 10 分析の際にケアすべきポイント(2/4) 分析項目に重複がないほうが良いだろう ジャガイモ 50g 玉ねぎ 80gニンジン 0g 肉150g カレー粉 10g 後述の 「直交性」と関係 混ぜ 合わせ やたらスパイシーな カレー! 唐辛子 2g クミン 1g 水 2000g 実はカレー粉の中に 入っている成分
  11. 11. 11 分析の際にケアすべきポイント(3/4) 分析する単位は統一したほうがよいだろう ジャガイモ 30 ㎤ 玉ねぎ 80gニンジン 0本 肉0.15 kg カレー粉 10000 mg 後述の 「正規性」と関係 混ぜ 合わせ 水 3カップ 元のカレーには 完全に戻るのだが... 比べにくい!
  12. 12. 12 分析の際にケアすべきポイント(4/4) 解釈容易な成分に分解したほうがよい モゴモゴ 100g 後述の「基底の 任意性」と関係 混ぜ 合わせ 元のカレーには 完全に戻るのだが... マニョマニョ 400g ホゲホゲ 50g ちりとてちん 35g
  13. 13. 13 これからの話: カレーからベクトルへ 何がどれぐらい混ざっているか わかったら,どんな高次元 ベクトルかクリアになる! 分析 色々なものが混ざっているので パッと見ただけでは どんな高次元ベクトルかわからない 10 8 6
  14. 14. 14 線形代数に基づくデータの解析② ベクトルの分解と合成 カレーの話をベクトルに置き換えただけ! 高校時代の 知識でOK
  15. 15. 15        6 2 x        0 1 1e        1 0 2e 単位 ベクトル      6 2 2 1 成分量の 成分量の ex ex ベクトルの分解: 甦れ,高校の時のおぼろげな記憶! どうやって? (次スライド)
  16. 16. 16 「内積」を使えば成分量が計れる!        6 2 x        0 1 1eの中に はどれぐらい入っている? 2 0 1 6 2 1             ex × × + 内積で𝒙に含まれる𝒆1成分量が測れる! 「なんで!?」と思うかもしれませんが, ひとまず信じてください. 数枚後のスライドで説明します
  17. 17. 1717 思い出そう:内積 高校の時,習いましたよね? 要するに,「要素どおしの積をとって,全部足す」 その原理で,何次元ベクトルでも計算可能 𝒙 = 3 5 , 𝒚 = 6 1 の内積 → 𝒙 ∙ 𝒚 = 3 × 6 + 5 × 1 = 23 内積の書き方4種(どれも 同じ) 𝒙 ∙ 𝒚 𝒙, 𝒚 𝒙, 𝒚 𝒙 𝑇 𝒚 3 5 と 6 1 の内積 3 5 2 と 6 1 2 の内積 3 5 6 1 3 5 2 6 1 2 × × × × × = 18 = 5 = 18 = 5 = 4 18 + 5 = 23 18 + 5 + 4 = 27 ※この調子で,4次元でも,100万次元でも可能 再掲
  18. 18. 18          0 2 11 eex 成分量の          6 0 22 eex 成分量の x                  6 2 6 0 0 2 ベクトルの合成 元に戻るところが 美しい! 6 2 0 1 1 0
  19. 19. 19 カレーとの関係: 単位ベクトルとはジャガイモである 1e 1ex が カレー 𝒙 ベクトル 𝒙 には だけ入っている には ジャガイモ が 50個 だけ入っている (1g) 要するに50g 計量単位
  20. 20. 20 カレーとの関係: 単位ベクトルとはジャガイモである ジャガイモ ○g にんじん □g 肉 △g : 1e 2e 1ex  加算 成分量 元と同じカレー𝒙 元と同じベクトル𝒙 2ex  カレー 𝒙 ベクトル 𝒙
  21. 21. 2121 ちょっと待った! そんな説明じゃ納得いかない!(1/4)  𝒙に含まれる𝒆1の成分量なら,内積 𝒙 ∙ 𝒆1じゃなくて, 𝒙を𝒆1で割るべきでは!? なるほど,もっともな疑問ですね 単なる数値なら,割り算で成分量がでますからね • 例えば 150の中に20は,150÷20=7.5だけ入っている でも「ベクトルの割り算」というのはできないんです 納得いただくためには,内積の性質をもうちょっと 見る必要があります 参考
  22. 22. 2222 ちょっと待った! そんな説明じゃ納得いかない!(2/4) 内積は(長さ一定なら)似た方向ほど大きくなる ベクトルが長いほど大きくなる 正確に言えば絶対値が大きくなる 2 0 1 0 0 2 1 0 −2 0 1 0 内積=2 内積=0 内積=-2 4 0 1 0 内積=4 参考
  23. 23. 2323 似た方向ほど 大きくなる ちょっと待った! そんな説明じゃ納得いかない!(3/4) 実は内積は次のようにも書ける! 𝒙 ∙ 𝒚 = 𝒙 𝒚 cos 𝜃 𝜃 𝒚 𝒙 長いほど 大きくなる 注: 𝒙 はベクトル𝒙の長さ 𝜃0 180 360 cos 𝜃 参考 (理系諸君は高校時代にも見たはず)
  24. 24. 2424 というわけで,内積は幾何学的にも 解釈できまして... 1 1 1 1 1 1 cos ex e ex ex ex x xex       成分量の x 1e このように単位ベクトルとの内積によりその成分量が求まる ちょっと待った! そんな説明じゃ納得いかない!(4/4) 𝒙 ∙ 𝒚 = 𝒙 𝒚 cos 𝜃 単位ベクトルは 長さ1 𝜃 参考
  25. 25. 25 さて,単位ベクトルを回転してみる!        0 1 1e        1 0 2e 回転          21 23 1e         23 21 2e 皆さんの良く知っている 単位ベクトル 左を30°回転させてできた 単位ベクトル
  26. 26. 26        6 2 x          21 23 1e      133 33 2 1 成分量の 成分量の ex exnew 単位 ベクトル         23 21 2e 回転してできた単位ベクトルでも 先ほどのベクトルを分解できる どうやって? (次スライド)
  27. 27. 27 めんどくさそうな単位ベクトルでも 「内積」を使えば成分量が計れる!        6 2 x          21 23 1eに はどれぐらい入っている? 33 21 23 6 2 1               ex × × +
  28. 28. 28 1 1 1 1 1 1 cos ex e ex ex ex x xex       成分量の x 1e しつこいですが, 内積で成分量を計っている様子を 幾何的にも見てみる 𝒙 ∙ 𝒚 = 𝒙 𝒚 cos 𝜃 単位ベクトルは 長さ1 Sin/cos嫌いなら 理解できなくてもOK このように単位ベクトルとの内積によりその成分量が求まる 𝜃
  29. 29. 29               2329 23321 22 eex 成分の              2323 23323 11 eex 成分の x                           6 2 2329 23321 2323 23323 ベクトルの合成 やはり元に戻る
  30. 30. 30 以上は2次元の場合の例でしたが, 3次元でも(もちろんそれ以上でも)同じ話 30            0 0 1 1e            0 1 0 2e            1 0 0 3e            6 1 2 x 2 0 0 1 6 1 2 1                       ex
  31. 31. 3131 分解と合成,一連の話をまめとると...(1/2)  𝒙を𝑑次元ベクトルとする 内積により第𝑖番目の単位ベクトル𝒆𝑖の成分量𝛼𝑖を出す ちなみに各𝒆𝑖も𝑑次元ベクトル その成分量に応じて単位ベクトルを混ぜれば,元の𝒙に! 𝒙 = 𝛼1 𝒆1 + ⋯ + 𝛼𝑖 𝒆𝑖 + ⋯ + 𝛼 𝑑 𝒆 𝑑 = 𝛼𝑖 𝒆𝑖 𝛼𝑖 = 𝒙 ∙ 𝒆𝑖
  32. 32. 3232 分解と合成,一連の話をまめとると...(2/2) (ふざけているように見えるかもしれませんが,これが本質!) 言い換えると,成分量𝛼1, … , 𝛼𝑖, … , 𝛼 𝑑は, 材料セット𝒆1, … , 𝒆𝑖, … , 𝒆 𝑑から𝒙 を作るための「レシピ」 材料セット 𝒆1, … , 𝒆𝑖, … , 𝒆 𝑑 カレー𝒙 𝛼𝑖 = 𝒙 ∙ 𝒆𝑖 ⋮ → 𝛼1 グラム → 𝛼𝑖 グラム ⋮ → 𝛼 𝑑 グラム レシピ(分析結果) 𝛼𝑖 𝒆𝑖 あの味を完璧に再現できた!
  33. 33. 3333 ここまでのおさらい 分析とは,いろいろな成分に分解することである 分解することで,よくわかることがある 「ベクトルの分析」も同じ ベクトル 𝒙を「単位ベクトル群」に分解することで,理解する ベクトルの分析には「単位ベクトル」との内積が使える さらに合成すれば元通りに 分析時に「見落とし」や「重複」がなければ元通り 分析の方法は一意ではない 回転させた単位ベクトル群でも可能
  34. 34. 34 線形代数に基づくデータの解析③ 基底 「分解して合成すれば元に戻る」ための条件
  35. 35. 35 (数学的には厳密ではないが) 単位ベクトルのセットのことを「基底」と呼ぶ 35        0 1 1e        1 0 2e          21 23 1e         23 21 2e これはわかりやすい「基底」 こちらも「基底」
  36. 36. 3636 「分解して合成すれば元に戻る」ための条件① 基底の完備性(1/2) 2次元で基底が1つしかないと,もとに戻らない!        0 1 1e オリジナル 分解・合成後 水無しカレー!
  37. 37. 3737 「分解して合成すれば元に戻る」ための条件① 基底の完備性(2/2) 任意の2次元ベクトル𝒙は,2個の2次元単位ベクトルによる 分解→合成の結果,元の𝒙に戻れる 任意の3次元ベクトル𝒙は,3個の3次元単位ベクトルに よる分解→合成の結果,元の𝒙に戻れる 任意の𝑑次元ベクトル𝒙は, 𝑑 個の𝑑次元単位ベクトルに よる分解→合成の結果,元の𝒙に戻れる この状況を「完備」と言います (ほんの少し数学的にはイイカゲンなことを言ってますが,気にしない,気にしない)
  38. 38. 3838 「分解して合成すれば元に戻る」ための条件② 基底の直交性 単位ベクトルが互いに90度で交わっていること 高校の時に習ったかもしれませんが,𝒆𝑖 ∙ 𝒆𝑗=0 (ただし𝑖 ≠ 𝑗) 非直交だと,分解合成で元に戻らない! 頑張れば戻せないこともないが,かなり面倒くさい 要は2基底𝒆1と𝒆2が独立でない,ということ 1e 2e 分解 合成 x 1e 2e xx '
  39. 39. 3939 「分解して合成すれば元に戻る」ための条件③ 基底の正規性 単位ベクトルの長さは,常に1で!        6 2 x        0 1 1e        2 0 2e      12 2 22 11 exex exex 成分の 成分の              24 0 2 0 122122 軸はも入ってたら第がe 長さ2
  40. 40. 4040 以上3つの条件を満たす単位ベクトルの組を 「完備正規直交基底」と呼ぶ 以下はいずれも2次元の完備正規直交基底 =どちらでもカレーは元通り! もちろん3次元以上でも同様 長さ1
  41. 41. 41 線形代数に基づくデータの解析④ 完全にもとに戻らくなくてもOKなケース =完備でなくてもOKなケース
  42. 42. 4242 そこそこ元に戻るなら, 完備でなくてもOKなケースもある もしデータが第1軸付近にしかないのなら,1個の単位ベク トルだけで「大体」OK?        0 1 1e オリジナル 分解・合成後       1.0 3.5       0 3.5 いつもゼロ近く 確かにオリジナルとは 違うが,「大体」同じ データ分布 注:コロンブスの卵
  43. 43. 43 𝛼𝑖 𝒆𝑖 は除く カレーの例で説明すると(1/2): プロの味でなくても,ご家庭の味でOKなケース! 43 材料セット 𝒆1, … , 𝒆𝑖, … , 𝒆𝑗, … , 𝒆 𝑑 プロのカレー𝒙 𝛼𝑖 = 𝒙 ∙ 𝒆𝑖 ⋮ → 𝛼1 グラム → 𝛼𝑖 グラム ⋮ → 𝛼𝑗 グラム レシピ(分析結果) 同じじゃないけど,そこそこ旨い ⋮ → 𝛼 𝑑 グラム 常にほとんどゼロ (プロの隠し味) ご家庭のカレー𝒙′
  44. 44. 44 𝛼𝑖 𝒆𝑖 大事な を除いてしまうと カレーの例で説明すると(2/2): 「どこで手を抜くか?」もセンスの一つ 44 材料セット 𝒆1, … , 𝒆𝑖, … , 𝒆𝑗, … , 𝒆 𝑑 プロのカレー𝒙 𝛼𝑖 = 𝒙 ∙ 𝒆𝑖 ⋮ → 𝛼1 グラム → 𝛼𝑖 グラム ⋮ → 𝛼𝑗 グラム レシピ(分析結果) 全然違う~!こりゃだめだ... ⋮ → 𝛼 𝑑 グラム 水無カレー𝒙′ 絶対に必要なやつ (いつも量が多い)
  45. 45. 4545 完備でなくてもソコソコ戻る, より一般的なケース こういうケースも単位ベクトルは1つで(ほぼ)OK オリジナル 分解・合成後 1e 先ほどの例
  46. 46. 4646 画像が圧縮できるのは,実はこの性質を使ってます (皆さん,知らずにお世話になっているんです) 地デジ放送やデジカメ写真,すべてこの原理で情報圧縮 第1次元 第2次元 第3次元 第400万次元
  47. 47. 4747 「そこそこでOK」とするメリット  𝑑次元ベクトルを, 𝑑個未満の成分で表現できる したがって: 主要な成分だけを概観できる! • → 主成分分析のアイディア 主要でない成分を捨てることで, データ圧縮にもなる ⋮ → 𝛼1 グラム → 𝛼𝑖 グラム ⋮ → 𝛼𝑗 グラム レシピ(分析結果) ⋮ → 𝛼 𝑑 グラム
  48. 48. 48 線形代数に基づくデータの解析⑤ 画像で考えてみる もうちょっとイメージを固めてみましょう
  49. 49. 49 そういえば画像もベクトルだった! 超高次元だけれども... 第1次元 第2次元 第3次元 第400万次元 400万画素の画像 ということは,画像も分解・合成できるはず!
  50. 50. 50 画像もベクトル! 同じ枠組みで分解と合成できるはず 50 材料セット(完備正規直交基底) 𝒆1, … , 𝒆𝑖, … , 𝒆 𝑑 原画像𝒙 𝛼𝑖 = 𝒙 ∙ 𝒆𝑖 ⋮ → 𝛼1 → 𝛼𝑖 ⋮ → 𝛼 𝑑 レシピ(分析結果) 𝛼𝑖 𝒆𝑖 原画像を完璧に再現できる! ? ? ? ? ? ? では完備正規直交基底 𝒆1, … , 𝒆𝑖, … , 𝒆 𝑑には何を? 同じ𝑑次元ベクトル (=同サイズの画像)
  51. 51. 51 画像の分解・合成のための,一番わかりやすい 完備正規直交基底は?(1/2) 51 ⋮ ⋮ ⋮ ⋮ ⋯ ⋯ ⋯ ⋱ 任意の𝑑次元ベクトル (𝑑 = 𝐻 × 𝑊画素から なる画像)は右の 𝑑個の画像成分に 分解・合成できる! 単位ベクトル:𝑑個の𝑑 = 𝐻 × 𝑊画像= 𝑑個の𝑑次元ベクトル 1画素のみが1 それ以外は0 確かに,完備,大きさ1(正規),そして直交しているが...
  52. 52. 52 画像の分解・合成のための,一番わかりやすい 完備正規直交基底は?(2/2) 52 ⋮ ⋮ ⋮ ⋮⋱ 原画像𝒙の画素の輝度値 212, 209, 225,..., 193 211, 210, 214,..., 189 ⋯=212× +209× +225× +193× ⋯+211× +210× +214× +189× 確かに画像をベクトルに分解できた! でも, 分析というよりは,単に画素輝度値を並べただけ...
  53. 53. 53 http://www.matsusaka-u.ac.jp/~okumura/compression/dct.html よりよい基底:2次元離散コサイン(DCT)基底 任意の 8x8画像は 右の64個の 8x8画像の 組み合わせ (重み付き和) で表現可能
  54. 54. 54 8x8画像用の2次元DCT基底を使えば 54 材料セット(基底) 𝒆1, … , 𝒆𝑖, … , 𝒆64 原画像𝒙 どんな8x8 画像でもOK 𝛼𝑖 = 𝒙 ∙ 𝒆𝑖 ⋮ → 𝛼1 → 𝛼𝑖 ⋮ → 𝛼64 レシピ(分析結果) 𝛼𝑖 𝒆𝑖 原画像を完璧に再現できる! 共に8x8画像= 64次元ベクトル 画像(𝑑次元ベクトル) 間の内積
  55. 55. 55 ちなみに,画像間の内積って何? ... , だから 要素の第要素の第 の内積ベクトル 全部の要素 iBiA BA i   × × × × ∑ 10
  56. 56. 56 4,41,1 EE ~ 8,85,5 EE ~ 16,169,9 EE ~ 32,3217,17 EE ~ 64,6433,33 EE ~ 8,81,1 EE ~ 16,161,1 EE ~ 32,321,1 EE ~ 64,641,1 EE ~ =元画像 64x64画像での分解・合成
  57. 57. 57 線形代数に基づくデータの解析⑥ データ解析に適した基底とは何か? 無限のチョイスの中で,どれを選ぶか?
  58. 58. 5858 こんな感じで回転させれば 無限通りの「完備正規非直交基底」ができる モノの見方(=分析の方法)は無限にあるということ 同じベクトルでも 基底が変われば 見方も変わる! というわけで, 同じ人でも ああ言われたり こう言われたり...
  59. 59. 59 基底が変われば成分量が変わる: = ものの見方が変わる! 59      133 33 2 1 成分の 成分の ex ex      6 2 2 1 成分の 成分の ex ex        6 2 x        6 2 x
  60. 60. 60 基底が変わればモノの見方が変わることを カレーで表現すると... 60 ジャガイモ ○g にんじん □g 肉 △g : たんぱく質 ●g ビタミンC ■g 脂質 ▲g : 同じカレー! :
  61. 61. 61 (2つの分析結果は1対1対応!) ビタミンC ビタミンB ビタミンB にんじん ビタミンC 肉 にんじん 肉 𝜃だけ回転 カレー カレー 𝜃 ある基底での分析結果を回転するだけで, 他の基底での分析結果が求まる カレー
  62. 62. 6262 逆に困った! 各分析課題にとって 「よい」基底とは何かを考えないと... 「どれがよい?」と言われても,どの正規直交基底も任意の ベクトルを(分解・合成して)元に戻せる点では同じ... んん?... でも各課題では「任意のベクトル」じゃなくて, 特定のベクトル集合にとって「よい基底」でOKでは?
  63. 63. 63 ここで思い出そう,以下のスライド! このように分布している データに適した基底!
  64. 64. 6464 なるべく「コンパクト」に分布を表現できる 基底がよいかも! =より少ない情報でデータの分布状況を把握できる 1e2e 1e 2e 𝒆1の成分だけで(ほぼ)表現できそう (=分解・合成したらほぼ戻る) 𝒆1と𝒆2両方の成分がないと ちゃんと表現できない...
  65. 65. 6565 もうちょっと高次元の場合でも, コンパクトに表現したほうが分布把握が容易 このような基底の取り方なら,実質的には2次元で済む  𝒆1は「絶対必要」,𝒆2は「まぁ必要」,𝒆3は「不要」 𝑥1 𝑥2 𝑥3 1e 2e 3e

×