机器学习概览秋雨秋雨秋雨

机器学习是让计算机具有学习的能力,无需明确的编程——亚瑟·萨缪尔,1959

工程概念:

计算机程序利用经验E学习任务T,性能是P,如果针对任务T的性能P随着经验E不断增长,则称为机器学习。——汤姆·米切尔,1997

机器学习系统的类型

机器学习有多种类型,可以根据以下规则进行分类:

监督/非监督学习

机器学习可以根据训练时监督的量和类型进行分类。主要有四类:监督、非监督、半监督和强化学习

监督学习

在监督学习中,用来训练算法的训练数据包含了答案,称为标签。

图1用于监督学习(比如垃圾邮件分类)的加了标签的训练集

一个典型的监督学习就是分类,垃圾邮件过滤器就是一个很好的例子:用很多带有归类(垃圾邮件和普通邮件)的邮件样本进行训练,过滤器还能用新邮件进行分类。

另一个典型数值是预测目标数值,例如给出一些特征(里程数、车程、品牌等等)称为预测值,来预测一辆汽车的价格。这类任务称为回归,要训练在这个系统,你需要给出大量汽车样本,包括它们的预测值和标签(即它们的价格)

图2回归

注意:一些回归算法也可以用来进行分类,例如,逻辑回归常用来进行分类,它可以生成一个归属某一类的可能性的值。

下面是一些重要的监督性学习算法:

非监督学习

训练数据没有加标签。

图3非监督学习的一个不加标签的训练集

下面是一些最重要的非监督学习算法:

例如,假设你有一份关于你的博客访客的大量数据。你想运行一个聚类算法,检测相似访客的分组(图1-8)。你不会告诉算法某个访客属于哪一类:它会自己找出关系,无需帮助。例如,算法可能注意到40%的访客是喜欢漫画书的男性,通常是晚上访问,20%是科幻爱好者,他们是在周末访问等等。如果你使用层次聚类分析,它可能还会细分每个分组为更小的组。这可以帮助你为每个分组定位博文。

图4聚类

可视化算法也是极佳的非监督学习案例:给算法大量复杂的且不加标签的数据,算法输出数据的2D或3D图像(图1-9)。算法会试图保留数据的结构(即尝试保留输入的独立聚类,避免在图像中重叠),这样就可以明白数据是如何组织起来的,也许还能发现隐藏的规律。

图5t-SNE可视化案例,突出了聚类(注:注意动物是与汽车分开的,马和鹿很近、与鸟距离远,以此类推)

注意:在用训练集训练机器学习算法(比如监督学习算法)时,最好对训练集进行降维。这样可以运行的更快,占用的硬盘和内存空间更少,有些情况下性能也更好。

另一个非常重要的非监督任务时异常检测(anomalydetection)——例如,检测异常的信用卡转账以防欺诈,检测制造缺陷,或者在训练之前自动从训练集中去除异常值,异常监测的系统是用正常值训练的,当它碰到一个新实例,可以判断这个新实例是正常值还是异常值。

图6异常检测

最后,另一个很重要的非监督学习是关联规则学习,他的目标是挖掘大量数据以发现属性间有趣的关系。

例如,假设你拥有一个超市。在销售日志上运行关联规则,可能发现买了烧烤酱和薯片的人也会买牛排。因此,你可以将这些商品放在一起。

半监督学习

一些算法可以处理部分带标签的训练数据,通常是大量不带标签数据加上少量带标签数据,这种称为半监督学习。

一些图片存储服务,比如GooglePhotos,是半监督学习的好例子。一旦你上传了所有家庭相片,它就能自动识别到人物A出现在了相片1、5、11中,另一个人B出现在了相片2、5、7中。这是算法的非监督部分(聚类)。现在系统需要的就是你告诉它这两个人是谁。只要给每个人一个标签,算法就可以命名每张照片中的每个人,特别适合搜索照片。

图7半监督学习

多数半监督学习算法是半监督学习和监督学习的结合。例如,深度信念网络(deepbeliefnetworks)是基于被称为互相叠加的受限玻尔兹曼机(restrictedBoltzmannmachines,RBM)的非监督组件。RBM是先用非监督方法进行训练,再用监督学习方法对整个系统进行微调。

