乘法与点积

举报
黄生 发表于 2026/10/13 11:21:29 2026/10/13
【摘要】 “乘法”和“点积”不是同一层面的概念,它们描述的是不同维度的事情。在公式 w*x + b 里,w 和 x 通常不是两个单独的数,而是两个向量:w = [w₁, w₂, ..., wₙ]x = [x₁, x₂, ..., xₙ]这时候 w*x 的实际计算是:w₁*x₁ + w₂*x₂ + ... + wₙ*xₙ也就是:对应位置相乘,然后全部加起来,得到一个标量。数学上就叫点积(dot prod...

“乘法”和“点积”不是同一层面的概念,它们描述的是不同维度的事情。在公式 w*x + b 里,w 和 x 通常不是两个单独的数,而是两个向量:

  • w = [w₁, w₂, ..., wₙ]
  • x = [x₁, x₂, ..., xₙ]

这时候 w*x 的实际计算是:

w₁*x₁ + w₂*x₂ + ... + wₙ*xₙ

也就是:对应位置相乘,然后全部加起来,得到一个标量。数学上就叫点积(dot product),也叫内积。

那为什么有人叫它“乘法”?因为当 w 和 x 都是单个数字(标量)时,w*x 确实就是普通乘法。但在机器学习/神经网络里,w 和 x 几乎总是向量,所以说“乘法”的人,只是在口语化地指“这里有个乘号”。

容易混淆的是,向量之间还有另一种“乘法”叫逐元素乘法(element-wise product):

[w₁*x₁, w₂*x₂, ..., wₙ*xₙ]

它得到的是一个向量,不是标量。

运算 写法 结果
逐元素乘法 w ⊙ x 向量
点积 w · x 或 wᵀx 标量

在 w*x + b 这种线性模型里,w*x 必须是点积,因为:

  • b 是一个标量;
  • 只有 w*x 也是标量,才能相加;
  • 最终输出 y 是一个标量。

如果你是在看代码,比如 Python 里的 w * x,那还要小心:NumPy 里 * 默认是逐元素乘法,点积要写 np.dot(w, x) 或 w @ x。

附:

“点积”这个名字,直接来自它的书写符号。在数学里,两个向量的点积写成:

w · x

中间那个小圆点 ·,英文叫 dot。所以这种用点号表示的乘积,就叫 dot product,直译过来就是“点积”。

“内积”这个名字,来自它更抽象的数学定义,关键词是“内”。

点积的本质是:把两个向量“对应位置相乘再求和”,得到一个标量。这个结果落在哪儿?落在原来的向量空间“里面”,而不是产生一个新向量跑到空间外面去。

对比一下:

运算 输入 输出 名字来源
点积/内积 两个向量 一个标量 结果在空间“内”
叉积 两个向量 一个新向量 结果“叉”出去,垂直向外
外积 两个向量 一个矩阵 结果在空间“外”

所以:

  • 内积:结果是标量,可以理解为“向内收缩”成一个数;
  • 外积:结果维度变高(向量→矩阵),是“向外扩张”。

“内”和“外”是一对相对的概念,描述的是运算结果的维度和归属。

在欧几里得空间里,两者指的是同一个东西。但在更一般的数学里(比如函数空间),内积可以定义得更广,而“点积”通常专指向量那种对应相乘再求和的运算。两者在初等线性代数里是一回事,只是命名的角度不同:一个看符号,一个看结构。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。