如果在神经网络中每一个神经元都使用线性激活函数,它们为什么不起作用?
总述:
- 它会使无论多么大的神经网络模型都变得和线性回归模型没有什么区别
- 无法学习更复杂的特征
假设我们构建一个只有一个输入的神经网络
它从每一层的输出,我们都使用一个线性激活函数
最终,化简之后发现
它还是一个线性回归
产生这样的结果是因为:
一个线性函数的线性函数,本身也是一个线性函数
经验法则:
不要在神经网络的隐藏层使用线性激活函数
建议使用 ReLU 函数
为什么神经网络需要激活函数?
因为,如果不使用激活函数
其实本质就是,每一层都使用线性激活函数
这样整个网络无论多复杂
最终它只能算作一个线性回归模型
纯粹的线性组合并不能够解决更为复杂的问题。
而引入激活函数之后,我们会发现常见的激活函数都是非线性的,因此也会给神经元引入非线性元素,使得神经网络可以逼近其他的任何非线性函数,这样可以使得神经网络应用到更多非线性模型中。