PRML上巻勉強会 at 東京大学
線形回帰モデル
東京大学
大学院情報理工学系研究科
電子情報学専攻 M2 尾崎安範
1
自己紹介
• 尾崎安範
• 経歴
– 豊田高専→名古屋大→東大院→
民間の研究所(予定)

• 研究分野
– 視線情報を用いたユーザ・インターフェース

• 興味
– コンピュータビジョン(画像認識など)
– データサイエンス(機械学習など)
2
趣味
• 一発ネタのプログラムを作ること
– 中学:RPGの制作のお手伝い
– 高専:音楽ゲームとアクションを合体したゲーム
• 10人以上で製作

– 大学:「オタクっぽい」というワードで顔画像検索
– 大学院:目と表情で初音ミクとコミュニケーション
– 詳しくはこちらへ
• http://www.hci.iis.u-tokyo.ac.jp/~ozakiy/

3
Twitter
• @alfredplpl
– プログラミング(RとPythonなど)と
変なネタをつぶやいてます
– よろしければフォローよろしくお願いします

4
注意書き
• PRML本はわかりにくい!!
– 補足説明付けました
• 左下に補足かPRML本の内容かを書いておきます

• あと、線形回帰と線形回帰モデルは別物です
• わからなかったら適宜質問お願いします

補足

PRML

5
線形回帰ってなに?
• 以下の章立てで説明します
3 線形回帰モデル
3.1 線形基底関数モデル
3.1.1 最尤推定
3.1.2 最小二乗法の幾何学
3.1.3 逐次学習
3.1.4 正則化最小二乗法
3.1.5 出力変数型次元の場合
補足

6
線形回帰に入る前に準備
• PRML本の内容に入るまでちょっと長い
– 我慢して付き合ってください
– パターン認識とはそもそもから入ります

補足

7
パターン認識の主な体系
• 「機械が学習するタイミングで
正解を与えるかどうか」で2つに分かれる
– 教師なし学習(この章までPRMLでは主にこれを説明)
• 機械に正解を与えない学習方法
• 例
– クラスタリング
– 密度推定

– 教師あり学習
• 機械に正解を与える学習方法
• 例
– クラス分類
» 例:k-近傍法
– 回帰
» 例:線形回帰

補足

8
線形回帰モデル
• 回帰問題を解くためのモデル
?

• 解析しやすい
• 解くのが簡単

9
回帰問題
• 与えられた情報から
未知の連続値を予測する問題
– 例:ダイヤモンドの重さに対する値段

値段

20カラットの値段は?
15.5カラットの値段は?
・・・

10
補足

重さに対しての値段
(既に知っている)

20

ダイヤモンドの重さ[カラット]

10
回帰問題をもっともらしく解いてみよう
• もっともらしく解いてみた(赤線)
– これでどんな重さでも値段がわかる!

値段

重さに対しての値段
(既に知っている)

10
補足

20

ダイヤモンドの重さ[カラット]

11
回帰問題の一般的な表現
• ダイヤモンドの例を一般化

(値段)

モデル

目標変数

観測値 ( , )
(既知、
重さに対しての値段)

10
補足

PRML

20

入力変数 (ダイヤモンドの重さ[カラット])

12
線形回帰ってなに?
• 以下の章立てで説明します
3 線形回帰モデル
3.1 線形基底関数モデル
3.1.1 最尤推定
3.1.2 最小二乗法の幾何学
3.1.3 逐次学習
3.1.4 正則化最小二乗法
3.1.5 出力変数型次元の場合
補足

13
最も単純な線形回帰モデル
• 線形回帰
– ただのD次元の平面(通称:超平面)
バイアスパラメータ(切片)
重みベクトル(平面の傾きと切片に相当)

– シンプルだけど、表現能力は乏しい

PRML

盛大にずれている例

14
線形基底関数モデル
• 線形基底関数モデル
– 基底関数を線形結合した線形回帰モデル
• 出力は非線形にもなる

