Datawhale X 李宏毅苹果书 AI夏令营(深度学习入门)task3

实践方法论

在应用机器学习算法时,实践方法论能够帮助我们更好地训练模型。如果在 Kaggle 上的结果不太好,虽然 Kaggle 上呈现的是测试数据的结果,但要先检查训练数据的损失。看看模型在训练数据上面,有没有学起来,再去看测试的结果,如果训练数据的损失很大,显然它在训练集上面也没有训练好。接下来再分析一下在训练集上面没有学好的原因。

1.模型的偏差

模型偏差可能会影响模型训练。举个例子,假设模型过于简单,一个有未知参数的函数代θ1 得到一个函数f_{\Theta1 }(x),同理可得到另一个函数f_{\Theta 2}(x),把所有的函数集合起来得到一个函数的集合。但是该函数的集合太小了,没有包含任何一个函数,可以让损失变低的函数不在模型可以描述的范围内。在这种情况下,就算找出了一个\Theta ^{*},虽然它是这些蓝色的函数里面最好的一个,但损失还是不够低。这种情况就是想要在大海里面捞针(一个损失低的函数),结果针根本就不在海里。

这时我们就需要训练一个新的模型,更好的解决模型没有得到损失很小的问题。

除了模型偏差会影响模型训练外,优化问题也会影响损失的降低

2.优化

一般只会用到梯度下降进行优化,这种优化的方法很多的问题。比如可能会卡在局部最小值的地方,无法找到一个真的可以让损失很低的参数

但是我们有时可能并不能判断出具体是因为模型偏差还是优化方法出了问题,还是说模型太小了不够训练出最好的参数

残差网络的论文中给出了一个建议,通过比较不同的模型来判断

下面这个图,就生动的展示了一个20层的神经网络和56层神经网络在同一个测试集和训练集的表现

但是56层的模型却不如20层的表现好,56层的网络还没有20层的误差小。多余的36层网络相当于做了无用功

如果训练数据上面的损失小,测试数据上的损失大,可能是真的过拟合。在测试上的结果不好,不一定是过拟合。要把训练数据损失记下来,先确定优化没有问题,模型够大了。接下来才看看是不是测试的问题,如果是训练损失小,测试损失大,这个有可能是过拟合。

3.过拟合

过拟合是由于模型使用了太多的特征使得模型将部分数据的“特性”也学习到,使得模型的泛化能力较弱

那么怎么解决过拟合问题呢?下面一起来讨论一下

3.1增加数据

根据问题的理解创造出新的数据,举个例子,在做图像识别的时候,常做的一个招式是,假设训练集里面有某一张图片,把它左右翻转,或者是把它其中一块截出来放大等等。对图片进行左右翻转,数据就变成两倍。但是注意不能把图片进行上下翻转,因为他不是我们想要的一个合理的图片,可能会使机器学习到奇怪的特征

3.2限制模型

3.2.1使用较少的特征,增强模型的泛化能力

3.2.2使用较少的参数

如果是深度学习,我们可以给他较少的神经元本来每层一千个神经元,改成一百个神经元之类的,或者让模型共享参数。

卷积神经网络(Convolutional Neural Network,CNN)是一个比较有限制的架构。CNN 是一种比较没有灵活性的模型,其是针对图像的特性来限制模型的灵活性。所以全连接神经网络,可以找出来的函数所形成的集合其实是比较大的,CNN 所找出来的函数,它形成的集合其实是比较小的,其实包含在全连接网络里面的,但是就是因为CNN 给了比较大的限制,所以 CNN 在图像上,反而会做得比较好

3.2.3正则化

3.2.4Dropout

但是也不能给出太多的限制,限制太多可能会使模型根本拟合不了,如下图所示

4交叉验证

比较合理选择模型的方法是把训练的数据分成两半,一部分称为训练集(training set),一部分是验证集(validation set)。比如 90% 的数据作为训练集,有 10% 的数据作为验证集。在训练集上训练出来的模型会使用验证集来衡量它们的分数,根据验证集上面的分数去挑选结果。

把数据分为3个,每次有两个训练集一个验证集,循环跑三次,可以得出哪些数据得出的结果更好

数据分为k类就叫做k-折交叉验证

5.不匹配

李老师获取到正式的视频观看次数,与使用模型预测出来的结果做了对比,得出了下面这个折线图。很明显发现2.26这天的数据预测值和真实值之间的差距很大,导致了不匹配的现象

但是匹不匹配要看对数据本身的理解了,我们可能要对训练集跟测试集的产生方式有一些理解,才能判断它是不是遇到了不匹配的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/408822.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能手机摄影综评:品牌联名与自建影像品牌的战略分析

随着智能手机摄影技术的飞速发展,各大厂商不仅与知名摄影品牌展开合作,还通过自建影像品牌来提升产品的摄影能力和品牌形象。本文将重点分析小米、华为、荣耀、OPPO、Vivo和苹果在摄影品牌联名与自建影像品牌方面的战略,探讨这些策略如何影响…

【案例55】WebSphere非root用户启动方案

问题背景 很多项目为了安全因素考虑,想让在Linux服务器中启动的程序都用非root用户启动。 解决方案 创建用户和组 现在我们用 root 用户登录,并创建用户和组。 ##创建用户 [rootnc-test ~]# useradd wasadmin##修改密码 [rootnc-test~]# passwd was…

Python优化算法16——鲸鱼优化算法(WOA)

科研里面优化算法都用的多,尤其是各种动物园里面的智能仿生优化算法,但是目前都是MATLAB的代码多,python几乎没有什么包,这次把优化算法系列的代码都从底层手写开始。 需要看以前的优化算法文章可以参考:Python优化算…

