热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

深度学习之三:机器学习的策略

本文为Andrewng深度学习课程的第三部分,主要总结了机器学习的策略方法。1机器学习策略之一当我们的模型搭建出来之后,策略可以指引我们为了达到目标

本文为Andrew ng深度学习课程的第三部分,主要总结了机器学习的策略方法。

1 机器学习策略之一

当我们的模型搭建出来之后,策略可以指引我们为了达到目标,如何采取下一步行动。

1.1 正交化

当设计和训练一个监督学习的系统时,我们依赖下面四条正交的假定:

  1. 使模型在训练集上拟合,否则使用更大的神经网络或使用更好的优化算法。
  2. 使模型在开发集上拟合,否则使用正则化或使用更大的训练集
  3. 使模型在测试集上拟合,否则使用最大的开发集
  4. 使模型在现实中运行良好,否则重新规划开发集/测试集或调整损失函数

1.3 单一优化指标与决定性指标

在评估模型时,有时会有多个不同维度的评价参数。例如从算法角度有精确度,召回率。从应用角度上,算法可能对不同类型的客户或场景有不同的效果。

如果同时采用多个指标,就不能快速有效对比多个不同模型,可能会造成模型选择上的混乱。因此需要将不同标准归一化到单个量化评估指标,以方便比较不同模型。

另外的场景存在硬性指标要满足。比如在模型大小受限或运行时间受限的场景中,模型的大小或运行时间将成为接受模型的决定性因素。不满足这些条件的模型即使软性指标再好也无法接受。

1.4 训练/开发/测试集的分布

训练集/开发集/测试集的设置对大型团队的生产力影响十分巨大。

测试集是我们模型优化要瞄准的目标,因此强调开发集与测试集的数据要来自相同的分布,这样模型日常在开发集上的调优与测试集效果的目标是一致的,否则团队就会在模型优化与最终测试中南辕北辙,极大浪费团队时间。

1.5 改变开发集/测试或损失函数的情况

以一个推荐算法为例,假定有两个算法A,B。算法A以3%的错误率向用户推荐猫的图片,算法B以5%的错误率向用户推荐猫的图片。然而算法A却会向用户推荐黄色图片,而算法B却不会。从社会的层面算B是更合适的。

此种场景,说明损失函数定义是有问题的。需要调整损失函数,需要将损失函数定义为对黄色图片更敏感,通过对不同类图片增加权重以影响损失函数,例如增加黄色图片的权重:

Error:1w(i)i=1mw(i){ŷ iyi}Error:1∑w(i)∑i=1mw(i)L{y^i≠yi}

1.6 人类的表现

下图展示了机器学习的性能随时间的表现,与人类表现以及理论最优表现的关系。
此处输入图片的描述

一般的,当机器学习超过人的表现水平后,它就进步地很缓慢了,其中有一个重要的原因是人类的对于一些自然感知问题的表现水平几近于贝叶斯误差(Bayes Error)。

贝叶斯误差被定义为最优的可能误差,换句话说,就是任何从x到精确度y映射的函数都不可能超过这个值。

1.7 可避免偏差

人类的表现可以作为机器表现的基准,让我们得出是需要解决机器学习的结果是偏差大还是要解决方差大的问题。

分类\示例例1例2
人类误差1%7.5%
训练集误差8%8%
开发集误差10%10%
结论高偏差高方差

1.8 超越人类的表现

在某些领域中,机器学习可以明显的超越人类的表现,如在线广告,商品推荐,反信用欺诈等领域,由于这些领域存在大量的数据,机器算法可以从中发现人类难以发现的规律。而在另一些人类任务的领域,如语音识别,图片识别,自然语言处理等领域,机器学习与人类水平仍有一段距离。

2 机器学习策略二


2.1 误差分析

误差分析的目的是对错误分类的数据进行主成分分析,发现其中占比最大的错误,依次解决一类占比最大的错误。不建议优化占比较低的错误类型,因为其对提高模型的正确率帮助较低。

误差分析的作法是选择一个小数据集,运行模型,然后手工整理每一个错误预测的原因,然后统计出对模型准确率提升最有价值的原因,进行有针对性的解决。

2.2 关于错误标注的数据

通过误差分析,可以评估错误引入的主要原因。若标签错误占比较小,则可以忽略标签错误,否则则需要修复错误的标签。

2.3 快速进行实现与迭代

在收集到必要的数据,设置好开发集和测试集之后,尽量快速的构建一个可运行的简单系统,得到算法运行的结果,通过偏差和方差分析,理解算法的运行结果,对算法欠缺的地方进行针对性的研究。不鼓励一开始就建立复杂的系统。

2.5 不匹配数据的划分

对于获取的数据集,前面一直在强调训练、开发、测试集的来源都应该要是相同的。在无法达成这一要求下,对于不同来源的数据集,就要充分考虑如何将它们进行划分。

