ソフトマックス関数について
今回はソフトマックス関数について解説します。
ソフトマックス関数とは
で表される関数です。
難しそうに見えますが、実は簡単な割合計算です。
理解するための例として、
ソフトマックス関数はこの数値を、
・
のようになります。
結果として、それぞれの値の割合を出力することができます。
なぜ
e の累乗を使用する理由
・非線形性
ソフトマックス関数は非線形関数であり、モデルの表現力を向上させることができます。(重要)
・強調効果
指数関数
これにより、ソフトマックス関数は、入力の最大値
・微分可能
ソフトマックス関数は微分可能であり、これにより誤差逆伝搬法というパラメータ最適化手法を利用することができます。
・ゼロ除算の排除
仮に
重要な特性
ソフトマックス関数には重要な特性があります。
・出力の合計が常に1になる(規格化)
というものです。割合計算なので当然なのですが、この特性によって、それぞれの出力値を、多クラス分類問題の確率としてそのまま利用することができるようになっています。
※入力画像に対するクラスが(犬、猫、ゴリラ)で、出力(0.1,0.2,0.7)の場合、7割の確率でゴリラである、とそのまま予測できます
ソフトマックス関数は、この特性や微分可能性から、多クラス分類の出力層としてよく利用されています。
今回はここまでです。読んでいただきありがとうございました!
おまけ:実装上の注意
自分でソフトマックス関数を実装する場合、計算のオーバーフローに注意する必要があります。
例えば
そのため実装する際は分母分子にCをかけて、
として、C'は分数の等価性よりどんな値でも良いので、
例えばこれに
注意して実装しましょう。
Discussion