【学习笔记】技术分析-华为智驾控制器MDC Pro 610分析

华为的智能驾驶控制器一直在迭代,和网络上广泛披露的早期MDC 610相比,华为 MDC Pro 610 智能驾驶控制器,现在的样品设计采用了海思的双系统级芯片 (SoC) 提高了处理能力,三星的存储模块为无缝数据处理提供了充足的内存&#xff0c…

一分钟制作电子版的招生简章

​在当今信息化社会,快速、高效地传播信息显得尤为重要。招生简章作为学校、机构招生的重要宣传材料,其电子版制作更是需要简洁明了、吸引眼球。一分钟你就能制作出一份精美的电子版招生简章。让我们一起来看看,如何实现这一目标。 1.要制作电…

Linux 可视化管理工具:Webmin

😀前言 在 Linux 系统的运维管理中,命令行界面(CLI)是主要的操作方式。然而,对于许多系统管理员或开发者来说,使用 CLI 进行管理和维护任务并不总是最直观或最方便的方式。为了简化操作并提高效率&#xff…

今天你City了吗?维乐Angel Revo带你穿梭都市自由随风~

当7月的热浪在都市中翻滚,你是否渴望逃离钢筋水泥的束缚,寻找一片属于自己的绿意盎然?今天你City了吗?快带上VELO Angel Revo一起抓住夏日的尾巴,用一场骑行与这座城市的风景共舞!      轻巧出行&#…

面向对象编程:深入PHP的封装、继承和多态性!

文章目录 面向对象OOP的核心概念定义类、创建对象构造函数和析构函数访问修饰符继承方法重写接口和抽象类静态方法和属性魔术方法 错误处理错误处理概述错误级别异常处理自定义异常设置错误处理忽略错误错误日志断言 总结 面向对象编程(OOP)是一种编程范…

海绵城市雨水监测系统简介

海绵城市雨水监测系统主要有:数据采集、无线数据传输、后台云服务、终端平台显示等部分组成。系统通过前端数据采集水质(ss\cod\浊度、PH等)、雨水雨量、流量、水位、土壤湿度、气象等数据。通过无线数据传输通讯(4G、5G、以太网、…

洞见数据价值,激活组织活力,让决策更精准的智慧交通开源了。

智慧交通视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

人工智能在专业领域的斗争

介绍 ChatGPT 等大型语言模型 (LLM) 在用自然语言讨论一般话题的能力方面令人印象深刻。然而,他们在医学、金融和法律等专业领域却举步维艰。这是由于缺乏真正的理解,并且注重模仿而不是智力。 大语言模型正处于炒作的顶峰。由于能够用自然语言回答和讨…

python库(20):Jsonschema库描述JSON数据的规范

1 Jsonschema简介 在当今信息时代,数据规范与交换变得越来越重要,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛应用于网络通信与前后端数据交互。 JSON Schema是一种用于描述JSON数据的规范…

力扣2025.分割数组的最多方案数

力扣2025.分割数组的最多方案数 哈希表 前缀和 用两个哈希表分别存元素(之后会遍历)左侧和右侧的前缀和 typedef long long LL;class Solution {public:int waysToPartition(vector<int>& nums, int k) {int n nums.size(),ans 0;vector<LL> sum(n);unor…

【Linux系列】SH 与 BASH 的区别:深入解析与使用案例

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

实现MySQL的主从复制基础

目录 1 MySQL实现主从复制的原理 1.1 实现主从复制的规则 1.2 如何实现主从复制 2 MySQL 实现主从复制实践 2.1 实验环境 2.2 my.cnf 配置添加 2.2.1 配置MSTER 端配置文件 2.2.2 配置SLAVE 端配置文件 2.2.3 三台MySQL服务器重启服务 2.3 创建用于复制的用户 2.4 保证三台主机…

51单片机——模块化编程

1、模块化编程介绍 传统方式编程&#xff1a;所有的函数均放在main.c里&#xff0c;若使用的模块比较多&#xff0c;则一个文件内会有很多的代码&#xff0c;不利于代码的组织和管理&#xff0c;而且很影响编程者的思路。 模块化编程&#xff1a;把各个模块的代码放在不同的.…

运维学习————nginx2-配置详解及负载均衡

目录 一、配置文件详解 1.1、结构 1.2、重要配置解释 1.3、详细配置 全局配置 Events HTTP 服务器配置 server虚拟主机配置 location URL匹配配置 1.4、完整配置 二、负载均衡 2.1、概念 2.2、集群规划及实现 2.3、具体实现 2.3.1、克隆 2.3.2、修改tomcat1配…

MySQL分区表

1.分区算法 MySQL提供4种分区算法&#xff1a;取余&#xff1a;Key&#xff0c;hash 条件&#xff1a;List&#xff0c;range 。 参与分区的参数字段需要为主键的一部分。 &#xff08;1&#xff09;KEY – 取余 &#xff0c;按照某个字段进行取余 分成5个区&#xff0c;就…

力扣: 设计链表

文章目录 需求代码结尾 需求 你可以选择使用单链表或者双链表&#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性&#xff1a;val 和 next 。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。 如果是双向链表&#xff0c;则还需要属性 p…

掌握电子邮件的艺术:使用 Mailbird 统一管理您的数字生活

在数字时代&#xff0c;电子邮件已成为我们沟通的骨干。无论是商务交流、家庭联络&#xff0c;还是订阅更新&#xff0c;我们几乎每天都在使用电子邮件。但随着账户数量的增加&#xff0c;管理这些账户变得日益复杂。如何有效地整合和优化您的电子邮件体验&#xff1f;Mailbird…