【ラビットチャレンジ（E資格）】深層学習day2

#はじめに
本記事は、E資格の受験資格の取得を目的としたラビットチャレンジを
受講した際の勉強記録およびレポート記事である。

###連鎖律
■確認テスト
連鎖律の原理を使い、dz/dxを求めよ。
$z = t^2$
$t = x + y$

・解答
![IMG_20201216_181522.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/808ee1cb-611d-590c-a597-90c29741130b.jpeg)

##Section1：勾配消失問題
誤差逆伝搬法が下位層に進んでいくにつれて、勾配がどんどん緩やかに
なっていく。そのため、勾配降下法による更新では下位層のパラメータは
ほとんど変わらず、訓練は最適値に収束しなくなる。

■確認テスト
シグモイド関数を微分したとき、入力値が0のときに最大値をとる。
その値として正しいものを選択肢から選べ。
(1)0.15
(2)0.25
(3)0.35
(4)0.45

・解答
![IMG_20201216_194339.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/d4fcc546-1124-1c72-59ef-a14893445fb2.jpeg)

###重みの初期値設定-Xavier
Xavierの初期値を設定する際の活性化関数
◆ReLu関数
◆シグモイド (ロジスティック) 関数
◆双曲線正接関数
![スクリーンショット (145).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/7ae5e300-ee3f-df98-1ff1-fe6fba40e2df.png)

###重みの初期値設定-He
Heの初期値を設定する際の活性化関数
◆ReLu関数
![スクリーンショット (146).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/bfcb13c6-bba2-5fbe-cc2f-2f7a10a199fe.png)

■確認テスト
重みの初期値に0を設定すると、どのような問題が発生するか。
簡潔に説明せよ。

・解答
重みを0で初期化すると正しい学習が行えない。
すべての重みの値が均一に更新されるため多数の重みをもつ意味がなくなる。

■確認テスト
一般的に考えられるバッチ正規化の効果を2点挙げよ。

・解答
計算量の高速化
勾配消失が起こりにくくなる

■例題
![スクリーンショット (147).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/64f8e591-d7ab-e7ce-47a5-b5ecae0099cd.png)

・解答
(1)。バッチサイズだけデータを取り出す処理。

■演習
重みの初期化をガウス分布、活性化関数をシグモイド関数とすると
勾配消失問題が発生。この場合、活性化関数をReLU関数にすると
学習がうまく進んでいくことが確認された。
また活性化関数はシグモイド関数でXavier初期化をした場合、
勾配消失問題の発生はなく学習がうまく進んでいくことが確認された。
活性化関数ReLUでも学習がうまく進んでいく。
Xavier、Heでの重みの初期化は勾配消失問題を防ぐ有効な手段であること
が確認できた。

![スクリーンショット (154).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/f9286ca4-4d9c-b841-ba8d-8c02c25edd13.png)
![スクリーンショット (155).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/279ca781-6cb9-d0fd-845c-16783771830b.png)
![スクリーンショット (156).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/71b56750-ac6c-d353-fd5a-7a0c314ddb2f.png)
![スクリーンショット (157).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/5532e976-b166-e507-b7ca-a97448e26727.png)
![スクリーンショット (158).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/f4eb01df-2c6b-e391-c5ea-39f7d126e777.png)
![スクリーンショット (159).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/2b79bc7f-73ec-0cb3-798b-c4e81a86f308.png)
![スクリーンショット (160).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/ca83920f-709b-a947-e479-9c22cb5f0d86.png)
![スクリーンショット (161).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/03e4c78d-a4b6-aec1-4a78-69f7bbe38b74.png)
![スクリーンショット (162).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/4ef39c3b-04cf-8fe2-7983-544d19e248cc.png)
![スクリーンショット (163).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/7e07b664-c2cf-1f51-7648-5854f379f74c.png)
![スクリーンショット (164).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/48e74e32-6223-bfcc-7958-03360a9f874f.png)
![スクリーンショット (165).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/b66ee5e7-582a-bf70-29a6-675115e37888.png)
![スクリーンショット (166).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/50f1272e-833f-a8d2-586f-d831acbc1f71.png)
![スクリーンショット (167).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/688c20f3-79e3-0090-d2d6-c4c105ce6917.png)
![スクリーンショット (168).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/94ae9717-c623-2c0b-fa71-fe48fb4aa5ad.png)
![スクリーンショット (169).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/29937374-eca3-43c1-58f6-ec6ca4222ae6.png)
![スクリーンショット (170).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/929f57a4-370d-998c-f3db-50f33d8907a7.png)
![スクリーンショット (171).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/bfac4a09-4c98-3167-c1cd-eede8c5185fc.png)
![スクリーンショット (172).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/c9f51410-1157-eb0c-5c12-c58e97f21613.png)
![スクリーンショット (173).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/d7a803e2-19fc-251a-12e7-a0f010847905.png)
![スクリーンショット (174).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/14d80604-d263-5f74-83ec-5dda23fd96d9.png)





##Section2：学習率最適化手法
###モメンタム
◆メリット
・局所的最適解にはならず、大域的最適解となる。
・谷間についてから最も低い位置 (最適値) にいくまでの時間が早い
$V_t = \mu V_{t-1} -\epsilon \nabla E$
$\boldsymbol w^{(t+1)} = \boldsymbol w^{(t)}+V_t$
![スクリーンショット (148).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/9fb94060-4617-aa7d-e30b-72d6e2a4e72a.png)
###AdaGrad
◆メリット
・勾配の緩やかな斜面に対して、最適値に近づける

