PRML上巻輪読会の記録

概要

2020年9月~2021年1月にかけて、『パターン認識機械学習 上』(PRML上)を同期の友人と輪読しました。以下はその記録と簡単な感想です。

www.amazon.co.jp

https://images-na.ssl-images-amazon.com/images/I/41O0QFyTHJL._SX333_BO1,204,203,200_.jpg

 

輪読会の目的

  • deep以前の機械学習の数理的な部分を固める
  • 確率分布の計算や、典型的な近似計算に慣れる

ペースは週1。演習問題は、本文のメインプロットに関係するもののみ扱った。

資料

 

drive.google.com

各章の簡単なまとめ 

1章 序論

確率論の基本的な定義・定理、情報理論の基本的な定義・定理が並んでいた。

簡単な曲線フィッティングを題材に、最小二乗法による推定が過学習することを示した。次に目標変数の値に関する不確実性を確率分布であらわし、パラメータの事前分布も導入し、ベイズ的取り扱いへつなげた。

情報理論パートでは、今後重要となるKLダイバージェンスを導入した。その過程で変分法やイェンセンの不等式(凸関数の評価)といった重要な数学的手法を学んだ。

 

2章 確率分布

二項分布・ベータ分布、多項分布・ディリクレ分布、ガウス分布・ガンマ分布、多変量ガウス分布・ウィシャート分布といった様々な確率分布の定義、性質を学んだ。特に、事後分布が事前分布と同じ関数形式になる"共役性"という性質の良い分布の組み合わせを扱った。事後分布を計算する際の積分を避けることができる。

 

3章 線形回帰モデル

非線形(でもよい)基底関数を導入し、それらの線形結合としての"線形回帰モデル"を扱った。それをベイズ的に取り扱った。モデルを比較する手法として、モデルエビデンスという項を最大にするように複雑さを選ぶという指針を学んだ。しかし、実際はCrossValidationの方が良いことが知られている。

第1章から1ステップ抽象度を上げて、固定された基底関数の線形結合を考えた。しかしこれでは入力空間次元に合わせて基底関数を指数的に増やしていく必要がある。

-> データは実際には入力空間よりも低い次元の非線形多様体上に分布していることがほとんどである。

-> 基底関数をパラメータ調整可能なものにすれば、次元を爆発させずに基底関数を調整できるのでは

-> ニューラルネット等の手法へ

 

4章 線形識別モデル

分類問題において、確率的なモデルが有効であることを示し、生成的アプローチと識別的アプローチの二つを扱った。生成的アプローチは事前確率とクラスの条件付き確率をモデル化し、ベイズの定理により事後確率を求めるアプローチである。

識別モデルは、直接一般化線形モデルの関数形を陽に仮定し、最尤法を利用してパラメータを決定する。生成モデルよりも決定すべきパラメータ数が少ない点が利点である。そしてロジスティック回帰を扱った。ロジスティック回帰は非線形性により最尤解が解析的に導出できないが、誤差関数に凸性があるので、反復法により極小値(=最小値)を求めにかかればよい。損失関数として現れたものがcross-entropy errorとしてよく知られている。

ロジスティック回帰のベイズ的扱いは、積分の困難さから複雑である。そこで、分布を局所的にガウス分布で近似する"ラプラス近似"を考える。ガウス分布はlogを取ると二次形式が表れるため、分布のピーク(=mode)を中心として、分布の対数を二次近似することができる。結局は対数を取った上で二次近似しているだけである。これにより積分を解析的に計算できる形で近似し、ベイズ的に取り扱えた。

 

5章 ニューラルネットワーク

Deepではない。

3,4章で扱ってきた固定された基底関数による線形モデルの限界をなくすために、基底関数を流動的に扱えるようにしたい。ニューラルネットワークは、事前に基底関数の個数を固定し、それらをパラメトライズし、Training中に適応させていく。

ニューラルネットワークの誤差関数は重みパラメータに対して(高度に)非線形に依存している。そのため最適化は難しいが、とりあえず極小値を探す方針を取る。ここでは最急降下法SGDが紹介されていた。

この勾配を効率的に計算できるようにするアルゴリズムがBack Propagation(誤差逆伝播)である。これは誤差関数の重みによる偏微分をChain Ruleで分解できることを利用している。ネットワークの上流から逆方向に偏微分の値を伝播させていくことで効率的に各重みによる偏微分が求まる。逆伝播の枠組みは応用が広く、ヤコビ行列やヘッセ行列といった、行列・高階の場合でも似たように計算できる。

ニューラルネットワーク正則化方法として、誤差関数が最小値に行きつく前に訓練を止めるEarly Stoppingも紹介されていた。

また、ニューラルネットワークに入力の変換に関する不変性を持たせるための手法を扱った。その一つにCNNがある。CNNは局所的な特徴量を抽出する点・重みをKernelという形で共有している点・途中でSubSamplingを行う点の3つが特徴的である。

 

全体の感想

行列計算がしんどかった。演習問題をきっちり埋めるには全く至らなかったが、計算には慣れることができた。

種々の数学が、情報系でなじみのある離散数学というよりも、物理でよく使うような近似や計算が多かった。機械学習の理論系の研究で物理出身の人が強いという話を聞いたのだが、物理と意外と親和性があるのかも(?)

 

本の流れとしては、制限の多い例から徐々に一般化をしていく形で語られていて、各例を扱う中で共通する概念が見えてきて楽しかった。

PRMLが今機械学習を勉強するのに良い本なのかは賛否両論があるらしいが、読んでよかったと思った。ただ、5章のニューラルネットワークはDeep以前の話であり、逆伝播くらいしかすぐに役立つ部分はなさそうだった。あくまで3,4章の続きとして書かれていて、ニューラルネットワークに対する理解が深まった感じはしなかった。

下巻が本番みたいなところがありそうなので、下巻も読みたい。

 

輪読会自体は初めてだったが、なんやかんや完走できて嬉しかった。資料はスライドでは無くiPadのノートに手書きするという形だったが、スライドを作れるとよりよかったなと思う。プレゼンの練習にもなるし。でも授業期間中に毎週スライドを作るのはしんどい...

 

リンク