【机器学习300问】60、图像分类任务中,训练数据不足会带来什么问题?如何缓解图像数据不足带来的问题?

        在机器学习中,绝大部分模型都需要大量的数据进行训练和学习(包括有监督学习和无监督学习),然而在实际应用中经常会遇到训练数据不足的问题。就比如图像分类这样的计算机视觉任务,确实依赖于大规模且多样化的训练数据以确保模型能够有效地泛化到未见过的实例上。然而,实践中遭遇训练数据不足是很常见的挑战。当训练一个图像分类模型时,如果训练样本比较少,该如何处理呢?

一、训练数据不足会造成什么问题?

(1)过拟合

        图像分类任务上,训练数据不足带来的问题主要表现在过拟合方面。处理策略大致可以归纳为两大类:

  • 依赖模型的方法:其核心在于采取降低过拟合风险的策略。这包括简化模型结构(例如,将复杂的非线性模型简化为更易处理的线性模型)、引入正则化项以缩小模型假设空间(如采用L1或L2正则化技术)、运用集成学习方法以及调整Dropout超参数等手段。
  • 基于数据的方法:主要通过数据增强技术来实施。这类方法依据特定的先验知识,在保留关键信息的同时对原始数据进行合适的转换,旨在扩展数据集并提高模型的泛化能力。

(2)欠拟合

        在图像分类任务上,训练数据不足也有可能带来欠拟合的问题。欠拟合是指模型的复杂度不足以捕捉到数据集中的所有重要特征和模式,导致模型在训练集上的表现也不理想,更不用说在未见过的测试集上了。当训练数据不足时,模型可能无法从有限的样本中学习到足够的信息来概括整个数据分布,表现为模型的泛化能力较弱。

        可以通过上面的两种思路来尝试缓解欠拟合:

  • 依赖模型的方法:使用更大规模或者更深层次的神经网络结构,使模型具有更强的学习能力来捕捉数据中的复杂关系。或使用迁移学习、集成学习的方法。
  • 基于数据的方法:数据增强技术,对现有的少量训练数据进行各种变换,例如旋转、翻转、裁剪、缩放、颜色抖动等,以模拟更多的训练样本。

        关于跟多过拟合与欠拟合的概念,可以看看我之前的文章:
【机器学习300问】27、高偏差与高方差是什么?他们对评估机器学习模型起何作用?icon-default.png?t=N7T8http://t.csdnimg.cn/EalJu

二、如何解决数据不足带来的问题?

        这里有很多方法,我之前的文章已经讲过了,我在本文中拓展将一下图像的数据增强技术。 

(1)迁移学习

         利用预训练的深度学习模型,保留其底层特征提取层,并在顶部添加新的全连接层或卷积层,仅用少量标注图像对该部分进行微调。

【机器学习300问】37、什么是迁移学习?icon-default.png?t=N7T8http://t.csdnimg.cn/Q7aQQ

(2)欠采样/过采样技术

         对于类别不平衡问题,可以通过欠采样冗余类别或过采样少数类别的方法来平衡数据分布。

【机器学习300问】31、不平衡数据集如何进行机器学习?icon-default.png?t=N7T8http://t.csdnimg.cn/f8SL8

(3)数据增强

        通过对现有的图像数据进行各种变换,如翻转、旋转、裁剪、缩放、颜色抖动、平移等操作,生成新的训练样本,从而扩大训练集的大小而不引入额外的真实数据。

【机器学习300问】29、训练数据少该怎么办?数据增强icon-default.png?t=N7T8http://t.csdnimg.cn/uhLP5

