很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。
摘要:这是 「AI是怎么回事」 系列的第 4 篇。我一直很好奇 AI 到底是怎么工作的,于是花了很长时间去拆这个东西——手机为什么换了发型还能认出你,ChatGPT 回答你的那三秒钟里究竟在算什么,AI 为什么能通过律师考试却会一本正经地撒谎。这
这是 「AI是怎么回事」 系列的第 4 篇。我一直很好奇 AI 到底是怎么工作的,于是花了很长时间去拆这个东西——手机为什么换了发型还能认出你,ChatGPT 回答你的那三秒钟里究竟在算什么,AI 为什么能通过律师考试却会一本正经地撒谎。这个系列就是我的探索笔记,发现了很多有意思的东西,想分享给你。觉得不错的话,欢迎分享+关注。
"神经网络"可能是 AI 领域最吓人的一个词。
听起来像科幻片——机器有了神经?在思考?
别慌。看完这篇你会发现,它就是一堆乘法和加法。真的,就这么简单。
上一篇我们聊了 2012 年 AlexNet 的震撼突破——错误率从 26% 一步跳到 15%,领先第二名超过 10 个百分点。我们提到 AlexNet 有"6000 万个参数"和"神经网络"结构。
但这两个词到底是什么意思?
6000 万个参数——是 6000 万个什么?
神经网络——是什么样的"网络"?
这一篇,我要把这个概念彻底拆开。拆到你能拿计算器跟着算。
从一个最简单的问题开始
假设你是一个气象站的工作人员。
你的任务很简单:根据今天的温度、湿度和风速,判断明天会不会下雨。
你有多年的经验。你知道:
温度高的时候,不太容易下雨
湿度大的时候,更容易下雨
风速大的时候,稍微更容易下雨
但这些"经验"很模糊。温度"高"是多高?湿度"大"到什么程度才算"容易下雨"?风速的影响有多大?
你心里其实有一套更精确的判断方式。你可能没意识到,但你做的事情本质上是这样的:
把温度、湿度、风速各自乘上一个"重要程度",加在一起,看总分高不高。
温度对下雨的影响小,你给它一个小的权重。湿度影响大,你给它一个大的权重。风速介于两者之间。
这就是一个"神经元"做的事情。
一个"神经元"就是一道算术题
让我用具体的数字来演示。
假设今天的气象数据是:
温度:30(摄氏度)
湿度:85(百分比)
风速:12(公里/小时)
一个神经元会对这些数据做四步运算。
第一步:乘以权重
每个输入都有一个对应的"权重"(weight)——就是"这个因素有多重要"。
假设经过学习,这个神经元的权重是:
温度的权重:-0.02(负数——温度越高,越不容易下雨)
湿度的权重:0.08(正数,而且比较大——湿度越高,越容易下雨)
风速的权重:0.03(正数,比湿度小——风速有影响,但没那么大)
把每个输入乘以对应的权重:
温度的贡献 = 30 × (-0.02) = -0.6
湿度的贡献 = 85 × 0.08 = 6.8
风速的贡献 = 12 × 0.03 = 0.36
第二步:全部加起来
总和 = -0.6+6.8+0.36 = 6.56
第三步:加上偏置
这里还有一个数字叫偏置(bias)。你可以把它理解为"基准线"——在所有输入都为零的时候,这个神经元的默认输出是多少。
为什么需要偏置?想象一下:如果某个地区本身就多雨(比如热带雨林),即使今天温度、湿度、风速都是"平均水平",下雨的概率也应该比沙漠地区高。偏置就是用来调整这个"底线"的。
假设偏置是 -3.0:
加上偏置 = 6.56+ (-3.0) = 3.56
到这里为止,就是一道普通的乘法加法题。
第四步:通过激活函数
最后一步,3.56 这个数字要通过一个叫"激活函数"的东西。
这是什么?为什么需要它?
别急,这个问题很重要,我要专门用一整节来讲。
为什么需要激活函数?
先说结论:如果没有激活函数,不管你叠多少层神经元,整个网络做的事情本质上都只是一次乘法加法——和一个神经元没有区别。
这句话可能听起来不太直观。让我解释一下。
假设你有两层神经元,每层只做"乘以权重再相加"的操作。
第一层:输入 x,乘以权重 a,得到 a × x
第二层:拿到 a × x,乘以权重 b,得到 b × (a × x) = (a × b) × x
看到了吗?两层下来,结果还是"输入乘以一个数字"。(a × b) 本身就是一个新的常数。你用两层做的事情,一层就能做到——只要把权重设成 a × b 就行了。
三层?同样的道理。十层?一百层?还是一样。
纯粹的乘法和加法,不管叠多少层,都只能表达"线性关系"——也就是"输入变大,输出等比例变大(或变小)"这种简单的、直线型的关系。
但现实世界不是这样的。
温度和下雨的关系不是一条直线。不是"温度每高 1 度,下雨概率就少 2%"这么简单。可能温度在 15-25 度时下雨概率最高,太冷或太热反而不容易下雨。这是一条曲线,不是一条直线。
激活函数的作用,就是在每一层的计算之后,给结果"掰弯"——把直线变成曲线。
有了这个"弯曲",多层叠加才能表达复杂的、弯弯曲曲的关系。
