找到最大值:
z 中找到最大值 max(z),以提升计算的数值稳定性。这是因为在计算指数时,较大的值可能导致溢出,因此需要进行归一化处理。计算指数:
给定输入向量:
z=[z1,z2,…,zn]⊤Softmax 的计算公式为:
Softmax(zi)=∑j=1nezjezi为提升数值稳定性,通常使用如下等价形式:
Softmax(zi)=∑j=1nezj−max(z)ezi−max(z)Softmax 输出为概率分布向量:
p=[p1,p2,…,pn]⊤并满足:
i=1∑npi=1z:长度为 n 的输入向量p:长度为 n 的 Softmax 概率输出向量输入:
z = [1.0, 2.0, 0.0]
输出:
p = [0.2447, 0.6652, 0.0901]
输入范围: −100≤zi≤100
输出概率范围: 0≤pi≤1
Softmax 总和: ∑i=1npi=1
向量长度要求: n≥1