误差反向传播算法适用的神经网络范围要更大,它不仅可以用来训练多层感知机,也可以用来训练不是全连接的、不是前向的神经网络,例如循环神经网络就是具备反馈连接的,同样可以使用误差反向传播算法。
第二,多层感知机和现在大多数经典的神经网络所采用的激活函数不同,或者说,多层感知机中没有非线性激活函数的概念。为了能说清楚这一点,笔者先简单解释一下激活函数是什么。
从第 4 章我们知道了神经元的数据流动过程,简而言之就是把所有输入项先加权求和,然后放在网络输入阈值函数中进行比较判断,大于阈值则激活输出,否则就置零忽略输入信号。如果没有激活函数参与,中间的全部过程都将是线性操作,多层感知机最终的输出值只会由多个简单线性函数组合得到。所谓“线性函数”是指多元一次多项式,它在多维空间中的图像就是一个超平面。虽然线性方程是很容易求解的,但是它的表达能力有限,从数据中学习复杂函数映射所需的神经元将会更多。这个结论我们不必做严格推导,读者只需稍微想象一下就能理解:在一个二维平面中,不使用任何曲线,仅通过数量足够的直线段也是可以在任意精度要求上拟合任意图形的,只是要求的精度越高,需要的直线段数量相应就会越多。在更高维的空间上,使用超平面来拟合曲面形状也是同样的道理。
第 7 章 深度学习时代
247