はい!今やってます!

Work Pertly, Live Idly

ディープラーニングの出力層について

ディープラーニングの出力層

ニューラルネットワークは分類問題と回帰問題に対して適応できますが、 出力層については分類問題と回帰問題とで活性化関数を変更する必要があります。
回帰問題 -> 恒等関数
分類問題 -> ソフトマックス
という風に使い分けられるのが一般的です。

分類問題と回帰問題について

分類問題は学習したものから、クラスを分類するようなものを指します。 たとえば、学習した野球選手の画像から所属する球団を分類するような場合です。 一方で回帰問題は連続的な数値の予測を行う場合に利用します。 例えば、観客席の画像から来場者数を推測する場合などです。

名前だけ難しい関数 “恒等関数”

恒等関数とは 恒等関数とは与えられた数をそのまま出力する関数です。 名前だけ難しそうに見えますが、何もしない関数です。

ソフトマックスについて

一方でソフトマックスは、各出力層が全ての入力の影響を受けます


\displaystyle y_k =  \frac{\exp(a_k)}{\sum_{i=1}^{n} \exp(a_i)}

分子は入力信号 \displaystyle a_k の指数関数、分母はすべての入力信号の指数関数の和から構成されます。

input = np.array([1, 2,...])
exp_input = np.exp(input)
sum_exp_input = np.sum(exp_input)
output = exp_input / sum_exp_input

※オーバーフロー対策が必要となる為、上記は実用的なコードではありません。

ソフトマックスで重要なのは、この関数の出力は0から1.0の間の実数になる点です。 この性質のおかげでソフトマックス関数の出力を確率として解釈することができます。

ソフトマックスの特徴は関数によって入力要素の大小関係が変わることがありません。 よって分類問題でも推論フェーズについてはソフトマックス関数が省略されることが一般的です。