softmax関数の動作確認#
import numpy as np
def softmax(x):
"""
ソフトマックス関数:
すべての実数 x_i に対して exp(x_i) を計算し、その合計で割って確率分布に変換する。
"""
exp_x = np.exp(x)
return exp_x / np.sum(exp_x)
# 任意の実数列を定義 (負の値、正の値、0を含む)
values = np.array([-5, -3, 0, 1, 10])
# ソフトマックス関数の適用
probs = softmax(values)
# 出力確認
print("元の実数列:", values)
print("ソフトマックス適用後:", probs)
print("確率の総和:", np.sum(probs))
元の実数列: [-5 -3 0 1 10]
ソフトマックス適用後: [3.05849905e-07 2.25994211e-06 4.53921506e-05 1.23388658e-04
9.99828653e-01]
確率の総和: 1.0