– 実用上は基底関数
関数にあたる

基底関数
(ただし、バイアスパラメータ
のために
とする)

は特徴抽出のための

• 例:文章中の単語jの出現回数
(たとえば、「線形」という単語の出現回数)

PRML

15
線形基底関数モデルの基底関数
• 以下、いっぱい基底関数が出てくるけど、
聞き流してもらえれば
– 別にニューラルネットとかカーネル法まで
覚える必要性はない

補足

16
さまざまな基底関数(1/4)
• 多項式
– 1章の線形回帰の例に使われたモデルがこれ

1章の線形回帰(j=[0,9]のとき)
PRML

いろいろなjでの
17
さまざまな基底関数(2/4)
• ガウス基底関数(別称:RBF[付録?])

– ただのガウス関数
– カーネル法、特に非線形SVMによく使われる

y

PRML

0.0

0.1

0.2

0.3

0.4

• 下巻6.4.1節「線形回帰再訪」参照

-3

-2

-1

0

1

2

3

x

正規分布の確率密度関数

いろいろなjでの

18
さまざまな基底関数(3/4)
• シグモイド基底関数
– ただし、σはロジスティックシグモイド関数

0.6
0.4
0.2
0.0

PRML

function(x) 1/(1 + exp(-x))

0.8

1.0

– ニューラルネットでよく使われる

-4

-2

0

2

4

x

ロジスティックシグモイド関数

いろいろなjでの

19
さまざまな基底関数(4/4)
• フーリエ基底
– exp(2πi)みたいな感じ
– フーリエ変換で使うため、いろいろ使われる

• ウェーブレット基底
– sinc関数(sin(x)/x)など
– 画像形式の1つJpeg2000とかで使う

補足

PRML

20
線形回帰ってなに?
• 以下の章立てで説明します
3 線形回帰モデル
3.1 線形基底関数モデル
3.1.1 最尤推定
3.1.2 最小二乗法の幾何学
3.1.3 逐次学習
3.1.4 正則化最小二乗法
3.1.5 出力変数型次元の場合
補足

21
線形回帰モデルをもっともらしく推定
• 線形回帰モデルの最尤推定を
最小二乗法を使って解く
– つまり、下図の赤線がモデルで
青点が観測値なら
緑線の長さの合計を短くするようなモデルの
パラメータを探す

補足

22
最尤推定の準備(1/2)
• 目標変数tをモデルにノイズが乗ると仮定
ガウシアンノイズεはN(0,β^-1)に従う
(ただし、パラメータβは精度とする)

• なので、目標変数tが1つの場合、

PRML

23
最尤推定の準備(2/2)
• データセット(データ集合)「Xとt」を用意
入力変数
入力変数に対する目標値

• 各データセットは独立にサンプルされたと
仮定すると尤度関数は

注:独立性がある確率の乗法定理です
PRML

24
線形回帰モデルの最尤推定
• 尤度関数にある
「正規分布の確率密度関数」の指数関数
が邪魔なので、対数をとる

モデルと観測値の二乗誤差

PRML

25
もっともらしさを最大化(1/2)
• まず重みベクトルwに関して尤度を最大化
– 重みは誤差の項にしかないので、
尤度を最大化⇔誤差を最小化

ここが0になるw
とは?

展開

PRML

26
もっともらしさを最大化(2/2)

• (続き)Φを式3.16とおき、式3.14をwについて
とくと、式3.15になる。

計画行列

PRML

最小二乗法の正規方程式

27
擬似逆行列
• 正規方程式をもっとシンプルに表現

と定義し、
代入

•

をムーア・ペンローズの擬似逆行列という
PRML

28
バイアスパラメータの役割
• バイアスパラメータ
って要るの?
• バイアスパラメータを図で見る
– 赤線:
– 緑線:

がある線形回帰
がない線形回帰

すごくずれてる!
原点

バイアスパラメータ要ります
補足

PRML

29
バイアスパラメータを数式で理解
• 誤差関数をw0について着目

