【活性化関数】01 活性化関数って?
はじめに
今回は、ニューラルネットワークの 1 つの要素である、 活性化関数について解説します。
人工知能や機械学習、ディープラーニングの記事を見ていると、活性化関数という用語はよく目にすると思います。活性化関数は、ニューラルネットワークにとって、なくてはならない存在です。
しかし、「調べてみたけど、いまいちよくわからない」という方が多いでしょう。今回は、そんな初心者に向けて、活性化関数を分かり易く丁寧に解説します。
今回の内容
- ニューラルネットワークの流れをおさらいします。
- 活性化関数の役割と、そのイメージを紹介します。
是非最後までご覧ください。
↓ 動画でも視聴できます ↓
ニューラルネットワークの流れをおさらい
はじめに、ニューラルネットワークの流れを、簡単におさらいしてみましょう。
ニューラルネットワーク では、入力された数字に、いろいろな変換(計算) をしていき、最終的な結果を出します。簡単にいってしまえば、ニューラルネットワーク がやっているのはこれだけです。
もう少しだけ詳しく説明すると、次の 3 つのステップで計算をしています。
- Step1:重みを掛け算する。
- Step2:ニューロンの値を足し算する。
- Step3:活性化関数による変換を行う。
このニューラルネットワーク の中の、数字の流れについて、細かく見ていきましょう。
▶️ 1つ目の変換
最初に、ニューラルネットワーク に入力された数字は「ニューロン」に入ります。ニューロンとは、この丸いやつのことです。ニューロンは数字を 1 つだけ持つことができる、箱のような物を想像すると良いでしょう。
そのニューロンの値は「シナプス」という線を通って、次のニューロンへ進みます。シナプスとは、数字の通り道です。
このシナプスを通る時に、値は別の数値へと変換されます。これが 1 つ目の変換です。 この変換では、シナプスに設定されている「重み」が、ニューロンの値に掛け算されます。
たとえば、1 つ目のニューロンの値が 3 だったとすると、その値に、重みの 2 が掛けられ、次のニューロンへ6が運ばれます。この重みは、シナプスごとに異なります。
▶️ 2つ目の変換
次に、2つ目の変換です。
たくさんの前ニューロンからきた数字が、1 つのニューロンに集まり、足されていきます。
この時の「足される」という処理も、数値の変換の1つと考えることができます。
言い換えれば、1 か所のニューロンに、値をまとめるようにイメージしても良いでしょう。
▶️ 3つ目の変換
さて、その数字が、また次のニューロンへと進んでいきます。
しかしこの時、ニューロンの値は、そのまま次へ進むことができません。数値はニューロンの中で、ある変換をされてから、次のニューロンへと進みます。この変換のことを 「活性化関数」 と呼びます。これが 3 つ目の変換です。
さて、以上がニューラルネットワークの中で起こっている、基本的な数値の変換です。
ここからは、メイントピックである活性化関数について、詳しく解説していきます。
で、活性化関数って?
▶️ そもそもなに
活性化関数は、足し算や掛け算のような、簡単な計算ではなく、「次のニューロンにどのような情報を出力するかを決める」という、重要な役割を持っています。
もう少し詳しく言い換えれば、活性化関数を使うことで、より複雑な計算ができるようになる、ということです。
超簡単な問題なら、活性化関数なしでも解くことができますが、活性化関数を使わなければ、難しい予測や分類をすることはできません。
たとえば、大量のデータを分類したり、音声認識によって言葉を聞き取ったりなど、解決したい問題のほとんどは、難しい問題です。
このような、世の中で起こっている難しい問題を、解決できるようにするのが、活性化関数です。
▶️ もう少し詳しく
さて、活性化関数について、もう少し詳しくみてみましょう。
先ほどの説明を難しく言うと、活性化関数は表現の自由度を上げれる、と言い換えることができます。
いきなり「表現の自由度を上げる」と言われても、よくわからない方が大半でしょう。そこでまず、イメージだけお伝えします。
イメージはこんな感じです。
ここでは、1本の線を引くことで、2つのデータをきれいに分類したいです。図に書いてある:丸には、ひとつひとつのデータが入ると思ってください。
この時、活性化関数なしでは、まっすぐな直線しか引くことができません。しかし、活性化関数を使うことで、くねくねした曲線 を引くことができます。「表現の自由度を上げる」とは、このようなイメージです。
詳しく分からなくても、活性化関数のイメージをつかんでもらえれば OK です。活性化関数を使うことで、くねくねした曲線を引いて分類できる、という点を押さえておきましょう。
さいごに
さて、次回は、実際にどのような活性化関数が使われているかを解説します。
具体的な内容を知ることで、活性化関数についての理解がさらに進むでしょう。
↓ Next... ↓
Discussion