例如想要开发一款手机应用,能对用户上传的猫的图片进行识别。假如现在有1万张普通用户上传的猫的图片数据,这些图片的质量都不太好,有一些可能是模糊的,另外从网络上获取了20万张质量较好的猫的图片。

构建机器学习模型时,在开发集和测试集上,一定要反映出将来需要面临的数据。考虑到例子中这个机器学习模型主要将应用在识别用户拍摄的猫的图片上,在划分数据上,就可以将20万张网络获取和图片和5千张用户上传的图片共20.5万张图片作为训练集,剩下的5千张图片一半作开发集,一半作测试集。长远来看,这种分配方法比起随机打乱所有数据样本再进行分配性能要好。

在这种情况下,由于数据集的不匹配,后续如果进行方差/偏差分析,就很难找到问题的根源了,例如对于上面的例子,由于开发集包含的样本比训练集中的样本更加难以准确识别,开发集的错误率往往会大于训练集的错误率。为了解决这个问题,可以再定义一个训练-开发集,训练-开发集和训练集的来源相同,但是这部分并不参与训练。

2.6 分析不匹配的数据

有时候训练集和开发测试集数据的差异性,导致模型方差较大。这个时候需要尽量使得训练数据与真实应用影响更匹配。

对于语音识别问题,如果训练数据缺少背景的噪音,可以通过声音合成的方式,将噪音加入到训练数据中,使其更接近测试数据。

2.7 迁移学习

如果针对某个分类任务你只有一个很小的数据集,但有人公开了大量数据集训练好的类似任务的数据模型,则你可以使用迁移学习的方法。

在迁移学习中,通过冻结他人训练好模型的前面若干层,使用自己的数据只训练模型的最后一层。这样也可以取得较好的效果,因为他人模型中的低层的特征对于你的任务而言是有用的。

2.8 多任务学习

若现在有一个任务,它需要识别出图片中的车辆,行人,交通标识。一种作法是训练三个模型,分别用来识别图片的车辆,行人与交通标识。但这种作法较为耗时。另一种作法是训练单个模型,它可以对图片中的多种目标作出识别。

多任务学习的场景是在一组任务的训练过程中它们能共享低层的特征,且对于每个任务的训练数据有大量的重合数据。

2.9 端到端学习

以自然语言处理为例,非端到端的作法会划分为多步。例如处理文本,人工特征工程,以人工特征作输入进行学习。特征工程这一步常常需要专业的研究人员进行大量的分析工作。在数量集较小时,特征工程的效果还可以接受。
端到端的学习则去除了中间的步骤,直接以文本和标签为输入,训练神经网络在高维空间中学习文本与标签之间的映射关系。如果有大量监督数据集,则端到端的效果会迅速提升,甚至超过人工特征工程的效果。

端到端深度学习完全由数据驱动,不需要人工设计的组件,效率较好。其缺点是需要大量的数据,若数据量不满足则难以取得较好的效果。另外排除了对人工特征利用的可能性。


推荐阅读
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 第三届人工智能、网络与信息技术国际学术会议(AINIT 2022)
    20223rdInternationalSeminaronArtificialIntelligence,NetworkingandInformationTechnology第三届 ... [详细]
  • python绘制拟合回归散点图_机器学习之利用Python进行简单线性回归分析
    前言:在利用机器学习方法进行数据分析时经常要了解变量的相关性,有时还需要对变量进行回归分析。本文首先对人工智能机器学习深度学习、相关分析因果分析回归分析 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 中国学者实现 CNN 全程可视化,详尽展示每次卷积、ReLU 和池化过程 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 超分辨率技术的全球研究进展与应用现状综述
    本文综述了图像超分辨率(Super-Resolution, SR)技术在全球范围内的最新研究进展及其应用现状。超分辨率技术旨在从单幅或多幅低分辨率(Low-Resolution, LR)图像中恢复出高质量的高分辨率(High-Resolution, HR)图像。该技术在遥感、医疗成像、视频处理等多个领域展现出广泛的应用前景。文章详细分析了当前主流的超分辨率算法,包括基于传统方法和深度学习的方法,并探讨了其在实际应用中的优缺点及未来发展方向。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • AI TIME联合2021世界人工智能大会,共探图神经网络与认知智能前沿话题
    AI TIME携手2021世界人工智能大会,共同探讨图神经网络与认知智能的最新进展。自2018年在上海首次举办以来,WAIC已成为全球AI领域的年度盛会,吸引了众多专家学者和行业领袖参与。本次大会将聚焦图神经网络在复杂系统建模、知识图谱构建及认知智能应用等方面的技术突破和未来趋势。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 在本文中,我们将深入探讨斯坦福大学机器学习课程第二部分的核心内容与学习体会。文章不仅涵盖了正则化(Regularization)等关键概念,还结合实际案例分析了这些理论在实践中的应用,帮助读者更好地理解和掌握机器学习的高级技巧。此外,我们还将分享一些学习过程中遇到的挑战及解决方案,为后续学习者提供参考。 ... [详细]
author-avatar
gaoyizhen92
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有