はじめに
『ゼロから作るDeep Learning 3――フレームワーク編』の初学者向け攻略ノートです。『ゼロつく3』の学習の補助となるように適宜解説を加えていきます。本と一緒に読んでください。
この記事は、各ステップの解説記事へのリンクページです。
【前巻の内容】
【目次】
記事一覧
第3ステージ 高階微分を実現する
$\sin$関数のテイラー展開自体はこの先で使いませんが、$\sin$関数を用いてテイラー展開による近似を体感します。
ローゼンブロック関数を手元で可視化する必要性はありませんが、本の図を再現するには少々加工が要りましたのでそのメモです。後半は、勾配降下法の雰囲気をグラフとアニメーションで確認します。
勾配降下法とニュートン法の特徴を簡単に確認します。
第4ステージ ニューラルネットワークを作る
本筋には関わらないため省略されているutils.reshape_sum_backward()
の処理を確認します。
本筋には関わらないため省略されているutils.sum_to()
の処理を確認します。
Linear
クラスを実装するのに必要な逆伝播を導出します。行列の積の逆伝播についてもこの記事の内容とほとんど同じです。
MeanSquaredError
クラスを実装するのに必要な逆伝播を導出します。
Linear
クラスとMeanSquaredError
クラスを用いて線形回帰を行います。
シグモイド関数については、この記事で扱いました。
シグモイド関数の逆伝播については、この記事で扱いました。
これまでに実装したDeZeroモジュールを使って、簡単なニューラルネットワークを作成して、学習を行います。
AdaDelta以外の最適化アルゴリズムは1巻の6.1節で確認しました。
各最適化アルゴリズムのクラスを試してみます。
ソフトマックス関数と交差エントロピー誤差の順伝播について確認します。Softmax
クラスやSoftmaxCrossEntropy
クラスの実装には、この記事と次の記事で導出した結果を使用します。
ソフトマックス関数と交差エントロピー誤差の逆伝播については、この記事で扱いました。
多クラスで非線形なデータセットの学習を行います。
ReLU関数については、こちらの記事で扱いました。
ReLU関数の逆伝播については、こちらの記事で扱いました。
MNISTデータセットを確認して、手書き文字認識を行います。
第5ステージ DeZeroで挑む
CNN全般に関しては、1巻の7章で扱いました。3巻用の解説も書きたいのですが、1巻の復習・修正が済んでから考えます。
CNNを用いてMNISTの学習を行います。内容的にはステップ57の次に相当します。
RNN全般に関しては2巻の5章で、LSTM全般に関しては6章で扱いました。
RNN(とMLP)を用いて時系列データの学習を行います。
LSTMを用いて時系列データの学習を行います。
以上!
参考文献
おわりに
- 2021.06.06
理論面に関しては1・2巻と被る内容が多々あると思うので、1・2巻のときのように全てを解説することはないはずと思っています。これまでに書いた記事を流用しつつ、自分が気になったところを適宜掘り下げていきます。
- 2021.06.29
第3・4ステージが終わりました。微妙に想定読者を定められていない。一応1巻を読んでる前提のレベル感で書いてるつもりです。
- 2021.07.11
第5ステージまで終わりました。1・2巻で登場して3巻で実装していないレイヤやモデルを自力で実装していきたい!のですが、とりあえず1巻の復習・修正をやっていきます。あとCNNで利用する関数やデータセット関連のクラスに関して省略したのをどうしたものか。詳しく見ておいた方がいいんですかね。
4巻が出るまでには諸々を終わらせたーい。
【次巻の内容】