カレーちゃんブログ

Kaggleや競技プログラミングなどのこと

TensorFlow機械学習クックブック Pythonベースの活用レシピ60+を買った!本の説明や1章の感想など

ついにTensorFlow機械学習クックブック Pythonベースの活用レシピ60+が発売になりました! 内容をざっと見たところ、TensorFlowを1から学習できるようになってるし、コードも充実しているしで、とても良書です。
とりあえず1章を読んでみたのですが、公開されているjupyternotebookで動かしながら読めるので、理解も深まるし、少しいじってみて失敗することもできるしで今のところ大満足です。
以下本の説明や1章の感想などを書いてみます。
f:id:currypurin:20170820122641j:plain

購入

インプレスブックスの公式サイトからpdf版を買ってみました。表紙と初めの16ページほどがカラーで残りが白黒です(正確にはグレースケールと言ったほうがよいのでしょうか)。pdf版があると本を持ち運ばなくてもipadproさえ持ち歩いていれば、綺麗なものを読めるのでとてもありがたいです。
他の出版社にもpdf版の発売をお願いしたいところ。インプレスブックスさんありがとうございます。

サンプルコード

https://github.com/nfmcclure/tensorflow_cookbookに、原書のサンプルコードが公開されていて、本書でもそれを使用します。サンプルコードはMITライセンスです。
コードはそれぞれ、.ipynbのjupyternoteのファイルと.pyのファイルのふたつがありとても親切です。

本の目次

  • 第1章 TensorFlowの仕組みと基本事項を押さえる
  • 第2章 TensorFlowスタイル
    • 演算/層の追加、損失関数やモデル評価などの実装
  • 第3章 線形回帰
    • 逆行列/分解法からロジスティック回帰まで
  • 第4章 サポートベクトルマシン
    • 線形SVMの操作/次元縮約、非線形SVM/多クラスSVMの実装など
  • 第5章 最近傍法
    • 編集距離、距離関数の組み合わせ、最近傍法の画像認識など
  • 第6章 ニューラルネットワーク
    • 論理ゲート、単層/多層ニューラルネットワークの実装など
  • 第7章 自然言語処理
    • BoW/TF-IDF/スキップグラム/CBOWなど
  • 第8章 畳み込みニューラルネットワーク
    • 単純なCNN/高度なCNN/モデルの再トレーニングなど
  • 第9章 リカレントニューラルネットワーク
    • LSTM/Sequence-to-Sequence/Siamese Similarity法
  • 第10章 TensorFlowを運用環境で使用する
  • 第11章 TensorFlowをさらに活用する
    • 遺伝的アルゴリズム/連立常微分方程式など
      さらに詳くは、紀伊国屋書店のページで66のレシピ名まで公開されていました。

第1章の概要など

1章の「TensorFlowの仕組みと基本事項を押さえる」は、1.1から1.9までで構成されており、項目は以下のとおりです。

1.1 はじめに
1.2 TensorFlowの仕組み<Recipe 1>
1.3 テンソルを設定する<Recipe 2>
1.4 プレースホルダと変数を使用する<Recipe 3>
1.5 行列を操作する<Recipe 4>
1.6 演算を設定する<Recipe 5>
1.7 活性化関数を実装する<Recipe 6>
1.8 データソースを操作する<Recipe 7>
1.9 その他のリソース<Recipe 8>

1章は、初めての方が知っておくべきことから書かれていますが、いきなり全体感がない中からはじめるのは少しきついと思うので、TensorFlowに初めて触る人は、入門者向けのブログ記事などで少し補強しておくとすんなり入れるのではないでしょうか。 私のオススメは、【本当の初心者向け】ニューラルネットとTensorFlow入門のためのオリジナルチュートリアル1 - HELLO CYBERNETICSです。
…一方で、Jupyternotobookが公開されていることもあり、もしかしたら初めからこれでも良いのかもと思います。私はjupyterで動かしながら、少し詳しく知りたい部分だけ'?tf.word'(wordに知りたい関数を入れると関数の仕方が表示される(この参照の仕方って呼び方あるんですかね?))として読み進めました。
githubの方にある08_Additional_Resourcesは、おそらく膨大だし英語だしで、必要になってから読みます。

1章のサンプルコードへのリンク

githubで公開されている.ipynbファイルへのnbviewerからのリンクを貼っておきます。

1章のポイント

1章は全てがポイントというか、TensorFlowを使う時には、知っておく必要があるものばかりかと思います。
活性化関数の1.7(recipe6)は、活性化関数の説明がひとつずつ書いてあって、最終的に以下のようなグラフを書くことができて、よくできているなと思います。 f:id:currypurin:20170820120707p:plainf:id:currypurin:20170820120726p:plain

1章を読む上で参考にした記事

個人的なこととか今後とか

毎週金曜日にやっている輪読会で、詳解ディープラーニングの本をこれまで読んできて先日読み終わりました。その次の輪読本にこのクックブックをしようとも思っていたのですが、最終的には、犬4匹本を輪読することとなりました。(第一回目はこちらで募集しています)
ということでクックブックのアウトプットの場所が現状ないので、このブログで少しずつ読み進めた結果をアウトプットしていきたいと考えています。章がすすんだら応用で色々つくりたいものもあるので頑張ります。