「Kaggleに挑む深層学習プログラミングの極意」は超実践的でKaggleをしない人にも役立つ書籍でした

「Kaggleに挑む深層学習プログラミングの極意」献本いただきました

 出版社様より「Kaggleに挑む深層学習プログラミングの極意」を献本いただきました。

 もともと著者の1人である u++ (id:upura)さんがブログで紹介していたときから、絶対読みたかった本だったので、献本素直に嬉しかったです。

 今のところ、興味のあった1〜3章まで手を動かしながら読んで、4章、5章はざっと目を通したといったところですが、凄い良い本という手応えを得ていますので、紹介したいと思います。

「Kaggleに挑む深層学習プログラミングの極意」レビュー

 最初に、自分自身のレベル感を書いておくと、AIはほぼ趣味で勉強しています(仕事でも、一応最近ちょっとだけ使った経験あり)。Kaggleは経験無しですが、クローズドな勉強会でコンペに参加した経験ありといったところです。一応AI関係の書籍を執筆したりしています(宣伝です)。

 構成としては、1章2章で、コンペ(Kaggle)や深層学習の基礎的から始まり、3章で画像分類、4章で画像検索、5章でテキスト分類といった構成です。全体としては、深層学習を使った画像認識にかなりの比重が置かれているという印象を持ちました。

 レベル的にはある程度の基礎知識があることを想定しているので、1冊目に読む本ではないかなと思います。ただ、丁寧に説明されていますし、コードもついているので、初学者に近い方でも読めると思います。またある程度経験ある人だと「ああ、分かる分かる!」とか「えっ、こんなのもあるの!?」と思わず声を出してしまうことが多いような本なのではないかと思います(自分はそうでした)。

 書籍のコードは、サポートサイトで公開されていて、実際にデータセットを使った学習や検証が試せるようになっています。

 ただ、コードに関しては、Kaggleで使えるような実践的なコードを意識して書かれている印象で、Dockerを使った環境構築とか、ある程度コンペやAIのプログラミングに慣れている人でないと動かすのが難しいかもしれません。

 自分は、3章までGoogle Colaboratoryで、実際に手を動かし、コードを実行してメモを取りながら読み進めてみました。以下で公開しているので、よろしければ参考にしてみてください。あと、本が無いと基本的に意味不明なメモだと思いますので、是非本は購入ください。

 自分は、この手の本は、実際に手を動かしながら学ぶことが大切だと思っています。読み進めていくと、本の通りいかないところがあったので、サポートサイトにissueを立てたりもしてみました。

 issueの反応(サポート)は迅速で、その日回答が来ました。結論的には、本の間違いというより、大半は自分の読み方の問題だったのですが、自分の理解も深まりました(恥ずかしながら基礎的なところで理解が浅かったところがあった)し、書籍にもフィードバックできたようで良かったです。

「Kaggleに挑む深層学習プログラミングの極意」の良かったところ

 まだ主に1〜3章を読んだ時点での良かった点になりますが、全体を通して非常に分かりやすく、実践的な内容でした。共著者の4人が全員Kaggle Master/Grandmaster なのは伊達ではないですね。

 交差検証の考え方とかの基礎はもちろん、交差検証の方式はどのようなものがあるか。画像分類だと、データの検証の際に、試行錯誤の回数を増やすために、データの読み込む関数に画像を読み込む枚数を制限する引数(dryrun)をつけるテクニック。最適化のAdamとMomentum SGDをどう使い分けるべきか、データ拡張(Data Augmentation)は、強力なものは途中から切ったほうが性能が上がる、学習率のスケジューリングの方法など、自分が知らないけど非常に効果ありそうな知見が満載でした。

 Kaggle経験者や、今まさにKaggleに取り組んでいる人なら、読んだその日から役に立つ本と思います。また、テクニック自体もKaggleに特化しているわけでなく、大半が基本的なものなので、Kaggleでない実世界の課題を深層学習で解決するといった場面でも役立つと思います。

 なので、自分のようにKaggleはやらないけれど、趣味や仕事でAIを使うような人でも読む価値がある本だと思います。

まとめ

 「Kaggleに挑む深層学習プログラミングの極意」のレビューを書きました。Kaggleに挑むとは書いてありますが、Kaggle以外にも役立つ、深層学習のテクニックが、画像認識を中心に満載の本でした。

 多数の重要なテクニックが書いてあるので、一通り読んでおいて「こんなテクニックがあるんだ」と知っておくだけでも、実際の問題に直面したときの引き出しの多さにつながるように感じました。結構多くの重要なテクニックが簡潔に書かれているので、1回読んで終わりというより、Kaggleや実問題を深層学習で解こうとしたときに何度も読み返して「ここに書いてあることって、こういうことだったんだ!」と理解が深まるようなスルメ本ではないかなと思います。

 Kaggleをやっている人にも、Kaggleをやらないけど深層学習に取り組んでいる人にも幅広くオススメです!

参考リンク

 著者による紹介です。

関連記事