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.

PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

399 views

Published on

高専の授業課題で書いたスライドです。
C.M.ビショップ氏の「パターン認識と機械学習 上」より「1.1 例:多項式曲線フィッテイング」の内容です。
課題で作っただけなので、続編等作る予定は一切ありません。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

  1. 1. PATTERN RECOGNITION AND MACHINE LEARNING 2ES-12 吉元 裕真
  2. 2. 第1章 序論
  3. 3. 3パターン認識とは データの中の規則性を 自動的に見つけ出す 分類・予測に応用する = 機械学習
  4. 4. 4機械学習の種類 教師あり学習 教師なし学習 強化学習
  5. 5. 5教師あり学習 訓練データが 入力ベクトルとそれに対応する 目標ベクトルの事例で 構成される問題
  6. 6. 6教師あり学習 手書き文字の判別事例 クラス分類問題
  7. 7. 7教師あり学習 訓練データ: 0 1 3 入力データ: 出力結果: 0 1 3 クラス分類問題
  8. 8. 8教師あり学習 化学プラントにおける 生成物の量の予想 回帰問題
  9. 9. 9教師あり学習 回帰問題 訓練データ: 濃度:x 温度:y 圧力:z の時の変化 入力データ: 濃度:x’ 温度:y’ 圧力:z’ 新しい条件
  10. 10. 10教師あり学習 回帰問題 時間 生成量 出力結果 訓練データ 訓練データ
  11. 11. 11教師なし学習 訓練データが 入力ベクトル x のみで 対応する目標値が存在しない パターン認識の問題
  12. 12. 12教師なし学習 など クラスタリング :類似した事例のグループを  見つける 密度推定 :入力空間におけるデータの  分布を求める
  13. 13. 13強化学習 ある与えられた状況下で 報酬を最大にするような 適当な行動を見つける問題
  14. 14. 14強化学習 探査 :新しい種類の行動がどれだけ  有効か調べる (知識)利用 :高い報酬が得られることが  分かっている行動を取る 2つのバランスを取りながら、 よりよい行動を探す
  15. 15. フィッテイング 1.1 例:多項式曲線
  16. 16. 16この節の目的 例題を用いて パターン認識と機械学習における 重要な概念を学習する
  17. 17. 17やりたいこと 実数値の入力変数 x を観測し x から実数値の目標変数 t を予測 今回はsin関数から データを生成する
  18. 18. 18手順 1. 訓練集合を作る 2. 訓練集合を基に学習する 3. 100個のテストデータを入力する 3.1 次数を変える 3.2 訓練集合の点数を変える 4.誤差関数の正則化と罰金項
  19. 19. 19訓練集合 訓練集合は(今回は)人工的に作る sin関数にランダムなノイズを 付加する
  20. 20. 20訓練集合 x ⌘ (x1, . . . , xN )T t ⌘ (t1, . . . , tN )T データ
  21. 21. 21この問題のポイント 訓練集合を利用して、 新たな入力変数の値を予測する sin関数を見つける 目標
  22. 22. 22この問題のポイント 難しさ 有限個のデータ集合からの汎化 観測データはノイズが乗っている 不確実性を持つ
  23. 23. 23曲線フィッテイング y(x, w) = w0 + w1x + w2x2 + · · · + wM xM = MX j=0 wjx x, w) = w0 + w1x + w2x2 + · · · + wM xM = MX j=0 wjxj . :多項式の次数Mxj :x の j 乗 w = w0, . . . , wM :多項式の係数(パラメータ) モデル関数
  24. 24. 24曲線フィッテイング 1. 次数を変更した時の   パターン認識の変化を見る 2. 訓練集合の数を変更した時の   パターン認識の変化を見る
  25. 25. 25曲線フィッテイング y(x, w) = w0 + w1x + w2x2 + · · · + wM xM = MX j=0 wjxj M = 1 M = 0 M = 3 M = 9
  26. 26. 26誤差関数 E(w) = 1 2 NX n=1 {y(xn, w) tn}2
  27. 27. 27誤差関数 誤差関数を小さくするような 係数を探す E(w) = 1 2 NX n=1 {y(xn, w) tn}2
  28. 28. M = 0 M = 3 M = 9M = 1
  29. 29. M = 0 M = 3 M = 9M = 1 M=0,1は データに合わない sin(2πx)が表現 出来ていない 不適切
  30. 30. M = 0 M = 3 M = 9M = 1 M=3は よく当てはまっているように見える 適切
  31. 31. M = 0 M = 3 M = 9M = 1 不適切 M=9は、訓練データ(青丸)には よく当てはまっている しかし、sin(2πx)に対して無茶苦茶 過学習という
  32. 32. 32100個のテストデータの入力 テスト集合を入力し、 訓練集合の誤差関数と比較する
  33. 33. 33平均二乗平方根誤差 ERMS = p 2E(w⇤)/N ・比較には上式を使う ・統計値等の散らばり具合を表す(0に近いと高精度) ・Nで割る  →サイズの異なるデータの比較 ・平方根を取る  →目的変数 t と同じ尺度(単位)であると保証される
  34. 34. 34示してみた テスト集合 訓練集合
  35. 35. 35Mが小さい時 M = 1 ・テスト集合の誤差がかなり大きい ・対応する多項式は柔軟性に欠ける ・関数 sin(2πx) の振動を捉えられない
  36. 36. M = 3 36      のとき ・テスト集合の誤差は小さい ・関数 sin(2πx) の振動を捉えた   sin(2πx)を生成する妥当な表現 3  M  8
  37. 37. M = 9 37Mが大きい時 ・訓練集合の誤差は 0 ・テスト集合の誤差がかなり大きい ・無茶苦茶に発振している
  38. 38. 38なんでそうなるの? M = 9  ・訓練集合の数は 9  ・M=9 とは 自由度10 → w0,…,w9に丁度当てはまった為
  39. 39. 39なんでそうならないの? sin(2πx) の級数展開は 全ての次元を含むのに なんでそうならない…? 感覚的:   次元を上げる(M→大)ほど   結果が良くなりそう…?
  40. 40. 40次数を変えた時の係数の値
  41. 41. 41次数を変えた時の係数の値 次数を大きくすると、 多項式が各データ点に 合わせるため、 係数の値が大きくなる
  42. 42. 42なんでそうならないの? 感覚的:   次元を上げる(M→大)ほど   結果が良くなりそう…? 実際:   次元を上げるほど目的値の   ランダムノイズに引き られる
  43. 43. 43ここで… y(x, w) = w0 + w1x + w2x2 + · · · + wM xM = w0 + w1x + w2x2 + · · · + wM xM = MX j=0 wjxj . :多項式の次数 (order)M xj :x の j 乗 w = w0, . . . , wM :多項式の係数 次数とは係数(=パラメータ)の数 次数を減らす = パラメータを減らす
  44. 44. 44訓練集合のデータ点数 経験集合のデータ点数を変える
  45. 45. 45変えてみた N = 15 N = 100 訓練集合を増やすほど、 過学習の問題は深刻ではなくなる M = 9
  46. 46. 46つまり… 訓練集合のデータ数を増やすほど、 複雑で柔軟なモデルを表現できる
  47. 47. 47でも… 訓練集合のデータ数で モデルが変化するっておかしくね? モデルは、 解くべき問題に合わせて 変化するべきやろ。
  48. 48. 48そこで 訓練集合のデータ数や ランダムノイズの影響を受けず、 複雑で柔軟なモデルを表現したい!
  49. 49. 49そこで 次数が大きくても、 パラメータの値が 小さければ 問題ない…?
  50. 50. 50誤差関数 パラメータは誤差関数を 小さくするように決める 誤差関数を弄ればいいのか…? E(w) = 1 2 NX n=1 {y(xn, w) tn}2
  51. 51. E(w) = 1 2 NX n=1 y(xn, w) tn 2 + 2 || w ||2 51正則化した誤差関数 || w ||2 ⌘ wT w = w2 0 + w2 1 + · · · + w2 M
  52. 52. E(w) = 1 2 NX n=1 y(xn, w) tn 2 + 2 || w ||2 52正則化した誤差関数 誤差関数を小さくするため罰金項を 小さくしないといけない || w ||2 ⌘ wT w = w2 0 + w2 1 + · · · + w2 M パラメータが小さくなる!!
  53. 53. 53縮小推定 推定に関係ない特徴に対応する パラメータを小さくする手法 縮小推定(荷重減衰) 特に2次の正則化は「リッジ回帰」
  54. 54. 54罰金項を操作する E(w) = 1 2 NX n=1 y(xn, w) tn 2 + 2 || w ||2 λを操作してみる!!
  55. 55. 55罰金項を操作してみた E(w) = 1 2 NX n=1 y(xn, w) tn 2 + 2 || w ||2 ln( ) = 0 ! = e0 = 1ln( ) = 18 ! = e 18 = 1.52 ⇥ 10 8
  56. 56. 56罰金項を操作してみた ln(λ)の値によりwが調節されている
  57. 57. 57罰金項を操作してみた ln(λ)の値によりwが調節されている
  58. 58. 58確認用集合 得られたデータを、 係数wを決めるために使う訓練集合と それとは別の (今回のテスト集合のような) 確認用集合に分ける手法
  59. 59. 59確認用集合 確認用集合はホールドアウト集合と も呼ばれ、モデルの複雑さを最適化 するために使われる。
  60. 60. 演習問題
  61. 61. 611.1 問題  関数 y(x,w) が多項式(1,1)で与えられた時の、 (1,2) の二乗和誤差関数を考える。  この誤差関数を最小にする係数 w={wi}は 以下の線形方程式の解として与えられることを示せ。 MX j=0 = Ti ただし Aij = NX n=1 (xn)i+j Ti = NX n=1 (xn)i tn
  62. 62. 621.1 解答 y(x, w) = w0 + w1x + w2x2 + · · · + wM xM = MX j=0 wjx + w1x + w2x2 + · · · + wM xM = MX j=0 wjxj . モデル関数 E(w) = 1 2 NX n=1 {y(xn, w) tn}2 誤差関数 …(1.1) …(1.2)
  63. 63. 631.1 解答 E(w) = 1 2 NX n=1 { MX j=0 wjxj n tn}2 (1.1),(1.2)より ここで xn = 2 6 6 4 x0 n x1 n : xM n 3 7 7 5w = 2 6 6 4 w0 w1 : wM 3 7 7 5 なので、 E(w) = 1 2 NX n=1 {wT xn tn}2 次式になる 上式を微分して、y(xn,w)が最小となる係数wを求める
  64. 64. 641.1 解答 dE dw = 2 2 NX n=1 (wT xn tn) d(wT xn tn) dw = NX n=1 (wT xn tn)xn ↑これが (=0) になれば良い NX n=1 0 @ MX j=0 wjxj n tn 1 A xi n = 0 表記を元に戻して
  65. 65. 651.1 解答 NX n=1 0 @ MX j=0 wjxj n tn 1 A xi n = 0 (前ページより) NX n=1 0 @ MX j=0 wj(xn)(i+j) (xn)i tn 1 A = 0 MX j=0 NX n=1 wj(xn)i+j = NX n=1 (xn)i tn 移項して
  66. 66. 661.1 解答 MX j=0 NX n=1 wj(xn)i+j = NX n=1 (xn)i tn (前ページより) Aij = NX n=1 (xn)i+j Ti = NX n=1 (xn)i tn 問題文より が使えるので、 、 MX j=0 Aijwj = Ti (終わり)
  67. 67. 671.2 問題  正則化された二乗和誤差関数 (1.4) を最小にする 係数 wi が満たす、(1.122) に類似した線形方程式系を 書き下せ。 E(w) = 1 2 NX n=1 y(xn, w) tn 2 + 2 || w ||2 …(1.4) MX j=0 Aijwj = Ti …(1.122) Aij = NX n=1 (xn)i+j Ti = NX n=1 (xn)i tn、 なお
  68. 68. 681.2 解答 y(x, w) = w0 + w1x + w2x2 + · · · + wM xM = MX j=0 wjx + w1x + w2x2 + · · · + wM xM = MX j=0 wjxj . モデル関数 …(1.1)
  69. 69. 691.2 解答 (1.1),(1.2)より E(w) = 1 2 NX n=1 { MX j=0 wjxj n tn}2 + 2 MX j=0 w2 j dE(w) dwi = 1 2 ⇥ 2 NX n=1 ( MX j=0 wjxj n tn) d dwi ( MX j=0 wjxj n tn) + 2 ⇥ 2 wi ↑これが (=0) になれば良い
  70. 70. 701.2 解答 ここで、w = wi = {w0, w1, . . . , wM } だから はwi wj の要素の1つである。よって、 y(x, w) = w0 + w1x + w2x2 + · · · + wM xM = MX j=0 wjxj より次が成り立つ y(xn, w) = w0 + w1x1 n + w2x2 n + · · · + wM xM n = MX j=0 wjxj n これを wi で微分すると dy(xn, w) dwi = xi n となる
  71. 71. 711.2 解答 dE(w) dwi = 1 2 ⇥ 2 NX n=1 ( MX j=0 wjxj n tn) d dwi ( MX j=0 wjxj n tn) + 2 ⇥ 2 wi (前々ページより) dy(xn, w) dwi = xi n (前ページより) = NX n=1 ( MX j=0 wjxj n tn)xi n + wi = 0 NX n=1 ( MX j=0 wjxj n tn)xi n = wi NX n=1 MX j=0 wjxi+j n = NX n=1 tnxi n wi
  72. 72. 721.2 解答 NX n=1 MX j=0 wjxi+j n = NX n=1 tnxi n wi (前ページより) MX j=1 wj NX n=0 (xn)i+j = NX n=1 tn(xn)i wi Aij = NX n=1 (xn)i+j Ti = NX n=1 (xn)i tn 問題文より が使えるので、 、 MX j=0 Aijwj = Ti wi (終わり)
  73. 73. END... THANK YOU FOR YOUR ATTENTION. 寝たい…

×