ニューラルネットワークでは、入力値を入力層→隠れ層→出力層へと伝達するしくみであることは、前回お話しました。
前回の投稿記事はこちらです→「AIを構成するニューラルネットワークとは?」
活性化関数は、このニューラルネットワークで重要な役割を果たします。
前回の復習もしながら、ニューラルネットワークをあらためて見ていきましょう。
活性化関数とは
まずは、以下の図をご覧ください。
ニューラルネットワークは、入力層・隠れ層・出力層から構成されるネットワークですが、この各層は上図の単純パーセプトロンから構成されます。
入力(x1,x2,x3…..)は単純パーセプトロンの外部から入力される情報になります。
外部から入力される情報は単純パーセプトロン内にそのまま取り込まれるのではなく、重みづけをされて取り込みます。
この重みづけが重み(w1,w2,w3….)になります。
例えばx1=10、w1=0.5であった場合、10×0.5=5 が取り込まれる値になります。
このように全ての入力は重みと掛け合わされて取り込まれます。
上図の例では、u=0.13 と計算されました。
ここでuを変数としたときの関数「f(u)」を活性化関数といいます。
つまり、単純パーセプトロンは変数uをそのまま次に渡すのではなく、関数f(u)の出力値を渡すことになります。
前回の投稿記事では、活性化関数のことを”しきい値”という言い方で以下の説明をしました。
次のしきい値ですが、これは例えば0より大きければ、出力を1として伝達する、0以下であれば0として伝達する、というように出力が次の単純パーセプトロンに伝達されるかという判断基準になります。
単純パーセプトロンは神経細胞をモデル化したものですが、このように活性化関数により”しきい値”を設定するしくみは、ヒトの命を守るための機能として神経細胞にも存在します。
例えば、食べ物によるアレルギーなどは、いい例かと思います。
普通の人は一定のしきい値を持つため、特定の食べ物を摂取しても体に異変を来したりはしません。
ところが、何かの原因でこのしきい値が低下して、特定の食べ物を摂取したことで、神経細胞が情報を過大に伝達してしまい、過剰な反応を引き起こす状態がアレルギーといえます。
ニューラルネットワークにおける活性化関数も最終的に出力層に適切な結果をアウトプットしてもらうために必要な仕組みであるというわけです。
シグモイド関数とは
活性化関数にはいろいろなものが存在しますが、ここではその一例として、シグモイド関数を取り上げます。
シグモイド関数のグラフとその数式は上のようなものになります。
シグモイド関数は上のグラフの通り、0~1の間の値をとります。
シグモイド関数は二値分類の判定に利用されます。
例えば、陽性・陰性、採用・不採用、融資OK・融資NG、など2つのケースのうち、どちらかに振り分けるといった場合です。
体温・脈拍・心拍数などを入力値として、シグモイド関数の出力値が0.7を越えたら、陽性と判定する、という場合などに使用されます。