分享

为什么说Relu是非线性激活函数,在大于0部分不是线性的吗?

 昵称11935121 2018-02-27

用形式化的语言来说,所谓非线性,就是一阶导数不为常数。那我们不妨对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的组合可以逼近任意函数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多