怎么工作 神经元 怎么学习
假设好几个开关连着同一个灯泡。有的开关对灯泡影响大,有的影响小。把所有影响加起来,够大,灯泡就亮;不够,就一直灭着。人工神经元正是这样工作的:给每个输入乘上一个强度,加起来,总和达到某个标准就点亮。
给输入乘上权重再相加
上一课,我们看了怎样一点点拧旋钮来减小损失。现在该看看这些旋钮装在哪儿了。人工神经元是一个小小的计算单元,接收好几个输入,算出一个值,它的想法借自大脑的神经细胞。
神经元不是把输入直接相加,而是先给每个输入定一个强度,乘上这个强度再相加。这个强度叫权重。重要的输入给大权重,不太重要的输入给小权重。
点输入,把它们开开关关。只有开着的输入会乘上权重,加进总和。
每打开一个输入,总和就增加这个输入的权重那么多。权重大的输入让总和变化大,权重小的只变一点点。总和看的不是输入本身,而是输入和权重合在一起的结果。
不过,给输入乘上某个数再相加,这个样子是不是有点眼熟?
权重就是回归的斜率
回想一下线性回归里把直线写成 ax+b:给输入 x 乘上斜率 a,再加上 b。斜率越大,同样的输入,结果变化就越大。
神经元的权重正是这个斜率。给输入乘上权重,就跟乘上斜率一样,所以权重调大,这个输入对结果的影响就更强,调小就更弱。神经元里也有对应回归里 b 的值,叫偏置。
把权重调大或调小。它像斜率一样乘在输入上,输出跟着变化。
权重一动,输出就跟着变。改变斜率,直线会倾斜;改变权重,神经元的反应就会变。所以,要让神经元答得准,关键归根到底在于把权重定好。
那么,算出总和之后,神经元做什么?它不是把总和直接送出去,而是再做一个决定。
越过门槛就点亮
神经元算出总和后,会拿它和一个基准值比较,这个基准值叫门槛,也叫阈值。总和达到或超过门槛,神经元就点亮,这时给出的答案是 1;总和不到门槛,神经元就一直灭着,答案是 0。
灯泡要够亮才会亮起来,神经元也要总和够大才会点亮。和门槛比较这件事,也可以换个写法:给总和加上偏置,看结果是不是负数。
把总和调高调低。达到门槛,神经元就点亮(1);不到,就灭着(0)。
总和碰到门槛的那一刻,神经元啪地亮了。答案只有两种:亮或灭。神经元就这样接收输入,决定是亮还是灭。
可它一开始并不能答准。权重定得马虎,该亮的时候灭着,该灭的时候亮着,这就是错了。错了以后,神经元怎样变好?
错了就把权重改一点
回想一下前面学的梯度下降:看错得多少,定好方向,一点点往下走。神经元也用同样的想法学习:该亮却灭了,就把权重调大一点,让总和变大;该灭却亮了,就把权重调小一点。
不一下子大改,只一步一步地挪。这样重复很多次,就会越来越准。像这样用一个只会亮和灭的神经元来学习的装置,叫感知机。
看着错的答案,点调整一点。权重一步步朝正确答案变大,最后答对了。
越改,错得越少。只要方向对,哪怕一步一步,最后也会接近正确答案。不是由人一个个定好权重,而是神经元看着自己的错误,自己把权重打磨好。
不过,真正的神经网络不会像亮和灭那样一下子跳变,而是用平滑变化的函数。一下子跳变的话,坡度几乎处处都是平的,梯度下降就很难找到修改的方向。这样的函数叫激活函数。
小结
归纳起来是这样:神经元给每个输入乘上权重再相加。这和回归里的 ax+b 是同一个样子,斜率 a 就是权重。加起来的总和达到门槛就点亮(1),不到就灭着(0)。
错了,就像梯度下降那样把权重一点点改,这样重复下去,就越来越准。乘了再加,按门槛点亮,错了就改,这就是神经元。
依次点要点回顾一下。(输入×权重之和 → 权重就是斜率 → 越过门槛就点亮 → 错了就调整)
现在你认识了一个模仿大脑神经细胞的小小计算单元。乘了再加、亮了又灭、错了就改,这个简单的单元就是学习的起点。
不过,单个神经元只能把边界画成直线。所以要把神经元一层层连起来,让它们学会复杂得多的东西。下一课讲神经网络时会来看看它的样子。