Entries

斎藤康毅『ゼロから作るDeep Learning』


ベストセラーの名に恥じない、素晴らしい一冊。深層学習の基本的原理を、pythonコードを中心に解説。数学的内容も行列の積や微積分といった初歩から、実に丁寧に説明している。けれども内容はそれなりに高度なところまでフォロー。深層学習の研究の先端から、各トピックが解説されている。

内容はパーセプトロンからニューラルネットワークへ。全結合ネットワークが主な対象で、後はCNNに一章が割かれている。非常に分かりやすく書いてあり、コードも読みやすい。本文の解説がしっかりしているので、コードを深く追う必要はあまり感じない。深層学習について最初に独習するには最適な本だろう。

単純に基礎的構造の解説には終始していなく、AdaGradやAdamなどの学習法、Batch Normalizationといった話題もある。学習法ではSGDの欠点を「関数の形状が等方的でないと、非効率な経路で探索することになる点にある」(p.169)と指摘しつつ、Adamなどの学習法の概要を説明している。また、重みの初期化について、勾配消失とアクティベーションの偏りからまとめてからXavierとHeの初期化の話をしている(p.165-186)。

一番素晴らしいのは計算グラフを使った逆伝播法の解説(p.143-156)。ここは本当によく書けていて分かりやすい。計算グラフを使うことで、例えばTensorFlowのやり方になじむ。ここまで逆伝播法を明快に解説できるのは驚き。

一点、線形関数の解説で「そもそも関数は、何かの値を入力すれば何かの値を返す「変換器」です。この変換器に何か入力したとき、出力が入力の定数倍になるような関数を線形関数と言います(数式で表すとh(x) = cx。cは定数)。」(p.51)とある。この線形の条件からは、h(x+y) = h(x) + h(y)という条件が抜けている。
スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://exphenomenologist.blog100.fc2.com/tb.php/882-02dd1112

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する