机器学习概念和经典算法,我用大白话给你讲清楚了!入门必看贝叶斯机器人神经网络

作为聪明的分析师,Billy发现一种规律:车的价格取决于车龄,每增加1年价格下降1000美元,但不会低于10000美元。

用机器学习的术语来说,Billy发明了“回归”(regression)——基于已知的历史数据预测了一个数值(价格)。当人们试图估算eBay上一部二手iPhone的合理价格或是计算一场烧烤聚会需要准备多少肋排时,他们一直在用类似Billy的方法——每人200g500?

大家都希望能有一个简单的公式来解决世界上所有的问题,但是显然这是不可能的。

让我们回到买车的情形,现在的问题是,除了车龄外,它们还有不同的生产日期、数十种配件、技术条件、季节性需求波动……天知道还有哪些隐藏因素……普通人Billy没法在计算价格的时候把这些数据都考虑进去,换我也同样搞不定。

我们需要机器人来帮他们做数学。因此,这里我们采用计算机的方法——给机器提供一些数据,让它找出所有和价格有关的潜在规律,相比于真人在头脑中仔细分析所有的依赖因素,机器处理起来要好得多,就这样,机器学习诞生了。

机器学习的3个组成部分

抛开所有和人工智能(AI)有关的扯淡成分,机器学习唯一的目标是基于输入的数据来预测结果,就这样。所有的机器学习任务都可以用这种方式来表示,否则从一开始它就不是个机器学习问题。

数据

想检测垃圾邮件?获取垃圾信息的样本。想预测股票?找到历史价格信息。想找出用户偏好?分析他们在Facebook上的活动记录(不,Mark,停止收集数据~已经够了)。数据越多样化,结果越好。对于拼命运转的机器而言,至少也得几十万行数据才够吧。

一些像Google这样聪明的家伙利用自己的用户来为他们免费标注数据,还记得ReCaptcha(人机验证)强制你去“选择所有的路标”么?他们就是这样获取数据的,还是免费劳动!干得漂亮。如果我是他们,我会更频繁地展示这些验证图片,不过,等等……

好的数据集真的很难获取,它们是如此重要,以至于有的公司甚至可能开放自己的算法,但很少公布数据集。

特征

也可以称为“参数”或者“变量”,比如汽车行驶公里数、用户性别、股票价格、文档中的词频等。换句话说,这些都是机器需要考虑的因素。

算法

最显而易见的部分。任何问题都可以用不同的方式解决。你选择的方法会影响到最终模型的准确性、性能以及大小。需要注意一点:如果数据质量差,即使采用最好的算法也无济于事。这被称为“垃圾进,垃圾出”(garbaein-garbageout,GIGO)。所以,在把大量心思花到正确率之前,应该获取更多的数据。

概念区分

经常会有人把机器学习和人工智能、神经网络等词混淆在一起,他们之间还有有很大区别的。简单给大家科普一下:

经典机器学习算法

尽管经典算法被广泛使用,其实原理很简单,你可以很容易地解释给一个蹒跚学步的孩子听。它们就像是基本的算术——我们每天都在用,甚至连想都不想。下面给大家讲一些经典的机器学习算法:

1.1有监督学习

经典机器学习通常分为两类:有监督学习和无监督学习。

在“有监督学习”中,有一个“监督者”或者“老师”提供给机器所有的答案来辅助学习,比如图片中是猫还是狗。“老师”已经完成数据集的划分——标注“猫”或“狗”,机器就使用这些示例数据来学习,逐个学习区分猫或狗。

无监督学习就意味着机器在一堆动物图片中独自完成区分谁是谁的任务。数据没有事先标注,也没有“老师”,机器要自行找出所有可能的模式。后文再讨论这些。

很明显,有“老师”在场时,机器学的更快,因此现实生活中有监督学习更常用到。有监督学习分为两类:

分类(Classification)

“基于事先知道的一种属性来对物体划分类别,比如根据颜色来对袜子归类,根据语言对文档分类,根据风格来划分音乐。”

分类算法常用于:

常用的算法:朴素贝叶斯、决策树、Logistic回归、K近邻、支持向量机

机器学习主要解决“分类”问题。这台机器好比在学习对玩具分类的婴儿一样:这是“机器人”,这是“汽车”,这是“机器-车”……额,等下,错误!错误!

