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

13,111 views

Published on

Published in: Technology
0 Comments
23 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
13,111
On SlideShare
0
From Embeds
0
Number of Embeds
205
Actions
Shares
0
Downloads
98
Comments
0
Likes
23
Embeds 0
No embeds

No notes for slide

正則化つき線形モデル(「入門機械学習第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]本に書いてあるまとめ

×