Softmaxレイヤー(ソフトマックス関数)
説明
入力値のSoftmax値を出力します。カテゴリ分類問題における確率など、出力値が0.0~1.0の範囲かつ、出力値の合計が1.0となる出力値を得たい場合に使用します。
ソフトマックス関数を使うと例えばある画像が犬か猫である確率を算出したい場合に、y1=犬である確率, y2 = 猫である確率とし、y1 = 0.3、y2 = 0.7 の様に表すことができます。犬である確率が30%、猫である確率が70%で合計値は100%と表せ分かり易い分類が出来ます。
↓↓↓ こちらの記事が分かり易かったのでリンクを掲載いたします。
https://qiita.com/Hatomugi/items/158b8656da5cc4cce0fe
活性化関数の位置づけ
活性化関数は単純パーセプトンによる線形近似を非線形近似に変換します。
活性化関数の用途は大きくは2つあります。
- 中間層(隠れ層)の表現範囲を広げること
- 出力層の結果を求める答えににあった形式に変換すること
詳しくは以下の記事を参照ください。
数式
oは出力、xは入力、iはデータのIndexを示す。
参考) Softmaxのグラフ
プロパティ
Axis
指定した軸に沿って正規化します。
デフォルト値 = 0
利用用途
Softmax関数は多値分類問題を解く場合に出力層で用いります。
出力サイズ
入力サイズと同様
サンプル構成
多層パーセプトロン(多値分類問題)
この例の場合は出力値(y1, y2, y3, y4, y5)の合計が1となる様にy1, y2, y3, y4, y5の結果を分類します。
誤差関数の使い分けについて
中間層
PReLuなどのReLu系の関数を使うのが一般的です。
Sigmoid関数、Tanh関数は勾配消失問題があり、層が深くなると重みの調整が巧くいかなくなります。
出力層
回帰問題の場合
- 恒等関数(=出力層に関数を挟まない)が一般的です。
- 出力値を0~1の範囲に納めたい場合はシグモイド関数も使われる。
分類問題の場合
- 二値分類問題を解く場合はSigmoid関数が使われることが多い。
- 多値分類問題を解く場合はSoftmax関数が使われることが多い。
こちらのサイトが参考になりましたので、リンクを掲載いたします。
https://thinkit.co.jp/article/14103
![]() |
【送料無料】 ソニー開発のNeural Network Console入門 増補改訂・クラウド対応版--数式なし、コーディングなしのディープラーニング / 足立悠 【本】 価格:2,592円 |