◆課題
・学習率が徐々に小さくなるので、鞍点問題を引き起こす事があった
$h_0=\theta$
$h_t = h_{t-1}+(\nabla E)^2$
$\boldsymbol w^{(t+1)} = \boldsymbol w^{(t)} - \epsilon \frac{1}{\sqrt{h_t}+\theta} \nabla E$
![スクリーンショット (149).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/166175cf-1567-1c24-6b1c-f57763b6b790.png)

###RMSProp
◆メリット
・局所的最適解にはならず、大域的最適解となる
・ハイパーパラメータの調整が必要な場合が少ない

$h_t = \alpha h_{t-1}+(1-\alpha)(\nabla E)^2$
$\boldsymbol w^{(t+1)} = \boldsymbol w^{(t)} - \epsilon \frac{1}{\sqrt{h_t}+\theta} \nabla E$
![スクリーンショット (150).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/d570f5e2-fafb-7731-3da7-bb57ef5dcdb9.png)

###Adam
・モメンタムの過去の勾配の指数関数的減衰平均
・RMSPropの過去の勾配の2乗の指数関数的減衰平均
上記をそれぞれ孕んだ最適化アルゴリズムである。

■演習
SGDでは、勾配消失問題が発生し学習が進まないことが確認された。
今回、学習率最適化手法 (モメンタム、AdaGrad、RMSProp、Adam) を使用して
勾配消失問題を回避できるか確認してみた。

結果として本モデルでは、モメンタム、AdaGradでは勾配消失問題が
発生し学習がうまく進んでいかなかったが、RMSProp、Adamでは
勾配消失問題を回避し学習はうまく進んでいくことが確認された。

![スクリーンショット (175).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/39cf24f8-6397-eb43-91d7-1c2cc6735118.png)
![スクリーンショット (176).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/0f85aa4b-1757-c1f5-6acb-42e1085453b9.png)
![スクリーンショット (177).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/7923a5dd-09f4-105d-f007-bc3f8553b86e.png)
![スクリーンショット (178).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/3fbe9cd3-8ebd-652c-89ba-a44da1a99148.png)
![スクリーンショット (179).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/b47fd738-c4e0-36f6-9704-8b43f9548453.png)
![スクリーンショット (180).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/5ceb0373-1277-deee-0c5d-5cd5a169fde6.png)
![スクリーンショット (181).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/f84b959f-98fa-f230-69b0-e0b2d2e7b132.png)
![スクリーンショット (197).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/07c28a27-caad-fd05-265d-01bcd91b27e3.png)
![スクリーンショット (182).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/d87197bf-5fad-97a5-1c2d-76a0acec78eb.png)
![スクリーンショット (183).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/ef79b641-db41-ab35-d95a-4569bf7dfd61.png)
![スクリーンショット (184).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/cf65860f-fd51-1b74-0e3e-58c475aadb8e.png)
![スクリーンショット (185).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/3d078554-8122-f0fb-3fe8-ad9bb97f57e1.png)
![スクリーンショット (186).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/dda36ec6-1e24-c674-101b-32ebf5b60e12.png)
![スクリーンショット (187).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/96f2df78-8277-1cb7-7e87-d339de48008b.png)
![スクリーンショット (188).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/ab27ae66-97e5-3629-2d24-bd78f1e1ca5a.png)
![スクリーンショット (189).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/67c3bddc-01d1-fa59-9853-1564ae7e4b8f.png)
![スクリーンショット (190).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/7b07a149-886b-8a00-4b1d-8ca9dc56dc69.png)
![スクリーンショット (191).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/27110ce2-872d-1c5f-d3c1-c7fa62bece44.png)
![スクリーンショット (192).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/71b510b1-4ff6-0414-03d2-3fe59081ea4d.png)
![スクリーンショット (193).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/d00ffe2e-9c26-74d5-ca79-1671b57b5044.png)
![スクリーンショット (194).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/c68f3f6d-d8af-f7f5-a927-c39d18e26a04.png)
![スクリーンショット (195).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/08588353-e8f3-cbf4-c889-38dce4e34922.png)
![スクリーンショット (196).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/77e50439-063e-f6d9-8a07-8a62dd9f69bd.png)


##Section3：過学習について
■過学習
テスト誤差と訓練誤差とで学習曲線が乖離すること

■正則化
ネットワークの自由度 (層数、ノード数、パラメータの値等) を制約すること
⇒正則化手法を利用して過学習を抑制する

■L1、L2正則化
$$E_n(\boldsymbol w)+\frac{1}{p}||x||_p$$

$$||x||_p=(|x_1|^p+\cdots+|x_n|^p)^ \frac{1}{p}$$

$p=1$の場合，L1正則化と呼ぶ．
$p=2$の場合，L2正則化と呼ぶ．

■確認テスト
下図についてL1正則化を表しているグラフはどちらか答えよ。
![スクリーンショット (151).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/8cb73fc4-aa2d-fc3e-6394-c6d9dc2c29c1.png)

・解答
右側 (Lasso推定量) のグラフ

■例題チャレンジ
![スクリーンショット (152).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/1d74dbd6-4c0c-a440-a9c6-17a54fb8640e.png)

・解答
(4)

■例題チャレンジ
![スクリーンショット (153).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/791052/ab716f34-d410-5888-cdb8-885bf922968d.png)

・解答
(3)

##畳み込みニューラルネットワークについて
■畳み込み層
画像の場合、縦、横、チャンネルの3次元のデータをそのまま学習し
次に伝えることができる。
結論として3次元の空間情報も学習できるような層が畳み込み層である。

■パディング
畳み込み層の処理を行う前に、入力データの周囲に固定のデータ (例えば0など) を
埋めること。

■ストライド
フィルターを適用する位置の間隔のこと。

■確認テスト
サイズ6×6の入力画像をサイズ2×2のフィルタで畳込んだ時の
出力画像のサイズを答えよ。
なおストライドとパディングは1とする。

・解答
7×7