当你刚刚创建自己的神经网络时,神经元之间连接的强度是随机的。换句话说,每个连接传导的兴奋值也是随机的,就像人脑中的突触还没有完全成形。反向传播的目标是通过改变这些数值让神经网络发挥作用:当你将一张热狗图片传导至底层时,顶层的“热狗”就能产生兴奋。

深度学习已进入瓶颈期,模拟人类神经结构将是突破口?

假设你用来训练神经网络的第一张图片是钢琴照片。你将这张 100x100 的图片的像素强度转换为一万个数字,每个数字代表神经网络底层的单个神经元。兴奋根据相邻层神经元之间的连接强度在网络中传播,最终到达最后一层,上面仅有两个神经元,分别代表图片中是否有热狗。

由于那张图片上是一架钢琴,理想条件下,“热狗”神经元上的数字应该是 0,而“不是热狗”神经元上应该是一个大于 0 的数字。但如果事实并非如此呢?如果神经网络的判断是错的呢?反向传播是对神经网络中每一个连接强度的重置过程,从而修正网络在特定训练数据中的错误。

反向传播是如何修正神经网络的错误的?第一步是分析最后两个神经元的错误程度:预设兴奋值和应有兴奋值之间相差多少?第二步是分析导向倒数第二层神经元中每个连接对该误差的作用。重复这些步骤,直至网络最底层的神经元连接。此时,你会知道每个连接对误差的作用大小。最后,通过改变每一个数字,将整体误差降至最低。这一方法被称为“反向传播”,因为误差是从网络的输出层逆向(或向下)传播的。

神奇的是,用数百万或数十亿张图片来进行训练时,神经网络会逐渐提升其识别热狗的准确度。更厉害的是,这些图像识别网络的每一层都逐渐学会用类似人类视觉系统的方式“看”图片。例如,第一层会探测“边”,这层中的神经元看到“边”的时候会产生兴奋作用,而在其他地方不会;它上面的第二层神经元能探测到边的组合,比如角;第三层能识别形状;第四层能找到分辨类似于“切开的面包(可以用于热狗)”或“没切开的面包(一般不用于热狗)”这样的东西,因为上面的神经元可以对任意一种情况发生反应。