♂️ 个人主页: @计算机魔术师
作者简介:CSDN内容合伙人,全栈领域优质创作者。
本篇文章是该专栏的首篇文章,本专栏对书籍《机器学习实战》、《机器学习》(瓜书)进行内容核心总结和扩展,旨在打造稳扎稳打的基础。
本专栏涵盖一下主题:
首先本篇文章对机器学习进行一个大概介绍,从其发展历程到其使用进行一个大致的阐述,并对主要类别和基本概念进行总结
机器学习其实在很早就已经存在,不过第一个影响数亿人的机器学习应用才变成主流,它就是垃圾邮件过滤器。后来也出现了数以百计的机器学习应用在人们的生活中。
机器学习有着一个比较工程化的定义:
一个计算机程序利用经验E来学习任务T,性能是P,如果针对任务T的性能随着经验E不断增长,则称为机器学习
而其中特别的,使用机器学习方法挖掘大量数据来帮助发现不太明显的规律,就叫做数据挖掘。
机器学习这片大陆主要地区为下:
根据训练期间所接受的监督数量和类别分为以下四个主要类别:
监督学习 | 非监督学习 | 半监督学习 | 强化学习
在有监督学习中,提供给算法包含对应所需解决方案的训练集称为标签。例如邮件垃圾过滤器。
另一个是通过给定对应的特征(房子位置,大小)来预测一个目标数值(房价),这种任务任务称为回归,这需要大量的数据,包括他们的标签(即房价),其中回归算法也可以用与分类任务,二者的界限有时有点模糊,比如逻辑回归被用于分类,因为它可以输出某一个给定类别的概率。
这里是一些比较重要的有监督学习
顾名思义,其数据集都是未经标记的,系统需要自己学习。
这里是一些比较重要的无监督学习
由于通常给数据做标记是非常耗时和昂贵的,会有很多未标记少量以标记的数据,而能够处理部分已标记的数据,这被称为半监督学习。大多数半监督都是无监督和有监督算法的结合。
强化学习可以观察环境,做出选择,执行动作,获得对应奖励或惩罚,它必须要自行学习什么是最好的策略,从而随着时间推移获得最大的回报。其中ALphaGo项目便是一个好示例,打败围棋冠军。、
在线学习意思是可以循环渐进的给系统提供训练数据(可以是单个实例,也可以小批量),模型根据这个数据反馈可以快速进行调整,并不断地更新模型参数,直到收敛为止。在线学习适合于样本不停变化的场景,使其能够适应新数据并提供实时的预测或决策。在线学习常用于需要处理流数据或实时数据的场景,例如金融交易、广告推荐、智能监控等。如果计算资源有限,在线学习学习了新的数据实例,便可以将其丢掉(除非需要回滚状态)
增量学习是指在训练数据集发生变化时,可以通过在原有模型基础上进行微调或增加新的训练数据,来更新和改进现有模型。这种方法可以帮助模型适应新的数据和场景,同时减少重新训练整个模型的时间和资源开销。
增量学习更侧重于离线的批量更新,适用于批量数据的更新和训练;而在线学习更侧重于实时更新,适用于实时数据的处理和训练。
核外算法可以处理计算机主内存无法应对的大量数据。 它将数据分割成小批量,然后使用在线学习技术从这些小批量中学习
如果面对着超级大的数据集,超过了一台计算机的主存的数据,在线学习同样适用,算法每次只加载部分数据,并针对此数据训练,不断重复直到完成所有数据的训练,特别的是:核外学习是离线完成的,不在实时系统上,所以避免产生误解,视为核外学习。 核外学习算法通常是基于迭代的,其中每个迭代处理一个或多个数据块。在每个迭代中,算法使用梯度下降等方法更新模型参数,并使用新的参数在下一个迭代中处理新的数据块。
常见的核外学习算法包括
在批量学习中,系统无法进行增量学习——即必须使用所有可用数据进行训练。需要大量计算资源和时间,所以一般都是离线进行的,如果希望批量学习系统可以学习新数据(比如新型垃圾邮件),就需要在完整的数据(旧和新的一起)训练出新版本,在停用旧系统,上线新系统。不过幸运的是,整个训练、评估、启动系统过程都可以实现自动化,缺点是需要很长时间,如果是面对预测股票价格,那么需要一个更具响应力的解决方案, 显然就是上文所说的在线学习。
我们知道,平日我们最常见的学习方法便是死记硬背,如果以这种方式创建一个垃圾邮箱过滤器,那么他只会标记完全一样的垃圾邮件,或者根据相似度度量二者相似性(比如单词相同数), 最常见的一个基于实例的学习便是 K–近邻回归(如:根据老师三个邮件的单词次数平均值)
从一组数据中训练,构建可以泛化的模型,比如为呈线性相关的数据集选择线性模型,而要拟合自然需要对应的参数,而参数就是通过训练所得到,如最小二乘法,梯度下降算法。
简而言之:
以上就是一个典型的机器学习项目流程
以上你已经知道什么是真正的机器学习,为何而用,常见类别有哪些,典型的项目工作流程,下一文我们将会聊聊学习过程会遇到哪些阻碍做出准确预测的问题。
到这里,如果还有什么疑问
欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!
如果对你有帮助,你的赞是对博主最大的支持!!