在机器学习和深度学习(特别是现在主流的 Transformer 大模型架构)中,点乘(Dot Product)和 Softmax 是两个最频繁打交道的数学操作。
简单来说:点乘用来计算“相似度”或“关联度”,而 Softmax 用来把这些度量值转化为“概率分布”。
一、 点乘 (Dot Product)
点乘又叫内积。它是针对两个向量(可以理解为两条线或两组特征数据)的运算。
1. 数学是怎么算的?
假设有两个长度相同的向量 和 :
它们的点乘就是对应位置的元素相乘,然后再全部加起来,最终得到一个普通的数字(标量) :
2. 它的物理/几何意义是什么?
- 衡量方向的一致性(相似度): 在几何上,。如果两个向量的方向越接近(夹角 越小),点乘的值就越大;如果它们垂直,点乘为 0;如果方向相反,点乘为负数。
- 在大模型里的作用: 在 Attention(注意力机制)中,点乘被用来计算两个词(比如“苹果”和“手机”)之间的关联程度。点乘结果越大,说明这两个词在当前上下文中关系越紧密。
二、 Softmax
Softmax 是一种激活函数,它的输入是一个包含多个任意实数的向量(通常称为 Logits),输出是一个概率分布。
1. 数学是怎么算的?
假设输入一堆得分 ,Softmax 对其中第 个元素的计算公式为:
也就是说,它先给每个得分来个以 为底的指数次方(确保所有结果都变成正数),然后除以所有指数的总和(进行归一化)。
2. 它的核心作用是什么?
-
变成概率: 经过 Softmax 处理后,所有的输出值都在 0 到 1 之间,并且所有输出值的总和绝对等于 1。这完美符合概率的定义。
-
“强手更强”(马太效应): 因为使用了指数函数 ,它会放大原本较大的数,同时压低原本较小的数。
举个例子: 假设模型算出的三个类别的原始得分是 。
经过 Softmax 转换后,可能就变成了 。原本只是 5 比 2 大一些,现在 5 对应的概率(95%)直接把其他两个碾压了。这让分类网络在做决定时更加果断。
下面对比 Hardmax,再用一个例子来详细说明一下 Softmax。
3. 什么是 "Soft" Max?(对比 Hardmax)
假设你训练了一个 AI 图像识别模型,输入一张照片,模型对猫、狗、小鸟三个类别分别打出了原始分数(在深度学习里叫 Logits):
- 猫: 3.5 分
- 狗: 2.0 分
- 小鸟: -1.5 分
如果用 Hardmax(平时用的 max 或 argmax):
它是一个极其霸道粗暴的裁判。它只看谁的分数最高,就把谁变成 1,其余全变成 0。
- 结果变成: [猫: 1, 狗: 0, 小鸟: 0] * 缺点: 太绝对了!虽然猫的分数最高,但狗也有 2.0 分,说明模型觉得“也有可能是狗”。Hardmax 把这种可能性完全抹杀了。而且它没办法计算梯度,没办法做机器学习的背向传播(训练)。
如果用 Softmax(温柔的最大值):
它是一个温柔、理性的裁判。它承认猫的分数最高,但它会保留其他选项的微弱可能性,并把这些分数变成百分比(概率) :
- 结果可能变成: [猫: 80%, 狗: 19.9%, 小鸟: 0.1%]
- 优点: 既分出了胜负(猫胜出),又保留了概率,总和还恰好是 100%。
4. Softmax 内部是怎么运作的?(核心两步)
Softmax 它的公式看起来唬人:,但实际上它只做了两件事。
第一步:请出数学界的“夸张放大器” —— 指数函数
Softmax 拿到原始分数(3.5, 2.0, -1.5)后,第一件事不是直接算比例,而是把每个分数都变成 的多少次方。
为什么要这么费事?有两个绝妙的原因:
-
消灭负数: 概率绝对不能是负数。而无论 是多小的负数(比如小鸟的 -1.5), 算出来都是一个大于 0 的正数(约 0.22)。
-
拉开差距(强手更强): 指数函数增长极快。
- 3.5 只比 2.0 大了 1.5 倍对吧?
- 但变成了指数: ; 。
- 瞧,33.1 已经是 7.39 的 4.5 倍了!它把“第一名”的优势成倍放大了,让模型在做决定时更加自信。
第二步:归一化(切蛋糕)
现在我们得到了三个正数:
- 猫的新分数:33.1
- 狗的新分数:7.39
- 鸟的新分数:0.22
把它们全部加起来(总和):。
最后,用每个人各自的分数,除以总和。就像切蛋糕一样,算出各自占了多少比例:
- 猫的概率:
- 狗的概率:
- 鸟的概率:
瞧! [81.3%, 18.2%, 0.5%] ,这就是 Softmax 的最终输出。它们全部是正数,而且加起来正好等于 (100%)。
5. 为什么不直接用“传统比例”?
有人会问:“既然想变百分比,为什么不直接拿原始分数相加来除?”(比如直接用 )
我们来看看如果不引入 ,直接算比例会发生什么灾难:
- 负数灾难: 小鸟的分数是 -1.5。如果直接除,算出来的概率就是负概率,这在数学和现实中是无法解释的。
- 零分灾难: 如果总和恰好加起来是 0(比如分数是 [-2, 2]),分母直接变成 0,数学作废。
所以,Softmax 巧妙地用 把所有恶劣的、奇形怪状的原始分数,整整齐齐地驯化成了漂亮的概率分布。
三、 当它们相遇:大模型中的“黄金搭档”
在 ChatGPT 等大模型的核心技术——自注意力机制(Self-Attention)中,这两个概念是连起来使用的:
- 第一步(点乘): 模型让代表单词的向量相互点乘,算出它们两两之间的“亲密度”得分。
- 第二步(Softmax): 这些得分有大有小,不方便后续计算。于是把得分丢进 Softmax 里,变成权重概率(比如:当前词有 70% 的注意力该放在“苹果”上,20% 放在“公司”上,10% 放在“发布”上)。
- 第三步: 根据这个概率去融合信息。