朴素贝叶斯算法广泛应用于垃圾邮件过滤。机器分别统计垃圾邮件和正常邮件中出现的“伟哥”等字样出现的频次,然后套用贝叶斯方程乘以各自的概率,再对结果求和——哈,机器就完成学习了。

后来,垃圾邮件制造者学会了如何应对贝叶斯过滤器——在邮件内容后面添加很多“好”词——这种方法被讽称为“贝叶斯中毒”。朴素贝叶斯作为最优雅且是第一个实用的算法而载入历史,不过现在有其他算法来处理垃圾邮件过滤问题。

再举一个分类算法的例子。

假如现在你需要借一笔钱,那银行怎么知道你将来是否会还钱呢?没法确定。但是银行有很多历史借款人的档案,他们拥有诸如“年龄”、“受教育程度”、“职业”、“薪水”以及——最重要的——“是否还钱”这些数据。

利用这些数据,我们可以训练机器找到其中的模式并得出答案。找出答案并不成问题,问题在于银行不能盲目相信机器给出的答案。如果系统出现故障、遭遇黑客攻击或者喝高了的毕业生刚给系统打了个应急补丁,该怎么办?

要处理这个问题,我们需要用到决策树,所有数据自动划分为“是/否”式提问——比如“借款人收入是否超过128.12美元?”——听起来有点反人类。不过,机器生成这样的问题是为了在每个步骤中对数据进行最优划分。

“树”就是这样产生的。分值越高(接近根节点),问题的范围就越广。所有分析师都能接受这种做法并在事后给出解释,即使他并不清楚算法是怎么回事,照样可以很容易地解释结果(典型的分析师啊)!

决策树广泛应用于高责任场景:诊断、医药以及金融领域。

最广为人知的两种决策树算法是CART和C4.5.

如今,很少用到纯粹的决策树算法。不过,它们是大型系统的基石,决策树集成之后的效果甚至比神经网络还要好。这个我们后面再说。

当你在Google上搜索时,正是一堆笨拙的“树”在帮你寻找答案。搜索引擎喜欢这类算法,因为它们运行速度够快。

按理说,支持向量机应该是最流行的分类方法。只要是存在的事物都可以用它来分类:对图片中的植物按形状归类,对文档按类别归类等。

SVM背后的思想很简单——它试图在数据点之间绘制两条线,并尽可能最大化两条线之间的距离。如下图示:

分类算法有一个非常有用的场景——异常检测,如果某个特征无法分配到所有类别上,我们就把它标出来。现在这种方法已经用于医学领域——MRI(磁共振成像)中,计算机会标记检测范围内所有的可疑区域或者偏差。股票市场使用它来检测交易人的异常行为以此来找到内鬼。在训练计算机分辨哪些事物是正确时,我们也自动教会其识别哪些事物是错误的。

经验法则表明,数据越复杂,算法就越复杂。对于文本、数字、表格这样的数据,我会选择经典方法来操作。这些模型较小,学习速度更快,工作流程也更清晰。对于图片、视频以及其他复杂的大数据,我肯定会研究神经网络。

回归(Regression)

“画一条线穿过这些点,嗯~这就是机器学习”

回归算法目前用于:

常见的回归算法有:线性回归、多项式回归

如果画出来的是直线,那就是“线性回归”,如果线是弯曲的,则是“多项式回归”。它们是回归的两种主要类型。其他类型就比较少见了。不要被Logistics回归这个“害群之马”忽悠了,它是分类算法,不是回归。

不过,把“回归”和“分类”搞混也没关系。一些分类器调整参数后就变成回归了。除了定义对象的类别外,还要记住对象有多么的接近该类别,这就引出了回归问题。

聚类

“机器会选择最好的方式,基于一些未知的特征将事物区分开来。”

聚类算法目前用于:

常见算法:K均值聚类、Mean-Shift、DBSCAN

聚类是在没有事先标注类别的前提下来进行类别划分。好比你记不住所有袜子的颜色时照样可以对袜子进行分类。聚类算法试图找出相似的事物(基于某些特征),然后将它们聚集成簇。那些具有很多相似特征的对象聚在一起并划分到同一个类别。有的算法甚至支持设定每个簇中数据点的确切数量。

