「ベイズ推論による機械学習」を読んだ

最近出版された、「ベイズ推論による機械学習」を読んだ。何やら最近盛り上がってきているように見えるベイジアンの機械学習へのアプローチを学ぼうとして手に取った。しかも「入門」と書いてあるので。

本書はベイズの定理から始まって、各種確率分布の説明、ベイズ推論を用いた学習と予測、混合モデル、応用モデルの構築と推論などの内容がカバーされている。

数式が多いが、基本的に各項目でほぼ同じパターンをたどることが多く、かといって数式が省略されることもほとんどなく、難しい内容も追いやすかったと思う。

現在Murphy本を読んでいる途中だが、先に本書を読んで理解してから読み進めるべきであったと感じる。やはり日本語で解説を読んでおくと理解が進みやすいだろう。

個人的にはコラムの部分に書かれているベイジアンのアプローチの有用性についての議論が腑に落ちた。例えば、ビッグデータの時代においてはベイズ推論のアプローチをとるメリットは無くなるのでは?といった内容について、データが十分あれば解析対象を詳細にすべし、(推薦システムのように)使い始めのユーザの情報は少ないのでベイズ学習のアプローチが有効、などの議論からむしろ「多種多様の情報ソースを組み合わせて活用していくようなビッグデータの時代に適した方法論であるといえます。」と述べている。

また、ベイズ学習のこれから、と題されたコラムでは「ベイズ学習のもつ適用範囲の広さと、大量データに対する複雑なモデルの効率計算の2つが上手く組み合わされば、いままで行えなかったような大規模かつ包括的な問題解決に取り組むことが可能になるといえます。ベイズ学習は、深層学習や最適化理論で培われた効率的な計算のノウハウと組み合わさることにより、さらなるエキサイティングな応用領域を拡大していくでしょう。」と締めくくられており、今後もウォッチしていきたい分野である。

本書は基本的に数式を用いた理論的な解説をターゲットとしており、実際にコードに落とし込むには少し慣れが必要かもしれないと、素人としては感じた。以下のサポートページでは本書のサンプルコードが用意されているので、ここを見てみよう。

「機械学習スタートアップシリーズ ベイズ推論による機械学習入門」のサンプルコード

また、著者のブログ「作って遊ぶ機械学習」ではさまざまな問題に対してコードや数式と共に解説が用意されているようなので、次はそのあたりで勉強してみようと思う。

「Machine Learning – A Probabilistic Perspective」第7章を読んだ

前回の続き。第7章は線形回帰について。このあたりでようやく1/4までたどり着いた。先は長い。

目次は以下の通り。

  • 7 Linear regression
    • 7.1 Introduction
    • 7.2 Model specification
    • 7.3 Maximum likelihood estimation (least squares)
      • 7.3.1 Derivation of the MLE 219
      • 7.3.2 Geometric interpretation
      • 7.3.3 Convexity
    • 7.4 Robust linear regression *
    • 7.5 Ridge regression
      • 7.5.1 Basic idea
      • 7.5.2 Numerically stable computation *
      • 7.5.3 Connection with PCA *
      • 7.5.4 Regularization effects of big data
    • 7.6 Bayesian linear regression
      • 7.6.1 Computing the posterior
      • 7.6.2 Computing the posterior predictive
      • 7.6.3 Bayesian inference when σ2 is unknown *
      • 7.6.4 EB for linear regression (evidence procedure)

線形回帰のMaximum likelihood estimationから始まり、outlierに強い線形回帰の方法やリッジ回帰、PCA、Regularizationなどが説明され、最後にベイズ統計による線形回帰の話が述べられている。

リッジ回帰はペナルティ項が加わった線形回帰。overfitする可能性を減らすことが出来る。数値計算する際にも良い性質があるとのこと。

最後のベイズ推定の部分は、リッジ回帰でpointを推定できるけど、完全なwやσ^2の事後分布を知りたいことがあるのでベイズ推定を使うと良いということらしい。