1. Softmax函数
1.1 工作原理
1.1.1 归一化概率分布
Softmax函数将输入向量的每个元素转换为概率值,使输出向量的总和为1。
公式为:
例如输入向量[1, 2, 3],经过Softmax后输出概率分布,便于模型输出分类结果。
1.1.2 突出最大值
Softmax函数对输入值进行指数放大,使较大的输入值在输出中占据更高概率,突出最大值。在Transformer中,这有助于模型在多分类任务中明确选择最可能的类别。
1.1.3 数值稳定性
为避免指数计算导致的数值溢出,通常对输入向量减去最大值后再计算Softmax。
例如输入[1000, 1001, 1002],先减去1002,再计算Softmax,确保数值稳定。
1.2 应用场景
1.2.1 输出层分类
在Transformer的输出层,Softmax函数用于将模型的输出转换为概率分布,用于多分类任务。例如在语言模型中,Softmax输出下一个词的概率分布,模型根据最高概率选择词。
1.2.2 注意力机制
在自注意力机制中,Softmax函数对注意力分数进行归一化,使每个词对其他词的注意力权重总和为1。例如在计算词A对其他词的注意力时,Softmax确保这些权重合理分配。
2. Sigmoid函数
2.1 工作原理
2.1.1 二分类概率映射
Sigmoid函数将输入值映射到(0, 1)区间,
公式为:
例如输入x = 0,输出0.5;输入x = 5,输出接近1,适用于二分类任务。
2.1.2 非线性激活
Sigmoid函数是非线性激活函数,为神经网络引入非线性特性。在Transformer中,虽然较少直接使用Sigmoid,但在某些二分类任务中可用于激活隐藏层单元。
2.1.3 梯度特性
Sigmoid函数在输入值接近0时梯度较大,但当输入值远离0时梯度接近0,可能导致梯度消失问题。在Transformer的训练中,这可能影响模型的收敛速度。
2.2 应用场景
2.2.1 二分类任务
在Transformer处理二分类任务时,Sigmoid函数可用于输出层,将模型输出映射为二分类概率。例如判断文本是否为正面情感,Sigmoid输出接近1表示正面。
2.2.2 特征选择
在某些情况下,Sigmoid函数可用于特征选择,通过将特征权重映射到(0, 1)区间,决定特征的重要性。例如在文本分类中,Sigmoid可用于筛选关键特征词。
3. 区别与联系
3.1 区别
3.1.1 输出形式
Softmax输出概率分布,总和为1,适用于多分类任务;Sigmoid输出单个概率值,适用于二分类任务。
3.1.2 应用场景
Softmax用于Transformer的多分类输出和注意力机制;Sigmoid主要用于二分类任务和某些特征选择场景。
3.1.3 数值特性
Softmax通过归一化避免数值溢出;Sigmoid在输入值远离0时梯度消失,可能导致训练问题。
3.2 联系
3.2.1 都是激活函数
Softmax和Sigmoid都是激活函数,用于将输入值映射到特定范围,为模型引入非线性特性。
3.2.2 概率解释
两者输出都可解释为概率,Softmax输出多分类概率,Sigmoid输出二分类概率,都用于模型决策。
3.2.3 可相互转换
在某些情况下,Softmax可以看作是多个Sigmoid的组合,用于处理多分类问题。