問題 No.830
層を深くしたニューラルネットワークにおいて、シグモイド関数を活性化関数として使用し続けると学習が全く進まなくなることがある。この原因として最も適切なものはどれか。
【正解の解説】
微分した最大値が小さいため逆伝播を繰り返すうちに勾配がゼロに近づき入力層付近の重みが更新されなくなるため
勾配消失問題と呼ばれ、シグモイド関数は微分すると値が小さくなるため、層が深いほどその値が掛け合わされてゼロに近づき、学習が止まってしまう現象です。
スポンサーリンク
【その他の選択肢の解説】
関数が出力する値が極端に大きくなり許容できる桁数をオーバーフローしてしまうため
シグモイド関数は値が0から1の間に収まるため、桁あふれ(オーバーフロー)の問題は生じません。
特定のニューロンにのみ極端に大きな重みが割り当てられ他のニューロンが全く機能しなくなるため
特定のニューロンの重みが大きくなりすぎることはありますが、それが直接的に「シグモイド関数を使うと学習が進まない」根本原因ではありません。
学習データに含まれるノイズを正確に記憶しすぎてしまい未知のデータに対する予測精度が著しく低下するため
過学習の説明ですが、活性化関数としてシグモイド関数を使った際の問題は、主に勾配の消失にあります。