バックプロパゲーションニューラルネットワークではなぜ非線形活性化関数を使用する必要があるのですか? [closed] 質問する

バックプロパゲーションニューラルネットワークではなぜ非線形活性化関数を使用する必要があるのですか? [closed] 質問する

私はニューラル ネットワークに関するいくつかの資料を読んでおり、単層ニューラル ネットワークの一般的な原理を理解しています。追加の層が必要であることは理解していますが、非線形活性化関数が使用されるのはなぜですか?

この質問の後に次の質問が続きます:バックプロパゲーションで使用される活性化関数の導関数とは何ですか?

ベストアンサー1

活性化関数の目的は、ネットワークへの非線形性

これにより、説明変数と非線形に変化する応答変数(ターゲット変数、クラスラベル、スコアとも呼ばれる)をモデル化できるようになります。

非線形出力が入力の線形結合から再現できないことを意味します(これは直線にレンダリングされる出力とは異なります。これを表す言葉はアフィン)。

別の考え方としては、非線形ネットワークに活性化関数がない場合、NN は、その層の数に関係なく、単層パーセプトロンと同じように動作します。これは、これらの層を合計すると、別の線形関数が得られるためです (上記の定義を参照)。

>>> in_vec = NP.random.rand(10)
>>> in_vec
  array([ 0.94,  0.61,  0.65,  0.  ,  0.77,  0.99,  0.35,  0.81,  0.46,  0.59])

>>> # common activation function, hyperbolic tangent
>>> out_vec = NP.tanh(in_vec)
>>> out_vec
 array([ 0.74,  0.54,  0.57,  0.  ,  0.65,  0.76,  0.34,  0.67,  0.43,  0.53])

バックプロパゲーションで使用される一般的な活性化関数(双曲正接)を-2から2まで評価します。

ここに画像の説明を入力してください

おすすめ記事