2010 年,有人发现用 ReLU 函数代替 Sigmoid 函数能显著缓解梯度下降优化过程中遇到的梯度消失问题。ReLU 函数是一个非常简单的分段函数,它的解析式是y $\left\{ \begin{array} { l l } { 0 } & { x < 0 } \\ { x } & { x \geqslant 0 } \end{array} \right.$ ,函数图像如图 7-23 所示。
ReLU 函数虽然看起来非常简单,却是近几年在激活函数这方面取得的最大进步之一。相比 Sigmoid 函数,ReLU 函数具备了诸多优秀的特性,如由于函数简单,不需要进行幂运算,所以计算速度非常快,训练时收敛速度远远快于 Sigmoid 函数,也超过了其他常见的激活函数,如 Tanh 等。在解决梯度消失这个问题时,很明显 ReLU 函数的导数要么是 0 要么是 1,这样至少在正数区间上,就不会因为连乘效应导致梯度逐层减小了。
面对深度神经网络遇到的问题,解决得最彻底的,大概是辛顿给出的“解决方案”了。为什么要加上双引号呢?因为这个方案是推倒重来!辛顿是误差反向传播算法的提出人之一,是神经网络和深度学习的“教父”。然而,现在他又戏剧性地成为误差反向传播算法和经典神经网络结构的强大“反对者”。最近,辛顿居然在他的推特上置顶号召大家应该“摒弃误差反向传播算法,另起炉灶,重新开始”,一时间令业界惊诧,关于这件事情网上曾出现了一些大肆渲染“辛顿叛变”的文章,吸引了不少媒体进行炒作。
280
第三部分 第三波高潮