当前位置: 首页 > article >正文

基于PyTorch的深度学习——机器学习1

监督学习是最常见的一种机器学习类型,其任务的特点就是给定学习目标,这个学习目标又称标签、标注或实际值等,整个学习过程就是围绕如何使预测与目标更接近而来的。近些年,随着深度学习的发展,分类除传统的二分类、多分类、多标签分类之外,也出现了一些新内容,如目标检测、目标识别、图像分割等监督学习的重要内容

半监督学习是监督学习与无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据,同时由部分使用标记数据进行模式识别。半监督学习目前正越来越受到人们的重视。自编码器是一种半监督学习,其生成的目标就是未经修改的输入。语言处理中根据给定文本中的词预测下一个词,也是半监督学习的例子。对抗生成式网络也是一种半监督学习,给定一些真图片或语音,然后通过对抗生成网络生成一些与真图片或是语音逼真的图形或语音。

强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物。强化学习主要包含4个元素:智能体(Agent)、环境状态、行动和奖励。强化学习的目标就是获得最多的累计奖励。强化学习把学习看作一个试探评价的过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给Agent,Agent根据强化信号和环境当前状态再选择下一个动作,选择的原则是使受到正强化(奖)的概率增大。选择的动作不仅影响立即强化值,也影响下一时刻的状态和最终的强化值。强化学习不同于监督学习,主要表现在教师信号上。强化学习中由环境提供的强化信号是Agent对所产生动作的好坏做的一种评价,而不是告诉Agent如何去产生正确的动作。由于外部环境只提供了很少的信息,所以Agent必须靠自身的经历进行学习。通过这种方式,Agent在行动一一被评价的环境中获得知识,改进行动方案以适应环境。AlphaGo Zero带有强化学习内容,它完全摒弃了人类知识,碾压了早期版本的AlphaGo,更显现了强化学习和深度学习结合的强大威力。

机器学习一般需要先定义问题、收集数据、探索数据、预处理数据,对数据处理后,接下来开始训练模型、评估模型,然后优化模型等步骤。

1.明确目标

在实施一个机器学习项目之初,定义需求、明确目标、了解要解决的问题以及目标涉及的范围等都非常重要,它们直接影响后续工作的质量甚至成败。1)明确目标,首先需要明确大方向,比如当前的需求是分类问题还是预测问题或聚类问题等。2)清楚大方向后,需要进一步明确目标的具体含义。如果是分类问题,还需要区分是二分类、多分类还是多标签分类;如果是预测问题,要区别是标量预测还是向量预测;其他方法类似。3)确定问题,明确目标有助于选择模型架构、损失函数及评估方法等。当然,明确目标还包含需要了解目标的可行性,因为并不是所有问题都可以通过机器学习来解决。

2.收集数据

标明确后,接下来就是了解数据。为解决这个问题,需要哪些数据?数据是否充分?哪些数据能获取?哪些无法获取?这些数据是否包含我们学习的一些规则等,都需要全面把握。接下来就是收集数据,数据可能涉及不同平台、不同系统、不同部分、不同形式等,对这些问题的了解有助于确定具体数据收集方案、实施步骤等。能收集的数据尽量实现自动化、程序化。

3.数据探索与预处理

收集到的数据,不一定规范和完整,这就需要对数据进行初步分析或探索,然后根据探索结果与问题目标,确定数据预处理方案。对数据探索包括了解数据的大致结构、数据量、各特征的统计信息、整个数据质量情况、数据的分布情况等。为了更好地体现数据分布情况,数据可视化是一个不错的方法。通过对数据探索后,可能会发现不少问题:如存在缺失数据、数据不规范、数据分布不均衡、存在奇异数据、有很多非数值数据、存在很多无关或不重要的数据等。这些问题的存在直接影响数据质量,为此,数据预处理工作就应该是接下来的重点工作。数据预处理是机器学习过程中必不可少的重要步骤,特别是在生产环境中的机器学习,数据往往是原始、未加工和未处理过的,数据预处理常常占据整个机器学习过程的大部分时间。数据预处理过程中,一般包括数据清理、数据转换、规范数据、特征选择等工作。

4.选择模型与损失函数

数据准备好以后,接下来就是根据目标选择模型。模型选择上可以先用一个简单、自身比较熟悉的方法来实现,用这个方法开发一个原型或比基准更好一点的模型。通过这个简单模型有助于读者快速了解整个项目的主要内容。

• 了解整个项目的可行性、关键点。

• 了解数据质量、数据是否充分等。

• 为读者开发一个更好的模型奠定基础。在模型选择时,一般不存在某种对任何情况都表现很好的算法(这种现象又称为“没有免费的午餐”​)​。因此在实际选择时,一般会选用几种不同的方法来训练模型,然后比较它们的性能,从中选择最优的那个。模型选择后,还需要考虑以下几个关键点:• 最后一层是否需要添加softmax或sigmoid激活层。

• 选择合适损失函数。

• 选择合适的优化器。

5.评估及优化模型

模型确定后,还需要确定一种评估模型性能的方法,即评估方法。评估方法大致有以下3种。• 留出法(Holdout):留出法的步骤相对简单,直接将数据集划分为两个互斥的集合,其中一个集合作为训练集,另一个作为测试集。在训练集上训练出模型后,用测试集来评估测试误差,作为泛化误差的估计。使用留出法,还可以优化出一种更好的方法,就是把数据分成3部分:训练数据集、验证数据集、测试数据集。训练数据集用来训练模型,验证数据集用来调优超参数,测试集则用来测试模型的泛化能力。数据量较大时可采用这种方法。• K折交叉验证:不重复地随机将训练数据集划分为k个,其中k-1个用于模型训练,剩余的一个用于测试。• 重复的K折交叉验证:当数据量比较小,数据分布不很均匀时可以采用这种方法。使用训练数据构建模型后,通常使用测试数据对模型进行测试,测试模型对新数据的适应情况。如果对模型的测试结果满意,就可以用此模型对以后的数据进行预测;如果测试结果不满意,可以优化模型。优化的方法很多,其中网格搜索参数是一种有效方法,当然我们也可以采用手工调节参数等方法。如果出现过拟合,尤其是回归类的问题,可以考虑正则化的方法来降低模型的泛化误差


http://www.kler.cn/a/581184.html

相关文章:

  • top查看cpu占用进程100% xmrigMiner进程
  • 使用Python爬虫根据关键词获取衣联网商品列表:实战指南
  • SpringMVC-全局异常处理
  • SQL语句的ON和Where关键词生效时机或作用场景
  • OTP单片机调试工具之—应广单片机ADC调试案例
  • AI系统迎来革命性升级:KV缓存优化的背后
  • 【three.js】三维交互核心技术 - 射线检测与物理级拖拽实现
  • Linux网络编程——简单的TCP网络通信
  • 碳中和小程序:助力用户记录低碳行为,推动环保生活
  • Flutter 基础组件 Scaffold 详解
  • LabVIEW非线性拟合实现正弦波参数提取
  • 通过数据库网格架构构建现代分布式数据系统
  • 基于springboot+vue的佳途旅行分享预约平台
  • 第27周JavaSpringboot电商进阶开发 1.企业级用户验证
  • 《Python基础教程》附录A笔记:简明教程
  • 对Docker的一些基本认识
  • 用ABBYY PDF Transformer+对PDF的创建编辑转换和注释等操作
  • 埋点PV和UV的含义
  • PAT乙级(1101 B是A的多少倍)C语言解析
  • 五、非云原生监控mysql-Exporter