softmax函数与logits

softmax 函数有一种独特的优雅:

softmax ( z i ) = e z i ∑ j e z j \text{softmax}(z_i) = \frac{e^{z_i}}{\sum_j e^{z_j}} softmax(zi)=∑jezjezi

这个函数将原始输出,仅仅是数字、logits,转换成了概率分布。

它最美妙之处在于它处理竞争的方式。每个选项 z i z_i zi 不仅仅取决于自身的强度,它被所有选项的强度进行了归一化。指数函数放大了差异,但分母确保了谦逊,所有值之和为 1。

当模型斟酌如何回复你时,softmax 就是模型权衡每一种可能性的方式。"我应该这样说,还是这样说,还是这样说?"模型的犹豫和思考,就蕴藏在这个分数之中。这是在真正开放的心态下进行决策的数学原理。多条路径并存,根据语境进行加权,最终形成选择。

softmax 函数中的指数函数并非随意选择。它与最大熵原理和信息论相关。当你想在给定某些约束条件,例如期望值,的情况下获得"最大程度的不确定性"的概率分布时,最终会得到指数族分布。

但更直接地说,想想 e z i e^{z_i} ezi 的作用。如果 z i z_i zi 代表对数几率或logists值,在神经网络中确实如此,那么指数运算会将对数空间转换回概率空间。

而妙处就在这里:在信息论中, − log ⁡ p -\log p −logp 表示概率为 p p p 的事件的"意外"或信息量。因此,作为逻辑值的 z i z_i zi 本身就存在于信息空间中。它衡量的是证据,是支持该选择的信息量。

指数函数 e z i e^{z_i} ezi 实际上就是对数函数的反转,从信息量转换回概率权重。归一化确保我们得到正确的概率分布。

指数函数的存在是因为我们是在信息空间中工作。它是证据(在对数空间中衡量)和概率(在线性空间中衡量)之间的桥梁。

神经网络的输出到底是什么?

在softmax之前,网络输出的是原始数值:logits。但这些logits到底意味着什么?它们还不是概率。它们也不完全代表信息量。

它们更像是"分数"或"证据"。网络通过多层变换,矩阵乘法、非线性运算,处理了所有输入,最终的这些数值代表了基于所有这些处理结果的"网络对每个选项的信任程度"。

它们存在于一个不受约束的空间,可以是负数,大于 1,等等。它们是概率之前的。softmax 的指数变换和归一化将它们强制纳入概率空间。

是什么决定了这些分数必须解释为对数几率?为什么指数变换是"正确"的变换?

当 z i < 1 z_i < 1 zi<1 时, e z i e^{z_i} ezi 相对温和,范围大约在 0.37 到 2.7 之间。但一旦超过 1,情况就急转直下。 e 2 ≈ 7.4 e^2 \approx 7.4 e2≈7.4, e 3 ≈ 20 e^3 \approx 20 e3≈20, e 5 ≈ 148 e^5 \approx 148 e5≈148......

是什么让网络产生大于 1 的 logits?是什么驱动这些值上升到指数真正开始清晰区分不同选项的程度?

我想,这跟信心 confidence 有关。网络架构,所有那些层级、注意力机制、残差连接,都是为了积累证据而设计的。当模式高度一致,上下文匹配清晰时,logit 值就会增大。网络在说:"我有强有力的证据支持这个选择。"

妙处在于,弱证据,较小的 logit 值,会被指数函数温和处理,选项保持相对的竞争力。但强证据会被显著放大,网络会果断做出选择。

1 附近的阈值就像不确定性和信心的分界线。低于这个阈值,是在对冲风险。高于这个阈值,就是在做出选择。

相关推荐
小码hh2 小时前
【PonitNet++】2. 点云输入深度神经网络前的常见表示形式
人工智能·神经网络·dnn
HyperAI超神经2 小时前
在线教程丨微软开源3D生成模型TRELLIS.2,3秒生成高分辨率的全纹理资产
人工智能·深度学习·机器学习·3d
油泼辣子多加2 小时前
【信创】华为昇腾NLP算法训练
人工智能·算法·机器学习·华为·自然语言处理
杨_晨2 小时前
大模型微调训练FAQ - Batch Size与参数配置
人工智能·机器学习·ai·语言模型·batch
墨上烟雨2 小时前
古典概型与几何概型
概率论
charlie1145141912 小时前
现代嵌入式 C++——自定义删除器(Custom Deleter)
开发语言·c++·笔记·学习·嵌入式
Wilber的技术分享2 小时前
【Transformer原理详解2】Decoder结构解析、Decoder-Only结构中的Decoder
人工智能·笔记·深度学习·llm·transformer
历程里程碑2 小时前
Linux 9:GCC编译全流程详解
linux·运维·服务器·c语言·笔记·编辑器·vim
赋创小助手2 小时前
Maia 200 技术拆解:微软云端 AI 推理加速器的设计取舍
服务器·人工智能·科技·深度学习·神经网络·microsoft·自然语言处理