① 色彩空间转换

        比如手势识别中,如果图像训练数据过少,可以采取颜色变换的方式增加图像。图像处理中常见的颜色空间分布有 RGB、HSV 和 YCrCb 三种空间模型。比较这三种空间模型后发现 RGB 空间由于亮度信息存在三个颜色通道中,并不相互独立,难以从 RGB 颜色空间中有效提取出手势的肤色信息,而 YCrCb 和 HSV 颜色空间都具有亮度与色度相分离的特点,并且肤色范围紧密,不易受光照后其他物体的干扰,相对来说更适用提取手势的肤色信息。RGB 与 YCrCb 空间转化的计算公式如下所示。

        这里的R、G、B代表原始RGB颜色空间中的红色、绿色和蓝色通道值,Y是计算出的亮度值,Cb和Cr是对应于蓝色和红色的色度分量。公式中加上的128是为了将色度分量的取值范围从-127至128调整到0至255的标准8位颜色值区间。通过这种转换后,可以根据Cr和Cb的值来判断像素是否属于肤色区域。

② 二值化

        图像的二值化处理是将图像上所有像素点的灰度值设置为 0 或者 255 过程,使得整个图像呈现出明显的黑白效果,通常选取一个合适的阈值,当图像中像素值大于或者等于阈值时判定为前景,将其值设为 255,反之则判定为背景,将其值设为 0。图像的二值化使得图像变得简单明了,通过前景和背景的像素值重置可以有效降低背景噪声,在一定程度增强了特征。

        下面介绍一个常用的选取合适阈值的方法——最大类间方差法(也称Otsu)。其基本思想是将图像看做前景目标和背景环境两个部分组成,用两部分像素值的方差来估计前景目标和背景环境之间的差别,通过像素划分各部分出现的概率和平均灰度级来计算两部分的方差,得到使得前景目标和环境背景的类间方差达到最大的灰度级值默认为最佳阈值。最佳阈值的标准判别公式如下所示。

 \sigma_{\text{b}}^2(t) = \omega_0(t) \omega_1(t) [\mu_0(t) - \mu_1(t)]^2

        其中,t是当前的阈值。\omega_0(t)\omega_1(t)分别是背景(阈值以下)和前景(阈值以上)的像素占比。\mu_0(t)\mu_1(t)分别是背景和前景的像素平均灰度值。\sigma_{\text{b}}^2(t)表示类间方差,即背景与前景之间的差异。Otsu的方法就是通过遍历全部可能的t值,找到最大化\sigma_{\text{b}}^2(t)的那个t值,即最佳阈值。在实践中,最大类间方差法是一种高效且自动的阈值选择方法,尤其在物体识别和图像分割中被广泛使用。

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

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

相关文章

出门一笑, “栈” 落江横 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

代码随想录算法训练营Day46|LC139 单词拆分

一句话总结:完全背包! 原题链接:139 单词拆分 动态规划之完全背包五部曲: 确定dp数组与下标含义:表示字符串长度为i时,dp[i] true 的话,可以拆分为一个或多个在字典中出现的单词。确定递归公…

K8S基于containerd做容器从harbor拉取镜

实现创建pod时,通过指定harbor仓库里的镜像来运行pod 检查:K8S是不是用containerd做容器运行时,以及containerd的版本是不是小于1.6.22 kubectl get nodes -owide1、如果containerd小于 1.6.22,需要先升级containerd 先卸载旧的…

RabbitMQ3.13.x之六_RabbitMQ使用场景

RabbitMQ3.13.x之六_RabbitMQ使用场景 文章目录 RabbitMQ3.13.x之六_RabbitMQ使用场景1. 为什么选择 RabbitMQ?1. 可互操作2. 灵活3. 可靠 2. 常见用户案例1. 服务解耦2. 远程过程调用3. 流处理4. 物联网 1. 为什么选择 RabbitMQ? RabbitMQ 是一个可靠且…

dm8 备份与恢复

dm8 备份与恢复 基础环境 操作系统:Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本:DM Database Server 64 V8 架构:单实例1 设置bak_path路径 --创建备份文件存放目录 su - dmdba mkdir -p /dm8/backup--修改dm.ini 文件…

【教程】宝塔default.db占用空间几十g解决方法|宝塔占用磁盘空间特别大解决方法|宝塔磁盘被占满怎么清理

