ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実装

読んだ。

COI:自費で買った。著者は知り合いでない。
 
本当にゼロから始めるDeep learning. Python のみで完結する。
パーセプトロンニューラルネットでどのように線形分類、非線形分類ができるかを解説し、最初はパラメータを自分で与えないといけなかったが、伝播法(順・逆)により自動で最適なパラメータ設定を見つける過程を実装している。
この本のいいところは、最初に「対象とする読者」のほかに「対象としない読者」を定義しており、CNN を使ったMNIST の分類のタスクをするが、それ以外はお断り(というか詳細には解説しないので他をあたれ)と書いている。とはいっても、分類問題だけでなく、回帰問題を解くときにどうしたらいいか、は書いてある。本書は画像解析だけなので、畳み込みの原理などを解説している。
 
個人的には、数式読めないマンなので、勾配法により最適パラメータを見つけ出すときのステップで、
機械学習のための連続最適化 (機械学習プロフェッショナルシリーズ)

機械学習のための連続最適化 (機械学習プロフェッショナルシリーズ)

を読んでいたけど、逆伝播はあ〜微分がi 層からi-1 層について書けるんだな〜くらいにしか理解していなかったが、Python でゼロから作る、というだけあって、逆伝播の仕組みがよくわかった。
逆に、よろしくなかったのが、逆伝播の説明の時に「掛け算ならひっくり返して…」みたいな書き方をしていて、そこでむしろわかりにくかった、気がする。
しかし、単著なので、全章に渡って一貫した感じの書き方なので、わかりやすかった。
 
ゼロから作るとはいえ、本書だけではスクリプトはカバーできず、後半戦はほとんどサイトの○○のスクリプトを参照してください、という感じである。対象者にPython が初めての人、とはあるが、決してプログラミングが初めての人向けではないことは書いておきたい。というのも、最低限の線形代数の知識は必要だし、Python の扱いも、スクリプトを書いて関数を定義しておいて、それを呼び出して組み合わせながら、という感じなので、まあ自分がクラスとかそういう概念がいまだにあやふやなプログラミング初心者というのもあるのだが、ゼロから作る(ゼロとは言っていない 状態に陥る可能性はあるのはある。せめて困った時に超初歩を聞ける玄人が近くにいれば、本当にプログラミングもDeep learning も初心者です、という人でも出来ないことはないかも知れない(適当
 
安いので買い。