3正则化方法

作者: Rooooooooong | 来源:发表于2018-10-14 16:48 被阅读4次

    1 Dropout问题

    Dropout
    思想:
    1. 删除隐藏层随机选取的一半的神经元
    2. 在剩余神经元基础上正向,反向更新w,b(mini-batch)
    3. 恢复之前删除的神经元,重新随机选择删除一半神经元,正向,反向更新w,b
    4. 重复此过程
    5. 恢复所有的神经元,将所有的权重减半

    为什么Dropout可以降低过拟合
    每次随机选择一部分的神经元训练,
    (1)降低神经元对特征的依赖性,使得神经元组合起来效果更加鲁棒。
    (2)压缩系数(类似于L2正则化)
    (因为每个特征都有可能在下次迭代中被删除,所以模型不会给每个特征赋予过高的权重)
    (3)keepout类似于L2正则化中的\lambda。但相反的是:keepout越小,则dropout越能防止过拟合。当keepout取1,相当于不采用dropout。

    python实现

    import numpy as np
    import pandas as pd
    import scipy
    
    a_i = np.random.chisquare(12,10)
    keep_ratio = 0.5
    d_i = np.random.rand(10)
    d_i = d_i < keep_ratio
    a_i = np.multiply(a_i,d_i)
    a_i /= keep_ratio
    print(a_i)
    
    >>>[29.16678503  0.         42.79623661  0.          0.          0.
      0.         12.74798392  0.         30.05003551]
    

    2 L1,L2正则

    L1,L2正则可以解决过拟合问题,另外,L1正则可以使得解具有稀疏性。

    3 如何权衡偏差和方差

    一个可能的解决方案是:做一个过拟合程度和错误率曲线图,选择拐点。

    相关文章

      网友评论

        本文标题:3正则化方法

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