シグモイド関数を微分したら楽しかったよ、って話
シグモイド関数ってご存知でしょうか。
最近世間を騒がせている、人工知能(Deep learning)の基礎の基礎として出てくる関数なんですね。
この関数の使用目的の一つとして、微分可能であるという性質が挙げられます。
ニューロンの発火を1か0かで表す際に、ステップ関数というものが使われていたんですけれども、このステップ関数は不連続なんですね。つまり微分できない。*1
ところが、このシグモイド関数は微分が出来るので、数理モデルに当てはめる際に非常に便利なんですよね。
ただ自分は
「……シグモイド関数は微分出来るからすごいっていうけど、私の計算力じゃ微分できない気がするよ!」
っていうレベルでしたので、ものは試しと微分してみました。
高校2年レベルの微分だと思うんですけれど、久々に数学に触れたら結構楽しかったので、記事にしてみます。
この記事の目的ですが、
これが
こうなれば良いわけです。微分しても元の関数が残っていて、難しい事は良く分からないけど便利そうですよね。
さて。
まずはシグモイド関数の式変形をしてしまいます。(1→2)
これだけで一気に私にも微分できそうな気がしてきました。
次はいよいよ微分してみます(2→3)
微分でつまづくとしたらここかなぁと思います。
これ、合成関数の微分って言われるやつですよね。*2
どこから-2が出てきたのか、どこから
が出て来たのかを意識すると良いと思います。
さて、ここから先は式変形になります。まずはマイナスを消しちゃいましょう(3→4)
続いて、分数の形にしてしまいます(4→5)
あとは、元の関数を取り出していく形になります(5→6)
ここで、
なので、更に数式を変形してしまいます。(6→7)
右辺からもう一つσ(x)を取り出すために変形します(7→8)
分かりやすく書き直します(8→9)
σ(x)と書き直します(9→10)
完成です! 最初の式と一致しました!!
何が楽しかったかっていうと、高校レベルの数学で、学問の先端に触れることが出来た、ってところです。
人工知能→Deep learning→人工ニューロン→シグモイド関数→合成関数の微分
って感じで繋がってるんですね。*3
何かの目的のために、基礎的なレベルの事を調べたりトライしたりするって、楽しいですよね。
教育は体系的に行われるわけですが、体系って自分で消化して再構築しないと、その体系は腑に落ちないんじゃないかなーと思います。
…脱線しちゃいました。これでシグモイド関数を微分できますね!!
以下、参考にしたサイト