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.

正則化つき線形モデル(「入門機械学習第6章」より)

26,347 views

Published on

Published in: Technology
  • Be the first to comment

正則化つき線形モデル(「入門機械学習第6章」より)

  1. 1. 第6章 正則化 : テキスト回帰 えりっくさーとる 入門機械学習 1
  2. 2. 6章の構成 •  6.1 列の非線形関係 : 直線の先にあるもの –  6.1.1 多項式回帰の紹介 •  6.2 過学習を防ぐ方法 –  6.2.1 正則化を用いて過学習を防ぐ •  6.3 テキスト回帰 –  6.3.1 救いの手、ロジスティック回帰 2
  3. 3. 本輪講の構成(『入門機械学習』はほぼガン無視) •  [1] 線形回帰とその拡張 •  [2] 過学習と正則化 •  [3] 正則化つき回帰をしてみる •  [4] まとめ 3
  4. 4. [1]線形回帰とその拡張 1.  単純な線形回帰を考える –  単回帰分析と重回帰分析 –  線形回帰モデルの紹介 2.  さらに一般化してみる –  線形基底関数モデルの紹介 –  基底関数 3.  重みの決め方 –  最小二乗法 4
  5. 5. 単純な線形回帰を考える [1] 線形回帰とその拡張 駅 家1 家2 家3 1.5km 6万円/月 3万円/月 8万円/月 駅からの距離で 家賃が求められるのでは? 5
  6. 6. 単純な線形回帰を考える [1] 線形回帰とその拡張 駅からの距離[m] 家賃[万円/月] 1000 35 1500 25 500 45 求めたい家賃をy, 駅からの距離をxとすると と近似できそう(単回帰分析) ˆyl = ax + b 表にしてみた 駅からの距離[m] 家賃[万円/月] 6
  7. 7. 単純な線形回帰を考える [1] 線形回帰とその拡張 駅 家1 家2 家3 1.5km 6万円/月 築8年, 面積50m2 駅からの距離と面積と築年数で 家賃が求められるのでは? 3万円/月 築10年, 面積40m2 8万円/月 築4年, 面積50m2 7
  8. 8. 単純な線形回帰を考える [1] 線形回帰とその拡張 駅からの距離[m] 築年数[年] 面積[m2] 家賃[万円/月] 1000 6 50 35 1500 3 40 25 500 8 50 45 求めたい家賃をy, 駅からの距離をx1, 築年数をx2, 面積をx3とおくと と近似できそう(重回帰分析) ˆyml = ax1 + bx2 +cx3 + d 表にしてみた 8
  9. 9. 単純な線形回帰を考える [1] 線形回帰とその拡張 ˆy = w0 + w1x1 + w 2 x2 +!+ wD xD ˆyl = ax + b ˆyml = ax1 + bx2 +cx3 + d ! " # 上記の2式をにらめっこすると、次のように一般化できる: x0=1とすれば ˆy = xjwj j=0 D ∑ となる。 9
  10. 10. 単純な線形回帰を考える [1] 線形回帰とその拡張 ˆy = xjwj j=0 D ∑ 先程求めた式で表せるものを線形回帰モデルと呼ぶ。 実際の値には誤差εが乗っていて、これはN(0, σ2)に従う y = xjwj j=0 D ∑ +ε y : 独立変数, 被説明変数,目的変数 wj : 重み xj : 従属変数, 説明変数 等分散正規分布 10
  11. 11. 単純な線形回帰を考える [1] 線形回帰とその拡張 ……入力xに対して線形ってどうなの? 先程求めた式で表せるものを線形回帰モデルと呼ぶ。 ここでyについてわかることは、 ・入力xに対して線形 ・重みwに対して線形 ・「入力xと重みwの積」の和を計算している ˆy = xjwj j=0 D ∑ y : 独立変数, 被説明変数,目的変数 wj : 重み xj : 従属変数, 説明変数 11
  12. 12. 単純な線形回帰を考える [1] 線形回帰とその拡張 これは回帰できるの? こういうのは? これらを扱うには もっと一般化する必要がある… 12
  13. 13. さらに一般化してみる [1] 線形回帰とその拡張 Φ(x)=x2としてyとΦ(x)をプロットしてみると… 先程は扱えなかったこのような分布、 13
  14. 14. さらに一般化してみる [1] 線形回帰とその拡張 14 yはΦ(x)に対して線形になる。多項式も扱える!
  15. 15. さらに一般化してみる [1] 線形回帰とその拡張 ˆy = φj (x)wj j=0 D ∑ 以下の式で表せるものを線形基底関数モデルと呼ぶ。 なお、Φ0(x)=1とする。 y : 独立変数, 被説明変数,目的変数 wj : 重み xj : 従属変数, 説明変数 Φ : 基底関数, リンク関数(RD→R1) 注意! R1→R1ではない ここでyについてわかることは、 ・入力xに対して非線形 ・重みwに対して線形 ・「入力xをΦにかけた値と重みwの積」の和 15
  16. 16. さらに一般化してみる [1] 線形回帰とその拡張 ˆy = φj (x)wj j=0 D ∑ 基底関数には以下の関数がよく使われる(人間が選ぶ) Φの形 名前 用途 xj 多項式 多項式フィッティング exp{-(x-μ)2/2s2} ガウス基底関数 非線形SVM σ((x-μj)/2) ロジット関数 ニューラルネット ロジスティック回帰 16
  17. 17. ˆy = φj (x)wj j=0 D ∑ 重みの決め方 [1] 線形回帰とその拡張 どうやって決めるのか? 最小二乗法による推定 最尤法による推定 今回はこちらだけ 17
  18. 18. 重みの決め方 [1] 線形回帰とその拡張 最小二乗法による推定...の前に ˆyi = φj (xi )wj j=0 D ∑ = φ0 (xi ) ! φD (xi ) " # $ $ $ $ % & ' ' ' ' T w i個目の観測データをxi、目的変数をyiとし、 w=(w0, w1, ..., wD)Tとすると yiの予測値は以下のように表せる 18
  19. 19. 重みの決め方 [1] 線形回帰とその拡張 最小二乗法による推定...の前に ˆy = ΦT w n個の独立な観測データ(x1, ..., xn)があったとき、 ˆy = ˆy1 ! ˆyn ! " # # # # $ % & & & & ,Φ = φ0 (x1) " φ0 (xn ) ! # ! φD (x1) " φD (xn ) ! " # # # # $ % & & & & yの予測値ベクトルは以下のように表せる とおくと x1 xn 19
  20. 20. 重みの決め方 [1] 線形回帰とその拡張 最小二乗法による推定 実測値と予測値の二乗誤差を最小化する ˆyi yi 二乗誤差Ewを 以下のように定義: ED (w) = (yi − ˆyi )2 i=1 n ∑ 20
  21. 21. 重みの決め方 [1] 線形回帰とその拡張 最小二乗法による推定 ED (w) = (yi − ˆyi )2 i=1 n ∑ これは多次元空間で下に凸 つまり「EDを最小化するw*」はこの2次関数の極値とわかる 極値は「EDを微分した結果が0になるw」なので、 ∂ ∂w ED (w) = 0 を解くと、w*=(ΦΦT)-1ΦTyとわかる 「擬似逆行列」と呼ばれる。 多重共線性が無いと仮定すると 列が線形独立なのでこう計算できる 21
  22. 22. [2]過学習と正則化 1.  過学習とは –  多項式回帰の例 –  線形基底関数モデルにおける「複雑さ」とは 2.  正則化 –  いろいろな正則化項 –  λの推定と交差検定 22
  23. 23. 過学習とは [2] 過学習と正則化 サンプル数が少ない状況(n=30)で、 多項式回帰の次数を上げていくと... テストデータに 適合しなくなってきてる 訓練データに とても適合している このような状況を過学習という ちなみにサンプル数が多くなると テストデータのRMSEが上がらずに横ばいだった23
  24. 24. 過学習とは [2] 過学習と正則化 複雑すぎるモデルを用いると、 訓練データセットのクセ(ノイズ)を拾いすぎてしまい、 真のモデルの形から遠ざかってしまう 線形基底関数モデルにおける複雑さの定義は 以下に示すものがある(値が大きいほど複雑) L2ノルム w 2 L1ノルム w w0 w1 w0 w1 24
  25. 25. 正則化 [2] 過学習と正則化 ED (w) = (yi − ˆyi )2 i=1 n ∑最小二乗法においては を最小にした。 これにモデルの複雑度を示す正則化項Ewを加え、 ED (w)+ λEW (w) を最小にするw*を求めることにする。 w0 w1 L2正則化を用いた回帰 (リッジ回帰)の最適点 ちなみに、L2正則化項のときは w* = (λI +ΦΦT )−1 ΦT y と解析的に解ける。 25
  26. 26. 正則化 ED (w)+ λEW (w) [2] 過学習と正則化 パラメータλをどう決める? 交差検定を使ってみる [1] [2] [3] データ [1]学習 [2]学習 [3]評価 [1]評価 [2]学習 [3]学習 [1]学習 [2]評価 [3]学習 λを変えながらそれぞれ試す 26
  27. 27. [3]正則化つき回帰をしてみる 1.  テキスト回帰 –  紹介文の単語集合からランキングを予測する –  この失敗から学べること 2.  ロジスティック回帰 –  ロジスティック回帰でできること –  ロジスティック回帰は何モデル? –  さっきの例に適用してみた 27
  28. 28. テキスト回帰 [3] 正則化つき回帰をしてみる 紹介文に出てくる単語の出現回数から、 売上順位が推定できないか? ˆy = xjwj j=0 D ∑ これを線形回帰モデルに当てはめると y : 売上順位 wj : 重み xj : 単語jの出現回数 単語は無数にあるので非常に次元が高くなる 正則化項つきでないと簡単に過学習してしまう 28
  29. 29. テキスト回帰 [3] 正則化つき回帰をしてみる やってみたが... λが大きくなるほど RMSEが下がっている... 29 ランキングは出現単語と関係がない モデルがおかしい
  30. 30. テキスト回帰 [3] 正則化つき回帰をしてみる この様にうまくいかないこともあるので、 適切なモデルを選ぶことが大切 参考 : AIC(赤池情報量規準) 統計モデルの良さを評価するためのとてもとても有名な指標。 この値が最小のものを選ぶと良いモデルが選択できる。 ちなみにAICのあとにBICとかMDLだとかいろんな規準が 提案されているので、統計屋さんはこれらを使い分ける。 30
  31. 31. テキスト回帰 [3] 正則化つき回帰をしてみる 売上順位の予想をあきらめたくない 「売上順位の予測」ではなく、 「上位50以内に入るかどうか」という分類問題に切り替え ロジスティック回帰に帰着させてみる 31
  32. 32. ロジスティック回帰 [3] 正則化つき回帰をしてみる ロジスティック回帰でできること ロジスティック回帰を使うと、数値の説明変数から 目的変数としてYES/NO(2値分類)の確率が出せる 説明変数x1(数値) ⋮ ロジスティック回帰 目的変数y(確率) 説明変数x2(数値) 説明変数xn(数値) 32
  33. 33. ロジスティック回帰 [3] 正則化つき回帰をしてみる ロジスティック回帰は何モデル? 誤差が正規分布に従わないので実は線形モデルではない! ˆy = f (w0 + w1x1 +!wD xD ) = f xT w( ) 一般化線形モデルというものに属し、以下で表せる: ロジスティック回帰は関数fがシグモイド関数なので ˆy = 1 1+ exp(−xT w) と表される 33
  34. 34. ロジスティック回帰 [3] 正則化つき回帰をしてみる さっきの例に適用してみた(正則化つきで) どうやら55%の確率で当たる程度にはなったらしい 34
  35. 35. [4]本章のまとめ •  [1] 線形回帰とその拡張 –  線形回帰モデルを拡張したものが線形基底関数モデル –  最小二乗法で重みの推定ができる •  [2] 過学習と正則化 –  線形基底モデルの複雑さは重みベクトルのノルム –  正則化項には色々な種類がある •  [3] 正則化つき回帰をしてみる –  適切な問題設定をしよう 35
  36. 36. •  シンプル・イズ・ベター – 過学習を防ぐため、正則化項をつけて パラメータwを推定しよう – 欲しい情報に合わせて問題設定を見直そう 36 [4]本に書いてあるまとめ

×