首页 > 其他分享 >【机器学习】李宏毅——机器学习任务攻略

【机器学习】李宏毅——机器学习任务攻略

时间:2022-12-14 19:33:38浏览次数:45  
标签:误差 机器 训练 验证 李宏毅 模型 56 学习 集上

这一节的主要内容是当测试数据的准确度不够高的时候应该怎么做

首先一定要检查你的训练数据集的误差,如果发现是你的训练数据集误差也比较大,那么就有两种可能:

  • 模型过于简单,无法很好的拟合当前的数据集
  • 陷入局部最优价,也就是优化算法做的不够好

那么如果分辨这两种情况呢?找模型来比较
在这里插入图片描述

例如在上图,一个20层的神经网络和56层的神经网络,发现测试集上56层的神经网络的误差更大,那么这很容易让我们觉得这是过拟合的问题,但是如果我们检查一下训练集的误差发现,同样是56层的误差更大,这就说明不是过拟合,如果是过拟合应该是56层的网络的训练集的误差很小才对,那么56层的神经网络肯定比20层的复杂度高,只剩下一种可能就是优化算法做得不够好

那么这给我们的启发就是,在面对一个未知的问题时可以这样做:

  • 先训练一些简单的模型,比如层次较低的神经网络,比较SVM,这些模型的优化算法比较容易实现,就会找到在这个模型复杂度下的最优价
  • 再训练复杂的模型,如果复杂的模型明明弹性(即复杂度)比简单的模型更大,可误差反而更加不理想,那么可能就是复杂模型的优化算法做得不够好了

那么经过上述解决完训练数据的问题,使得训练数据精度足够小时再重新计算测试数据的精度,如果此时仍然是测试数据的误差很大,那么就有可能是真的遇到了过拟合的问题,甚至是遇到了mismatch问题,解决办法有两个:

  • 最直接的方法就是增加训练数据集。例如找新的数据,或者对数据进行处理,图像翻转等等
  • 给模型更多的限制,例如给比较少的参数,共用参数,正则化、早停等等

模型复杂度与误差的曲线大致如下:

在这里插入图片描述

在选取不同的模型时,最好是不要直接在测试集上比较,因为测试集是用来衡量该模型的泛化误差的,因此通常是将原本的训练集分为训练集和验证集两部分,在训练集上训练各个不同的模型,然后再在验证集上选出最好的模型,再在测试集上得到该模型的泛化能力。那么这个时候就要考虑到验证集选取的问题了,为了避免随机选取到不合适的验证集,可以用k折交叉验证
在这里插入图片描述

将训练数据进行k等分,然后选取其中一个作为验证集其他作为训练集,然后训练模型并验证在验证集上的好坏,这个操作重复k次保证每一个子集都有机会当验证集,之后将k次结果去平均即可

mismatch问题就是训练集的分布和测试集的分布是不同的分布,这就导致不管你如何增加训练集的数据或者改进模型都很难在测试集上取得好的结果

标签:误差,机器,训练,验证,李宏毅,模型,56,学习,集上
From: https://www.cnblogs.com/FavoriteStar/p/16983202.html

相关文章

  • #yyds干货盘点# react笔记之学习之state注意事项
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • Go语言学习--接受和处理Web请求之接收请求(更新中......)
    GoWeb服务器请求和响应的流程如下:1.客户端发送请求2.服务器端的多路复用器收到请求3.多路复用器根据请求的URL找到注册的处理器,将请求交由处理器处理......
  • gameboy GB 第二次机器人大战G 金手指 VBA
    ------------------------------------------------------------------------------------------------------------------------------------------------------------......
  • 12.14学习总结
    缓存更新策略缓存更新是redis为了节约内存而设计出来的一个东西,主要是因为内存数据宝贵,当我们向redis插入太多数据,此时就可能会导致缓存中的数据过多,所以redis会对部分数......
  • 从9月开始每天坚持在力扣上刷题,不停学习
       ......
  • SpringMVC学习
    SpringMVC学习1.回顾MVC1.1什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码......
  • Zabbix 6 系列学习 07:包安装(时序数据库篇)
    其实出这期文章的目的就是展示官方为了解决传统关系型数据库在应对海量监控数据的能力不足的方案。本文环境系统:AlmaLinux8.7数据库:PostgreSQL14TimescalePHP数据库部分Al......
  • 【机器学习】李宏毅——机器学习基本概念简介
    机器学习就是找到一个我们人类无法写出来的函数来完成各种任务机器学习的任务回归Regression:输出是一个数值例如:预测未来某一个时间PM2.5数值分类Classification:输出是......
  • spring学习-1.使用Maven构建spring项目
    1.新建一个Maven项目​​​​​​项目的结构图​​​​2.配置pom.xml,引入项目需要的依赖,这里引入了spring,junit<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns......
  • Javascript学习
    目录js引入的三种方式js基础语法数组遍历的方法es6中的箭头函数js使用的中的注意点js变量声明的三种方式js引入的三种方式<!DOCTYPEhtml><html> <head> <metachars......