浅层神经网络
1. 激活函数
在神经网络中, 激活函数有很多种, 常用的有 sigmoid()函数, tanh()函数, ReLu 函数 (修正单元函数), 泄露 ReLu(泄露修正单元函数) 它们的图形如下:
sigmoid()激活函数, 范围是 y 属于{0, 1}, 所以 0<= y <=1 但是 sigmoid 函数平均收敛是 1, 最后的效果可能不太好
在这个基础上有了 tanh 激活函数图形如下:
主要是把 sigmoid 函数平移得到的但是这样会有了优化, 最终的平均收敛值为 0, 训练效果更好所以在实际中, 一般是选用 tanh 代替 sigmoid 激活函数
常用的还有 ReLu 激活函数图形如下
ReLu 激活函数的升级版是泄露 ReLu 激活函数, 图形如下:
通过常用激活函数的对比, 在实际中调参数的时候, 还要结合交叉验证来选择最优的参数
2. 非线性激活函数
线性激活函数就是输入线性关系输出一半输出层是线性激活函数但是在隐藏层单元中如果要实现复杂的神经网络要用到非线性激活函数, 所以不是简单的相加, 相减等关系
3. 激活函数的导数
sigmoid 函数的导数如下通过图形和计算得知, sigmoid 函数用在神经网络中, 学习速度有最大值和收敛值, 而且平均收敛值是 1
tanh 函数的导数如下通过图形和计算得知, tanh 函数通过 sigmoid 函数平移得到, 虽然学习速度基本一样, 但是最终的平均收敛值不一致, tanh 是 0, 因此, 最终的模型学习效果更好
ReLu 函数的导数如下通过图形和计算得知, ReLu 函数的学习速度没有收敛值, 不会随着输入特征的维度增大而减低, 因此, 在实际中, ReLu 激活函数使用很广泛
4. 随机初始化
随机初始化在神经网络中很重要, 有时候如果初始化参数取不对, 会造成没有学习效果, 因此在初始化神经网络的参数时, 需要通过计算来确定大概的初始化参数有一个方法是随机初始化
来源: http://www.bubuko.com/infodetail-2501684.html