機械学習の参考書:ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実装

2018年12月4日

『ゼロから作るDeep Learning』斎藤康毅著 オライリー(O’REILLY)

カテゴリ おすすめ度
A 機械学習の本 ◎: 必ず読んでほしい

概要

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装は割と理解しやすかったです。自分でニューラルネットワークをpythonで実装して、仕組みや動作を勉強・習得したい人にはぜひ読んでほしいです。

「ゼロから作る」というのは「機械学習用のフレームワーク(ライブラリ等)を使わずスクラッチからソースコードを書く」という意味です。もちろん、ソースコードはGitHubからダウンロードできるので、必ずしも手でソースコードを入力する必要はありません。

ニューラルネットワークの実装では、レイヤーと呼ばれるパーツを組み立てて、将来ネットワーク構造を容易に変えることができるようになっています。

章立て

  1. Python入門(インストール方法、基本的な文法等)
  2. パーセプトロン
  3. ニューラルネットワーク
  4. ニューラルネットワークの学習
  5. 誤差逆伝搬法
  6. 学習に関するテクニック
  7. 畳み込みニューラルネットワーク
  8. ディープラーニング

よかったところ

  • 機械学習の一つであるニューラルネットワークを構築するにあたり、パーセプトロンという基礎から、畳み込みまで必要な理論の説明があります。
  • アルゴリズムだけでなく、pythonコードの説明もあり、わかりやすかった。
  • 誤差逆伝搬法は「計算グラフ」を用いた解説で、複雑な数式は少ないです。その分少し理解しにくいところがあるかもしれないので、数式を用いた参考書と併用した方がいいかも。
  • 学習のテクニックについては、手法によって最適解へ到達する道のりが変わることをグラフで示されており、わかりやすかった。
  • Pythonのインストール方法や基本的な文法の説明がありますが、分量は少なめなので、Pythonをどんどん活用したい人は別の参考書を買えばいいでしょう。
  • ニューラルネットワークの実装では、レイヤーと呼ばれるパーツを組み立てて、将来ネットワーク構造を容易にカスタマイズできるようになっています。

改善してほしいところ

  • 特にありませんが、強いて言えばアルゴリズムの説明で少し省略されてるな、と感じるところがありました(何度も読み返したり他の本を読んだりしてるうちに理解できました)
  • この本で対象となるのは、手書きの数字が書かれた28×28画素画像を0~9のいずれかに分類するもので、例えば超解像などの画像を出力するためにどこをどのように変更すべきか、説明がほとんどありません。また、畳み込み層を何層も重ねる深層構造にしたとき、ハイパーパラメタをどのように決めるのかも説明がないので、ターゲットの処理を変えるときに何をどのように変更すべきか、方針だけでも示してもらえると応用しやすいです。

自然言語処理について書かれた第2弾が出版されているので、購入される際はご注意ください。こちらの本のカバーには魚(ソイという種類?)の絵が描かれています。

リンク