强化学习

强化学习非常不同。学习系统在这里称为智能体,可以对环境进行观察、选择和执行动作(负奖励是惩罚),然后它必须自己学习哪个是最佳方法(称为策略),已获得长久的最大奖励。策略决定了智能体在给定情况下应采取的行动。

图8强化学习

例如,许多机器人运行强化学习算法以学习如何行走。DeepMind的AlphaGo也是强化学习的例子:它在2016年三月击败了世界围棋冠军李世石(译者注:2017年五月,AlphaGo又击败了世界排名第一的柯洁)。它是通过分析数百万盘棋局学习制胜策略,然后自己和自己下棋。要注意,在比赛中机器学习是关闭的;AlphaGo只是使用它学会的策略。

批量和在线学习

另一个用来分类机器学习的准则是,它是否能从导入的数据流进行持续学习。

批量学习

如果你想让一个批量学习系统明白新数据(例如垃圾邮件的新类型),就需要从头训练一个系统的新版本,使用全部数据集(不仅有新数据也有老数据),然后停掉老系统,换上新系统。

幸运的是,训练、评估、部署一套机器学习的系统的整个过程可以自动进行,所以即便是批量学习也可以适应改变。只要有需要,就可以方便地更新数据、训练一个新版本。

另外,用全部数据训练需要大量计算资源(CPU、内存空间、磁盘空间、磁盘I/O、网络I/O等等)。如果你有大量数据,并让系统每天自动从头开始训练,就会开销很大。如果数据量巨大,甚至无法使用批量学习算法。

最后,如果你的系统需要自动学习,但是资源有限(比如,一台智能手机或火星车),携带大量训练数据、每天花费数小时的大量资源进行训练是不实际的。

幸运的是,对于上面这些情况,还有一个更佳的方案可以进行持续学习。

在线学习

在在线学习中,用数据实例可以持续进行训练,可以一次一个或一次几个实例(称为小批量)。每个学习步骤都很快且廉价,系统可以动态学习收到的新数据。

图9在线学习

在线学习很适合系统接收连续流的数据(比如股票价格),且需要自动对改变做出调整,如果计算资源有限,在线学习是一个不错的方案:一旦在线学习系统学习了新的数据实例,它就不再需要这些数据了,所以扔掉这些数据(除非你想滚回到之前的一个状态,再次使用数据)。这样可以节省大量的空间。

在线学习算法也适合于超大数据集(一台计算机不足以存储它)上训练系统(这称作核外学习,out-of-corelearning)。算法每次只加载部分数据,用这些数据进行训练,然后重复这个过程,直到使用完所有的数据。

警告:这个整个过程通常是离线完成的(即,不在部署的系统上),所以在线学习这个名字会让人疑惑。可以把它想成持续学习。

在线学习系统的一个重要参数是,它们可以多快地适应数据的改变:这被称为学习速率。如果你设定一个高学习速率,系统就可以快速适应新数据,但是也会快速忘记老数据(你可不想让垃圾邮件过滤器只标记最新的垃圾邮件种类)。相反的,如果你设定的学习速率低,系统的惰性就会强:即,它学的更慢,但对新数据中的噪声或没有代表性的数据点结果不那么敏感。

在线学习的挑战之一是,如果坏数据被用来进行训练,系统的性能就会逐渐下滑。如果这是一个部署的系统,用户就会注意到。例如,坏数据可能来自失灵的传感器或机器人,或某人向搜索引擎传入垃圾信息以提高搜索排名。要减小这种风险,你需要密集监测,如果检测到性能下降,要快速关闭(或是滚回到一个之前的状态)。你可能还要监测输入数据,对反常数据做出反应(比如,使用异常检测算法)。

基于实例VS基于模型学习

另一种分类机器学习是判断它们如何进行推广的,大多数机器学习是关于预测的。这意味着给定一定数量的训练样本,系统能够推广到没有见过的样本。对训练数据集有很好的预测还不够,真正的目标是对新实例预测的性能。有两种归纳方法:基于实例和基于模型学习。

基于实例学习

也许最简单的学习形式就是用记忆学习。如果用这种方法做一个垃圾邮件过滤器。只需要标记所有和用户标记的垃圾邮件相同的邮件----这个方法不差,但肯定不是最好的。

