HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学、量子計算などをテーマに扱っていきます

【書評】ベイズ推論による機械学習入門

 

 

follow us in feedly

https://cdn.blog.st-hatena.com/images/theme/og-image-1500.png

ベイズ推論による機械学習入門の内容

機械学習スタートアップシリーズ ベイズ推論による機械学習入門 (KS情報科学専門書)

機械学習スタートアップシリーズ ベイズ推論による機械学習入門 (KS情報科学専門書)

本の中身の概要

機械学習とベイズ学習

この章では回帰、分類、クラスタリング、次元削減などの機械学習における基本的なタスクについてサラッとおさらいし、 これらのタスクを実際に実行するための方法として「ツールボックスとしての機械学習」と「モデリングとしての機械学習」 の紹介が入ります。

ここでツールボックスとしての機械学習というのは特徴抽出手法や分類手法をいろいろ組み合わせてタスクに挑む方法を指し、 モデリングとしての機械学習とはデータに対して何らかの仮定を事前に設けたモデルを構築し、パラメータ推定によってタスクに挑む方法を指します。

 
以降、この本ではモデリングとしてのアプローチの1つである確率モデリングについて詳しく説明を行っていきます。 確率の計算の基本的なおさらいと、モデルを視覚的に表現するグラフィカルモデルの説明、 そして確率モデリングに対するベイズ学習のアプローチについて解説がなされます。

基本的な確率分布

この章では確率モデリング、とりわけベイズモデルに利用される基本的な確率分布とその期待値計算について解説がされます。

ベイズ推論による学習と予測

この章では確率分布を仮定した際のベイズ推論による学習の方法が解説されます。 ベイズ推論では確率モデル(あるいは尤度)に対して事前分布を掛け合わした事後分布を求める必要があり、 各確率分布(確率モデル)に対して、計算が容易になるような事前分布(共役事前分布)の説明と具体的な計算(学習)がいくつか紹介されます。

また、各学習済モデルを用いて未知データに対する予測を行う計算についても解説がなされます。

 
最後に線形回帰というタスクに対して、実際にガウス分布で確率モデルを仮定し、事前分布にもガウス分布を仮定した場合の学習について紹介し、 ベイズ的な確率モデリングの一例を垣間見て章を終えます。

混合モデルと近似推論

この章では、これまでに解説されてきた基本的な確率分布(あるいは確率モデル)を組み合わせて構築される確率分布(混合モデル)の 解説が中心となります。しかし、混合モデルの場合これまでの基本的なモデルのように手計算によって学習の解を導くことが困難です。 ガウス混合モデルとポアソン混合モデルを題材に、解を近似的に求める手法について紹介がされます。

 
具体的には複雑な確率モデルの各パラメータに適当な仮定(条件付き独立性)を設けて、より単純なモデルで表現することによる 変分近似推論と、複雑な確率モデルの各パラメータを数値的にサンプリングすることで近似解を得るMCMCの一種であるギブスサンプリング を取り扱います。

応用モデルの構築と推論

この章では次元削減、行列分解、隠れマルコフモデル、トピックモデル、テンソル分解、ロジスティクス回帰、ニューラルネットワークについて これまでに解説してきた確率モデリングによるアプローチ方法とその推論・予測について解説します。

個人的な所感

例えばPRMLのような有名なベイズを強調した本では、 線形回帰などのタスクを最小二乗法から扱い、最尤推定→最大事後確率推定→ベイズ推定(事後分布の推定) のような順次発展していく形式で紹介していきます。

つまり、まず何らかのタスクがあり、そのタスクをベイズ的に取り扱っていく方法についての解説が行われているということです。

  
一方で本書の場合はまず確率分布についての基本を抑え、 いろいろな分布の確率モデルを(何のタスクに使えるかは別として)ベイズ的に学習する方法と予測に使う方法を学び、 最後に、ベイズ的なモデリングと学習・予測の手法が個々のタスクにどのように使われるかが解説されるという形です。

 
一貫してモデリング→学習・予測という方法で解説がされており、 まさに「ベイズ推論を用いた機械学習」の方法という感じがしました。 私自身、機械学習を勉強したての頃は、例えば主成分分析とかの手法が ベイズ主成分分析などにパワーアップできるという印象でしたが、実際にはそうではなく

  
あくまで何らかの確率分布が背後にあると考え、それを仮定し、目的のタスク(線形次元削減)をこなそうとした結果、 ベイズ主成分分析なる方法と名付けられている、というような印象を持ちました。

 
つまり、この本の立場からすれば、いわゆるツールボックス的な機械学習である 特徴量抽出や各分類器などのタスクに依存して構築されてきた各手法に対して、 確率モデルという立場から統一的な視点が得られる(あるいは、確率モデルの 一部あるいは表層として各手法がある)というような雰囲気を感じました。

 
  
まあこれは完全に個人的な感想なので、適当に読み流してください…。

誰にオススメか

一般的にベイズ推論というのは、 個々の特徴量抽出手法や分類器を組み合わる手法に比べて 非常に複雑に見える計算が伴います。

 
このような特徴からこの本(というよりはベイズ全般だが)をオススメできる人とオススメできない人がハッキリと分かれます。

オススメじゃない人

機械学習自体に入門したい人

まずこの本の題名は「ベイズ推論による機械学習"入門"」ですが、この入門という言葉は "ベイズ推論による"の部分を指していると考えてください。

 
決して機械学習に対する入門書ではありません。 従って、そもそも機械学習がどんなものかよくわかっていないという人が、 「自分は機械学習をこれから学ぶ、しかもベイズという方法で!」という思いでこの本を手に取ると頭が爆発します。

  

線形代数や微分積分の基本に自身がない人

微積分はそれほど頻繁に駆使されるわけではなく計算方法を知っていて、偏微分が何を表しているかや、 積分を解析的に求めることはすごく難しいということを理解していればとりあえず大丈夫です。

  
しかし線形代数の表記や、計算もよくわからないという場合には数式を見ても何も分かりません。 数式展開は丁寧ですが、ほとんどが線形代数の言葉で書かれます。

  
いずれも大学一年生レベルの基本は知っておいたほうが良いでしょう。

オススメな人

機械学習について基本的な知識がある中で、確率モデリングによるアプローチに入門したい人や ベイズに興味があってPRML読んだけどダメだった人にもオススメです。

 
またjuliaによる本書で扱われるアルゴリズムの実装がgithub

github.com

にて公開されています。

s0sem0y.hatenablog.com

s0sem0y.hatenablog.com