改进模型拟合

在模型拟合的过程中我们常常会遇到一些情况:

训练不开始:训练损失不随着训练时间推移改变

训练开始得很好,但模型没有真正泛化:模型无法超越基于常识的基准

训练损失和验证损失都随着时间的推移而减小,模型可以超越基准,但似乎无法过拟合:表示模型仍然处于欠拟合状态

解决策略

1 一般情况下,我们只需要反复地调整学习率和批量大小就够了

2 我们通过增加模型的批量大小,使得其包含更多样本,且整体的噪声更少更利于处理

提高模型容量(让模型能够先达到过拟合,随后我们再去调整!!!)

在一些时候,如果我们无法实现过拟合,可能是因为模型的表示能力存在问题,此时我们就会需要一个容量更大的模型:

“添加更多的层”,"使用更大的层(拥有更多的参数)",“或者确定更适合当前问题的层类型”

提高泛化能力

此时由于出现了过拟合现象,表明我们的模型具有一定的泛化能力,我们接下来就应该专注于使得模型的泛化能力最大化

在提高数据泛化潜力的过程中,一个重要的方法就是特征工程!

特征工程指在数据输入模型前,对数据进行硬编码的转换,以改善算法的效果

此处本书举了一个很好的例子:

利用图像识别判断时钟当前的时间,我们可以不直接用时钟的完整图像去进行训练,而是将每一个时钟图像中,时针和分针尖端像素点的位置坐标,由此作为数据送入模型U型拿脸

提前终止

在验证指标停止改善时,立即停止训练

模型正则化

正则化方法是一组最佳实践,通过主动降低模型完美拟合训练数据的能力,提高模型的验证性能。

正则化使得模型更简单,更“规则”,曲线也更加平滑更通用。

方法:

1 缩减模型容量

减少模型中可学习训练参数的个数(由层数和每层单元个数确定)

可以从较小容量的模型逐渐扩大模型规模,以便观察他们在过程中的变化

2 添加权重正则化

L1正则化和L2正则化(L2也叫权重衰减)的本质,就是强制使得模型权重只能取较小的值,从而限制模型的复杂度,由此来使得权重值的分布更加规则

总结,为促使神经网络的泛化能力最大化,最常用的方法如下所示:

1 获取更多更好的训练数据

2 特征工程筛选更好的特征

3 缩减模型容量

4 添加正则化(适合较小模型)

5 添加dropout

完整且严谨的机器学习任务工作流程细节学习

1 定义任务

① 确定输入数据;确定预测对象

② 确定机器学习任务类型,例:分类或是回归等

③ 现有解决方案

2 理解数据

诸如绘图等等的方式,我们需要利用这些方法在实际地使用数据前查看数据之间的相互关系

3 开发模型

准备数据:

1 向量化

2 规范化(将数据取值范围缩小)

3 缺失值处理:①对于分类特征,可以创建一个新特征对应空缺

②数值特征则应当避免直接添加0

4 评估方法

如何对数据集划分训练集数据集并将其用于训练及验证

5 超越基准

使得模型能够超越一些简单的基准(达到一些基础的准确率)

此过程中,我们需要牢记,要在常见的问题类型中选择合适恰当的激活函数和损失函数

6 扩大模型规模,开发一个过拟合模型

(1)增加层数(2)扩大每一层(3)训练更多轮数

7 模型正则化,调节超参数

如果模型已经确定具有统计功效,并且能够过拟合,那么我们就可以确定我们走在了正确的路上,接下来我们的目标就是将泛化性能最大化!!!!

有以下方向可供探索:

(1)改变模型架构,增加或减少层数

(2)添加dropout正则化

(3)如果模型很小,添加L1或L2正则化

(4)尝试不同的超参数,找到最佳配置

(5)反复进行数据收集或特征工程

超参数工具kerastuner可以将以上工作的大部分自动化,节约时间成本

保持学习,加油!飞飞飞!

