《机器学习》第2章 补充:机器学习中用来防止过拟合的方法有哪些

定义:过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合,具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。

解决的方法有以下3种

1.获取更多数据,这是解决过拟合最有效的方法,但我觉得多半不是程序员应该思考的问题。

2.选用合适模型,过拟合主要是有两个原因造成的:数据太少 + 模型太复杂。我们主要针对后半部分。

2.1 优化模型。不用多说,了解各个模型的特产,专业的问题交给专业的模型解决。


2.2 限制训练时间。当网络权值较小时,神经元的激活函数工作在线性区,此时神经元的拟合能力较弱(类似线性神经元)。如上图。

有了上述共识之后,我们就可以解释为什么限制训练时间(early stopping)有用:因为我们在初始化网络的时候一般都是初始为较小的权值。训练时间越长,部分网络权值可能越大。如果我们在合适时间停止训练,就可以将网络的能力限制在一定范围内


3. 结合多种模型

这个可能是业界处理机器学习问题的基本套路,一般解决如广告推荐会同时使用几种机器模型,如有的做分类,有的聚类,有的做细节的功能的整理(如统计周期率),有的计算相似度,有的最后拿出结果。所以经常卉训练多个模型,以每个模型的平均输出作为结果。

3.1  Bagging

简单理解,就是分段函数的概念:用不同的模型拟合不同部分的训练集。以随机森林(Rand Forests)为例,就是训练了一堆互不关联的决策树。但由于训练神经网络本身就需要耗费较多自由,所以一般不单独使用神经网络做 Bagging。

3.2 Boosting

既然训练复杂神经网络比较慢,那我们就可以只使用简单的神经网络(层数、神经元数限制等)。通过训练一系列简单的神经网络,加权平均其输出。


3.3 Dropout

这是一个很高效的方法。

在训练时,每次随机(如 50% 概率)忽略隐层的某些节点;这样,我们相当于随机从 2^H 个模型中采样选择模型;同时,由于每个网络只见过一个训练数据(每次都是随机的新网络),所以类似 bagging 的做法,这就是我为什么将它分类到「结合多种模型」中;

此外,而不同模型之间权值共享(共同使用这 H 个神经元的连接权值),相当于一种权值正则方法,实际效果比 L2 regularization 更好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    在河之简阅读 20,552评论 4 65
  • 五、Deep Learning的基本思想 假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,...
    dma_master阅读 1,698评论 1 2
  • 申宁提着行李箱,头也不回的直奔车站。风夹杂着雨点迎面向她扑来,好像也在责怪她不该从家里跑出来! 任凭手机在包里撕心...
    咪咪呢阅读 309评论 0 0
  • 几天前看了场令我很压抑、难过的电影《二十二》。 偶然看到冯小刚导演的微博,他说自己受演绎张歆艺的请求,想为一部制作...
    张鹤凡阅读 926评论 0 2
  • 把工具当做知识管理,把书架上的书当成自己的知识,把别人的观点当成自己的观点。很可怕。
    JanFian_Cafe阅读 182评论 0 0