🐻‍❄️

【活性化関数】01 活性化関数って?

2024/03/04に公開

はじめに

今回は、ニューラルネットワークの 1 つの要素である、 活性化関数について解説します。

人工知能や機械学習、ディープラーニングの記事を見ていると、活性化関数という用語はよく目にすると思います。活性化関数は、ニューラルネットワークにとって、なくてはならない存在です。

しかし、「調べてみたけど、いまいちよくわからない」という方が多いでしょう。今回は、そんな初心者に向けて、活性化関数を分かり易く丁寧に解説します。

今回の内容

  1. ニューラルネットワークの流れをおさらいします。
  2. 活性化関数の役割と、そのイメージを紹介します。

是非最後までご覧ください。

↓ 動画でも視聴できます ↓
https://www.youtube.com/watch?v=Oqu6sVWSE9U

ニューラルネットワークの流れをおさらい

はじめに、ニューラルネットワークの流れを、簡単におさらいしてみましょう。

ニューラルネットワーク では、入力された数字に、いろいろな変換(計算) をしていき、最終的な結果を出します。簡単にいってしまえば、ニューラルネットワーク がやっているのはこれだけです。

もう少しだけ詳しく説明すると、次の 3 つのステップで計算をしています。

  • Step1:重みを掛け算する。
  • Step2:ニューロンの値を足し算する。
  • Step3:活性化関数による変換を行う。

このニューラルネットワーク の中の、数字の流れについて、細かく見ていきましょう。

▶️ 1つ目の変換

最初に、ニューラルネットワーク に入力された数字は「ニューロン」に入ります。ニューロンとは、この丸いやつのことです。ニューロンは数字を 1 つだけ持つことができる、箱のような物を想像すると良いでしょう。

そのニューロンの値は「シナプス」という線を通って、次のニューロンへ進みます。シナプスとは、数字の通り道です。

このシナプスを通る時に、値は別の数値へと変換されます。これが 1 つ目の変換です。 この変換では、シナプスに設定されている「重み」が、ニューロンの値に掛け算されます。

たとえば、1 つ目のニューロンの値が 3 だったとすると、その値に、重みの 2 が掛けられ、次のニューロンへ6が運ばれます。この重みは、シナプスごとに異なります。

▶️ 2つ目の変換

次に、2つ目の変換です。

たくさんの前ニューロンからきた数字が、1 つのニューロンに集まり、足されていきます。

この時の「足される」という処理も、数値の変換の1つと考えることができます。

言い換えれば、1 か所のニューロンに、値をまとめるようにイメージしても良いでしょう。

▶️ 3つ目の変換

さて、その数字が、また次のニューロンへと進んでいきます。

しかしこの時、ニューロンの値は、そのまま次へ進むことができません。数値はニューロンの中で、ある変換をされてから、次のニューロンへと進みます。この変換のことを 「活性化関数」 と呼びます。これが 3 つ目の変換です。

さて、以上がニューラルネットワークの中で起こっている、基本的な数値の変換です。

ここからは、メイントピックである活性化関数について、詳しく解説していきます。

で、活性化関数って?

▶️ そもそもなに

活性化関数は、足し算や掛け算のような、簡単な計算ではなく、「次のニューロンにどのような情報を出力するかを決める」という、重要な役割を持っています。

もう少し詳しく言い換えれば、活性化関数を使うことで、より複雑な計算ができるようになる、ということです。

超簡単な問題なら、活性化関数なしでも解くことができますが、活性化関数を使わなければ、難しい予測や分類をすることはできません。

たとえば、大量のデータを分類したり、音声認識によって言葉を聞き取ったりなど、解決したい問題のほとんどは、難しい問題です。

このような、世の中で起こっている難しい問題を、解決できるようにするのが、活性化関数です。

▶️ もう少し詳しく

さて、活性化関数について、もう少し詳しくみてみましょう。

先ほどの説明を難しく言うと、活性化関数は表現の自由度を上げれる、と言い換えることができます。

いきなり「表現の自由度を上げる」と言われても、よくわからない方が大半でしょう。そこでまず、イメージだけお伝えします。

イメージはこんな感じです。

ここでは、1本の線を引くことで、2つのデータをきれいに分類したいです。図に書いてある:丸には、ひとつひとつのデータが入ると思ってください。

この時、活性化関数なしでは、まっすぐな直線しか引くことができません。しかし、活性化関数を使うことで、くねくねした曲線 を引くことができます。「表現の自由度を上げる」とは、このようなイメージです。

詳しく分からなくても、活性化関数のイメージをつかんでもらえれば OK です。活性化関数を使うことで、くねくねした曲線を引いて分類できる、という点を押さえておきましょう。

さいごに

さて、次回は、実際にどのような活性化関数が使われているかを解説します。

具体的な内容を知ることで、活性化関数についての理解がさらに進むでしょう。

↓ Next... ↓
https://zenn.dev/nekoallergy/articles/ml-basic-act-02

Discussion