🦁

【初心者】ネコでも分かる「活性化関数」ってなに?

2021/03/21に公開








大変ありがたいことに、多くのいいねをいただいております🙏
過去の記事も残しておきます ↓








はじめに

今回は、「活性化関数」 (かっせいかかんすう)について解説します。

人工知能や機械学習やディープラーニングの記事を見ていると、活性化関数はよく目にすると思います。

「調べてみたけど、いまいちよくわからない...」という方向けに、分かり易く解説します。分からない点があればコメントしてください。


Created by NekoAllergy

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

活性化関数は、ニューラルネットワークを作る時 に使います。(ニューラルネットワークって長くて面倒なので、NNって略して書きます。)

NNでは、入力された数字に、いろいろな変換(計算) をしていき、最終的な出力を出します。簡単にいってしまえば、NNがやっているのはこれだけです。

●具体的に何をしているの?

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

細かく、NNの中の「1つの数字の流れ」を見てみましょう。


●1つ目の変換

最初に、NNに入力された数字は「ニューロン」に入れられます。ニューロンとは、図にある水色の丸いやつのことです。

ニューロンは数字を1つだけ持つことができる、箱みたいなもんです。今回の図では、数字を黄色の丸で表しています。

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

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

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


●2つ目の変換

たくさんの前ニューロンからきた数字が、1つのニューロンに集まり、足されます。これが2つ目の変換です。

1か所のニューロンに値をまとめるイメージです。その数字が、また次のニューロンへと進んでいきます。しかしこの時、ニューロンの値はそのまま次へは進みません。


●3つ目の変換

数字は、ニューロン内である変換をされてから、次ニューロンへと進みます。この変換のことを 「活性化関数」(かっせいかかんすう)と呼びます。これが3つ目の変換です。

活性化関数とは?

活性化関数は、足し算や掛け算のような簡単な計算ではありません。活性化関数は、その値を次のニューロンに 「どのように出力するか」 を決めます。

活性化関数を使って値を変換することで、とてもいいことがあります。というか、活性化関数がなければ、NNを作ることができません。

活性化関数を使うメリットは、複雑な計算をすることができる点です。難しい言い方をすると、活性化関数を使うことで 「表現の自由度を上げる」 ことができます。逆に、活性化関数を使わなければ、難しい予測や分類をすることはできません。

たとえば、大量のデータを分類したり、音声認識によって言葉を聞き取ったりなど、解決したい問題のほとんどは難しい問題です。超簡単な問題なら、活性化関数なしでも解くことができますが、高度な計算はできません。このように、活性化関数を使う目的は、「表現の自由度を上げる」ことです。

活性化関数のイメージ

イメージはこんな感じです。2色の〇を、線を引いてきれいに分類したいです。図に書いてある〇には、ひとつひとつのデータが入ります。

この時、活性化関数なしではまっすぐな直線しか引くことができません。しかし、活性化関数を使うことでくねくねした曲線 を引くことができます。

「表現の自由度を上げる」とは、このようなイメージです。詳しく分からなくても、活性化関数のイメージをつかんでもらえればOKです。

活性化関数の種類

活性化関数にはいくつか種類があります。

使用する活性化関数を変えることで、変換の方法が変わり、最終的な結果も変わってきます。それぞれの活性化関数には役割が決まっていて、「こんな時にはこの活性化関数を使う」というのが、ある程度決まっています。

活性化関数の種類はどんどん増えていますが、だいたい5.6種類くらい知っていればOKです。今回は、代表的な活性化関数を5つ解説します。


続きの内容は本にまとめてあります。手に取って頂けるととても喜びます。

これ↓
https://zenn.dev/nekoallergy/books/904df952389317

人工知能/AI/機械学習をもっと詳しく

ねこアレルギーのAI

ねこアレルギーの AI
YouTube で機械学習について発信しています。お時間ある方は覗いていただけると喜びます。





Created by NekoAllergy

Discussion