梅飞飞飞的假期学习日记DAY7相关推荐

  1. 生信小白学习日记Day7——WGS分析流程(picard)

    2019年6月2日,周日,天气晴,pass 上午.开始学习NGS分析,继BWA比对和SAM文件排序转BAM后的流程. NGS分析 step5 Mark Duplications 参考这篇:GATK使用 ...

  2. 渗透学习日记day7

    问题: 今天跟着做实验时发现phpstudy建的站用burp一直抓不到,用的是localhost/xxx.php,能够显示页面但是开启代理后burp一直是没反应. 解决方法: 把localhost替换 ...

  3. 黑马程序员_学习日记2_飞行棋

    ---------------------- Windows Phone 7手机开发. .Net培训.期待与您交流! ---------------------- 4月13日 今天看了一天的视频,把骑 ...

  4. 爬虫学习日记1-豆瓣top250电影信息爬取

    @ 爬虫学习日记1-豆瓣top250电影信息爬去 学习任务:结合requests.re两者的内容爬取https://movie.douban.com/top250里的内容, 要求抓取名次.影片名称.年 ...

  5. 我的Unity3D学习日记-06(自己动手制作FlappyBird)

    自从上次跟着敲了官方示例拾荒者之后,开始对Unity制作2D游戏感兴趣了起来,虽然本文标题叫做Unity3D学习日记.但是Unity其实本来名字里是没有3D这俩字的--很有名的雨血前传 蜃楼就是一个使 ...

  6. 飞桨PaddlePaddle深度学习实战

    作者:刘祥龙,杨晴虹,胡晓光,于佃海 著 出版社:机械工业出版社 品牌:机工出版 出版时间:2020-09-01 飞桨PaddlePaddle深度学习实战

  7. java的圆周率_java学习日记,圆周率的打印

    前段时间看到听说学习java每天写技术贴会对自己提升很大,我现在学习java也就2个周,算不上技术贴,就写写学习日记吧. 昨天师傅给我出了一道题,说是试试用java打印圆周率. 刚开始我的思路是,如果 ...

  8. GPU(CUDA)学习日记(十一)------ 深入理解CUDA线程层次以及关于设置线程数的思考

    GPU(CUDA)学习日记(十一)------ 深入理解CUDA线程层次以及关于设置线程数的思考 标签: cuda存储线程结构网格 2012-12-07 16:30 6298人阅读 评论(4)收藏 举 ...

  9. GPU(CUDA)学习日记(十三)------ CUDA内存简介

    GPU(CUDA)学习日记(十三)------ CUDA内存简介 标签: cuda存储线程结构 2012-12-07 16:53 2902人阅读 评论(0)收藏 举报 分类: GPU(16) CUDA ...

最新文章

  1. 首次编译Java小程序
  2. python跟java-还在纠结选Python还是Java?看完就有数了
  3. 【agc019F】Yes or No
  4. vs winform常用函数_使用.net core3.0 正式版创建Winform程序
  5. Mat矩阵和数组的运算
  6. oracle执行计划更新,请教update和delete的执行计划
  7. (转)UCS vs UTF-8 as Internal String Encoding
  8. 上海富勒wms_【3PL | 宝时物流应用富勒WMS,提升现代化仓储管理水平 】
  9. 即时通讯创业必读:解密微信的产品定位、创新思维、设计法则等
  10. python免安装版使用
  11. 【雷达】毫米波雷达和激光雷达
  12. c#应用:简单的图片查看器
  13. 神灵武装908服务器维护,神陵武装127服银河之心开服时间表_神陵武装新区开服预告_第一手游网手游开服表...
  14. 华东 1、华东 2、华北 1、华北 2、华南 1 服务器分别都在哪个城市
  15. 深圳计算机专业中专学校,深圳最好的中专学校有哪些 十大中专学校排名
  16. 【LSP简史】里氏替换原则表述方式的变化,从学术到「人话」
  17. windows之关闭thinkpad的默认fn功能键
  18. android百度地图 自定义气泡,百度地图自定义吹出框(气泡)(转)
  19. K210学习记录(3)——kmodel生成与使用
  20. 为什么服务器未响应ins,9修复Instagram无法正常工作,加载或崩溃的最佳方法

热门文章

  1. lucene适合海量数据的模糊匹配吗?寻求“类百家姓”在lucene的实现方法?
  2. python汉诺塔算法解析_基于Python的汉诺塔算法
  3. IQ 调制器和 IQ 解调器
  4. SPSS 做数据预测方法
  5. 语音合成(speech synthesis)两种方法-拼接合成和参数合成
  6. 如何用手机制作属于自己的精美相册MV?学会这些,让你清爽剪辑视频
  7. 鸿蒙HarmonyOS DevEco Studio 常用快捷键
  8. 【微信小程序分享:HR手机版-人力资源/组织人事/微人事/免费软件】
  9. Redis的发布与订阅
  10. 详述MVC设计模式在Node工程中使用