ゼロから作るDeep Learning 3の表紙

ゼロから作る Deep Learning 3(ゼロカラツクルディープラーニングスリー)

フレームワーク編

プログラミング
著者:
斎藤康毅(サイトウ コウキ)
出版社:
オライリー・ジャパン
出版日:
2020年04月20日頃
ISBN:
9784873119069
在庫:
在庫あり
4.22(10 件 / 楽天ブックス)
中級者向け
プログラミング深層学習PyTorchTensorFlowフレームワーク構築教育実装機械学習アルゴリズム可視化

なぜ注目されているか

言及数
9
総合44 7 ランクアップ 119 件の言及
04820222023202420252026

書籍紹介

超人気シリーズの第 3 弾ー令和の時代の新ドラゴンブック!
大ヒットを続ける超人気シリーズの第 3 弾。今回は「 DeZero 」というディープラーニングのフレームワークをゼロから作ります。 DeZero は本書オリジナルのフレームワークです。最小限のコードで、フレームワークのモダンな機能を実現します。本書では、この小さなーそれでいて十分にパワフルなーフレームワークを、全部で 60 ★のステップで完成させます。それによって、 PyTorchTensorFlow 、 Chainer などの現代のフレームワークに通じる知識を深めます。キャッチフレーズはー作るからこそ、見えるモノ。

技書の森解説

PyTorch で loss.backward () と書くとき、その 1 行の裏で何が起きているかを説明できるでしょうか。『ゼロから作る Deep Learning ❸ フレームワーク編』 (斎藤康毅著、オライリー・ジャパン、 2020 年 4 月刊) は、この問いに「自分で作ったから分かる」と答えられるようになるための本です。本書オリジナルの深層学習フレームワーク「 DeZero 」を全 60 ステップ・ 552 ページかけてゼロから完成させ、 PyTorch ・ TensorFlow ・ Chainer といった現代のフレームワークに通じる設計を内側から理解します。シリーズ第 3 巻ですが、扱う対象は「モデル」から「モデルを動かす道具そのもの」へ切り替わります。

主役は自動微分という読みどころ

技術的な主役は自動微分です。深層学習 フレームワークの本質的な仕事は、ユーザーが書いた計算の列から計算グラフを組み立て、任意の出力について勾配を機械的に求めることにあります。本書は「箱としての変数」と「変数を生み出す関数」という 2 つの部品から始め、数値微分の限界を確かめた上でバックプロパゲーションを導入し、それを自動化していきます。実行した計算の順にグラフが記録されていく方式 (PyTorch や Chainer が採る動的グラフの考え方) を採っているため、 Python の制御構文をそのまま使える柔軟さがどこから来るのかも体感できます。さらに逆伝播の正しい順序を保証する世代管理、 weakref を使った循環参照対策のメモリ管理、 Variable を普通の数値のように扱える演算子オーバーロードまで、目次のステップとして明示的に組み込まれています。

全 60 ステップという構成の工夫

もう 1 つの特徴は、章ではなく 60 の小さなステップを積み上げる形式です。 1 ステップが数ページ単位で完結し、そのたびに動くコードが手元に残るため、 552 ページという分量の割に挫折ポイントが分散されています。ステップ 10 ではユニットテストと勾配確認による自動テストを導入しており、ライブラリを育てながらテストで守るという、ソフトウェア設計の実践としても読める作りです。実際、本書から得られるものの少なくない部分は Python プログラミング そのものの上達で、 with 文による状態切り替えやパッケージ構成など、フレームワーク開発の常套手段が次々に登場します。

シリーズ内の位置づけと読む順番

シリーズ内の位置づけは分岐点です。前提となるのは無印 (第 1 巻) の誤差逆伝播とニューラルネットワークの基礎で、❷ 自然言語処理編の知識は要求されません。読む順番 としては無印の後、❷ と ❸ はどちらを先にしても支障がなく、「モデルの応用を広げたいなら ❷ (2018 年) 、道具の中身を知りたいなら本書」という関心での選択になります。この後の ❹ 強化学習編 (2022 年) では本書で作る DeZero が実際に使われるため、❹ まで進むつもりなら本書を先に済ませておくと見通しが良くなります。

向いている読者・向かない読者

向かないのは、既製のフレームワークでモデルを組めれば十分で、道具の内部に関心が持てない人です。その場合は本書より応用側の巻や実務書が先でしょう。逆に、カスタムレイヤや独自の損失関数を書く必要がある人、フレームワークの不可解なエラーや勾配の異常を設計レベルから追える力が欲しい人、機械学習エンジニアとして「使える」から「分かって使える」へ進みたい人には、シリーズ中で最も効く一冊です。写経した 60 ステップの終わりに、自作のフレームワークで実際にニューラルネットワークが学習する瞬間の納得感は、この本でしか得られません。

言及 Qiita 記事 (106 件)

言及 Zenn 記事 (4 件)

この本に興味がある方におすすめ

この本に関連

関連記事

関連用語

共有:Xはてブ