質問: ディープラーニグについて勉強しています。 活性化関数の説明で、 > > ニューロンの出力y=f(wTx+b)における関数はステップ関数でもシグモイド関数でもよく、ニューロンの線形結合後の非線形変換を行う関数のことを総称して活性化関数と呼びます。 > > > と書いてあったのですが、 なぜニューロンの出力y=f(wTx+b)における関数はステップ関数でもシグモイド関数でもよいのでしょうか?非線形関数なら必ずうまくいく保証はないんじゃないのかという質問です。 シグモイド関数は微分可能で、より複雑なことができる、という認識です。 教えてください、よろしくお願いいたします。
回答: 実際試してみるといいと思いますよ。 ノード数が十分多ければ、ステップ関数でもシグモイド関数でも同じ結果になります。 ノード数がギリギリだと、シグモイド関数の方が表現力が高い分有利です。 追記 ニューラルネットワークの自由度を決める最大の要因はノードと層の数です。 これらを無限に増やしていけば、(矛盾していない)どんなデータセットに対しても過学習が可能になります。 逆に実践的には過学習をいかに防ぎながらモデルの自由度を高めるのかが重要となります。 結局、数学的な自由度の表現の限界と高い自由度のパラメータ空間の最適化の限界という競合の中でモデル構築が行われます。 ステップ関数やReLUでもシグモイド関数と同等のモデルを再現することができるが、それを既存の最適化アルゴリズムで到達できるかどうかは別の問題です。