我们用通俗易懂的文章来讲一讲机器学习。
这是来自资深大师的提炼,可以作为自己的藏品,时不时拿出来读一下。
我们一块跟大师来看图说AI。
AI的概念范畴AI 到底它包含了哪些领域,它与各种技术名词之间的关系又是什么样的?
AI 范畴的划分从不同角度去看不是唯一的。
我们现在有如下最常见的看法:
1)人工智能是个完整的知识领域,类似于生物学或者是化学;
2)机器学习是人工智能中非常重要的一部分,但并不是唯一一个部分;
3)神经网络是机器学习的一种,现在非常受欢迎,但依然有其他优秀的算法;
下面这个图会是更专业的理解:
机器学习下面应该是表示学习,即概括了所有使用机器学习挖掘表示本身的方法。
相比传统 ML 需要手动设计数据特征,这类方法能自己学习好用的数据特征。
整个深度学习也是一种表示学习,通过一层层模型从简单表示构建复杂表示。
上面这一段话是比较高深的。
我们附上表示学习的定义表示学习是学习一个特征的技术的集合:将原始数据转换成为能够被机器学习来有效开发的一种形式。
它避免了手动提取特征的麻烦,允许计算机学习使用特征的同时,也学习如何提取特征:学习如何学习。
机器学习任务,例如分类问题,通常都要求输入在数学上或者在计算上都非常便于处理,在这样的前提下,特征学习就应运而生了。
然而,在我们现实世界中的数据例如图片,视频,以及传感器的测量值都非常的复杂,冗余并且多变。
那么,如何有效的提取出特征并且将其表达出来就显得非常重要。
传统的手动提取特征需要大量的人力并且依赖于非常专业的知识。
同时,还不便于推广。这就要求特征学习技术的整体设计非常有效,自动化,并且易于推广。
表示学习中最关键的问题是:如何评价一个表示比另一个表示更好?
表示的选择通常通常取决于随后的学习任务,即一个好的表示应该使随后的任务的学习变得更容易。
机器学习路线图这是一张专家给出的机器学习的路线图。
没办法,就要先让这些字母跟术语先认识你,然后你就会慢慢认识它们了。
机器学习主要分为四类:经典机器学习;强化学习;神经网络和深度学习;集成方法;
经典机器学习经常被划分为两类:监督型学习和非监督型学习。监督学习
在分类中,模型总是需要一个导师,即对应特征的标注,这样的话机器就可以基于这些标注学习进行进一步分类。
万事皆可分类,基于兴趣去分类用户、基于语言和主题分类文章、基于类型而分类音乐以及基于关键词分类电子邮件。而在垃圾邮件过滤中,朴素贝叶斯算法得到了极其广泛的应用。
事实上,朴素贝叶斯曾被认为是最优雅、最实用的算法。
支持向量机 (SVM) 是最流行的经典分类方法。
也是被用来对现有的一切事物进行分类: 照片中的植物外观,文件等等等。
支持向量机背后的思路也很简单,以下图为例,它试图在数据点之间画出两条边距最大的线。
监督学习——回归
回归基本上是分类,但预测的标的是一个数字而不是类别。
例如按里程计算的汽车价格,按时间计算的交通量,按公司增长计算出市场需求量等。
当所预测的事物是依赖于时间时,回归是非常合适的选择。
无监督学习——聚类
聚类是一种没有预先定义类的分类。比如当你不记得你所有的颜色时,把袜子按颜色分类一样。
聚类算法试图通过某些特征从而找到相似的对象并将它们合并到一个聚类中。
无监督学习——降维
人们在使用抽象的东西总是比使用零碎的特征更具有方便性。
举个例子,将所有长着三角形的耳朵、长鼻子和大尾巴的狗合并成一个很好的抽象概念——「牧羊犬」。
再比如有关科技的文章中拥有更多科技术语,而娱乐新闻里最多的是明星的名字。
假如我们要将这些具有特性的单词以及文章组成一个新的特征,
以保持其潜在关联度,SVD 便是个不错的选择。
无监督学习——关联规则学习
包括分析购物车,自动化营销策略等。举个例子,顾客拿着六瓶啤酒走向收银台,
在其路上是否该放些花生?如果放了,这些顾客多久会来买一次?
如果啤酒花生是绝配,那还有其他什么事物也可进行这样的搭配呢?
集成方法
「团结就是力量」,这句老话很好地表达了机器学习领域中「集成方法」的基本思想。
在集成方法中,我们通常会训练多个「弱模型」,以期待能组合成为一个强大的方法。
像各种经典 ML 竞赛中,差不多效果最好的那一拨,如梯度提升树、随机森林等都属于集成方法。
一般而言集成方法的「组合方式」主要可以分为三种:Stacking、Bagging、Boosting。
如下图所示,Stacking 通常考虑的是异质弱学习器,弱学习器可以先并行地训练,
而后通过一个「元模型」将它们组合起来,根据不同弱模型的预测结果输出一个最终的预测结果。
Bagging 方法
通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,
并按照某种确定性的平均过程将它们组合起来。
假设所有弱学习器都是决策树模型,那么这样做出来的 Bagging 就是随机森林。
Boosting 方法
通常考虑的也是同质弱学习器,只不过它的思想是「分而治之」。
它以一种高度自适应的方法顺序地学习这些弱学习器,且后续弱模型重点学习上一个弱模型误分类的数据。
这就相当于不同的弱分类器,专注于部分数据,达到「分而治之」的效果。如下所示,Boosting 就是以串行组合不同模型的范式。
大名鼎鼎的 XGBoost、LightGBM 这些库或算法,都采用的 Boosting 方法。