Top Banner
第6章 正則化 : テキスト回帰 えりっくさーとる 入門機械学習 1
36

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

Jun 29, 2015

Download

Technology

Eric Sartre
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 正則化つき線形モデル(「入門機械学習第6章」より)

第6章 正則化 : テキスト回帰

えりっくさーとる

入門機械学習

1

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

6章の構成

•  6.1 列の非線形関係 : 直線の先にあるもの – 6.1.1 多項式回帰の紹介

•  6.2 過学習を防ぐ方法 – 6.2.1 正則化を用いて過学習を防ぐ

•  6.3 テキスト回帰 – 6.3.1 救いの手、ロジスティック回帰

2

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

本輪講の構成(『入門機械学習』はほぼガン無視)

•  [1] 線形回帰とその拡張

•  [2] 過学習と正則化

•  [3] 正則化つき回帰をしてみる

•  [4] まとめ

3

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

[1]線形回帰とその拡張

1.  単純な線形回帰を考える –  単回帰分析と重回帰分析

–  線形回帰モデルの紹介

2.  さらに一般化してみる –  線形基底関数モデルの紹介

–  基底関数

3.  重みの決め方 –  最小二乗法

4

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

単純な線形回帰を考える [1] 線形回帰とその拡張

駅 家1

家2

家3

1.5km

6万円/月

3万円/月

8万円/月

駅からの距離で 家賃が求められるのでは?

5

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

単純な線形回帰を考える [1] 線形回帰とその拡張

駅からの距離[m] 家賃[万円/月] 1000 35 1500 25 500 45

求めたい家賃をy, 駅からの距離をxとすると と近似できそう(単回帰分析)

yl = ax + b

表にしてみた

駅からの距離[m]

家賃[万円/月]

6

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

単純な線形回帰を考える [1] 線形回帰とその拡張

駅 家1

家2

家3

1.5km

6万円/月 築8年, 面積50m2

駅からの距離と面積と築年数で 家賃が求められるのでは?

3万円/月 築10年, 面積40m2

8万円/月 築4年, 面積50m2

7

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

