【机器学习之路】开山篇 | 机器学习介绍及其类别和概念阐述

举报
计算机魔术师 发表于 2023/08/14 11:04:54 2023/08/14
【摘要】 🤵‍♂️ 个人主页: @计算机魔术师👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 机器学习之路 系列 (一) 作者: 计算机魔术师 版本: 1.0 ( 2022.2.25) 注释:文章会不定时更新补充@toc 前言本篇文章是该专栏的首篇文章,本专栏对书籍《机器学习实战》、《机器学习》(瓜书)进行内容核心总结和扩展,旨在打造稳扎稳打的基础。本专栏涵盖一下主题:...

在这里插入图片描述

🤵‍♂️ 个人主页: @计算机魔术师
👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。

机器学习之路 系列 (一)
作者: 计算机魔术师
版本: 1.0 ( 2022.2.25) 注释:文章会不定时更新补充

@toc

前言

本篇文章是该专栏的首篇文章,本专栏对书籍《机器学习实战》、《机器学习》(瓜书)进行内容核心总结和扩展,旨在打造稳扎稳打的基础。

本专栏涵盖一下主题:

  1. 机器学习系统主要类别及其基本概念
  2. 机器学习项目中的步骤
  3. 将数据与模型拟合学习
  4. 优化成本函数
  5. 数据预处理(处理、清洁、数据准备…)
  6. 特征工程(选择和工程化特征)
  7. 选择模型并用交叉验证调整超参数
  8. 欠拟合和过拟合的挑战(偏差/方差的权衡)
  9. 常见的学习算法:线性与多项式回归、逻辑回归等
  10. 降维度(“维度的诅咒”)
  11. 无监督学习技术(聚类、异常检测…)

首先本篇文章对机器学习进行一个大概介绍,从其发展历程到其使用进行一个大致的阐述,并对主要类别和基本概念进行总结

一、机器学习概览

机器学习其实在很早就已经存在,不过第一个影响数亿人的机器学习应用才变成主流,它就是垃圾邮件过滤器。后来也出现了数以百计的机器学习应用在人们的生活中。

机器学习有着一个比较工程化的定义:
一个计算机程序利用经验E来学习任务T,性能是P,如果针对任务T的性能随着经验E不断增长,则称为机器学习

而其中特别的,使用机器学习方法挖掘大量数据来帮助发现不太明显的规律,就叫做数据挖掘。

机器学习这片大陆主要地区为下:

  1. 监督学习 | 非监督学习 | 半监督学习 | 强化学习 (是否在人类监督下训练)
  2. 在线学习 | 批量学习 | 迭代学习 | 增量学习(是否可以动态的增量学习)
  3. 基于实例学习 | 基于模型学习 (是简单的根据新的数据点和已知数据点进行匹配,还是进行模式监测建立模型)

1.1 有监督学习和无监督学习

根据训练期间所接受的监督数量和类别分为以下四个主要类别:

监督学习 | 非监督学习 | 半监督学习 | 强化学习

1.1.1 监督学习

在有监督学习中,提供给算法包含对应所需解决方案的训练集称为标签。例如邮件垃圾过滤器。
另一个是通过给定对应的特征(房子位置,大小)来预测一个目标数值(房价),这种任务任务称为回归,这需要大量的数据,包括他们的标签(即房价),其中回归算法也可以用与分类任务,二者的界限有时有点模糊,比如逻辑回归被用于分类,因为它可以输出某一个给定类别的概率。

这里是一些比较重要的有监督学习

  • K - 近邻算法
  • 线性回归
  • 逻辑回归
  • 支持向量机(SVM)
  • 决策树和随机森林
  • 神经网络(也可以是无监督或半监督)

1.1.2 无监督学习

顾名思义,其数据集都是未经标记的,系统需要自己学习。
这里是一些比较重要的无监督学习

  • 聚类算法
    • K-均值算法
    • DBSCAN
    • 分层聚类分析(HCA)
  • 异常监测和新颖性监测
    • 单类SVM
    • 孤立森林
  • 可视化和降维
    • 主成分分析(PCA)
    • 核主成分分析
    • 局部线性嵌入(LLE)
    • t-分布随机近邻嵌入
  • 关联规则学习
    • Apriori
    • Eclat

