shine-Notes

ゆるふわ思考ダンプ

"Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition"をざっと読んだ

サマリ

  • 邦訳版第1版でお世話になった書籍を英語でざっと読んだ。なんだかんだ楽しかったので備忘録
  • カバー範囲の広い書籍だが、Deep Learningをやるのに間違いなく必要な内容が詰まっており、頼れるインデックスになると思う
  • というかあれ? 目を話してたスキにtf2.0結構良い感じになってない?

書籍について

www.oreilly.com

という訳で邦訳未発売の書籍である。とはいえ表紙のトカゲに見覚えがある人は居るかも知れない。以下の書籍の第2版だ。
scikit-learnとTensorFlowによる実践機械学習
scikit-learnとTensorFlowによる実践機械学習

もともと第1版のカバー範囲とストーリーテリングが好きなのだが、いい加減内容が古くなってきており(初版:2017年)、良い本なだけに最新の内容で読みたいな、と思っていた。で、原作者のTwitterを見て第2版が出ていることを知り、多少迷ったが書籍版をamazonで購入することにした。太い本なので電子書籍のほうが取り回しは良いのかもしれないが、集中力が特に必要(英語)なのと、本棚に洋書を加えたいというミーハーな理由で物理書籍を購入した。
f:id:shinebalance:20200412121039p:plain
ご覧の太さである。ちなみに薄めの紙質なので邦訳された暁には更に太くなると思われる。


内容について

まぁなんというか、目次を見てほしい。800ページ、Chapter19まである。ふざけとんのか。
初学者が見ると引く量だと思うけど、この分野をやっている人からすれば「まぁ確かに全部必要かもしれない」となると思う。
この書籍が他の書籍と比較して間違いなく良いと思う所は3つある。

  • 機械学習からDeep Learning」まで地続きに全部やる。本当に全部やる。なので、自分の中に書籍を通じてこの分野のインデックスを作っておける。

  • Kerasとtensorflow2.0も地続きで解説してくれる。Kerasの書籍はKeras APIの手軽さを押すが故に精々がFunctional APIの範囲で留まってしまうものが多いのだけれど、この書籍は題名に違わずtensorflowのプリミティブな操作からKerasへの繋がりまできちんと示してくれる。

  • 間に挟まれるコラム(鳥やカメレオンやサソリが出るやつ)が秀逸。太いのでなるべく知ってる所は飛ばし読みを心がけていたが、たいていコラム欄に著者の経験則等も含まれていそうな面白い内容が入っていて飛ばせない。

逆に辛い所は、重厚長大すぎて初級者に勧めづらい所。あと、第1版でもそうだったけど、全部カバーしているようで章によって濃さに差がある気がする。

第1版との差異について

最初に「第1版との差異について」で書いてあるのだが、自分の印象としては、以下のような感じ。NNに注視しているのでそっちの言及にばかりなってしまったが…

  • tensorflowの拡充されたAPIを存分に利用している。Data API、Keras等もろもろ。

  • 紹介されているモデルが新しくなっている。CNNならSENetとかも出てくる。

  • NNの最近の手法(量子化とか)もだいたい出てくる。
    少なくとも当面はこの書籍が自分の知識のインデックスになるかな、という印象。

読み方について

個人的にこの種の書籍(技術所)を読む際は、とにかくアウトラインと用語を掴むことだと思っている。読み終わったときに全てが頭に入る必要はないけど、「確かあの章に分散学習のことが書いてあったな」とすぐ思い出せて目次を開き参照するイメージ。
ただ、第1版と日本語で読んでいるとはいえ、英語書籍なのは苦労した。なるべく普段から英語に触れるよう意識はしているつもりだが、それでも明らかに日本語の本を読んでいるときより通読スピードが落ちる。毎朝15分、既知の内容は飛ばしつつ気になった所をメモるような書き方で都合3ヶ月かかってしまった。また、紙の本だと知らない単語をすぐに検索できない(Kindleで洋書を読む時は簡単に検索できる)のもちょっとストレス。


(個人的感想)あれ? tf2.0結構イケてね?

そして個人的に一番感じたのが、「あれ? tf2.0結構イケてね?」だった。
というのもKerasでNNに入門したあとは業務都合でchainerに一瞬入門したりPyTorchも試してみたりした時期があって、特にNNの書き方はこっちのほうがしっくり来るし今後NN書くならPyTorchかな〜、みたいな事を考えていた。例えるならKerasはオートマ、ピュアtensorflowはMTだけど、chainerやPyTorchは8速ATって感じ(異論は認める)。
が、本書はtf2.0準拠で、KerasのSequential APIからSubclassingを使った書き方までカバーしており、試しに自分がKerasで書いたMNISTとかを書き換えてみたら意外と何をやっているかがちゃんと見えて良い感じ。Kerasは「とにかくまず走らせる」に関しては障害をきちんと取り除いてて凄くやりやすいんだけど、反面内部で何をやっているのか浅い理解でも動かせちゃってたので、当面業務外の勉強にはtf2.0を使ってこうと思ってる。

という訳で、気になる章のnotebookをピックアップして動作を見ながら、色々動かしてみる予定。またなにか振り返る事ができたら書くことにする。


(余談)Francois本も第2版が出るみたいです

www.manning.com

当書籍を読んだあとだと内容は重複してしまいそうな気がするけど、それはそれとしてFrancois氏の偶にちょっと詩的な事言い出す感じが好きなので出たら買ってしまう気がする。


2020-09-25 追記

11/4に日本語版出るようです。待ってました。

scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

  • 作者:Aurélien Géron
  • 発売日: 2020/11/04
  • メディア: 単行本(ソフトカバー)

以上