からっぽのしょこ

読んだら書く!書いたら読む!同じ事は二度調べ(たく)ない

『ゼロから作るDeep Learning 3』の学習ノート:記事一覧

はじめに

 『ゼロから作るDeep Learning 3――フレームワーク編』の初学者向け攻略ノートです。『ゼロつく3』の学習の補助となるように適宜解説を加えていきます。本と一緒に読んでください。

 この記事は、各ステップの解説記事へのリンクページです。

【前巻の内容】

www.anarchive-beta.com

【目次】

記事一覧

第3ステージ 高階微分を実現する

 $\sin$関数のテイラー展開自体はこの先で使いませんが、$\sin$関数を用いてテイラー展開による近似を体感します。

www.anarchive-beta.com

 ローゼンブロック関数を手元で可視化する必要性はありませんが、本の図を再現するには少々加工が要りましたのでそのメモです。後半は、勾配降下法の雰囲気をグラフとアニメーションで確認します。

www.anarchive-beta.com

 勾配降下法とニュートン法の特徴を簡単に確認します。

www.anarchive-beta.com


第4ステージ ニューラルネットワークを作る

 本筋には関わらないため省略されているutils.reshape_sum_backward()の処理を確認します。

www.anarchive-beta.com

 本筋には関わらないため省略されているutils.sum_to()の処理を確認します。

www.anarchive-beta.com

 Linearクラスを実装するのに必要な逆伝播を導出します。行列の積の逆伝播についてもこの記事の内容とほとんど同じです。

www.anarchive-beta.com

 MeanSquaredErrorクラスを実装するのに必要な逆伝播を導出します。

www.anarchive-beta.com

 LinearクラスとMeanSquaredErrorクラスを用いて線形回帰を行います。

www.anarchive-beta.com

 シグモイド関数については、この記事で扱いました。

www.anarchive-beta.com

 シグモイド関数の逆伝播については、この記事で扱いました。

www.anarchive-beta.com

 これまでに実装したDeZeroモジュールを使って、簡単なニューラルネットワークを作成して、学習を行います。

www.anarchive-beta.com

 AdaDelta以外の最適化アルゴリズムは1巻の6.1節で確認しました。

www.anarchive-beta.com

 各最適化アルゴリズムのクラスを試してみます。

www.anarchive-beta.com

 ソフトマックス関数と交差エントロピー誤差の順伝播について確認します。SoftmaxクラスやSoftmaxCrossEntropyクラスの実装には、この記事と次の記事で導出した結果を使用します。

www.anarchive-beta.com

 ソフトマックス関数と交差エントロピー誤差の逆伝播については、この記事で扱いました。

www.anarchive-beta.com

 多クラスで非線形なデータセットの学習を行います。

www.anarchive-beta.com

 ReLU関数については、こちらの記事で扱いました。

www.anarchive-beta.com

 ReLU関数の逆伝播については、こちらの記事で扱いました。

www.anarchive-beta.com

 MNISTデータセットを確認して、手書き文字認識を行います。

www.anarchive-beta.com


第5ステージ DeZeroで挑む

 CNN全般に関しては、1巻の7章で扱いました。3巻用の解説も書きたいのですが、1巻の復習・修正が済んでから考えます。

www.anarchive-beta.com

 CNNを用いてMNISTの学習を行います。内容的にはステップ57の次に相当します。

www.anarchive-beta.com

 RNN全般に関しては2巻の5章で、LSTM全般に関しては6章で扱いました。

www.anarchive-beta.com

 RNN(とMLP)を用いて時系列データの学習を行います。

www.anarchive-beta.com

 LSTMを用いて時系列データの学習を行います。

www.anarchive-beta.com

 以上!

参考文献

  • 斎藤康毅『ゼロから作るDeep Learning 3 ――フレームワーク編』オライリー・ジャパン,2020年.

おわりに

  • 2021.06.06

 理論面に関しては1・2巻と被る内容が多々あると思うので、1・2巻のときのように全てを解説することはないはずと思っています。これまでに書いた記事を流用しつつ、自分が気になったところを適宜掘り下げていきます。

  • 2021.06.29

 第3・4ステージが終わりました。微妙に想定読者を定められていない。一応1巻を読んでる前提のレベル感で書いてるつもりです。

  • 2021.07.11

 第5ステージまで終わりました。1・2巻で登場して3巻で実装していないレイヤやモデルを自力で実装していきたい!のですが、とりあえず1巻の復習・修正をやっていきます。あとCNNで利用する関数やデータセット関連のクラスに関して省略したのをどうしたものか。詳しく見ておいた方がいいんですかね。
 4巻が出るまでには諸々を終わらせたーい。

【次巻の内容】

 楽しみ。