用形式化的语言来说,所谓非线性,就是一阶导数不为常数。那我们不妨对ReLU求下导。 ReLu的定义是max(0, x),因此,ReLU的导数为: (图片来源:towardsdatascience.com) 显然,ReLU的导数不是常数,所以ReLU是非线性的。 从图形的角度来看可能更直观一点。 ReLU的图像为: (图片来源:MohamedEzz datascience.stackexchange.com,许可:cc by-sa 3.0 with attribution required.) 所以,你说的没错,大于0的部分是非线性的。实际上,不仅大于0的部分是线性的,小于0的部分也是线性的。但是,当我们把这两部分合起来,得到的却是非线性函数。也就是说,线性和非线性都是就函数的整体而言的。用术语来说,线性、非线性是就函数的整个定义域而言的。 线性的缺点,是线性函数的组合仍然是线性函数。这就意味着无论我们堆多少层网络,如果这些层都使用线性激活函数,那这些层最终等效于一层!那这样的模型的表达能力就很有限了(深度学习社区有很多研究,表明模型的表达效率和层数有关。) 而ReLU看似简单,却是非线性的。实际上,ReLU的组合可以逼近任意函数。 |
|
来自: 昵称11935121 > 《未命名》