为什么神经网络需要非线性激活函数
生物神经网络启发了人工神经网络的发展,在了解为什么神经网络需要非线性激活函数之前,理解生物神经网络的工作原理对我们是有帮助的。 一个典型的生物神经元的物理结构包括细胞体、树突、轴突。树突具有接受刺激并将冲动传入细胞体的功能,细胞体具有联络和整合输入信息并传出信息的作用,轴突的主要功能是将神经冲动由细胞体传至其他神经元。神经元通过树突接收来自其他神经元的信号,来自树突的信号在细胞体中积累,如果产生的信号强度超过一定的阈值,神经元就把信息传递给轴突。否则,信号会被神经元杀死,不再传播。 在人工神经网络中,激活函数决定是否需要传递信号。上图中第二层的神经单元可以看做是一个细胞体,它接收来自其它神经元的信号,然后整合信息。在人工神经网络中计算如下,b代表偏置项(在上图中代表一个实数),g代表激活函数。 如果神经网络中没有激活函数,或者说是线性激活函数,那么会发生什么呢? 假设有一个上图所示的两层的浅层神经网络(输入层不算),如果每个神经元都采用线性激活函数g(z)=z。 上面的神经网络正向传播的过程就可以表示如下: 中括号表示第几层,W是权重矩阵, 的维度是(3,3), 和 的维度是(3,1), 的维度是(1,3), 和 的维度是(1,1),x是(3,1)的向量。 可以看到第二层的输出值仍然是输入特征的线性组合,不难想象,如果在神经网络中使用线性激活函数或者没有激活函数