画像AIを身につけよう③ 活性化関数編

title pooling AI

活性化

活性とは

化学的に活発な性質をもっていること

ではないと思いますが、、、

DeepLearningの場合なぜ活性化かというのかは

よくわからないです。。。

数字が活発化しているのかなぁ?

とりあえず、どんな計算かどういう役割か見ていきましょう。

スポンサーリンク

活性化関数の使う場所

活性化関数を使う場所は2つあります。「中間層」「出力層」です

使う場所で役割が違います。

中間層の活性化関数

これは画像AIを身につけよう②の続きになります。

立方体から立方体へと形を変えていく中、畳込み処理の後に入れます。

出力層の活性化関数

出力層とは、AI構造の一番最後の予測結果を吐き出してくれるところです。

出力層の活性化関数は、AIに何をさせたいかによります。

例えば、AIに価格などの予想をしたい場合は、特にありません。

AIに犬猫の分類をさせたい場合は、活性化関数(Sigmoid,Softmax)を入れることで、分類結果を確率、確からしさという数字で受け取ることができます。

活性化関数について

前回の画像AIを身につけよう②で、ある1画素の畳込みの計算を説明しました。

そのあとに、活性化関数と呼ばれる非線形の関数に入れて、値を変換します。

絶対、非線形である必要があります。理由も証明されていたはずなので、興味があれば、調べていただき、ここではそんなものだということにします。

種類

種類はいくつかありますが、下記3つが特によく使うものになります。

「Relu」「Sigmoid」「Softmax」

Relu

中間層の活性化関数はとりあえず、これです。

  • 0以下は0
  • 0以上は、そのままの値

シンプルですが、頭がいい人色々考え、たどり着いた関数。

Pythonコード

Sigmoid

良品/不良品、スパムメール/普通のメールなど二項分類と呼ばれる、2つに分類するのに使います。多項分類でも使えます。

DeepLearningでは、画像に分類したいものが複数(犬、猫、人)写っている場合にも、使います。

  • 0以上は0.5から1
  • 0以下は0.5から0

例えば、Sigmoidを通して得られた結果が、0.7であれば、スパムメールだなというような感じです。式も書いてありますが、特に覚えなくても良いです。

Softmax

0-9の数字判別のように、分類するものが複数あるときに、どの確率が高いかを示します。

例えば、下記だと、数字の4を判別させた結果、Softmaxから出てきた数字が、下記のようになってた場合、一番確率の高い「4」と判断したことになります。

Softmaxは必ず合計が1になるようになっています。下記の場合は100をかけているので、合計が100になっています。同様に、式も書いてありますが覚える必要はありません。

役割

中間層での活性化関数は、複雑な問題をAIに解いてもらうときに、何層も何層も活性化関数(非線形)が入ることによって、解けるようになります。

出力層では、最終的に分類したい項目がどれくらいの確率か出力してくれます。

最後に

畳込みも、活性化関数もDeepLearningにおいては、とても重要な役割を持っていますが、AIを作るときには、式とかは意識しません。

ただただ、畳込み>活性化関数>畳込み>活性化関数>プーリングみたいに組み合わせるイメージです。

次は、プーリングの説明をします。

スポンサーリンク

タイトルとURLをコピーしました