为什么要使用激活函数?
我们训练的神经网络模型,就是从输入到输出的一个神秘未知函数映射。我们并不知道具体的内容,只能尽可能无限的逼近它。
如果不使用激活函数,那么输出只能是线性的。
如果使用了非线性激活函数,那么就可以输出非线性函数,就可以无限逼近复杂函数。
为什么激活函数必须是非线性的?
如果是线性激活函数,不管隐藏层多深,输出永远是输入的线性组合,这样就与没有隐藏层结果相当,所以需要引入非线性激活函数。
为什么CNN中要使用ReLu?
1.使用sigmoid时,涉及到指数运算,反向传播时求导涉及到除法,计算量大。而采用ReLu函数时,整个过程计算节省很多
2.sigmoid容易产生梯度消失(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失。)
3.ReLu会使一部分神经元输出为0,造成网络的稀疏性,减少了参数之间的依存性,减少了过拟合的情况