昨日は基本的なニューラルネットワークの構成について説明した。
今日は昨日説明しなかった活性化関数について説明する。
活性化関数
活性化関数はニューラルネットワークを非線形にするための関数。
一般的には単調増加する非線形な関数で、微分可能なもの(もしくは似た関数)が使われる。
昔よく使われていたのは、シグモイド関数と総称される関数。
ロジスティック関数や双曲線正接関数がある。
また、最近は正規化線形関数やシグモイド関数を近似した関数が使われたりもする。
ロジスティック関数
ロジスティック関数は、次のような関数:
定義域は、値域はになる。
見た目は以下のとおり:
双曲線正接関数
双曲線正接関数は、次のような関数:
定義域は、値域はになる。
見た目は以下のとおり:
正規化線形関数
正規化線形関数は、次のような関数:
定義域は、値域はになる。
見た目は以下のとおり:
シグモイド関数を近似した関数
シグモイド関数を区分的に直線で近似した、次のような関数を使うこともある:
定義域は、値域は]になる。
見た目は以下のとおり:
どの活性化関数を使うのか
どの活性化関数を使うのかは、出力としてどの範囲の値を得たいのかによる。
なお、シグモイド関数は値域に上限と下限があるので、下手すると値がすぐに上限/下限に偏ってしまって、学習がうまくいかなくなってしまうことがある。
なので、そういった場合には正規化線形関数を使うといい。
また、シグモイド関数を区分的に直線で近似した関数も、出力に上限と下限を与えることが出来て、かつ、計算が軽いので、使い勝手がいい。
今日はここまで!
- 作者: 岡谷貴之
- 出版社/メーカー: 講談社
- 発売日: 2015/04/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (13件) を見る