美文网首页
训练神经网络

训练神经网络

作者: autisticBoy | 来源:发表于2019-05-21 15:31 被阅读0次

    (在听课时做的一些笔记,本人菜鸡)

    激活函数

    1.sigmoid

    • 形式:1 / 1 + e ^ -x
    • 优点: 将输出值压缩在[0,1]之间,x很大时接近1,x很小时接近0
    • 缺点:1.在反向传播时x很大或者很小可能会使导数很小,这个很小的导数又会传到下游
      2.不是zero-center 在本地对w(参数)进行求导时,如果输入的x全部是正,那么对w求导全是正或者负(取决于上游导数),这样在更新梯度时效率低下
      3.exp()计算代价很高

    2.RELU函数

    • 形式: fx = max(0, x)
    • 优点:1.不会饱和(在x > 0区域) 2. 计算方便 3. biological plausible
    • 缺点: 1. x < 0 仍存在饱和 (dead Relu)2. 不是zero-center

    3.LeakyReLu

    • 形式: fx = max(0.01x, x)
    • 解决了ReLu 的负饱和

    建议:

    • 使用ReLu,注意learning rate
    • 尝试LeakyReLu/ELu 等函数
    • 不用sigmoid

    数据预处理

    1.zero-centring

    • 作用:防止梯度恒为正/负
    • 使用:x -= np.mean(x, axis = 0)

    2. normalize data

    • 每个x贡献相同
    • 使用: x /= np.std(x, axis = 0)

    建议

    在做视觉时用第一个不用第二个

    weight initialization

    1. small random number

    • 实现: 0.01 * np.random.randn(D, H)
    • 在大型神经网络中,可能随着一层层的激活函数,all activation become zero, 在反向传播中,对于x的导数会越来越接近0
      那如果 把0.01 变成1会怎么样: 输出过大导致激活函数出现饱和

    建议

    使用xaviier initialization 即 W = np.random.randn(fan_in, fan_out) / np.sqrt(fan_in / 2) (/2 目的是

    batch normalization

    • 数学表达(Gauss): x = x - E[x] / VAR[x] ^ 0.5(可以理解为一定程度上正则化)
    • 通常插在fc层和activiation层中间
    • 让神经网络有能力能恢复归一化之间的数据(设置 m = VAR[x] ^ 0.5, n =E[x] )
    • 在测试阶段,不用重新 计算e 与var 用训练阶段的数据

    优化算法

    SGD(随机梯度下降法)

    • 缺点:1.可能会出现如图情况
      2.也可能会停在局部最小值或者鞍点(saddle point)
      3.could be noisy


      image.png

    改进:SGD+momentum

    image.png

    rho为摩擦系数 一般为0.9或者0.99
    速度一般初始化为0

    RMSProp

    image.png

    先平方在去除的原因是让变化小的dimension加速,让变化大的dimension减速

    Adam

    结合前两种


    image.png

    这个有问题就是在前几项的时候secoond_moment会很小,导致前几步过于大,但是这个过大不是因为本身的梯度问题而是认为导致

    Adam改进

    image.png

    解决了上述问题,这个算法应该是最先应该被考虑的

    正则化

    L2 regularization

    image.png
    • 缺点:在神经网络中may not perform well

    dropout

    • 想法:在每次正向传播的时候,把一部分神经元的激活函数设置为0
    • 原因:减少了神经元之间的耦合度,防止过拟合


      image.png

    data augmentation

    对数据进行处理,如对图片进行水平翻转,标签不变

    相关文章

      网友评论

          本文标题:训练神经网络

          本文链接:https://www.haomeiwen.com/subject/ujgkzqtx.html