nyaaaaaam’s

データサイエンスの技術のこと,仕事のこと,育児のこととかを書いていきます

Goodfellow et al (2016)のDeeplearningが良かった

f:id:nyaaaaaam:20181010221326p:plain

少し前から,Goodfellow, Bengio & Courville (2016)のDeeplearningを読んでいます.ほとんどの方がよく知っている本かもしれません.表紙が悪夢のようなイラストの本です.

本のサイトはこちらhttps://www.deeplearningbook.org

GithubでPDF版も配布されています(僕はこちらを読んでいます). github.com

こういった技術書は紙のほうが読みやすいという人は,印刷版を買うのも良いと思います.

Deep Learning (Adaptive Computation and Machine Learning)

Deep Learning (Adaptive Computation and Machine Learning)

もともと,この本はよく通勤中やランニング中に聞いているポッドキャストのひとつ,misreading chatで紹介されていたもので,興味を持っていました.ひょんなことから会社で印刷版を買うことになり,自宅に持ち帰ったりするのが面倒だったので,結局PDF版を読んでいます.

先日,第1部のApplied math and Machine Learning Basicsを読み終わりまして,結構感動したことが多かったので,その感想を雑にまとめておきます.

数学的道具の説明が必要かつ十分

本書では,機械学習全般,特にDeeplearningの歴史を振り返りつつ,近年の動向を概観した後に,線形代数の基礎的な話が始まります.大学院の研究で普段線形代数をめちゃくちゃ良く使うので,こういう線形代数の話は耳にタコができるほど聞いてきたのですが,シンプルかつ明快な線形代数のイントロがとても心地よかったです.特に,固有値分解の一般化としての特異値分解,ムーアペンローズ一般逆行列などの説明が好みでした.最後に,学んだことを使って主成分分析を導出するエンディングも,素敵です.

その後,線形代数と同じく重要な数学的道具として,確率論や情報理論,最適化の話が続きます.だいたいこういった数学的道具の説明は「小難しくて理解できない割に,本論ではあまり使わない」ものが多いように感じていましたが,説明も簡潔かつ直感的に理解しやすい,必要十分な説明に留められていると感じました.

新しく学んだこと1: CapacityとVC次元

5.2では,機械学習モデルのUnder/Overfittingの考え方を紹介する際に,モデルの複雑性=capacityという概念を導入して説明しています.良いモデルとは,データに対して十分なcapacityを持つものだと考えられますが,そのcapacityを評価するための重要な概念として,VC次元(Vapnic-Chervonenkis dimension)を紹介しています.これは「任意のラベル付けで完全に分離できるデータポイントの数」であり,たとえば2次元空間上のデータポイントなら,3点までならどんなラベル付けをしたとしても完全に分離できるデータポイントは3です.よってこのときのVC次元は3になります.このVC次元は,無限のサイズの仮説集合に対して,まぁまぁいい学習を行うために必要な訓練データの数を導く上で必要になるらしいです(参考:計算論的学習理論入門 -PAC学習とかVC次元とか-).

新しく学んだこと2: ベイズ推定と正則化

f:id:nyaaaaaam:20181011181315j:plain 線形回帰モデルのベイズ推定を解説している箇所があります.ここではいろいろと式を展開してパラメータの事後分布を求めていくと,Ridge回帰のclosed formの解に事後平均が一致することが示されています.つまり,ベイズ推定とは本質的には正則化である,という結論らしく,この点は今まで知らなかったポイントでした.

機械学習アルゴリズムの構築

データに対してどのような機械学習アルゴリズムを適用するかを表現するためには,次の4つのbuilding blockを明らかにせよ,という主張です. - どのデータを使うか? - 適用しようとしているモデルは何か? - 損失関数は何か? - 最適化アルゴリズムは何か? たとえば,同じデータであっても,モデルを変えればまったく違ったアルゴリズムになりますし,最適化アルゴリズムを変えれば違った解が得られるかもしれません.逆に言えば,4つのうちどれかがはっきりと決まっていないと,ほかの人にアルゴリズムを伝えるときに,正しく伝えられない=再現性が取れない可能性があります.この辺は,実務家として理解しておくべきことだと思いました.


書きながら「理解が甘いなぁ」というところも再発見しましたが,何度も書いているように,必要十分な知識を簡潔に得ることのできる本(というかまだイントロですが)だと感じました.これから本題のdeeplearningに入っていきますが,楽しみです.

また感想がまとまったら書きます.

参考文献

Goodfellow, I., Bengio, Y., Courville, A., & Bengio, Y. (2016). Deep learning (Vol. 1). Cambridge: MIT press.