• 算法基础


    如何避免过拟合?

    参考整理:https://www.cnblogs.com/jiangxinyang/p/9281107.html

    1) 正则化
    通过控制模型参数的大小来降低模型的复杂度
    L1 = $alpha sum_w |w|$ 作为J0函数的约束,加入L1正则项后,数据集中对模型贡献不大的特征所对应的参数w可以为0,
    因此L1正则项得出的参数是稀疏的;

    L2 =$alpha sum_w |w|^2 $,将对模型贡献不大的特征所对应的参数设置为无限小的值

    【机器学习】
    决策树:
    2) 剪枝处理
    预剪枝:控制树深度、叶子节点数、叶子节点中样本的个数 --> 控制树的复杂度
    后剪纸:模型训练完之后,用交叉验证的方式进行剪枝达到最优的树模型

    --结合多种模型
    集成学习:
    3)Bagging和Boosting
    多个模型的组合弱化单个模型的异常点的影响

    【神经网络】
    4) 增加噪声
    在输入数据上添加,增大数据的多样性;也可在权值上添加噪声

    5) 权值共享
    最常见的在CNN中,权值共享可以减小模型中的参数,同时减少计算量

    6) 提前终止迭代(Early stopping)
    通过提前终止迭代,有效控制权值参数的大小,从而降低模型的复杂度

    7) Batch Normalization
    在深度神经网络激活层之前,将每一层的输入值做归一化处理,且重构归一化处理之后的数据,确保数据的分布不会发生改变
    优点:提高CNN网络收敛速度,提高分类准确率;不需要使用局部相应归一化处理,不需要加入dropout

    --结合多种模型
    8) Dropout
    用在全连接层,在一定概率上(通常设为0.5,此时随机生成的神经网络最多)隐式地去除网络中的神经元
    缺点:每次迭代时dropout的神经元都不同,有一些参数不被训练到,导致网络的训练速度慢2、3倍;且数据小时效果不佳


    (1),(2),(4),(5),(6),(7): 在一个模型上,通过改变模型的复杂度来控制过拟合;
    (3),(8): 结合多种模型来控制过拟合.

    欲望才是原动力
  • 相关阅读:
    SQL Server CheckPoint的几个误区
    MongoDB集群与LBS应用系列(一)
    也来“玩”Metro UI之磁贴
    Python基础:函数式编程
    ASP.NET MVC 用户登录Login
    巧用 .NET 中的「合并运算符」获得 URL 中的参数
    Razor.js,基于JavaScript的Razor实现
    大话数据结构-排序
    hdu 1498
    3.7 检测两个表中是否有相同的数据
  • 原文地址:https://www.cnblogs.com/Nooni/p/13569305.html
Copyright © 2020-2023  润新知