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