• 誤差の微分が0であるときに、
w0に関して解く

PRML

バイアスパラメータは目標値の平均と基底関数の平均とのズレを
30
吸収してくれる
線形回帰モデルの最尤推定
• 忘れかけてた精度βに関して
誤差を最小化すると以下が得られる

– 精度の最尤推定結果を図で言うと、
「緑線(残差)の分散」の逆数

補足

PRML

31
線形回帰ってなに?
• 以下の章立てで説明します
3 線形回帰モデル
3.1 線形基底関数モデル
3.1.1 最尤推定
3.1.2 最小二乗法の幾何学
3.1.3 逐次学習
3.1.4 正則化最小二乗法
3.1.5 出力変数型次元の場合
補足

32
最小二乗法の幾何学(準備)(1/2)
• 最小二乗法で求めた結果の意味を
図で考えてみよう

モデルで
予測した結果

モデルy(x,w)

y(x1,w)

モデルy(x,w)

t1

t1
x1

補足

t

t

– モデルでy(x,w)=w0として求めた結果
y = yx1 , w, yx 2 , w , , yx N , w  とはなにか?

x

x1

x
33
最小二乗法の幾何学(準備) (2/2)
• 視点を変えてみよう
– 例えば、観測値を軸にして考えてみよう

y(x1,w)

モデルy(x,w)

t1
x1
補足

x

t1の軸

t

• モデルyはパラメータwをどう変えても、
部分空間S上にしか動けない
• 最小二乗法とは部分空間S上で一番観測値に
近くなる(誤差が少ない)ようにモデルのパラメータを
部分空間
選ぶこと
予測値
y=(y(x1,w),
y(x2,w))

 0  w0 , w0 

S  0

観測値
t=(t1,t2)
t2の軸

34
最小二乗法の幾何学
• 最小二乗法を図で考えてみよう
– 最小二乗法で求めた結果y = yx1 , w, yx 2 , w,, yx N , w
とはなにか?
• 観測値を軸とした空間を考える
• モデルの予測値を軸とした部分空間Sの中で
観測値tに一番近い位置ベクトル

≡
PRML

35
擬似逆行列がとけない場合は?
ここが正則でなさそうな場合、
すなわち、行列式が0に近い場合、
逆行列を求めにくい!

特異値分解(SVD)で解くか正則化項(3.1.4節)
を加えよう

PRML

36
線形回帰ってなに?
• 以下の章立てで説明します
3 線形回帰モデル
3.1 線形基底関数モデル
3.1.1 最尤推定
3.1.2 最小二乗法の幾何学
3.1.3 逐次学習
3.1.4 正則化最小二乗法
3.1.5 出力変数型次元の場合
補足

37
オンライン学習(逐次学習)に
必要な前知識
• 最急降下法
– 坂を下っていくように初期値近くの極値に
向かってパラメータを収束させていく方法
誤差関数の
パラメータ

誤差関数など
のグラフ

補足

パラメータ
更新

パラメータ
更新

止まったので収束!
38
線形回帰モデルの
オンライン学習
• 確率的最急降下法で重みwを更新しよう
– 誤差が収束するように重みwを更新
学習率パラメータ
(学習を加速させるパラメータ、
大きくすると重みが収束しなくなる)

各パターンnに対する誤差関数

– 3.1.1節で出てきた誤差
を代入すると
PRML

以上を最小平均二乗アルゴリズム(LMSアルゴリズム)という
39
線形回帰ってなに?
• 以下の章立てで説明します
3 線形回帰モデル
3.1 線形基底関数モデル
3.1.1 最尤推定
3.1.2 最小二乗法の幾何学
3.1.3 逐次学習
3.1.4 正則化最小二乗法
3.1.5 出力変数型次元の場合
補足

40
正則化最小二乗法
• 過学習を防ぐため最小二乗法を拡張
– 誤差

に正則化項

を加える(1.1節)

誤差と正則化項の
相対的な重要度
(実験的に決める)

を代入

PRML

