活性化関数ってなに?深層学習の重要単語を分かりやすく解説

活性化関数ってなに?深層学習の重要単語を分かりやすく解説

どーもアイーンです。

春一番の吹き荒れた後ですが、朝から雪が降りまくりです。

出かける用事があるタイミングでこれではなかなかやる気が起こりませんね。

このブログもお布団の中からお送りしております。ガチです。

私のやる気メーターは2進数みたいなもんで0か1かしかありません。

 

 

やる気といえば、ディープラーニングにもやる気みたいなものがあるんです。

その名を活性化関数といいまして、関数という以上数学です。

このブログは「やる気のある小卒なら、ちょっと頑張れば理解できるレベルで書く」ことをモットーとしているため

やる気の起こらないそこの貴方にも、出来る限り分かりやすくお伝えしたいと思います。

 

活性化関数とはいったい何者か。

活性化関数は、入力信号の総和を出力信号に変換する関数である。 「活性化」という名前が意味するように、活性化関数は入力信号の総和がどのように活性化するか(どのように発火するか)を決定する役割がある。 … これを用いることにより、ニューロンの出力を連続的な実数値の信号として表すことができる。

Deguchi Lab.より~

 

ハイいみふ。

とあきらめずに、もう少し読んでみてください。

入力信号の総和とは、

「入力値 x」に「重み w」をかけたもの

「バイアス」

を足して

「結果 y」

を、いい感じ変換して次のニューロンに出力してくれるものです。

 

活性化関数を例えてみよう

例えばこのニューロンが緑に反応するニューロンである場合

緑に見えればニューロンは興奮して、次のニューロンに「緑だ!」と信号を送ります。

 

この青60%と黄色40%を足した色

これってほとんど緑ですよね?

黄緑くらいの色では興奮しません。

黄緑では0(興奮しない)、緑だと1(興奮する)で表すことができます。

この大体緑色というあいまいな結果を「緑って言ってもいいよ」と認識する

 

0.8くらいの結果を1に変換する。

 

これが活性化関数です。

(ちなみに、バイアスのイメージはちょっと例えきれませんでした。ご注意ください。)

 

すべてのニューロンに活性化関数があるわけではありません。

使いどころが肝心だということです。

 

また、活性化関数には閾値(しきいち)というものがあります。

 

閾値とは

閾値とは、結果が一定の数値を超えていれば○○するという処理に使われる判断ルールです。

 

緑ニューロンのたとえで言えば

0が閾値とすると

0.01(めちゃめちゃ薄っすら緑が入った色)の時は1に変換

ー0.5(緑どころか赤っぽい色)が入力されれば0に変換

プログラミング的に言うと

$$x > 0$$

が閾値ということですね。

 

でもこれでは、ほんの少しの緑の入った別の色も「緑だ!」ということになります。

そう、活性化関数には種類があるんです。

ちなみに今回説明した活性化関数は、ステップ関数というものになります。

 

次回は活性化関数の種類について解説したいと思います。

 

 

これで貴方は「活性化関数初心者」です。

お隣さんに「活性化関数初心者の○○です。」と名乗ってみてください。

お隣さんからの憐れみが活性化されます。

 

先日、OpenAIgymというサイトを使った強化学習にチャレンジしてみました。

FrozenLake問題という一種のゲームを解かせて遊びましたが

教えてもらってプログラミングしたので、一人で解けるか不安ですね。

問題は多数あるので、いずれここでも自分の作った解法を解説したいと思います。

 

ではまた。