1.为什么要使用非线性激活函数?
线性可分的情况下:逻辑回归和线性回归,无论是闭解形式还是凸优化都能高度拟合,但是线性不可分的情况下 (XOR异或函数),需要非线性对换数据的分布进行重新映射。对神经网络我们在神经网络中,对每一层线性变换后叠加一个非线性激活函数,以避免多层网络等效于单层线性函数,从而获得更大的学习与拟合能力。
使用激活函数的目的是为了向网络中加入非线性因素;加强网络的表示能力,解决线性模型无法解决的问题
(1)非线性。线性激活层对于深层神经网络没有作用,因为其作用以后仍然是输入的各种线性变换。。
(2)连续可微。梯度下降法的要求。
(3)范围最好不饱和,当有饱和的区间段时,若系统优化进入到该段,梯度近似为0,网络的学习就会停止。
(4)单调性,当激活函数是单调时,单层神经网络的误差函数是凸的,好优化。
(5)在原点处近似线性,这样当权值初始化为接近0的随机值时,网络可以学习的较快,不用可以调节网络的初始值。
2.为什么加入非线性因素能够加强网络的表示能力?——神经网络的万能近似定理
神经网络的万能近似定理认为主要神经网络具有至少一个非线性隐藏层,那么只要给予网络足够数量的隐藏单元,它就可以以任意的精度来近似任何从一个有限维空间到另一个有限维空间的函数。
如果不使用非线性激活函数,那么每一层输出都是上层输入的线性组合;
此时无论网络有多少层,其整体也将是线性的,这会导致失去万能近似的性质
但仅部分层是纯线性是可以接受的,这有助于减少网络中的参数。