文系にシグモイド関数を教えてみた
文系にシグモイド関数を教えるにあたり、Wikipedia風にいきなり数式をぶつけてはいけません。機械学習に出てくる数式の中では最も簡単な部類に属しますが、彼らにSANチェック(0/1D2)を要求してしまいます。
まずは図です。Wikipediaだとこの図がいいでしょう。
(Wikipediaの標準シグモイド関数図)
その次に、シグモイド関数を覚えるとなにが嬉しいかを列挙します。多すぎてもマニアック過ぎてもいけません。
今回だとディープラーニングに興味があるようなのでそのあたりにも絡めて話をしました。
・シグモイド関数はディープラーニングの各ユニットの後のほうに使われる。
(=本来は「ニューラルネットワークの活性化関数として用いられる」と言いたい。)
・ディープラーニングの学習において微分が必要。
・シグモイド関数は微分が容易に求まる。
・なのでシグモイド関数は便利!
ここまでくれば安心です。最後に数式をそっと出します。
もちろんWikipediaのようにいきなりゲイン付きのシグモイド関数を先に出してはいけません。ゲイン1の標準シグモイド関数からです。
指数関数部分をexp(-x)表記にするか、e^-x表記にするかは判断の分かれるところです。
分からなそうな顔をしていればおもむろに指数関数の説明に入りましょう。
というわけで、文系に関数を説明するに際し、重要なのは以下の4点です。
1 いきなり数式を見せない(発狂する)。
2 最初は図で見せる。
3 数式は利点を伝えてから。
4 数式は可能な限り係数少なめのものにする。