overfitting怎么解决?
overfitting就是过拟合, 其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集, 对训练集外的数据却不work, 这称之为泛化(generalization)性能不好。泛化性能是训练的效果评价中的首要目标,没有良好的泛化,就等于南辕北辙, 一切都是无用功。
过拟合是泛化的反面,好比乡下快活的刘姥姥进了大观园会各种不适应,但受过良好教育的林黛玉进贾府就不会大惊小怪。实际训练中, 降低过拟合的办法一般如下:
正则化(Regularization)
L2正则化:目标函数中增加所有权重w参数的平方之和, 逼迫所有w尽可能趋向零但不为零. 因为过拟合的时候, 拟合函数需要顾忌每一个点, 最终形成的拟合函数波动很大, 在某些很小的区间里, 函数值的变化很剧烈, 也就是某些w非常大. 为此, L2正则化的加入就惩罚了权重变大的趋势.
L1正则化:目标函数中增加所有权重w参数的绝对值之和, 逼迫更多w为零(也就是变稀疏. L2因为其导数也趋0, 奔向零的速度不如L1给力了). 大家对稀疏规则化趋之若鹜的一个关键原因在于它能实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的特征权重反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些无用的特征,也就是把这些特征对应的权重置为0。
随机失活(dropout)
在训练的运行的时候,让神经元以超参数p的概率被激活(也就是1-p的概率被设置为0), 每个w因此随机参与, 使得任意w都不是不可或缺的, 效果类似于数量巨大的模型集成。
逐层归一化(batch normalization)
这个方法给每层的输出都做一次归一化(网络上相当于加了一个线性变换层), 使得下一层的输入接近高斯分布. 这个方法相当于下一层的w训练时避免了其输入以偏概全, 因而泛化效果非常好.
提前终止(early stopping)
理论上可能的局部极小值数量随参数的数量呈指数增长, 到达某个精确的最小值是不良泛化的一个来源. 实践表明, 追求细粒度极小值具有较高的泛化误差。这是直观的,因为我们通常会希望我们的误差函数是平滑的, 精确的最小值处所见相应误差曲面具有高度不规则性, 而我们的泛化要求减少精确度去获得平滑最小值, 所以很多训练方法都提出了提前终止策略.
典型的方法是根据交叉叉验证提前终止: 若每次训练前, 将训练数据划分为若干份, 取一份为测试集, 其他为训练集, 每次训练完立即拿此次选中的测试集自测. 因为每份都有一次机会当测试集, 所以此方法称之为交叉验证. 交叉验证的错误率最小时可以认为泛化性能最好, 这时候训练错误率虽然还在继续下降, 但也得终止继续训练了.
overfitting怎么解决?相关推荐
- 神经网络学习9--过拟合 (Overfitting)的解决办法
方法一:增加数据 增加数据量, 大部分过拟合产生的原因是因为数据量太少了. 如果我们有成千上万的数据, 红线也会慢慢被拉直, 变得没那么扭曲 . 方法二:运用正规化 运用正规化. L1, l2 reg ...
- 计算机的潜意识--从机器学习谈起
在本篇文章中,我将对机器学习做个概要的介绍.本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践.这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进 ...
- lstm不收敛_20道深度学习面试题,有你不知道的吗?
前言 来源于GitHub上大神整理的20到深度学习非常经典的20问,一起来看看吧! (1)CNN权值共享问题 首先权值共享就是滤波器共享,滤波器的参数是固定的,即是用相同的滤波器去扫一遍图像,提取一次 ...
- 吴恩达机器学习笔记(三) —— Regularization正则化
主要内容: 一.欠拟合和过拟合(over-fitting) 二.解决过拟合的两种方法 三.正则化线性回归 四.正则化logistic回归 五.正则化的原理 一.欠拟合和过拟合(over-fitting ...
- BAT机器学习面试1000题系列(第1~10题)
1.请简要介绍下SVM SVM,全称是support vector machine,中文名叫支持向量机.SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开. 参考: ...
- 总结了200道经典的机器学习面试题 (附参考答案)
作者丨qinjianhuang 链接 https://blog.csdn.net/sinat_35512245/article/details/78796328 刷题,是面试前的必备环节.本文作者总结 ...
- 神经网络测试结果很差,该怎么做
神经网络测试结果很差,该怎么做 当我们编程实现了神经网络模型,将模型用于测试集时,经常会发现测试的准确率非常的低,神经网络层数很深,通常我们不容易判断具体的梯度下降求解参数的过程,那我们该怎么办呢?从 ...
- 机器学习如何解决问题
原文 http://tech.meituan.com/mt-mlinaction-how-to-ml.html 前言 前言 随着大数据时代的到来,机器学习成为解决问题的一种重要且关键的工具.不管是工业 ...
- 【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记
李宏毅机器学习学习笔记汇总 课程链接 Review 越复杂的model,在testing data上的error未必越低. error来自两个地方: bias variance f_star是f_ha ...
- 莫烦Tensorflow教程(1~14)(转)
一.Tensorflow结构 import tensorflow as tf import numpy as np#create data x_data=np.random.rand(100).ast ...
最新文章
- 让机器“看见”:图像数据的特征提取方法
- 2星|《约见投资人》:A股上市公司软文集
- Google联合OpenAI揭秘神经网络黑箱:AI的智慧,都藏在激活地图里
- SQL Server 数据库的维护(一)__存储过程(procedure)
- uitableviw 自适应高度
- C++_标准模板库STL概念介绍5-其他库与总结
- C语言输入一个任意数求各位数的和
- 回文_Manacher算法
- 大数据如何影响百姓生活
- 【白皮书分享】2021国有企业数字化转型指数与方法路径白皮书.pdf(附下载链接)...
- CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)
- MFC MessageBox使用教程
- 计算机毕业设计、课程设计、实战项目之[含论文+答辩PPT+任务书+中期检查表+源码等]基于ssm的NBA球队管理系统
- 梅西 (Lionel Messi)
- 如何创建管道——pipe
- 回望2022,依然值得仰望星空
- 云计算设计模式(十五)——管道和过滤器模式
- fx3u4ad一adp说明书_FX3U-4AD-ADP使用手册三菱FX3U-4AD-ADP用户手册 - 三菱
- 机器学习----人脸对齐的算法-ASM.AAM..CLM.SDM
- 「兔了个兔」玉兔踏青,纯CSS实现瑞兔日历(附源码)
热门文章
- Bootstrap前端框架
- Flutter动画系列之SizeTransition
- ListView分组实现方案(一)
- 30 万奖金等你来!第三届 Apache Flink 极客挑战赛暨 AAIG CUP 报名开始
- android内存溢出案例
- 记住没:永远不要在 MySQL 中使用 UTF-8
- linux配置ip地址 suse_suse下设置IP的两种方法
- 非法关机linux分辨率丢失,非法关机造成文件系统损坏,怎么办?请教:附图片...
- linux curl获取头部信息,curl 命令如何获取 http header 返回的响应消息头
- python exec函数_Python3