HELLO CYBERNETICS

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

MLPシリーズ ベイズ深層学習

 

 

follow us in feedly

はじめに

MLPシリーズの「ベイズ深層学習」を著者:須山敦志氏よりご恵贈に預かりました。 須山さんはHatena blogにて

machine-learning.hatenablog.com

を長いこと書かれており、私も機械学習の勉強を開始して依頼、何度も参考にしてきました。

今回は恵贈頂いたベイズ深層学習に関して恐れ多くも書評を書いていきます。

ベイズ深層学習 (機械学習プロフェッショナルシリーズ)

ベイズ深層学習 (機械学習プロフェッショナルシリーズ)

概要

深層学習といえば深いニューラルネットワークを用いてデータ学習する手法全般を指します。

ニューラルネットワークは主に「予測性能を良くする」という大きなモチベーションを抱えていると思われます。 予測性能を良くするのであれば、狙い済まされたモデルアーキテクチャであろうが、手当たりしだいに偶発的に見つかっただけのモデルアーキテクチャでも構いません。

ここにベイズを持ち出してくる大きな動機は主に以下の3つがあるようです。

深層学習に対して不確実性を導入する

これは従来よりベイズモデリングが得意としていたことです。 普通の確率モデルに対しても、そのパラメータを点推定するのではなく、パラメータの手元のデータにより推論される確率分布(事後分布)を考えることで、モデル自体の不確実性を考慮できるようになります。 また、推論された事後分布を用いれば、新たなデータがどのように現れるのか(すなわち予測問題)を、不確実性を有するモデルの適切なアンサンブルによって、こちらも不確実性を考慮したうえで推論ができるようになります(ベイズ予測分布)。

www.hellocybernetics.tech

www.hellocybernetics.tech

ニューラルネットワークは回帰問題にしても分類問題にしても、入力に対しての出力を「点」として予測します。それがどれだけ信用できるのか(モデルが自信を持って予測しているのか否か)に関しては言及できなかったのです。 ここにベイズ推論の考え方を導入すれば、ニューラルネットワークの出力に対して、その不確実性を考慮することができるようになります。

これはベイズニューラルネットワークと呼ばれ、それなりの歴史を持つ考え方です(PRMLの5章などでもしっかり解説されている)。

深層学習をベイズ推論で理解する

深層学習はブラックボックスだと言われることが多いです。あれだけ巨大なモデルにもかかわらず、データに対して過学習を起こさないで性能を向上するテクニックが様々生み出されてきました。 例えば、バッチ正規化やドロップアウトなどは代表的なテクニックです。

これらの手法がベイズ推論の立場で理解できるというのが、ニューラルネットワークにベイズを入れるモチベーションの1つにもなるでしょう。 (ただし、ベイズ推論で理解できたとて、実際に利用するアルゴリズムはこれまでと変わらないかもしれない。もしかしたら、ドロップアウトやバッチ正規化が難しいシーンで、それに相当するベイズ推論を実施するという代替もできるかもしれないが)

ベイズ推論にニューラルネットワークを導入する

ベイズモデリングでは、データに階層構造を入れ、単純な確率分布の組み合わせで複雑な確率分布を表現することを可能にします。 複雑な確率分布を表現したいならば、確率分布をニューラルネットワークで変換するなどの方法が考えられます。Normalizing Flowはその代表的な手法の1つです。

また複雑な統計モデルでは、実際に観測することのできない潜在変数がモデルの内部にたくさん存在する場合もあります(というよりそういうモデリングをする)。その場合に、1つ1つの潜在変数を推論するコストは非常に大きくなっていくため、学習の中で互いの潜在変数の関係性を予測しながら、モデル全体を推論していくamortized inferenceも重要な手法となります。

これらのモチベーションを、ニューラルネットワークの基本、確率モデルの基本から始まり順を追って解説していくのが本書の姿勢となります。 また、最後にはノンパラメトリックベイズで最も有名であると思われるガウス過程と深層学習との関係性も、1章使って説明がなされています。

中身

1.はじめに

1章では本書で使われる記法などや、上記で述べたような、深層学習とベイズを結びつけるモチベーションが書かれています。 モチベーションを理解していると、勉強の見通しがよくなります。

2.ニューラルネットワークの基礎

