PRML 読書会#4 (第3章 線形回帰モデル)

参考:「機械学習とパターン認識」(PRML)のアンチョコ by herumi
PRML 3章の数式の解説


パターン認識機械学習(PRML)読書会 #4 に のこのこ行ってきた。おつかれさまでした>各位


今回は「線形回帰モデル」。
実は、最初にざっと目を通したときに、この章まるごと何が書いてあるのかさっぱりわからなかった。
そもそもタイトルの「回帰」って何? データにフィットする関数求めるのがどうして「回帰」なの? というところからつまずく。
結局、由来は平均回帰から来ていて、求められる関数は最終的に分布の平均になるからそういう名前になったんだな、と徐々に納得できるようになってきたけれど、そもそも最初に N(t|y(x, w), 1/β) とおくところから話が始まっているわけで、何かたくみな詐欺にあっているような気がしないでもない。


ちなみに、英語 Wikipedia の Regression Analysis の項でも、"The term "regression" was coined by Francis Galton, 〜" から始まる段落で、名前の由来を つとつと書いていたりする。

en.wikipedia.org


というわけで、3章の分量は2章の2/3ながらも、2章の3倍以上の時間をかけて予習して臨んだわけだけど、前回同様、いろいろつっこんだ議論が出来て充実した読書会だった。
本に載っていない部分でのツッコミを少し拾っとく。
詳しくない人間(自分とか)がツッコんだり返したりしている部分もあるので、心優しいエラい人が「いやいや違うよ」してくれるの期待。

  • バイアス−バリアンスって使うの? 教科書では通過儀礼的だったかなあ。そもそも正解知らんと求められへんし、使わんのちゃう?
  • 基底関数の s とか μ_i とかどうやって決めるの? μ_i は均等割りかなあ。 s は適当……
  • バイアス項ってどれくらいきいてくるの? ないとダメ? じゃあエビデンス計算してみっか!(→あとで記事書く予定→書いた「基底関数を色々変えて、線形回帰のエビデンスを計算してみた」)
  • カーネルってなにが嬉しいの? 基底関数の場合、何選ぶかとか何個用意するとか恣意的に決める必要あるけど、ガウスカーネルは無限次元の基底関数に相当(§6.4だったかな?)。
  • 等価カーネルって何が「等価」? 基底関数と等価カーネル間の対応が可逆だからかなーと思ったけど。
  • p159 の「基底関数の数より訓練データの点の数の方が大きく、基底関数の1つが定数関数である場合、訓練データに完全に当てはめられることは明らか」は逆(基底関数の数>訓練データの点の数)じゃね?→原著者に確認していただいて、逆ではなく、本の記述で正しいことが判明。より正しい解釈はコメント参照。しかし、専門家も一度は間違いと結論するほどの「〜は明らか」はなにかとマズイと思う(苦笑
  • well determined(笑)


余談だが、3章の記述で個人的にバカうけしたのが、3.4 の「事前分布は各のモデルに対する好みを表す」。
そりゃあね、事前分布なんて恣意的に決めるしかないわけだけど、それにしたって「好み」だなんて超主観的な言葉で言い切ってしまうのはすごいなー。
ま、逆に、そっか「好み」でいいんだー、と少し気が楽になったような気がしないでもないかもしれない。


というわけで次回第5回は8月予定(近日日程決定)。
「4.1 識別関数」を担当させてもらうことに。


せっかくパーセプトロンが範囲に入っているので、読んだ論文から Passive-Aggressive Algorism とか Confidence-Weighted Linear Classification とかちょこっと紹介するつもり。


ちなみに Ruby で実装してみた Passive-Aggressive は、すでにここらへんにこっそり転がっていたりする。
まだ2クラス分類しかやってないので、おもしろみは薄いけど。


https://github.com/shuyo/iir/tree/21a4bd8cc69869beb99e1c193efe6cbfa17a3d75/perceptron