私はニューラル ネットワークに関するいくつかの資料を読んでおり、単層ニューラル ネットワークの一般的な原理を理解しています。追加の層が必要であることは理解していますが、非線形活性化関数が使用されるのはなぜですか?
この質問の後に次の質問が続きます:バックプロパゲーションで使用される活性化関数の導関数とは何ですか?
ベストアンサー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まで評価します。