这里有个示范聚类的好例子——在线地图上的标记。当你寻找周围的素食餐厅时,聚类引擎将它们分组后用带数字的气泡展示出来。不这么做的话,浏览器会卡住——因为它试图将这个时尚都市里所有的300家素食餐厅绘制到地图上。

就像分类算法一样,聚类可以用来检测异常。用户登陆之后的有不正常的操作?让机器暂时禁用他的账户,然后创建一个工单让技术支持人员检查下是什么情况。说不定对方是个“机器人”。我们甚至不必知道“正常的行为”是什么样,只需把用户的行为数据传给模型,让机器来决定对方是否是个“典型的”用户。

这种方法虽然效果不如分类算法那样好,但仍值得一试。

降维

“将特定的特征组装成更高级的特征”

“降维”算法目前用于:

常用的“降维”算法:主成分分析、奇异值分解、潜在狄里克雷特分配、潜在语义分析、t-SNE(用于可视化)

早年间,“硬核”的数据科学家会使用这些方法,他们决心在一大堆数字中发现“有趣的东西”。Excel图表不起作用时,他们迫使机器来做模式查找的工作。于是他们发明了降维或者特征学习的方法。

将2D数据投影到直线上(PCA)

对人们来说,相对于一大堆碎片化的特征,抽象化的概念更加方便。

举个例子,我们把拥有三角形的耳朵、长长的鼻子以及大尾巴的狗组合出“牧羊犬”这个抽象的概念。相比于特定的牧羊犬,我们的确丢失了一些信息,但是新的抽象概念对于需要命名和解释的场景时更加有用。作为奖励,这类“抽象的”模型学习速度更快,训练时用到的特征数量也更少,同时还减少了过拟合。

因此,需要把单词和文档连接组合成一个特征,从而保持其中的潜在联系——人们发现奇异值分解(SVD)能解决这个问题。那些有用的主题簇很容易从聚在一起的词组中看出来。

关联规则学习(Associationrulelearning)

“在订单流水中查找模式”

“关联规则”目前用于:

常用的算法:Apriori、Euclat、FP-growth

经典的“啤酒与尿布”的故事原理就是关联规则应用,比如说,一位顾客拿着一提六瓶装的啤酒去收银台。我们应该在结账的路上摆放尿布吗人们同时购买啤酒和尿布的频次如何?我们还可以用它来预测其他哪些序列能否做到在商品布局上的作出微小改变就能带来利润的大幅增长?

这个思路同样适用电子商务,那里的任务更加有趣——顾客下次要买什么?

