Softmax 函数
Softmax 函数的用途很简单——用于归一化任意数列为概率。
其原理为:
- \( \forall \vec{v}, \forall v_i \in \vec{v}: v_i \in R \)
- 计算 \( \hat{v_i} = e^{v_i} \) ,则必有 \( \hat{v_i} > 0 \)
- 计算 \( \frac{\hat{v_i}}{\sum \hat{v_i}} \) ,形成一个向量 \( \vec{\hat{v}} \) 。该向量即为 softmax 之结果。
- 一般称上述的输入向量 \( \vec{v} \) 为 Logits,输出向量 \( \vec{\hat{v}} \) 为 Probabilities
这种归一化的特点是:接近最大值的次大值,在处理后的结果里仍然可以有一个较高的比例,不容易与最大值有量级上的差异。
大模型的温度就是应用在这一函数上
- 在计算 \( \vec{\hat{v_i}} \) 时候,令 \( \vec{\hat{v_i}}=e^{v_i/T} \) , \( T>0 \) 即温度。
- \( T \) 较大的时候,会给予低值更多权重,让归一化后的结果各值的分布更均匀,使得值更低的词更容易被选中。