机器学习相关概念
最近读了博主@计算机的潜意识的一片关于机器学习的文章:从机器学习谈起。读了之后对机器学习的相关概念有了更加清晰的认识,这里写一篇小总结。
1、什么是机器学习
机器学习的英文名称是machine learning,也就是让机器获得学习的能力,从而解决问题,在计算机科学领域中,机器一般指代计算机。就像人一样,我们从生活中发生的事来获取经验,然后通过经验得到一定的生活规律,在通过生活规律来指导生活。类比到计算机中,计算机通过已有的数据(经验)来构建某种模型(生活规律),通过模型来预测结果,这种方法就叫做机器学习。
举一个例子,假如我手里有100平方米的一套房子,卖多少钱合适呢?100万、120万还是140万?显然,我需要能够合理反映房子面积与房价之间的规律。我们可以找房产中介,或者参考朋友卖掉的价格,但这些都不太靠谱。一个靠谱的方法是收集大量房子面积与房价关系的数据,将数据标注在坐标轴上,然后用一条直线拟合这些数据点,如下图:
![](https://images2018.cnblogs.com/blog/1258764/201808/1258764-20180819131027186-902267921.png)
通过这条直线,我知道面积和房价之间满足:房价=面积×a+b,假设a=0.75,b=50,则房价=100×0.75+50=125万,与之前的100万、120万和140万都不一样,这个结果综合考虑了大部分情况,从统计学的角度上更加合理。
通过上面的例子,我们可以看到机器学习的过程如下:首先我们要用到计算机中的数据,然后利用机器学习的算法对这些数据进行处理,这一步骤叫做**训练**,训练产生的结果称为**模型**,我们可以使用模型来对新的数据进行**预测**。**训练**和**预测**是机器学习中的两个过程,**模型**是中间结果,也就是说**训练**产生**模型**,**模型**指导**预测**。
机器学习中的**训练**与**预测**过程可以对应到人类的**归纳**和**推测**过程。通过这样的对应,我们可以发现,机器学习的思想并不复杂,仅仅是对人类在生活中学习成长的一个模拟。由于机器学习不是基于编程形成的结果,因此它的处理过程不是因果的逻辑,而是通过归纳思想得出的相关性结论。
### 2、机器学习常用算法
#### 2.1、回归算法
先介绍回归算法有两个原因:第一、回归算法相对比较简单,通过它可以很容易地同统计学迁移到机器学习中;第二、回归算法是后面若干强大算法的基石,先理解它很有必要。回归算法主要包括两个部分:**线性回归**和**逻辑回归**。
#### 2.1.1、线性回归
上面卖房子就是**线性回归**的例子,即用一条直线来拟合很多点(数据),通常使用**最小二乘法**来解决直线拟合问题。最小二乘法拟合直线是指找到一条直线使得残差(观测值与模型提供的拟合值之间的差距)平方和最小。这样,直线拟合问题就转换为了求函数极值的问题。对于一些简单的函数,我们可以通过函数导数的零点来寻找极值。但这种做法并不适合计算机,因为有些导数零点可能无解,又可能运算量太大。这时我们可以用数值计算(指用计算机解决各种数据问题的方法)中的相关算法如**梯度下降法**,**牛顿法**来求解函数极值。
#### 2.1.2、逻辑回归
**逻辑回归**与**线性回归**有区别也有相似。区别就是线性回归处理的是数值问题,最后的结果为一个数字(如房价),而逻辑回归则属于分类算法,最后的结果是离散的分类,如预测用户是否会点击广告,判断邮件是否是垃圾邮件。相似点为,逻辑回归的计算方法就是将线性回归的数值结果进行sigmoid函数运算,从而得到一个介于0和1之间的概率,接着我们可以使用这个概率进行预测,如概率大于0.5则该邮件是垃圾邮件。从直观上来讲,**逻辑回归是画出了一条分界线**,如下图:
![](https://images2018.cnblogs.com/blog/1258764/201808/1258764-20180819152132679-375207320.png)
假设我们有一组肿瘤患者的数据,良性肿瘤为蓝色点,恶性肿瘤为红色点,这里蓝色和红色(良性和恶性)可以作为数据的**标签**,同时每个数据具有两个特征:肿瘤大小和患者年龄,我们将数据特征和标签映射到二维坐标系中,就形成了上图。
当出现一个绿色的点时,我们可以使用上面的数据训练出的逻辑回归模型(就是分界线)进行预测。若绿点在分界线上方,则为恶性,若在分界线下方,则为良性。
逻辑回归画出的分界线基本上都是**线性的**,这意味着如果两者之间的界限不是线性时,逻辑回归的表达能力就不足。而另外两种算法:神经网络和SVM(支持向量机)可以很好地拟合出非线性的分界线。
#### 2.2、神经网络
**神经网络**(也称人工神经网络,ANN)是80年代机器学习界非常流行的算法,在90年代没落,随着近些年深度学习的发展,神经网络又重新成为研究的热点,也成了机器学习最强大的算法之一。
神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在**BP算法**(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。
让我们看一个简单的神经网络的逻辑架构。在这个网络中,分成**输入层**,**隐藏层**,和**输出层**。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是**神经网络**。
![](https://images2018.cnblogs.com/blog/1258764/201808/1258764-20180819153908562-227781314.png)
用神经网络识别一个形状为正方形的步骤如下:首先将正方形图像通过输入层输入到神经网络中,将正方形分解成4个折现后输入到下一层,在下一层中将折线分成两条直线。于是,一个复杂的图像变成了大量的细节进入神经元,神经元处理以后再进行整合,最后得出了看到的是正方形的结论。
在神经网络中,**每个处理单元事实上就是一个逻辑回归模型**,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的**非线性分类**。
进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机(SVM)算法取代了神经网络的地位。
#### 2.3、SVM(支持向量机)
SVM从某种意义上讲算是强化的逻辑回归算法:通过给与比逻辑回归更严格的分类条件,SVM可以获得比逻辑回归更好的分界线。如果没有某些函数的支持,SVM顶多算是一种线性分类计数。但是通过与高斯**核**的结合,SVM可以表达出非常复杂的分类界限,从而达到很好的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。
SVM来源于统计学,是一种数学成分很浓的算法(神经网络则带有生物学色彩)。在算法的核心步骤中,有一步证明将数据从低维到高维的映射并不会增加计算复杂度。于是,通过SVM算法,既可以获得很好的计算性能,又能获得不错的分类效果。在90年代,由于性能优于神经网络算法,支持向量机基本取代了神经网络。但随着深度学习的发展导致神经网络重新受到大家关注,现在SVM和神经网络发生了微妙的平衡。
#### 2.4、聚类算法
上面例子中的一个显著特点是数据具有标签,通过训练出的模型可以预测未知数据的标签(肿瘤的良性或恶性)。使用有标签数据进行训练的算法叫做**有监督算法**,另一种就是**无监督算法**,无监督算法训练的数据没有标签,训练的目的是推测出这些数据的标签。无监督算法中最具代表性的是**聚类算法**
假设我们有一堆数据,每个数据具有两个特征,这时我们可以通过聚类算法将这些数据打上标签。具体做法是:计算种群中的距离,根据距离的远近将种群划分为多个族群。聚类算法中最典型的代表是**k-means算法**。
#### 2.5、降维算法
**降维算法**即将数据的维度降低。这里,维度可以理解为数据特征的个数。降维算法是一种无监督算法。比如在原始数据中房子的特征可能包含长、宽、面积、楼层4个特征,但面积可以用长宽来刻画,所以长宽和面积本质上是一样的,这意味着我可以将数据的特征变为长、宽、楼层3个特征,实现了降维。降维可以提高计算的速度。对房子的数据进行降维并不会损失数据包含的信息,在某些情况下,对数据降维可能会使某些信息丢失。但是,降维算法可以从数学上证明,从高维压缩到的低维中最大程度地保留了数据的信息。因此,使用降维算法仍然有很多的好处。
降维算法的主要作用是压缩数据与提升机器学习其他算法的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。另外,降维算法的另一个好处是数据的可视化,例如将5维的数据压缩至2维,然后可以用二维平面来可视。降维算法的主要代表是**PCA算法(即主成分分析算法)**。
#### 2.6、推荐算法
推荐算法在电商界得到了广泛的应用,如淘宝,京东等。通过推荐算法可以向用户推荐他们可能感兴趣的商品,从而提高效益。推荐算法主要有两个类别:
一类是基于物品内容的推荐,是将用户购买的相似物品推荐给他们。这种做法的前提是每个物品都要有若干个标签,这样才能找出相似的物品。这样推荐的好处是物品关联程度较大,但由于需要给物品打标签,需要耗费大量的工作。
另一类是基于用户相似度的推荐,也就是将与目标用户相似的用户所购买的物品推荐给目标用户。比如通过分析发现用户甲和用户乙的购物内容很相似,若甲购买了商品A,则乙也有很大的概率想要购买A,所以将商品A推荐给乙。
两类推荐都有各自的优缺点,在一般的电商应用中,一般是两类混合使用。推荐算法中最有名的算法就是**协同过滤算法**。
#### 2.7、算法小结
除了上面的6中算法外,还有**高斯判别**、**朴素贝叶斯**、**决策树**等算法,但上面的6个算法是使用最多,影响最广的算法。
下面通过有监督算法和无监督算法对上面的算法进行分类:
**有监督算法**:
- 线性回归
- 逻辑回归
- 神经网络
- 支持向量机(SVM)
无监督算法:
- 聚类
- 降维
其他算法:
- 推荐算法
除此之外,还有一些算法的名字在机器学习领域经常出现,它们并不是一个完整的机器学习算法,而是为了解决机器学习算法问题的子问题而诞生的,可以理解为以上算法的子算法,通过这些子算法可以大幅提高训练过程,如梯度下降法,主要运用在线型回归,逻辑回归,神经网络,推荐算法中;牛顿法,主要运用在线型回归中;BP算法,主要运用在神经网络中;SMO算法,主要运用在SVM中。
3、机器学习、深度学习和人工智能的联系
简单的说,深度学习是机器学习的子集,机器学习是人工智能的子集。如下图:
![](https://images2018.cnblogs.com/blog/1258764/201808/1258764-20180819163533670-1910970893.png)
上文介绍过,神经网络在上世纪90年代曾经沉寂过一段时间,主要原因是当神经网络的隐藏层扩大为2个以上时其训练速度非常慢,实用性上不如SVM。但是BP算法的发明人Geoffrey Hinton一直没有放弃对神经网络的研究。2006年,Geoffrey Hinton在科学杂志《Science》上发表了一篇文章,论证了两个观点:
1.多隐层的神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;
2.深度神经网络在训练上的难度,可以通过“逐层初始化” 来有效克服。
通过这样的发现,不仅解决了神经网络在计算上的难度,同时也说明了深层神经网络在学习上的优异性。从此,神经网络重新成为了机器学习界中的主流强大学习技术。同时,**具有多个隐藏层的神经网络被称为深度神经网络,基于深度神经网络的学习研究称之为深度学习**。
人工智能则包含了众多领域,机器学习是其中的一个部分。总结起来,人工智能的发展经历了如下若干阶段,从早期的逻辑推理,到中期的专家系统,这些科研进步确实使我们离机器的智能有点接近了,但还有一大段距离。直到机器学习诞生以后,人工智能界感觉终于找对了方向。基于机器学习的图像识别和语音识别在某些垂直领域达到了跟人相媲美的程度。机器学习使人类第一次如此接近人工智能的梦想。
### 4、机器学习应用的领域
机器学习跟模式识别、统计学习、数据挖掘、计算机视觉、语音识别、自然语言处理等领域有着很深的联系。
#### 4.1、模式识别
**模式识别等同于机器学习**。两者的区别为模式识别是工业界的概念,而机器学习源自于计算机学科。
#### 4.2、统计学习
**统计学习近似等于机器学习**。统计学习和机器学习是高度重叠的学科,机器学习中的很多算法来源于统计学习,如SVM。两者的区别是,统计学习偏数学,机器学习偏实践。
#### 4.3、数据挖掘
**数据挖掘=机器学习+数据库**。数据挖掘是一门交叉学科。大部分数据挖掘中的算法是机器学习的算法在数据库中的优化。
#### 4.4、计算机视觉
**计算机视觉=机器学习+图像处理**。计算机视觉也是一门交叉学科。计算机视觉相关的应用非常的多,例如百度识图、手写字符识别、车牌识别等等应用。
#### 4.5、语音识别
**语音识别=语音处理+机器学习**。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果的语音助手siri等。
#### 4.6、自然语言处理
**自然语言处理=语言处理+机器学习**。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
### 5、参考
1、https://www.cnblogs.com/subconscious/p/4107357.html?utm_source=wechat_session&utm_medium=social
本站使用「CC BY-NC-SA」创作共享协议,转载请在文章明显位置注明作者及出处。