神经网络中提到的线性模型与非线性模型之间的区别就体现在字面意思上:线性模型即仅通过对输入进行线性变换得到输出的网络模型,我们知道在线性代数中矩阵的相乘就是一种线性变换,根据矩阵乘法的结合律可知:一个矩阵依次与多个矩阵相乘等价于这个矩阵乘上这多个矩阵的乘积;类似的,任意线性模型的组合还是线性模型,也就是说,只通过线性变换,任意层的全连接神经网络和单层神经网络的表达能力没有区别。
由于线性模型的表达能力的局限性,非线性模型的优势就凸显出来,通过在线性模型的基础上增加激活函数的机制来实现,具体过程为在每一个神经元在接收上一层的加权和和偏执值之后,在该基础上计算一个非线性函数的函数值作为该神经元的输出,这个非线性函数就是激活函数。

最基础常见的激活函数就有sigmoid、relu、tanh等。那么激活函数到底给神经网络的性能带来了多大的提升呢?
为了验证神经网络非线性模型解决复杂问题的能力的确比线性模型要强,我们可以用Mnist数据集作为实验数据集。Mnist手写体图像数据集拥有6万张训练图像和1万张测试图像,每张图像大小为28*28个像素大小,每张图像都属于阿拉伯数字0~9的十个类别中的某一个类别。因为每张图像总共有