質問1:kernel_initializerとbias_initializerの違いは何でしょうか?自分の認識としては、kerner_initializerは入力ベクトルに対する重みの初期値で、bias_initializerはバイアス項に対する初期値だと思っていますが、別々に指定する意味が分かりません。一般的に、活性化関数がreluの場合、重みの初期値はHeの初期値がいいと言われていると思いますので、いつもプログラムを書くときは、テンプレ的に、どちらも’he_normal’を指定しています。
質問2:kernel_regularizerとbias_regularizerもなぜ、別々に指定する必要があるのかわかりません。また、l1を使用するのか、l2を使用するのか、l1_l2を使用するのかは、通常、試行錯誤によって決定するものでしょうか?
質問3:公式のドキュメントに、Denseのパラメータで、activity_regularizerというものがありましたが、これはBatchNormalizationとはまた違う話でしょうか?
質問4:いつもテンプレ的に下記のような中間層の設計にしていますが、大きな問題はありませんでしょうか?また、活性化関数にreluやtanhやsigmoidやeluなどのうちどれを使用するかは、ニューラルネットに相当詳しい方でないと考える必要はないでしょうか?initializerについても、'he_normal'を使用するのか、その他の初期値を使用するのかもそこまで検討する必要はないでしょうか?
*質問4の意図としては、限られた工数で、データ分析をする場合に、ニューラルネットの構造まで詳しく精査できない場合、下記のようなテンプレを使いまわしても、大きな問題はないかということをご教示いただきたいです。
python
1model.add( 2 Dense( 3 128, 4 activation='relu', 5 kernel_initializer='he_normal', # 勾配(重み)の初期値 6 bias_initializer='he_normal', # バイアス項の初期値 7 kernel_regularizer=regularizers.l1_l2(0.001), # 勾配(重み)の正則化項 8 bias_regularizer=regularizers.l1_l2(0.001) # バイアス項の正則化項 9 ) 10) 11model.add(Dropout(0.1))# ドロップアウト層 12model.add(normalization.BatchNormalization())# バッチ正規化
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。