不仅能标记和已知的垃圾邮件相同的邮件,你的垃圾邮件过滤器也要能标记类似垃圾邮件的邮件。这就需要测量两封邮件的相似性。一个(简单的)相似度测量方法是统计两封邮件包含的相同单词的数量。如果一封邮件含有许多垃圾邮件中的词,就会被标记为垃圾邮件。

这被称作基于实例学习:系统先用记忆学习案例,然后使用相似度测量推广到新的例子

图10基于实例学习

基于模型学习

另一种从样本集进行归纳的方法,是建立这些样本的模型,然后使用这个模型进行预测。这称作基于模型学习。

图11基于模型学习

图12最佳拟合训练数据的线性模型

最后,可以准备运行模型进行预测了。例如,假如你想知道塞浦路斯人有多幸福,但OECD没有它的数据。幸运的是,你可以用模型进行预测:查询塞浦路斯的人均GDP,为22587美元,然后应用模型得到生活满意度,后者的值在4.85+22,587×4.91×10-5=5.96左右。

案例1-1展示了加载数据、准备、创建散点图的Python代码,然后训练线性模型并进行预测。

案例1-1,使用Scikit-Learn训练并运行线性模型。

importmatplotlibimportmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspdimportsklearn#加载数据oecd_bli=pd.read_csv("oecd_bli_2015.csv",thousands=',')gdp_per_capita=pd.read_csv("gdp_per_capita.csv",thousands=',',delimiter='\t',encoding='latin1',na_values="n/a")#准备数据country_stats=prepare_country_stats(oecd_bli,gdp_per_capita)X=np.c_[country_stats["GDPpercapita"]]y=np.c_[country_stats["Lifesatisfaction"]]#可视化数据country_stats.plot(kind='scatter',x="GDPpercapita",y='Lifesatisfaction')plt.show()#选择线性模型lin_reg_model=sklearn.linear_model.LinearRegression()#训练模型lin_reg_model.fit(X,y)#对塞浦路斯进行预测X_new=[[22587]]#塞浦路斯的人均GDPprint(lin_reg_model.predict(X_new))#outputs[[5.96242338]]

