ニューラルネットワークは、そのままではただの計算の重なりにすぎず、そこに「ひと工夫」を加えることで、はじめて複雑な世界を表現できるようになります。
まず安心してほしいのは、「関数」という言葉を怖がらなくていいということ。
ここでいう関数は、入力を受け取って、それを別の形に変えて出力する「変換装置」のことだと思ってください。
たとえば、
・お金を入れるとジュースが出てくる自動販売機
・ボタンを押すと電気がつくスイッチ
これらは、ある入力を受け取って、決まった出力を返す仕組みです。
もう少しだけ言い換えると、「何かを入れると、それが別の形に変わって出てくる」。この「変わる」ところを決めているのが、関数です。
だから関数は、入力を別の形に変える「変換装置」のようなもの。
難しい記号ではなくて、「変えるルール」を持った装置だと思えばいいのです。
では、活性化関数は何を変換しているのでしょうか。
ニューラルネットワークでは、入力に重みをかけて足し合わせる、その合計値を次に送る、という流れがあります。
でも、そのまま送ってしまうと、ネットワークはただの「まっすぐな計算」になってしまいます。
どれだけ層を重ねても、ずっと直線的な変換しかしていないのです。
そこで登場するのが、活性化関数です。
活性化関数は、計算結果をいったん受け取り、それを「発火するかどうか」という形で変換する装置と考えることができます。
これは、脳のニューロンの仕組みに由来しています。
脳のニューロンは、刺激が弱ければ反応しない、ある程度強くなると発火する、という性質を持っています。
活性化関数も同じように、
・小さい値はほとんど反応しない
・一定以上になると強く反応する
・マイナスは切り捨てる
といった「反応のしかた」を決めています。
つまり活性化関数は、数学的には「変換装置」、脳モデルとしては「発火装置」という、二つの顔を持っています。
そしてこの「ひと工夫」が入ることで、
ネットワークは直線ではなく、曲がったり、折れたり、複雑な形を表現できるようになります。
これを「非線形性」といいます。
ディープラーニングが深くなれるのは、この非線形性があるからです。
もし活性化関数がなければ、どれだけ層を増やしても、できることは単純なまま。
だから活性化関数は、ディープラーニングにとって飾りではなく、本質そのものなのです。
next ▶代表的な活性化関数