THE END
1.算法笔记(三)算法学习技巧总结 算法是一门数学科学院,想要学号算法即该算法是为了要解决什么问题,需要静下心来谢谢代码,与不写代码的人区别是效率比他妈呢提高了很多,算法学习还需要举一反三你,这样我们才能狗的更好。https://www.code456.com/article/3598351.html
2.算法总结最常用的五大算法(算法题思路)算法题技巧本文介绍了贪心算法的概念和实例,如Prim和Kruskal算法;分治法的思想及其在二分查找、快速排序和归并排序中的应用;动态规划的基本思想和Floyd算法、背包问题的示例;回溯法的原理以及在八皇后问题中的应用;分支限界法的基本思想和在单源最短路径问题中的应用。文章还探讨了这些算法之间的区别和联系。 https://blog.csdn.net/Jernnifer_mao/article/details/130220554
3.深度学习经典算法遗传算法详解遗传算法依照与个体适应度成正比的几率决定当前种群中各个个体遗传到下一代群体中的机会。个体适应度大的个体更容易被遗传到下一代。通常,求目标函数最大值的问题可以直图5-2正六边形筛选机制接把目标函数作为检测个体适应度大小的函数。 7、复制 程序设计流程https://developer.aliyun.com/article/1127575
4.经典算法问题来一个有这么一个算法题目,通过它我们来了解下码农是怎么学习算法:假设一堆人中有一个人可能是名人(明星),也有可能这人群中没有名人,名人满足的条件是人群中所有人都认识他,但是他不认识其他人,我们可以通过询问每个人来找出这个名人,那么假设我们只能问某个人是否认识另外一个这样的问题,得到回答也只能是认识或者不认识这https://m.acfun.cn/v/?ac=18548125&from=video&type=article_2
5.算法精粹:经典计算机科学问题的Python实现本书是一本面向中高级程序员的算法教程,借助Python语言,用经典的算法、编码技术和原理来求解计算机科学的一些经典问题。全书共9章,不仅介绍了递归、结果缓存和位操作等基本编程组件,还讲述了常见的搜索算法、常见的图算法、神经网络、遗传算法、k均值聚类算法、对抗搜索算法等,运用了类型提示等Python高级特性,并通过各级https://www.epubit.com/bookDetails?id=UB71fac289a9240
6.机器学习10大经典算法详解“数据+算法=模型”。面对具体的问题,选择切合问题的模型进行求解十分重要。有经验的数据科学家根据日常算法的积累,往往能在最短时间内选择更适合该问题的算法,因此构建的模型往往更准确高效。 本文归纳了机器学习的10大算法,并分别整理了各算法的优缺点及主要特征,供大家学习参考。读完本文,你将掌握以下机器学习10大算http://www.360doc.com/content/12/0121/07/27362060_1061639511.shtml
7.迁移学习(TransferLearning)的背景历史及学习2.机器学习框架与基本组成 3.机器学习的训练步骤 4.机器学习问题的分类 5.经典机器学习算法介绍 目标:机器学习是人工智能的重要技术之一,详细了解机器学习的原理、机制和方法,为学习深度学习与迁移学习打下坚实的基础。 二、深度学习简介与经典网络结构介绍 https://cloud.tencent.com/developer/article/2068121
8.多智能体路径规划综述本文首先对MAPF问题进行了阐述,概述了经典的集中式规划算法,详细分析了经典算法的原理,然后概述了深度强化学习,解析了主流的强化学习算法原理,将MAPF问题描述为强化学习问题,介绍了基于强化学习的MAPF算法研究进展。在此基础上,指出现有算法面临的挑战,指出了下一步要解决的问题和研究方向。 https://www.fx361.com/page/2022/1017/11262806.shtml
9.支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习《代码随想录》LeetCode 刷题攻略:200道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张思维导图,支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习不再迷茫! 来看看,你会发现相见恨晚! - GitHub - Coding4Real/leetcode-mashttps://github.com/Coding4Real/leetcode-master
10.五大经典算法之<递归算法及经典实例分析>学习目标: (一)了解递归算法思想? (二)用递归思想来理解和实现递归经典实例 I.阶乘问题? II.斐波那契问题? III.汉诺塔问题? IV.全排列问题 (一)递归 I. 定义? 递归算法(英语:recursion algorithm)在? ?计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。 需要满https://www.360doc.cn/mip/1127301487.html
11.路径规划中的DRL与OR算法:对比与展望因此,VRP在物流配送中有着广泛的应用场景,在过去50年来是研究热点。传统的优化方法(启发式、精确算法等)专注于研究各种各样的问题变形,甚至拓展到了uncertainty、robust、stochastic、two-echelon等场景,而深度强化学习类的方法则主要专注于求解TSP、CVRP等简单情形,并常用优化方法得到的解作为比较对象。下文将详细介绍。https://www.51cto.com/article/757803.html
12.字节跳动3数据结构与算法经典问题解析-Java语言描述目录 本文由曾供职于多家知名IT企业的资深软件架构师撰写,以Java为描述语言,介绍计算机编程中使用的数据结构和算法,覆盖相应竞争性考试的主题,目的不是提供关于数据结构和算法的定理及证明,而是强调问题及其分析,讲解必备知识和解题技巧。文中汇集知名IT企业经典的编程面试题目并给https://maimai.cn/article/detail?fid=1663985877&efid=TP99-4Gnjz5uI46gYIbONQ
13.AI工程师必备技能如果是凸函数,我们需要选择相应的优化方法论进行优化,因为优化问题是机器学习算法中的核心部分。 以上是对凸优化的方法论的一些总结与梳理,不得不说,凸优化是一个很深奥也很大的领域,并且通过一些非凸函数的优化方法论,也能感受出如果要严格解决一个数学问题,步骤是很严谨的,文中的观点如果有错误的地方,还请各路https://www.jiqizhixin.com/articles/2019-01-23-15
14.经典算法问题:数组中的逆序对这种思路虽然很直接,但编写出错的概率很低,在没有在线评测系统的时候,它可以作为一个“正确的”参考答案,用以检验我们自己编写的算法是否正确。 思路2:分治 这道题最经典的思路是使用分治法计算,借助“归并排序”的分治思想,排好序以后,逆序对就求出来了,时间复杂度为 https://www.jianshu.com/p/e6530cb7aa66
15.C/C++经典算法之约瑟夫问题详解C语言这篇文章主要给大家介绍了关于C/C++经典算法之约瑟夫问题的相关资料,约瑟夫环问题是一道经典的数据结构的题目,本文介绍了解决约瑟夫问题的三种方法,需要的朋友可以参考下https://www.jb51.net/article/218551.htm
16.常州科普网这样,发明者可以首先根据物场模型决定需要实现的基本功能,然后通过需要实现的功能很容易地找到与之对应的科学效应或科学现象,再根据这些科学效应或现象,产生解决问题的思路。 9、发明问题解决算法(ARIZ) ARIZ是俄文“发明问题解决算法”的缩写,英文缩写为AIPS,是发明问题解决过程中应遵循的理论方法与步骤。ARIZ是基于https://kx.jscz.org.cn/html/czkx/2022/LOMNAAD_0613/28486.html
17.贪心算法入门详解,经典实例分析在求解会议室效率问题时,我们虽然先基于动态规划思想做了分析,稍稍复杂了些,但最后还是能够结合贪心思想,设计出更加简洁的算法。 事实上,贪心策略是一种强有力的策略,可以很好的解决很多问题,在以后的学习中,我们可能会遇到许多基于贪心策略设计的算法,例如最小生成树算法,单元最短路径的 Dijkstra 算法等等。https://blog.popkx.com/2307/
18.科学网—[转载]进化集成学习算法综述在当前的研究方法中,一些研究分别对基于分类、回归和聚类问题的集成学习方法进行了综述。尽管这些研究对进化集成学习算法进行了简单的介绍,但并未对一些代表性的进化集成学习算法进行详细综述。并且在笔者目前查阅到的文献中,一些关于进化集成学习算法的综述只是针对分类、回归和聚类问题中的一种或两种,尚未发现有学者对包https://wap.sciencenet.cn/blog-951291-1312816.html
19.关于背包问题的一些理解和应用本文没有尝试对背包问题的本质进行扩展或深入挖掘,而只是从有限的理解(这里指对《背包问题九讲》的理解)出发,帮助读者更快地学习《背包问题九讲》中的提到的各种背包问题的主要算法思想,并通过实例解释了相应的算法,同时给出了几个背包问题的经典应用。 2.背包问题及应用https://www.xiuzhanwang.com/a1/Cyuyan/3447.html
20.谷歌复用30年前经典算法,CV引入强化学习,网友:视觉RLHF要来了?该研究旨在学习以 θ 为参数的条件分布 P (y|x, θ),使奖励函数 R 最大化。用抽象的公式来形容,就是本文要解决以下优化问题。 问题有了,接下来就是怎么解决了,本文分两步走:首先用最大似然估计对模型进行预训练;然后使用 REINFORCE 算法对模型进行 Tuning 。下面我们看看这两步的具体过程:https://www.thepaper.cn/newsDetail_forward_22086240
21.每道题都会出现在试卷上(确信)新传热点真题答题总结No.04(下) 出题原因:就建立健全网络综合治理体系作出重要论述、提出明确要求,深刻阐释了“为什么要建、怎样建”等重大理论和实践问题,同时,网信办也大刀阔斧地开展“清朗”系列专项整治行动。从短视频与直播乱象,到算法与大数据技术带来的个人信息隐私安全问题,再到网络暴力、社交媒体舆论与舆情、平台反垄断等热点话题,都https://weibo.com/ttarticle/p/show?id=2309404933996114215589
22.DeepMind用神经网络求解MIP后,攻破运筹学只是时间问题?你想多了如果大量变量可以被固定,则可以把这个固定变量后的子问题当作一个全新的MIP求解,以期望可以找到高质量的整数解。由于大量的变量被固定了,子问题的搜索空间会变小,且预求解可以进一步的削减问题的规模,因此解子问题会相对容易些。 DeepMind提出的Neural Diving这个算法,是通过机器学习和神经网络,给定一个问题结构,预判https://yuanzhuo.bnu.edu.cn/article/805