1.1.3 半监督学习

由于通常给数据做标记是非常耗时和昂贵的,会有很多未标记少量以标记的数据,而能够处理部分已标记的数据,这被称为半监督学习。大多数半监督都是无监督和有监督算法的结合。

1.1.4 强化学习

强化学习可以观察环境,做出选择,执行动作,获得对应奖励或惩罚,它必须要自行学习什么是最好的策略,从而随着时间推移获得最大的回报。其中ALphaGo项目便是一个好示例,打败围棋冠军。、

1.2 批量学习和在线学习

1.2.1 在线学习

在线学习意思是可以循环渐进的给系统提供训练数据(可以是单个实例,也可以小批量),模型根据这个数据反馈可以快速进行调整,并不断地更新模型参数,直到收敛为止。在线学习适合于样本不停变化的场景,使其能够适应新数据并提供实时的预测或决策。在线学习常用于需要处理流数据或实时数据的场景,例如金融交易、广告推荐、智能监控等。如果计算资源有限,在线学习学习了新的数据实例,便可以将其丢掉(除非需要回滚状态)

1.2.2 增量学习

增量学习是指在训练数据集发生变化时,可以通过在原有模型基础上进行微调或增加新的训练数据,来更新和改进现有模型。这种方法可以帮助模型适应新的数据和场景,同时减少重新训练整个模型的时间和资源开销。

增量学习更侧重于离线的批量更新,适用于批量数据的更新和训练;而在线学习更侧重于实时更新,适用于实时数据的处理和训练。

1.2.3 核外学习

核外算法可以处理计算机主内存无法应对的大量数据。 它将数据分割成小批量,然后使用在线学习技术从这些小批量中学习

如果面对着超级大的数据集,超过了一台计算机的主存的数据,在线学习同样适用,算法每次只加载部分数据,并针对此数据训练,不断重复直到完成所有数据的训练,特别的是:核外学习是离线完成的,不在实时系统上,所以避免产生误解,视为核外学习。 核外学习算法通常是基于迭代的,其中每个迭代处理一个或多个数据块。在每个迭代中,算法使用梯度下降等方法更新模型参数,并使用新的参数在下一个迭代中处理新的数据块。

常见的核外学习算法包括

  • 随机梯度下降(Stochastic Gradient Descent,SGD)
  • 均值移动(Moving Averages,MA)
  • 均值随机梯度下降(Stochastic Gradient Descent with Averaging,SGDA)
  • 自适应随机梯度下降(Adaptive Gradient Descent,AdaGrad)

1.2.4 批量学习

在批量学习中,系统无法进行增量学习——即必须使用所有可用数据进行训练。需要大量计算资源和时间,所以一般都是离线进行的,如果希望批量学习系统可以学习新数据(比如新型垃圾邮件),就需要在完整的数据(旧和新的一起)训练出新版本,在停用旧系统,上线新系统。不过幸运的是,整个训练、评估、启动系统过程都可以实现自动化,缺点是需要很长时间,如果是面对预测股票价格,那么需要一个更具响应力的解决方案, 显然就是上文所说的在线学习。

1.3 基于实例的学习与基于模型的学习

1.3.1 基于实例的学习

我们知道,平日我们最常见的学习方法便是死记硬背,如果以这种方式创建一个垃圾邮箱过滤器,那么他只会标记完全一样的垃圾邮件,或者根据相似度度量二者相似性(比如单词相同数), 最常见的一个基于实例的学习便是 K–近邻回归(如:根据老师三个邮件的单词次数平均值)

1.3.2 基于模型的学习

从一组数据中训练,构建可以泛化的模型,比如为呈线性相关的数据集选择线性模型,而要拟合自然需要对应的参数,而参数就是通过训练所得到,如最小二乘法,梯度下降算法。

简而言之:

  • 研究数据
  • 数据预处理
  • 数据可视化分析
  • 选择模型
  • 训练模型
  • 预测新实例

以上就是一个典型的机器学习项目流程

以上你已经知道什么是真正的机器学习,为何而用,常见类别有哪些,典型的项目工作流程,下一文我们将会聊聊学习过程会遇到哪些阻碍做出准确预测的问题。

	  🤞到这里,如果还有什么疑问🤞
🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
 	 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。