到目前为止,我们用的激活函数全都是Sigmoid函数(就是中的),接下来介绍其他函数
-
tanh函数:函数值在[-1,1]之间,一般情况下都比Sigmoid函数效果要好,有类似数据中心化的效果
-
Sigmoid函数几乎不再使用,除非最后输出的时候,毕竟它的函数值是在[0,1]之间的
-
ReLU函数:上面两个函数在函数值比较大的时候导数变化很小,这会拖累梯度下降法,而ReLU只要z为正,导数就是1,在z=0的时候可以自己声明导数值
-
带泄露ReLU:z为负时让它有一个小小的坡度改善ReLU导数为负的情况,在z=0的时候可以自己声明导数值,一般不常用
在二元分类的时候可以输出层用Sigmoid,隐藏层用ReLU,如果不确定隐藏层用什么函数,就用ReLU
在实践过程中通常需要先跑跑试试
——————————————————————————————————————
上节说的四个函数都是对线性出来的结果进行非线性运算,为什么非得需要这么一步计算呢
原因:经过推导可以发现如果只是线性运算,那再多层的网络也都是线性运算,多层网络就没什么用了,多层网络才能解决更复杂的问题
其他用线性运算的特殊情况:回归问题等