目录 一、前言二、排查问题三、解决方法 一、前言 用过宝塔创建网站,大家应该都非常熟悉,但是用随着用的时间越来越多,宝塔所占用的空间也越来越多,不停的加大数据盘都没有用,我原先买了30G够用了,随着时间…

docker-ce部署

目录 1. 更新软件包列表 2. 安装必要的软件包,以允许 apt 使用 HTTPS 3. 添加 Docker 的官方 GPG 密钥 4. 设置 Docker CE 的稳定存储库 5. 再次更新包索引以及安装 Docker CE 6. 验证 Docker CE 是否正确安装 7. 将当前用户添加到 docker 用户组,…

智慧牧场数据 7

1 体征数据采集 需求:获取奶牛记步信息 三轴加速度测量:加速度测量计反应的加速向量与当前的受力方向是相反,单位为g 陀螺仪,是用来测量角速度的,单位为度每秒(deg/s) 2000deg/s 相当于1秒钟多少转 1.1…

苹果终止电车项目后大裁员,押注家用机器人,这会是Next Big Thing吗?

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 新的出路,苹果能让我们耳目一新吗? 苹果公司压力山大,何以…

彩虹聚合DNS管理系统v1.0全新发布

聚合DNS管理系统(https://github.com/netcccyun/dnsmgr)可以实现在一个网站内管理多个平台的域名解析,目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、CloudFlare。本系统支持多用户,每个用户可分配不同的…

【JSON2WEB】 12基于Amis-admin的动态导航菜单树

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…

Day:004(1) | Python爬虫:高效数据抓取的编程技术(数据解析)

数据解析-正则表达式 在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样 把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 正则表达式是对字符串操作的一种…

RabbitMQ3.13.x之七_RabbitMQ消息队列模型

RabbitMQ3.13.x之七_RabbitMQ消息队列模型 文章目录 RabbitMQ3.13.x之七_RabbitMQ消息队列模型1. RabbitMQ消息队列模型1. 简单队列2. Work Queues(工作队列)3. Publish/Subscribe(发布/订阅)4. Routing(路由)5. Topics(主题)6. RPC(远程过程调用)7. Publisher Confirms(发布者…

不同设备使用同一个Git账号

想要在公司和家里的电脑上用同一个git账号来pull, push代码 1. 查看原设备的用户名和邮箱 第1种方法, 依次输入 git config user.name git config user.email第2种方法, 输入 cat ~/.gitconfig2. 配置新设备的用户名和邮箱 用户名和邮箱与原设备保持…

vue结合Elempent-Plus/UI穿梭框更改宽度以及悬浮文本显示

由于分辨率不同会导致文本内容显示不全,如下所示: 因此需要 1、悬浮到对应行上出现悬浮信息 实现代码如下所示: 这里只演示Vue3版本代码,Vue2版本不再演示 区别就在插槽使用上Vue3使用:#default“”;Vu…

网络安全教学

如今,组织的信息系统和数据面临着许多威胁。而人们了解网络安全的所有基本要素是应对这些威胁的第一步。 网络安全是确保信息完整性、机密性和可用性(ICA)的做法。它代表了应对硬盘故障、断电事故,以及来自黑客或竞争对手攻击等防御和恢复能力。而后者包…

clickhouse MPPDB数据库--新特性使用示例

clickhouse 新特性: 从clickhouse 22.3至最新的版本24.3.2.23,clickhouse在快速发展中,每个版本都增加了一些新的特性,在数据写入、查询方面都有性能加速。 本文根据clickhouse blog中的clickhouse release blog中,学…

C++数据结构与算法——二叉树的修改与构造

C第二阶段——数据结构和算法,之前学过一点点数据结构,当时是基于Python来学习的,现在基于C查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更…

Redis Desktop Manager可视化工具

可视化工具 Redis https://www.alipan.com/s/uHSbg14XmsL 提取码: 38cl 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 官网下载(不推荐):http…

SALESFORCE MODEL 简单记录

SALESFORCE MODEL 简单记录,在以下地址可以看到一些salesforce的模型资料 https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_list.htmhttps://architect.salesforce.com/diagrams#framework