THE END
1.机器学习:在线学习和离线学习区别本文对比了在线学习和离线学习在数据获取、训练频率、应用场景和计算成本方面的差异,通过SGDClassifier和LogisticRegression实例展示了两者的工作原理。在线学习适合实时环境,离线学习适合稳定数据。 摘要由CSDN通过智能技术生成 机器学习中的在线学习(Online Learning)和离线学习(Offline Learning)是两种不同的学习方式,它们在数https://blog.csdn.net/weixin_41194129/article/details/132998721
2.机器学习中在线学习批量学习迁移学习主动学习的区别电子decremental learning递减学习,即抛弃“价值最低”的保留的训练样本。这两个概念在incremental and decremental svm这篇论文里面可以看到具体的操作过程。 七、在线学习与离线学习offline learning and online learning. In offline learning, the whole training data must be available at the time of model training. http://eetrend.com/node/100016949
3.机器学习RLHF:在线方法与离线算法在大模型语言模型校准中的简介:【机器学习】RLHF:在线方法与离线算法在大模型语言模型校准中的博弈 一、引言 在人工智能领域,大型语言模型(LLM)的校准已成为一个备受关注的热点。基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,简称RLHF)作为一种有效的校准方法,已逐渐在GPT-4、ChatGPT等先进模型中展现出其独特优势。然而https://developer.aliyun.com/article/1542161
4.qlearning多智能体强化学习多智能体概念最近在学习多智能体的强化学习,看了几篇高质量基础论文,发现还是很有必要将强化学习的体系简单过一遍,然后再有针对性地练习代码。 1.强化学习简介 1.1 强化学习概念 强化学习与监督学习、非监督学习都属于机器学习,是人工智能的范畴。值得一提的是深度学习也是机器学习的一种范式,深度学习在机器学习的基础上优化了数https://blog.51cto.com/u_16099283/11852182
5.SklearnTensorFlow与Keras机器学习实用指南第三版(一机器学习海啸 2006 年,Geoffrey Hinton 等人发表了一篇论文,展示了如何训练一个能够以最先进的精度(>98%)识别手写数字的深度神经网络。他们将这种技术称为“深度学习”。深度神经网络是我们大脑皮层的(非常)简化模型,由一系列人工神经元层组成。在当时,训练深度神经网络被普遍认为是不可能的,大多数研究人员在 1990 年https://cloud.tencent.com/developer/article/2420382
6.从8个维度全面比较机器学习算法不同的 ML 算法会有不同的偏差 - 方差权衡,偏差误差来自于模型偏向于特定解或假设的事实。例如,在非线性数据上拟合线性决策边界时,偏差较大。另一方面,是方差测量模型方差带来的误差,它是模型预测与期望模型预测的均方差。 5. 在线和离线 在线和离线学习是指机器学习软件学习更新模型的方式。在线学习意味着可以一次https://time.geekbang.org/column/article/226084
7.2020届计算机科学方向毕业设计(论文)阶段性汇报推荐系统与用户进行多步交互的过程可以建模为马尔科夫决策过程并使用强化学习算法训练推荐策略,但在真实的工业界场景中,在线上进行强化学习模型的训练成本极高。本课题希望使用推荐系统与用户交互的历史数据离线训练强化学习算法,并探讨这一模式的问题解决方式。 https://zhiyuan.sjtu.edu.cn/html/zhiyuan/announcement_view.php?id=3709
8.服务价格机器学习服务服务价格 价格华为机器学习服务从2022年1月1日起,针对超过免费额度的部分,需要按照超过部分的使用量进行收费。同时,华为机器学习服务部分子服务实施试用期免费的计费政策,试用期为2022年1月1日……欲了解更多信息欢迎访问华为HarmonyOS开发者官网https://developer.huawei.com/consumer/cn/doc/development/hiai-Guides/ml-service-billing-0000001051010023
9.网站工具。涉及大数据几大组件Python机器学习和数据分析机器学习、图像声音处理文章列表 - TinyMind 机器学习-Label Encoding与One Hot的区别-20180513 机器学习与深度学习 - 连载 - 简书 Chrome Extension Downloader——可以通过此网站来下载因为某些原因无法在线安装 Chrome 插件 现在最新版chrome不支持直接离线安装插件了,但还是有办法的,见:Linuxhttps://github.com/josonle/Coding-Now/
10.蚂蚁金服新计算实践:基于Ray的融合计算引擎架构蔡芳芳随着计算和 AI 体系逐步成熟,我们希望机器学习应用能更多地在动态环境下运行、实时响应环境中的变化,这推动了机器学习从传统离线学习逐渐向在线学习演进。相比于传统的离线机器学习,在线学习可以带来更快的模型迭代速度,让模型预测效果更贴真实情况,对于线上的波动更加敏锐。https://www.infoq.cn/article/ualTzk5OwDb1crVHg7c1
11.机器学习,能为5G通信技术带来哪些新挑战?强化学习是基于智能体与外部环境之间的动态交互,可以在线处理数据。智能体通过探索环境和奖励或惩罚行为来学习,并以最佳行动序列优化累积奖励。 图一:人工智能,机器学习,监督学习,无监督学习,强化学习之间的关系 3、机器学习在5G通信中的应用 近年来,全球研究人员对利用机器学习发展5G通信技术表现出了极大的兴趣。接下来https://www.xakpw.com/single/31167
12.干货:功能安全预期功能安全与信息安全的融合与发展然后还有预期功能安全的评估,通过测试确保机器学习预期功能安全是否能达到。 3. 机器学习 & PFMEA安全分析 首先在自动驾驶里面,更多的是用离线学习,离线学习是什么?离线学习是打包好的数据来确认智能驾驶的算法。离线学习的流程是数据标注、数据划分、训练、验证和测试。 https://www.dongchedi.com/article/7234733568507855400
13.一文看懂什么是强化学习?(基本概念+应用嘲+主流算法)在线学习 VS 离线学习 详细请查看《强化学习方法汇总》 百度百科和维基百科 百度百科版本 强化学习(reinforcement learning),又称再励学习、评价学习,是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用。 但在传统的机器学习分类中没有提到过强化学习,而在连接主义学习中,把学习算法分为三种类型,https://easyai.tech/ai-definition/reinforcement-learning/