ディープラーニング

【python】1日30分のディープラーニング -15日目- ~ソフトマックス関数~

ソフトマックス関数とは

$$ y= \frac{ e^{x_k} }{ \displaystyle \sum_{ i = 1 }^{ n }e^{x_i} } $$

ソフトマックス関数の出力は0~1の実数値に落とし込むことができます。出力の結果を0~1の範囲に実数値として落とし込めるので、確率的な表現ができることが可能になります。

例えば男性、女性を判別する際に出力結果が男性が3.0、女性が2.0の場合総和が5.0になります。
ソフトマックス関数はこの総和が必ず1になるように調整するための関数です。男性が0.7、女性が0.3のように
総和が1.0となり、単純な確率で表現することが可能となります。

import numpy as np


def softmax(x):
    return np.exp(x) / np.sum(np.exp(x))

y = softmax(np.array([3,2]))
print(y)

#output [0.73105858 0.26894142]   合計値が1になる