pythonを使用してsoftmax関数を計算する
1507 ワード
softmax関数は確率計算における確率結果が絶対的に優位を占める問題を解決するために用いられる.例えば、関数計算結果には2つの値aとbがあり、a>bであれば、サイズで値をとると、aは永遠に選択され、bは永遠に選択されない.しかし実際には,小確率イベントも選択されることがあるが,可能性は比較的小さいだけであり,softmax関数はこの問題を解決した.
import numpy as np
import math
# softmax
def softmax(inmatrix):
m, n = np.shape(inmatrix)
outmatrix = np.mat(np.zeros((m, n)))
soft_sum = 0
for idx in range(n):
outmatrix[0, idx] = math.exp(inmatrix[0, idx])
soft_sum += outmatrix[0, idx]
for idx in range(n):
outmatrix[0, idx] = outmatrix[0, idx] / soft_sum
return outmatrix
a = np.array([[1, 2, 1, 2, 1, 1, 3]])
softmax(a)