回答編集履歴
1
append strings
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
一般的に使われるCNNに対して,上述のモデルは入力層側のフィルタの枚数が少ないように感じます.解像度28x28のLeNetでは6枚ですがResNetなどのDNNでは序盤から64枚のフィルタを持つなど,モデルの高性能化を要求するとフィルタの枚数も必然的に増えます.今回はまだモデルの性能に納得がいっていないということだったので,フィルタの枚数を増やすのが妥当
|
1
|
+
一般的に使われるCNNに対して,上述のモデルは入力層側のフィルタの枚数が少ないように感じます.解像度28x28のLeNetでは6枚ですがResNetなどのDNNでは序盤から64枚のフィルタを持つなど,モデルの高性能化を要求するとフィルタの枚数も必然的に増えます.今回はまだモデルの性能に納得がいっていないということだったので,フィルタの枚数を増やすのが妥当だと考えられます.
|
2
2
|
|
3
|
-
また,他のパラメータも改善の余地があります.[リファレンス](https://keras.io/api/layers/convolution_layers/convolution2d/)を参照するとわかるのですが,`Conv2D()`の重み初期値`kernel_initializer`はデフォルトで,活性化関数を`
|
3
|
+
また,他のパラメータも改善の余地があります.[リファレンス](https://keras.io/api/layers/convolution_layers/convolution2d/)を参照するとわかるのですが,`Conv2D()`の重み初期値`kernel_initializer`はデフォルトで,活性化関数を`tanh()`にしたとき用の`glorot_uniform`が設定されています.それに対して,活性化関数を`ReLU()`にしたとき用のものとして設計された`he_uniform`を適用すると,[学習速度が速くなる](https://arxiv.org/abs/1502.01852)ことが知られています.
|
4
4
|
|
5
|
-
もちろん,平滑化`Flatten()`した後の全結合層でも設定できるパラメータです.
|
5
|
+
もちろん,平滑化`Flatten()`した後の全結合層`Dense()`でも設定できるパラメータです.
|
6
6
|
|
7
|
-
もし,フィルタ数を増やして過学習を起こすのであれば,重み正則化項である`kernel_
|
7
|
+
もし,フィルタ数を増やして過学習を起こすのであれば,重み正則化項である`kernel_regularizer`を設定するのも一手です.
|
8
8
|
|
9
9
|
更には,`BatchNormalization()`を利用することも[学習速度を速くできる手法](https://arxiv.org/abs/1502.03167)であることも知られています.活性化関数の直後に挿入すると良いでしょう.
|
10
10
|
|