線形回帰を確率的に捉える。
はじめに
線形回帰では、m次元特徴ベクトルx∈Rmとパラメータβ∈Rmの内積によってターゲットyを予測する。
y^=x⊤β
特徴ベクトルと対応するターゲットがn組得られたとする。これらを
- X∈Rn×m
- y∈Rn
と表しておく。
線形回帰では、予測値と正解の二乗和誤差が最小になるようなパラメータβを求める。これは目的関数を微分して=0とおくことで解析的に求められる。
J(w)∂β∂Jβ^=∥y−Xβ∥2=2X⊤Xβ−2X⊤y=(X⊤X)−1X⊤y
さてこの最小二乗法によって求めたパラメータは、正解と予測値の差が最小になるようなパラメータではなく、尤度が最大になるようなパラメータとも解釈できる。誤差が正規分布に従うと仮定した上で最尤推定を行うと、途中で二乗和誤差の最小化が出てくるためだ。
このように、線形回帰は、最尤推定をはじめとした確率分布のパラメータ推定手法から考えることが出来る。本稿では、いくつかのパラメータ推定手法から線形回帰を捉えてみる。
最尤推定に基づく線形回帰
最尤推定
尤度が最大になるパラメータθの推定。
θ^=θargmaxp(X;θ)多くの場合で計算しやすい対数尤度logp(X;θ)を扱う。
線形回帰モデルのパラメータβに対して最尤推定を行なってみよう。次の条件付き分布を考える。
p(y∣x;β)
ここで、ターゲットyが以下のように発生すると仮定する。
yϵ=x⊤β+ϵ∼N(0,σ2)
ϵは誤差で、平均0、分散σ2の正規分布に従うと仮定した。すると先の条件付き分布を次のようにモデル化できる。
p(y∣x;β)=N(y;x⊤β,σ2)
この下で対数尤度を計算してみると
lnp(y∣X;β)=i∑lnp(yi∣xi;β)=i∑lnN(yi;xi⊤β,σ2)=i∑ln(2πσ21exp(−2σ2(yi−xi⊤β)2))=−2σ21i∑(yi−xi⊤β)2+const
負の二乗和誤差が出てきた。最尤推定ではこれを最大化する、つまり二乗和誤差を最小化する。ここからの流れは同じ。線形回帰における最小二乗法によるパラメータ推定は、誤差に正規分布を仮定した最尤推定であると言える。
MAP推定に基づく線形回帰
MAP推定
事後確率が最大になるパラメータθの推定。
θ^=θargmaxp(θ∣X)=θargmaxp(X;θ)p(θ)最尤推定ではあるパラメータθ∗における尤度p(X;θ∗)のみを考慮していたが、MAP推定では、「そもそもそのパラメータが得られる確率はどんなもんなん?」というところまで考慮する。主観に基づくパラメータそのものの妥当性p(θ∗)で尤度p(X;θ∗)に重み付けする。
MAP推定でも同じように線形回帰を考えられる。
β^=βargmaxp(β∣X,y)=βargmaxp(y∣X;β)p(β)
尤度p(y∣X;β)は最尤推定の章で示した通り、誤差に正規分布を仮定してモデル化する。事前分布p(β)は自身で適当なものを設定する。
例として、事前分布に平均0、分散1/λをもつ独立な正規分布を仮定してみよう。
p(β)=N(β;0,λ1I)
対数をとる。
lnp(β)=lnN(β;0,λ1I)=ln((2πλ)d/2exp(−21λ∥β∥2))=−21λ∥β∥2+const
材料が揃ったので、対数事後分布を見てみる。
lnp(β∣X,y)=lnp(y∣X;β)+lnp(β)=−21∥y−Xβ∥2−21λ∥β∥2+const
見やすくするために条件付き分布の分散σ2は1としている。
MAP推定ではこれを最大化するわけだが、さてこの式、どこかで見たことがないだろうか?実はこれはRidge回帰の目的関数と一致する。Ridge回帰は二乗和誤差にパラメータのL2ノルムを正則化項として加えた以下の目的関数を最小化する。これは上記の事後分布の最大化と同じ意味になる。
J(β)=∥y−Xβ∥2+λ∥β∥2
つまりRidge回帰は、事前分布に平均0の独立な正規分布を仮定したMAP推定と見られる。この事前分布が正則化項として働く。この正則化項は、機械学習的には「パラメータが0から離れたときにペナルティを与えるもの」と解釈できるが、ベイズ的には「そもそもパラメータって0付近から発生するよね」という立場を反映させたものとなる。事前分布の分散1/λが小さいほど=λが大きいほど強い正則化が行われるようになるが、これは分散が小さくなることで「パラメータって0付近から発生するよね」という立場が強くなるためである。
L2ノルムで正則化を行うRidge回帰だけでなく、L1ノルムで正則化を行うLasso回帰もMAP推定の特殊な形として解釈できる。事前分布としてラプラス分布を仮定してMAP推定を進めるとLasso回帰の目的関数が出現する。
p(β)lnp(β∣X,y)=j∏2b1exp(−λ∣βj∣)=lnp(y∣X;β)+lnp(β)=−21∥y−Xβ∥2−λ∥β∥1+const
ベイズ推定に基づく線形回帰
ベイズ推定
事後分布そのものの推定。
p(θ∣X)=p(X)p(X∣θ)p(θ)MAP推定ではこれが最大となるθを求めていたが、ベイズ推定では分布そのものを求める。
線形回帰におけるパラメータβについてベイズ推定を行ってみる。
p(β∣X,y)=p(y∣X)p(y∣X;β)p(β)
尤度p(y∣x;β)はこれまで通り正規分布でモデル化する。そして事前分布p(β)にも共役な分布である正規分布を仮定する。
p(y∣x;β)p(β)=N(y;x⊤β,σy2)=N(β;0,σβ2I)
すると、事後分布を以下の正規分布で表せる。(証明は付録)
p(β∣X,y)Σβμβ=N(β;μβ,Σβ)=(σy21X⊤X−σβ21I)−1=Σβ(σy21X⊤y)
これでベイズ推定が完了し、事後分布が求められた。
線形回帰におけるベイズ推定には優れた側面がある。事後分布を求める事で、新たに得られた特徴ベクトルx∗に対応するターゲットy∗が分布として求められるようになる。
p(y∗∣X,y,x∗)=∫p(y∗∣x∗;β)p(β∣X,y)dβ
これは先と同じ仮定でモデル化すると次の正規分布で表せる。(証明は付録)
p(y∗∣X,y,x∗)μ∗σ∗2=N(y∗;μ∗,σ∗2)=x∗⊤μβ=x∗⊤Σβx∗+σy2
実際に求めてみよう。適当なサンプルを用意する。
Loading image...
ここに三次式を仮定してベイズ推定を行う。これまで同様、条件付き分布、事前分布には適当な正規分布を仮定した。推定した事後分布を用いて予測分布を求めると図のようになる。
Loading image...
中心の太線は期待値、色がついている範囲は標準偏差σ∗を表している。
図を見ると、ある部分では分散が大きく、またある部分では分散が小さいことが分かる。分散の小さい部分の予測は比較的信頼できる一方、そうでない部分の予測には不確実性が残ることになる。ベイズ推定ではこのような不確実性の比較ができるため、より多くの情報を考慮した意思決定が可能になる。
点推定でも条件付き分布p(y∣x;β)を定義しているので予測値が分布として求められるが、ベイズ推定と異なり、分散が目的変数xに依らないため、相対的な不確実性の高さが分からない。
おわりに
線形回帰における各種推定手法をまとめた。機械学習モデルを確率モデルとして解釈するための基礎的な理解が身についたと思う。
参考文献
- 須山敦志. ベイズ深層学習. 講談社, 2019.
- 後藤正幸, 小林学. 入門 パターン認識と機械学習. コロナ社, 2014.
付録
事後分布の証明
以下を示す。
p(β∣X,y)=N(β;μβ,Σβ)
条件付き分布、事前分布が以下とすると
p(y∣x;β)p(β)=N(y;x⊤β,σy2)=N(β;0,σβ2I)
対数事後分布はこうなる。
lnp(β∣X,y)=lnp(y∣X;β)+lnp(β)+C1=−2σy21∥y−Xβ∥2−2σβ21∥β∥2+C2=−2σy21(y−Xβ)⊤(y−Xβ)−2σβ21β⊤β+C2=−2σy21(y⊤y−2y⊤Xβ+β⊤X⊤Xβ)−2σβ21β⊤β+C2=−2σy21β⊤X⊤Xβ−2σβ21β⊤β+σy21y⊤Xβ+C3=−21β⊤(σy21X⊤X−σβ21I)β+β⊤(σy21X⊤y)+C3
ここで、多変量正規分布は
lnN(x;μ,Σ)=−21(x−μ)⊤Σ−1(x−μ)+C4=−21x⊤Σ−1x−x⊤Σ−1μ+C5
なので、先の事後分布は以下の多変量正規分布とみなせる。
p(β∣X,y)Σβμβ=N(β;μβ,Σβ)=(σy21X⊤X−σβ21I)−1=Σβ(σy21X⊤y)
予測分布の証明
以下を示す。
p(y∗∣X,y,x∗)μ∗σ∗2=N(y∗;μ∗,σ∗2)=x∗⊤μβ=x∗⊤Σβx∗+σy2
といっても、多変量正規分布の線形変換に関する定理を使うだけ。
定理
x∈Rdが多変量正規分布N(μ,Σ)に従うとき、xの線形変換y=Ax+bは、平均Aμ+b、共分散AΣA⊤の多変量正規分布に従う。
y∼N(Aμ+b,AΣA⊤)
β∼N(μβ,Σβ)なので、A=x∗⊤,b=0とすると、定理より以下が成り立つ。
x∗⊤β∼N(x∗⊤μ,x∗⊤Σβx∗)
そしてここにノイズϵ∼N(0,σy2)を足したy∗=x∗⊤β+ϵも当然正規分布となり、平均・分散をそれぞれ足して
y∗∼N(x∗⊤μ,x∗⊤Σβx∗+σy2)
が成り立つ。