点积与加权求和
线性模型用特征与权重的点积加偏置计算分数。
学习前需要掌握
背景与问题
许多模型先把若干输入压缩成一个分数。为了让不同特征发挥不同作用,不能只把它们相加,而要先分别乘上权重。
点积把这项操作写成一个简洁表达,也是批量矩阵乘法、线性回归和人工神经元之间的共同计算基础。
概念定义
两个同维向量的点积,是对应分量乘积之和。模型中的加权和通常再加一个偏置,得到线性分数;分数本身未必是概率或最终类别。
只有在权重非负且总和为 1 等条件下,加权和才可被解释成常见的加权平均。一般模型的权重可以为负,也不要求和为 1。
直观理解
权重像每项输入的放大或反向作用系数。输入增大时,正权重推高分数、负权重降低分数;偏置则对所有样本加入同一个基准项。
加权平均是一种特殊点积
构造两项成绩 80、90,权重为 0.3、0.7,加权平均为 0.3×80+0.7×90=87。第二条成绩 90、80 使用同样权重,结果为 83。
若改成权重 [2,-1],第一条的线性分数为 70,仍是合法点积,但已不是两个成绩之间的加权平均。这能帮助区分一般线性模型与“权重必须归一化”的特定解释。
核心原理
输入与权重必须按照同一特征顺序对齐。仅仅长度相等不够:把“年龄、收入”对应到“收入权重、年龄权重”,运算会正常结束,却计算了错误函数。
权重的数值与特征单位有关。将收入从元改为千元后,相同预测贡献需要不同权重,因此不能未经尺度说明就比较权重大小来判断重要性。
批量计算 Xw 对每一行执行同一组权重组合。偏置可以广播到每条样本,但要检查最终输出形状,避免把一维与列向量相减变成错误的方阵。
线性分数还需要任务相关解释。回归可以直接使用实数输出,二分类常再经过 Sigmoid 等映射;不能把点积等同于已经校准的概率。
数学表达
核心表达
输入维度必须与权重一致;批量矩阵 Xw 会同时计算所有样本。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1确认 x/w 同维
- 2逐项相乘
- 3求和
- 4加偏置
代码对应位置
示例 1同一组权重同时计算两条样本:用固定成绩与权重复现 87 和 83,并核对批量计算。
计算与实现步骤
- 确认 x/w 同维
- 逐项相乘
- 求和
- 加偏置
- 批量化为矩阵乘法
代码实现
示例 1
同一组权重同时计算两条样本
example_01.py用途:用固定成绩与权重复现 87 和 83,并核对批量计算。
import numpy as np
X = np.array([[80.0, 90.0], [90.0, 80.0]])
w = np.array([0.3, 0.7])
scores = X @ w
print("scores:", scores.round(4).tolist())代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
用固定成绩与权重复现 87 和 83,并核对批量计算。
X- 完整特征矩阵,每行一个样本、每列一个特征。
w- 模型权重或当前待优化参数。
scores- 交叉验证各折的评价分数。
Step 1 · 1–5 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
import numpy as np
X = np.array([[80.0, 90.0], [90.0, 80.0]])
w = np.array([0.3, 0.7])
scores = X @ w
print("scores:", scores.round(4).tolist())预期输出或运行结果
scores: [87.0, 83.0]
常见错误 · 2 条
- 维度不匹配
- 未标准化时直接比较权重大小
实际应用
- 线性模型
- 神经元
常见错误
- 维度不匹配
- 未标准化时直接比较权重大小
推荐学习资料
参考库不会生成虚假资源或无效外部链接。