線形モデルから始まりニューラルネットワークの基礎が解説されています。バックプロパゲーションやCNN、RNNなどの基本的な構成まで続きます。雰囲気は下記の

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

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

を所持されている方ならば分かると思います。数式ベースで解説がなされますが、紙面上結構駆け足で進むので、ニューラルネットワークのおさらいをするくらいの感覚でしょう。この一冊でニューラルネットを基本から学べる、という程の厚みではありません。(ただし重要事項はしっかり抑えてある)

3.ベイズ推論の基礎

いろいろな基本的な確率分布について説明がなされたあと、ベイズ線形回帰で実際の利用例を見ます。ここでベイズ推論が不確実性を考慮した予測ができることを確認できます。 ここでも数式ベースで話が展開し、近年はほとんど勾配法やMCMCサンプラーで学習が実施されるような部分も、数式で解を求めています(求められるような例題を使っているからだが)。

ベイズ線形回帰とガウス過程との関係も少し述べられており、著者のガウス過程愛が感じられます(?)。 最後に最尤推定やMAP推定などの点推定との比較がなされます。ここで初めて伝統的な統計学での推定法が姿を表す程度で、基本的には全てベイズの言葉で話が進んでいくので、こちらもまた、統計学を基本から学べるという程の厚みではないので注意が必要でしょう。

4.近似ベイズ推論

MCMCサンプラーと最適化に基づく推論が紹介されます。近代的なモデル、特にニューラルネットワークとなれば、近似推論は避けて通ることができません。多くの場合MCMCか変分ベイズ近似が用いられますが、他にもラプラス近似やモーメントマッチングなどの手法もあり、これらも同等程度の量の解説がなされています。

5.ニューラルネットワークのベイズ推論

ここまでの章で学んだ内容を踏まえて、ニューラルネットワークのベイズ推論について解説がなされます。特に前の章で見た近似推論を具体的にどのようにニューラルネットワークに適用するのかがメインです。また、バッチ正規化やドロップアウトなどのベイズ推論での解釈が述べられます。正則化項を追加する手法とは異なり、いずれもデータの統計量を用いて補正をしたり、確率的に値を落としたりするので、確率的正則化と呼ばれるようです。

6.深層生成モデル

VAEやGANなど、近年のニューラルネットワークの進化として注目を浴びている深層生成モデルの解説です。ここでNormalizing Flowなどの解説も入ります。またボルツマンマシンなどのもっと古くからある生成モデルについても解説されます。 インド料理過程の話もありましたが、私が全く持って確率過程に疎いので、これから勉強します…。

7.深層学習とガウス過程

ガウス過程の解説と、ニューラルネットワークとの関係、そして深層ガウス過程についての解説です。

ガウス過程といえばカーネルの設計によって学習が変わるので、このカーネルをデータに依存した非線形関数、すなわちニューラルネットワークにしてしまう、「deep kernel learning」というものがあります。これが思い当たる最もポピュラーなガウス過程とニューラルネットワークの融合です。これの解説ももちろんあるのですが、ここで重点を置いて解説される深層ガウス過程は、ニューラルネットワークの各層がガウス過程であるようなモデルです。

具体的にはニューラルネットワークの線形変換+活性関数という非線形関数をガウス過程に置き換えるというものです(したがって層数1の深層ガウス過程は通常のガウス過程)。私自信こちらの方面はほとんど認知していなかったのでこれから勉強します…。

読み方

基本的に5章まではニューラルネットワークとベイズの基本的な内容のおさらいです。基本的とかいいつつ、それぞれの章で解説されている内容をガッチリ理解するのは、PRMLの対応する章を読める程度の力が必要と思われます。

6章からはニューラルネットワークとベイズが交錯する分野の解説で、日本語でまとまった書籍は初めてかもしれません。ここでの解説を足がかりに、次は論文を読んでいきましょう、くらいの勢いの内容で、プロフェッショナルシリーズというだけあってプロ向けです。

すでにある程度ニューラルネットワークにもベイズにも明るい人が、さらなる専門領域としてどういうものがあるのかを把握し基本を抑えるという読み方になると思います。(ニューラルネットワークとベイズが基本から同時に学べる!!と思ったら死にます)

この人いつこういう勉強しているんだろ…?と思ってしまう。控えめに言って、スゴい。