9章まで読んだ段階の、Goodfellow本の感想
長くなったのでエントリを分けた。
以下の Deep Learning、という書籍、いわゆるGoogfellow本を読んでいる。
各章の感想はこちら。 GoodfellowのDeepLearning本を読む
で、現在。9章のCNNまで読み終わった。 区切りとしては12章の方が良さそうなのだけど、そろそろ前半の事を忘れそうなので、12章まで行くと最初の方の感想が無くなりそう。
という事で、この時点までで、ひとまず感想を書いておく事にした。
良かった章、いまいちだった章
まず7章のRegularizationは良く書けていて、この本を読んだ甲斐があったな、と思うような、この分野で研究をしてきた人だけが持つ洞察のようなものが多く含まれていた。 特にGoodfellow氏本人の過去の研究を、全体の流れの中にどう置いて解釈しているのか、というのは、個々の論文から読み取るのはなかなか難しいので、 こういう形で提示されると、嬉しい。
逆に8章のOptimizationは凡庸な内容で、ただ機械学習の既存の教科書の内容を持ってきただけに見えて、2017年に書いたという意義も、Deep Learningというコンテキストでの意義も良く分からなかった。 ただこれは自分の理解が浅いだけの可能性もある。
9章のCNNは、出来が悪いと言って良いと思う。 基礎となる事の提示の仕方があまり分かりやすくない上に、詳細な深みのある議論もあまり出来てない。 数式や擬似コードで明快に書ける事も文章でダラダラ書いたりする。
9.9とか9.10とか個々の節では良く書けている物もあるが、全体として、入門として使うには分かりにくく、より深く理解したい人に必要な情報も提示出来ていない、と感じた。
CNNという、DLを学ぶ時に最初に触るであろう章の出来が悪いのは、この分野の定番教科書になりそうな事を思うと世界にとって不幸な事だなぁ。 ちゃんと読んでない人とかが「学生はわかってない人のスライドとかまとめ見るよりこの本でちゃんと勉強した方がずっと早い」とかいうのはいかにも老人ウケが良いので、中を知らないのにこの本を学生にやらせたがるおっさんとかめっちゃいそう。 でもこれでCNNを入門させられる学生はたまったものじゃないよなぁ。 後述するが、入門はstanfordのCS231nとかの方がいいと思う。
それ以前の章の感想は全体的な方で。
この本は何を目指した物だろう?
この本はそんなに分かりやすくない立ち位置の本だと思うので、自分がどう感じたかを書いてみたい。
1.1で主張してる対象読者
この本の1.1には対象読者が書いてあって
- 学生
- 統計と機械学習素人のプロのプログラマ
と書いてあるが、少なくとも後者には向かないな、と思う。 とりあえず使うのに必要な事が載ってないか、または載っていても文章の中に埋もれている物から読み取らないといけない。 だからとりあえず何か困って辞書としてこれ引く、では、いまいち使いづらいと思う。 少なくともこれ読んでbatch normalizationとか自分で実装出来る気はしなかった。
ただ、自分はこの本は結構良い気はしている。
アンチョコとしての使いやすさ
Deep Learningで、モデル作ってて、あれってどういう式だっけ?と調べたい時には、使えはするが読み解く必要があるので使いやすくは無いな、と思う。
実装に必要な事が足りてない、という事は先程言ったが、足りてる所でも提示の仕方が、アンチョコとしては使いにくい。
自分で実装する時の使いやすさという点では、人工知能学会の出してた本の方がだいぶ良いと思った。
ただカバーしてる範囲の広さはGoodfellow本の方がずっと広い。 多くの事は載ってて原典への参照もあるので、定番から少し外れた事をしっかり調べるスタート地点として悪くは無い。 ググってすぐ出てくるような事じゃなくて、もうちょっとマイナーな事をやらなきゃいけない時には、とりあえずこの本を調べてみよう、という気にはさせる。
機械学習の基礎を学ぶ本としてのいまいちさ
最初の方は機械学習一般の話が結構な紙幅を使ってされているが、これで学ぶのはいまいちと思う。 個々の話題が短すぎて、これでは知らない人は分からない。
我らがPRMLの方が、古いとはいえずっと良い。
Goodfellow本の機械学習の章は、よそで機械学習学んだ人が思い出すのには手頃と思うが、少なくとも最初に主張している対象読者にはいまいちだろう。
論文を読めるようになる為の訓練教材では無い
PRMLは、読者が自分で論文を読んでいけるようになる為の、補助輪つき自転車みたいな位置づけの役割も果たしていた。 論文よりは少し詳しいが、ちゃんと追っていけば実際に論文も読んでいけるようになる、という。
でもGoodfellow本は論文との間にはかなりギャップがある。 この本を読めても論文は読めない。 個人的には現代のDeep Learningの論文を読んでいける為のトレーニングみたいなのを期待してたので、そこは期待を満たしていなかった。
やっぱPRMLはちょっと古いので、現代的なそういう訓練の本があっても良いと思うし、自分はこの本にそれを期待してたので、そういうターゲッティングじゃなかったのは自分個人としては残念だった。
ただこの位の本がほしいという層もいるはずなので、これは欠点というよりは著者の選択、という話。
初学者の学生などにはいまいちだと思う
さっきも言ったが、たまにこの本を、Deep Learningを初めて学びたい学生などに薦めているのを見かけるが、自分はそういう目的にはいまいちだと思う。 難しいというだけじゃなくて、初学者に必要な記述が足りていない。
読む前は分厚いので詳しくいろいろ載ってるからハイエンドな初学者が学ぶのに良いかと思ったが、読んでみると扱ってる話題が広すぎるせいで厚いだけで、必要な事が全部載ってるって類いの本ではなかった。
back propagationとか最初から解説あるので知らない人向けっぽく見えるし、実際そういう章もあるのだが… なんかこう、読者のレベルが絞りきれてないのだよなぁ。
PRMLとかを一通りやった人が昨今のDeep Learningを本格的に学びたい、という用途なら使えるが、そういうのは初学者の学生とは言わないだろう。
初学者がこの本を読みたいなら、その前に以下をやってからの方がいいと思う。
- CS231n: Convolutional Neural Networks for Visual Recognition
- CS 20SI: Tensorflow for Deep Learning Research
論文を書く時の表現とかの参考になる
Deep Learning関連の論文とは難度にギャップがあるけれど、表現とか書き方は論文的な書き方になってるのと、 話題が幅広いおかげで、自分が論文書く時に関連研究とかを紹介したり定式化の所を書く参考にはなる。
志低い話をすると英語の表現とかが「なるほど、こう言えば良いのか」と思う事は多かった。 前回の論文書いた時、この本読んでたらもっと参考にしたのになぁ、と思う場所は結構あった。
擬似コードによるアルゴリズムの書き方とかも論文互換なので、参考に使えて良い。 Goodfellow本の書き方なら文句も言われないだろう(多分)。
論文の構成とか書き方とかの本では無いのだけど、書く事が決まったあとに実際の表現とか書き方の参考になる。 この辺は自分は結構苦戦するので、Deep Learning関連の表現集として素晴らしい。
一流の研究者を知る為の本としては素晴らしい
BengioやGoodfellowが過去にどういう研究をやっていて、それを自身ではどういうモチベーションでやったのかとかどういうコンテキストに置いているのか、 とかが書かれている。 これが本人による記述なので大変参考になる。
特にGoodfellowは若いので、割とリアルタイムに近い形で伝説の形成過程を読んでいく事が出来る。 しかも本人の解説つき! これはGoodfellowファンブックとしては最強だ。
メジャーなGANとかだけじゃないマイナーな研究もいろいろやってて、やっぱり一線の研究者というのは自分の専門領域を持ってていろいろやるよなぁ、とかいろいろ影響を受けた。
最近ちょうど論文をrejectされて方向性に悩んでいる所だったので、自分の個人的なタイミングとしてもとても良かった。
これほどいろいろ考えさせられる本も無いよ、ほんと…
今後自分はどうしたもんかなぁ。
Goodfellow自身を知る本として、この本は凄く良い。 ここまでいろいろ書いた欠点の全てを吹き飛ばすものがある。
まとめ
初学者には向いてないが、機械学習やDeep Learningの基本を知ってる人がDeep Learningの業界全体の鳥瞰図を得て、興味のあるテーマを考えたり、興味のあるテーマを深めていく為のスタート地点に良い。
また一流の研究者の研究の足跡を辿りたい人にはとてもオススメ。
Goodfellowのファンブックとしては最強なので当然must buy。