単純な線形回帰を考える [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

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

単純な線形回帰を考える [1] 線形回帰とその拡張

y = w0 +w1x1 +w 2x2 +!+wDxD

yl = ax + byml = ax1 + bx2 + cx3 + d!"#

上記の2式をにらめっこすると、次のように一般化できる:

x0=1とすれば y = x jwjj=0

D

∑ となる。

9

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

単純な線形回帰を考える [1] 線形回帰とその拡張

y = x jwjj=0

D

先程求めた式で表せるものを線形回帰モデルと呼ぶ。

実際の値には誤差εが乗っていて、これはN(0, σ2)に従う

y = x jwjj=0

D

∑ +ε

y : 独立変数, 被説明変数,目的変数 wj : 重み xj : 従属変数, 説明変数

等分散正規分布

10

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

単純な線形回帰を考える [1] 線形回帰とその拡張

……入力xに対して線形ってどうなの?

先程求めた式で表せるものを線形回帰モデルと呼ぶ。

ここでyについてわかることは、 ・入力xに対して線形 ・重みwに対して線形 ・「入力xと重みwの積」の和を計算している

y = x jwjj=0

D

∑y : 独立変数, 被説明変数,目的変数 wj : 重み xj : 従属変数, 説明変数

11

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

単純な線形回帰を考える [1] 線形回帰とその拡張

これは回帰できるの?

こういうのは?

これらを扱うには もっと一般化する必要がある… 12

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

さらに一般化してみる [1] 線形回帰とその拡張

Φ(x)=x2としてyとΦ(x)をプロットしてみると…

先程は扱えなかったこのような分布、

13

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

さらに一般化してみる [1] 線形回帰とその拡張

14

yはΦ(x)に対して線形になる。多項式も扱える!

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

さらに一般化してみる [1] 線形回帰とその拡張

y = φ j (x)wjj=0

D

以下の式で表せるものを線形基底関数モデルと呼ぶ。 なお、Φ0(x)=1とする。 y : 独立変数, 被説明変数,目的変数

wj : 重み xj : 従属変数, 説明変数 Φ : 基底関数, リンク関数(RD→R1)

注意! R1→R1ではない ここでyについてわかることは、

・入力xに対して非線形 ・重みwに対して線形 ・「入力xをΦにかけた値と重みwの積」の和

15

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

さらに一般化してみる [1] 線形回帰とその拡張

y = φ j (x)wjj=0

D

基底関数には以下の関数がよく使われる(人間が選ぶ)

Φの形 名前 用途

xj 多項式 多項式フィッティング

exp{-(x-μ)2/2s2} ガウス基底関数 非線形SVM

σ((x-μj)/2) ロジット関数 ニューラルネット ロジスティック回帰

16

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

y = φ j (x)wjj=0

D

重みの決め方 [1] 線形回帰とその拡張

どうやって決めるのか?

最小二乗法による推定

最尤法による推定

今回はこちらだけ

17

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

重みの決め方 [1] 線形回帰とその拡張

最小二乗法による推定...の前に

yi = φ j (xi )wjj=0

D

∑ =

φ0 (xi )!

φD (xi )

"

#

$$$$

%

&

''''

T

w

i個目の観測データをxi、目的変数をyiとし、 w=(w0, w1, ..., wD)Tとすると yiの予測値は以下のように表せる

18

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

重みの決め方 [1] 線形回帰とその拡張

最小二乗法による推定...の前に

y =ΦTw

n個の独立な観測データ(x1, ..., xn)があったとき、

y =y1!yn

!

"

####

$

%

&&&&

,Φ =

φ0 (x1) " φ0 (xn )! # !

φD (x1) " φD (xn )

!

"

####

$

%

&&&&

yの予測値ベクトルは以下のように表せる

とおくと

x1 xn

19

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

重みの決め方 [1] 線形回帰とその拡張

最小二乗法による推定 実測値と予測値の二乗誤差を最小化する

yi

yi

二乗誤差Ewを 以下のように定義:

ED (w) = (yi − yi )2

i=1

n

20

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

重みの決め方 [1] 線形回帰とその拡張

最小二乗法による推定

ED (w) = (yi − yi )2

i=1

n

∑ これは多次元空間で下に凸

つまり「EDを最小化するw*」はこの2次関数の極値とわかる

極値は「EDを微分した結果が0になるw」なので、 ∂∂w

ED (w) = 0 を解くと、w*=(ΦΦT)-1ΦTyとわかる 「擬似逆行列」と呼ばれる。 多重共線性が無いと仮定すると 列が線形独立なのでこう計算できる

21

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

[2]過学習と正則化

1. 過学習とは

– 多項式回帰の例

– 線形基底関数モデルにおける「複雑さ」とは

2. 正則化

– いろいろな正則化項

– λの推定と交差検定 22

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

過学習とは [2] 過学習と正則化

サンプル数が少ない状況(n=30)で、 多項式回帰の次数を上げていくと...

テストデータに 適合しなくなってきてる

訓練データに とても適合している

このような状況を過学習という ちなみにサンプル数が多くなると テストデータのRMSEが上がらずに横ばいだった 23

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

過学習とは [2] 過学習と正則化

複雑すぎるモデルを用いると、 訓練データセットのクセ(ノイズ)を拾いすぎてしまい、 真のモデルの形から遠ざかってしまう

線形基底関数モデルにおける複雑さの定義は 以下に示すものがある(値が大きいほど複雑)

L2ノルム w 2 L1ノルム w

w0

w1

w0

w1

24

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

正則化 [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

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

正則化

ED (w)+λEW (w)

[2] 過学習と正則化

パラメータλをどう決める?

交差検定を使ってみる

[1]

[2]

[3]

データ

[1]学習

[2]学習

[3]評価

[1]評価

[2]学習

[3]学習

[1]学習

[2]評価

[3]学習

λを変えながらそれぞれ試す

26

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

[3]正則化つき回帰をしてみる

1.  テキスト回帰 – 紹介文の単語集合からランキングを予測する

– この失敗から学べること

2.  ロジスティック回帰 – ロジスティック回帰でできること

– ロジスティック回帰は何モデル?

– さっきの例に適用してみた 27

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

テキスト回帰 [3] 正則化つき回帰をしてみる

紹介文に出てくる単語の出現回数から、 売上順位が推定できないか?

y = x jwjj=0

D

これを線形回帰モデルに当てはめると y : 売上順位 wj : 重み xj : 単語jの出現回数

単語は無数にあるので非常に次元が高くなる

正則化項つきでないと簡単に過学習してしまう 28

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

テキスト回帰 [3] 正則化つき回帰をしてみる

やってみたが...

λが大きくなるほど RMSEが下がっている...

29

ランキングは出現単語と関係がない

モデルがおかしい

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

テキスト回帰 [3] 正則化つき回帰をしてみる

この様にうまくいかないこともあるので、 適切なモデルを選ぶことが大切

参考 : AIC(赤池情報量規準)

統計モデルの良さを評価するためのとてもとても有名な指標。

この値が最小のものを選ぶと良いモデルが選択できる。

ちなみにAICのあとにBICとかMDLだとかいろんな規準が

提案されているので、統計屋さんはこれらを使い分ける。

30

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

テキスト回帰 [3] 正則化つき回帰をしてみる

売上順位の予想をあきらめたくない

「売上順位の予測」ではなく、 「上位50以内に入るかどうか」という分類問題に切り替え

ロジスティック回帰に帰着させてみる 31

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

ロジスティック回帰 [3] 正則化つき回帰をしてみる

ロジスティック回帰でできること

ロジスティック回帰を使うと、数値の説明変数から 目的変数としてYES/NO(2値分類)の確率が出せる

説明変数x1(数値)

… ロジスティック回帰 目的変数y(確率) 説明変数x2(数値)

説明変数xn(数値)

32

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

ロジスティック回帰 [3] 正則化つき回帰をしてみる

ロジスティック回帰は何モデル?

誤差が正規分布に従わないので実は線形モデルではない!

y = f (w0 +w1x1 +!wDxD ) = f xTw( )一般化線形モデルというものに属し、以下で表せる:

ロジスティック回帰は関数fがシグモイド関数なので

y = 11+ exp(−xTw)

と表される

33

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

ロジスティック回帰 [3] 正則化つき回帰をしてみる

さっきの例に適用してみた(正則化つきで)

どうやら55%の確率で当たる程度にはなったらしい

34

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

[4]本章のまとめ

•  [1] 線形回帰とその拡張 –  線形回帰モデルを拡張したものが線形基底関数モデル

–  最小二乗法で重みの推定ができる

•  [2] 過学習と正則化 –  線形基底モデルの複雑さは重みベクトルのノルム

–  正則化項には色々な種類がある

•  [3] 正則化つき回帰をしてみる –  適切な問題設定をしよう

35

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

•  シンプル・イズ・ベター – 過学習を防ぐため、正則化項をつけて パラメータwを推定しよう

– 欲しい情報に合わせて問題設定を見直そう

36

[4]本に書いてあるまとめ