41
最小二乗法の拡張としているわけ
• 正則化最小二乗法でwについて解くと、

• 最小二乗法の解と似ている

補足

PRML

42
正則化項の一般化
• 正則化項をよく見ると、
M

w w   wj
T

2

j 1

• 2乗をqで置き換えて一般化しよう
– なんで一般化するの?[本スライドの付録]

PRML

43
いろいろな正規化項のqとグラフ
• 正規化項のqを変化させて
M=2のとき、グラフにすると以下になる

M

w
j 1

q
j

Rで描いた三次元グラフ

補足

PRML

等高線の形(三次元グラフを横で切った形)

44
lasso
• q=1の時、特にlasso(ラッソ)という
– スパース(疎)な解が得られやすいため
たまに話題にでる
• スパースだといらない次元が0になるため、
要る次元といらない次元がわかりやすい
– c.f. パラメータ縮小推定、荷重減衰

PRML

45
lassoで解くと
スパースな解になる理由(1/2)
• 正則化されていない誤差の最短距離に
最適なパラメータベクトルになる
誤差の等高線

q=2のとき
PRML

q=1のとき

w*:最適なパラメータベクトル
46
lassoで解くと
スパースな解になる理由(2/2)
• スパースになる領域がlassoは広い!
ここに誤差の極値が
入っていれば
解がスパースになる領域
になるという例
(誤差関数とλ次第)

誤差の等高線

q=2のとき
補足

PRML

q=1のとき

w*:最適なパラメータベクトル
47
実際に最小化の過程を見てみよう

t

• Xとtが図のように与えられているとする

補足

x
48
q=2のときの最小化
誤差関数

正則化項

λ
点(w0=?,w1=?)のあたりで
最適解になっている
どうみてもスパースでない

補足

最小化する式

w0
w1

49
lassoのときの最小化
誤差関数

正則化項

λ
点(w0=0,w1=?)のあたりで
最小化できている
たしかにスパース
w0
w1
補足

最小化する式

50
lassoがスパースな解を出力する理由
• 数式的な意味は演習で証明してください
– 誤差関数の制約付き最小化問題なので、
ラグランジュの未定乗数法を使うと解けます

PRML

51
線形回帰ってなに?
• 以下の章立てで説明します
3 線形回帰モデル
3.1 線形基底関数モデル
3.1.1 最尤推定
3.1.2 最小二乗法の幾何学
3.1.3 逐次学習
3.1.4 正則化最小二乗法
3.1.5 出力変数型次元の場合
補足

52
出力変数が多次元の場合(結論)
• 目標変数が多次元のときは
各次元で独立に一次元の場合と同じに解ける
• でも、基底関数を各次元で統一すると
計算量を減らすことができる
– 目標変数を

k次元目の重み

k次元目の観測値

– ただし、擬似逆行列は各次元で同じなため
使い回しができる
PRML

53
参考文献
• PRML(サポートページ含む)
– http://research.microsoft.com/enus/um/people/cmbishop/PRML/

• Wikipedia
• 朱鷺の杜Wiki
– http://ibisforest.org/index.php?FrontPage

• Coursera: Machine Learning
– https://www.coursera.org/course/ml
54
参考文献
• 最小化のテストデータ生成に使った
– http://aoki2.si.gunma-u.ac.jp/R/gendat2.html

55
付録:ノルム
• 空間中の2点の長さはいろいろ決めることができる
– マンハッタン距離: x

2

 y2 

1/ 2

– ユークリッド距離:  x  y 

1/1

• 長さを一般化しよう!


 xj

 j

p






1/ p

– ノルムという概念
– pを固定したとき、特にL-pノルムという
• マンハッタン距離=L-1ノルム
• ユークリッド距離=L-2ノルム

• 正則化項を一般化しよう!
– L-1ノルムで重みを正規化→L1正規化(lasso)
– L-2ノルムで重みを正規化→L2正規化
56

PRMLの線形回帰モデル(線形基底関数モデル)