Tanh函数:如右图所示, Tanh函数将取值为*(−∞,∞)*(-∞,∞)的数转换到(-1,1)之间。当x很大或者很小的时候,导数 f′(x)也会很接近0,和sigmoid函数有同样的梯度消失的问题。但是tanh函数的均值为0,在这点上弥补了sigmoid函数均值为0.5的缺点。
Relu函数:如右图所示, Relu函数是一种分段线性函数,它在输入为正数时弥补了Sigmoid函数以及Tanh函数的梯度消失问题,但是输入为负数时仍然有梯度消失的问题。此外Relu函数的计算速度相对于Sigmoid函数和Tanh函数也较快一些,在实战应用中,Relu函数在神经网络模型中用的相对较广一些。
2、多层神经网络模型
实际应用中,常常采用如下图所示的多层神经网络,在多层神经网络模型中,输入层和输出层间可以有多层隐藏层,层与层之间互相连接,信号通过线性变换和激活函数的复杂映射,不断地进行传递。
(2)神经网络模型简单代码****实现
下面我们使用Scikit-Learn库中的MLP多层神经网络模型解决一个简单的二分类问题。数据如下,其中二维向量X是自变量,一维向量Y是因变量,其中Y的取值范围为0或1,代表两个不同的分类:
将数据通过神经网络模型进行拟合:
X = [[1, 0], [5, 1], [6, 4], [4, 2], [3, 2]]
y = [0, 1, 1, 0, 0]
mlp &#