机器学习基础

1、基本概念

1.1  发展历史

机器学习实际上已经存在了几十年或者也可以认为存在了几个世纪。追溯到17世纪,贝叶斯、拉普拉斯关于最小二乘法的推导和马尔可夫链,这些构成了机器学习广泛使用的工具和基础。1950年(艾伦.图灵提议建立一个学习机器)到2000年初(有深度学习的实际应用以及最近的进展,比如2012年的AlexNet),机器学习有了很大的进展。

从20世纪50年代研究机器学习以来,不同时期的研究途径和目标并不相同,可以划分为四个阶段。

第一阶段是20世纪50年代中叶到60年代中叶,这个时期主要研究“有无知识的学习”。这类方法主要是研究系统的执行能力。这个时期,主要通过对机器的环境及其相应性能参数的改变来检测系统所反馈的数据,就好比给系统一个程序,通过改变它们的自由空间作用,系统将会受到程序的影响而改变自身的组织,最后这个系统将会选择一个最优的环境生存。在这个时期最具有代表性的研究就是Samuet的下棋程序。但这种机器学习的方法还远远不能满足人类的需要。

第二阶段从20世纪60年代中叶到70年代中叶,这个时期主要研究将各个领域的知识植入到系统里,在本阶段的目的是通过机器模拟人类学习的过程。同时还采用了图结构及其逻辑结构方面的知识进行系统描述,在这一研究阶段,主要是用各种符号来表示机器语言,研究人员在进行实验时意识到学习是一个长期的过程,从这种系统环境中无法学到更加深入的知识,因此研究人员将各专家学者的知识加入到系统里,经过实践证明这种方法取得了一定的成效。在这一阶段具有代表性的工作有Hayes-Roth和Winson的对结构学习系统方法。

第三阶段从20世纪70年代中叶到80年代中叶,称为复兴时期。在此期间,人们从学习单个概念扩展到学习多个概念,探索不同的学习策略和学习方法,且在本阶段已开始把学习系统与各种应用结合起来,并取得很大的成功。同时,专家系统在知识获取方面的需求也极大地刺激了机器学习的研究和发展。在出现第一个专家学习系统之后,示例归纳学习系统成为研究的主流,自动知识获取成为机器学习应用的研究目标。1980年,在美国的卡内基梅隆(CMU)召开了第一届机器学习国际研讨会,标志着机器学习研究已在全世界兴起。此后,机器学习开始得到了大量的应用。1984年,Simon等20多位人工智能专家共同撰文编写的MachineLearning文集第二卷出版,国际性杂志Machine Learning创刊,更加显示出机器学习突飞猛进的发展趋势。这一阶段代表性的工作有Mostow的指导式学习、Lenat的数学概念发现程序、Langley的BACON程序及其改进程序。

第四阶段20世纪80年代中叶,是机器学习的最新阶段。这个时期的机器学习具有如下特点:

(1)机器学习已成为新的学科,它综合应用了心理学、生物学、神经生理学、数学、自动化和计算机科学等形成了机器学习理论基础。

(2)融合了各种学习方法,且形式多样的集成学习系统研究正在兴起。

(3)机器学习与人工智能各种基础问题的统一性观点正在形成。

(4)各种学习方法的应用范围不断扩大,部分应用研究成果已转化为产品。

(5)与机器学习有关的学术活动空前活跃。

1.2 发展现状

机器学习是人工智能及模式识别领域的共同研究热点,其理论和方法已被广泛应用于解决工程应用和科学领域的复杂问题。2010年的图灵奖获得者为哈佛大学的Leslie vlliant教授,其获奖工作之一是建立了概率近似正确(Probably Approximate Correct,PAC)学习理论;2011年的图灵奖获得者为加州大学洛杉矶分校的Judea Pearll教授,其主要贡献为建立了以概率统计为理论基础的人工智能方法。这些研究成果都促进了机器学习的发展和繁荣。

机器学习是研究怎样使用计算机模拟或实现人类学习活动的科学,是人工智能中最具智能特征,最前沿的研究领域之一。自20世纪80年代以来,机器学习作为实现人工智能的途径,在人工智能界引起了广泛的兴趣,特别是近十几年来,机器学习领域的研究工作发展很快,它已成为人工智能的重要课题之一。机器学习不仅在基于知识的系统中得到应用,而且在自然语言理解、非单调推理、机器视觉、模式识别等许多领域也得到了广泛应用。一个系统是否具有学习能力已成为是否具有“智能”的一个标志。机器学习的研究主要分为两类研究方向:第一类是传统机器学习的研究,该类研究主要是研究学习机制,注重探索模拟人的学习机制;第二类是大数据环境下机器学习的研究,该类研究主要是研究如何有效利用信息,注重从巨量数据中获取隐藏的、有效的、可理解的知识。

机器学习历经70年的曲折发展,以深度学习为代表借鉴人脑的多分层结构、神经元的连接交互信息的逐层分析处理机制,自适应、自学习的强大并行信息处理能力,在很多方面收获了突破性进展,其中最有代表性的是图像识别领域。

1.3 传统机器学习的研究现状

传统机器学习的研究方向主要包括决策树、随机森林、人工神经网络、贝叶斯学习等方面的研究。

决策树是机器学习常见的一种方法。20世纪末期,机器学习研究者J.Ross Quinlan将Shannon的信息论引入到了决策树算法中,提出了ID3算法。1984年I.Kononenko、E.Roskar和I.Bratko在ID3算法的基础上提出了AS-SISTANTAlgorithm,这种算法允许类别的取值之间有交集。同年,A.Hart提出了Chi-Squa统计算法,该算法采用了一种基于属性与类别关联程度的统计量。1984年L.Breiman、C.Ttone、R.Olshen和J.Freidman提出了决策树剪枝概念,极大地改善了决策树的性能。1993年,Quinlan在ID3算法的基础上提出了一种改进算法,即C4.5算法。C4.5算法克服了ID3算法属性偏向的问题增加了对连续属性的处理通过剪枝,在一定程度上避免了“过度适合”现象。但是该算法将连续属性离散化时,需要遍历该属性的所有值,降低了效率,并且要求训练样本集驻留在内存,不适合处理大规模数据集。2010年Xie提出一种CART算法,该算法是描述给定预测向量X条件分布变量Y的一个灵活方法,已经在许多领域得到了应用。CART算法可以处理无序的数据,采用基尼系数作为测试属性的选择标准。CART算法生成的决策树精确度较高,但是当其生成的决策树复杂度超过一定程度后,随着复杂度的提高,分类精确度会降低,所以该算法建立的决策树不宜太复杂。2007年房祥飞表述了一种叫SLIQ(决策树分类)算法,这种算法的分类精度与其他决策树算法不相上下,但其执行的速度比其他决策树算法快,它对训练样本集的样本数量以及属性的数量没有限制。SLIQ算法能够处理大规模的训练样本集,具有较好的伸缩性;执行速度快而且能生成较小的二叉决策树。SLIQ算法允许多个处理器同时处理属性表,从而实现了并行性。但是SLIQ算法依然不能摆脱主存容量的限制。2000年RajeevRaSto等提出了PUBLIC算法,该算法是对尚未完全生成的决策树进行剪枝,因而提高了效率。近几年模糊决策树也得到了蓬勃发展。研究者考虑到属性间的相关性提出了分层回归算法、约束分层归纳算法和功能树算法,这三种算法都是基于多分类器组合的决策树算法,它们对属性间可能存在的相关性进行了部分实验和研究,但是这些研究并没有从总体上阐述属性间的相关性是如何影响决策树性能。此外,还有很多其他的算法,如Zhang.J于2014年提出的一种基于粗糙集的优化算法、Wang.R在2015年提出的基于极端学习树的算法模型等。

随机森林(RF)作为机器学习重要算法之一,是一种利用多个树分类器进行分类和预测的方法。近年来,随机森林算法研究的发展十分迅速,已经在生物信息学、生态学、医学、遗传学、遥感地理学等多领域开展的应用性研究。

人工神经网络(Artificial Neural Networks,ANN)是一种具有非线性适应性信息处理能力的算法,可克服传统人工智能方法对于直觉,如模式、语音识别、非结构化信息处理方面的缺陷。早在20世纪40年代人工神经网络已经受到关注,并随后得到迅速发展。

贝叶斯学习是机器学习较早的研究方向,其方法最早起源于英国数学家托马斯,贝叶斯在1763年所证明的一个关于贝叶斯定理的一个特例。经过多位统计学家的共同努力,贝叶斯统计在20世纪50年代之后逐步建立起来,成为统计学中一个重要的组成部分。

1.4 大数据环境下机器学习的研究现状

大数据的价值主要集中在数据的转化和数据的信息处理能力上。在产业发展的今天,大数据时代的到来,为数据转换、数据处理、数据存储等带来了更好的技术支撑,产业升级和新兴产业的诞生形成了驱动力,使大数据能够自动规划用于发现事物,实现人类用户与计算机信息协调的程序。此外,许多现有的机器学习方法都是基于记忆理论的。当大数据无法加载到计算机内存中时,许多算法无法对其进行处理。因此,应该提出新的机器学习算法来满足大数据处理的需要。大数据环境下的机器学习算法可以根据一定的性能标准忽略学习结果的重要性。采用分布式并行计算实现分治策略,可以避免噪声数据和冗余带来的干扰,降低存储成本,提高学习算法的运行效率。

随着大数据时代各行业对数据分析需求的持续增加,通过机器学习高效地获取知识,已逐渐成为当今机器学习技术发展的主要推动力。大数据时代的机器学习更强调“学习本身是手段”机器学习成为一种支持和服务技术。如何基于机器学习对复杂多样的数据进行深层次的分析,更高效地利用信息成为当前大数据环境下机器学习研究的主要方向。所以,机器学习越来越朝着智能数据分析的方向发展,并已成为智能数据分析技术的一个重要源泉。另外,在大数据时代,随着数据产生速度的持续加快,数据的体量有了前所未有的增长,而需要分析的新的数据种类也在不断涌现,如文本的理解、文本情感的分析、图像的检索和理解、图形和网络数据的分析等。使得大数据机器学习和数据挖掘等智能计算技术在大数据智能化分析处理应用中具有极其重要的作用。在2014年12月中国计算机学会(CCF)大数据专家委员会上通过数百位大数据相关领域学者和技术专家投票推选出的“2015年大数据十大热点技术与发展趋势”中,结合机器学习等智能计算技术的大数据分析技术被推选为大数据领域第一大研究热点和发展趋势。

简而言之,机器学习更多的是学习相应的映射。

2 机器学习三个要素

机器学习是从现有有限的观察数据中学习一般规则,并将总结的规则推广到未观察到的样本。机器学习可以分为三个要素:模型、学习准则、优化。

2. 1 模型

通俗地说模型:可以从数据中学习并实现特定功能(映射)的功能。进一步的专业概括:模型是由优化算法通过确定指定假设空间中的学习策略来学习的从输入到输出的映射。分为线性模型和非线性模型。

2..1.1线性模型

给定由d个属性描述的示例X=(X1;X2;X3……;Xd),其中Xi是X的X在第i个属性上的取值,线性模型(Linermodel)试图学得一个通过属性的线性组合来预测的函数,即:
f(x)=W1X1+W2X2+……+WdXd+b

2.1.2 非线性模型

简单判断一个模型是否非线性,就是关注非线性本身,判断其参数是否非线性。非线性有很多种形式,这就是为什么非线性模型可以很好地拟合那些曲折的函数曲线的原因。例如以下:

机器学习基础

线性和非线性

线性和非线性之间的区别

1)、线性和非线性的区别是是否可以用直线将样本划分开(这个观点是对的)

2)、线性模型可以是用曲线拟合样本,但是分类的决策边界一定是直线的,例如logistics模型

3)、区分是否为线性模型,主要是看一个乘法式子中自变量x前的系数w,如果w只影响一个x,那么此模型为线性模型。或者判断决策边界是否是线性的

2.2 学习准则

好的模型应该在输入输出取值覆盖真实的情况,模型函数与真实的映射函数之间一致,计算出的误差在很小的范围内。可以通过期望风险这个参数来判断模型的好坏。p(x,y)表示真实的数据分布,£(f(x),y)为损失函数。

机器学习基础

2.2.1 损失函数

损失函数是一个非负实函数,用于衡量真实标签和模型预测之间的误差。

常见的损失函数

0-1损失

0-1损失是指,预测值和目标值不相等为1,否则为0:

机器学习基础

虽然0-1损失能客观评价模型的好坏,但缺点是数学性不好,不连续,且导数等于0,这在反向传播中极其不友好。难以优化,因此经常用其他函数代替。

交叉熵损失函数

机器学习基础

2.2.2 风险最小化准则

机器学习基础

过拟合:趋向于无穷大时,经验风险就 趋向于期望风险。然而通常情况下,我们无法获取无限的训练样本,并且训练样本往往是真实数据的一个很小的子集或者包含一定的噪声数据,不能很好地反映全部数据的真实分布。经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高。这就是所谓的过拟合(Overfitting)

过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的。为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化(Regularization),来限制模型能力,使其不要过度地最小化经验风险。这种准则就是结构风险最小化(Structure Risk Minimization,SRM)准则。

欠拟合:和过拟合相反的一个概念是欠拟合(Underfitting),即模型不能很好地拟合训练数据,在训练集的错误率比较高。欠拟合一般是由于模型能力不足造成的。

2.3优化算法

参数和超参数

作为模型从历史训练数据中学习的一部分,参数是机器学习算法的关键。

简单地说,模型参数是模型内的配置变量,其值可以使用数据进行估计。

具体来说,模型参数具有以下特点:

  • 模型参数是进行模型预测所必需的。
  • 模型参数值可以定义模型功能。
  • 模型参数从数据中估计或从数据中学习。
  • 模型参数一般不是从业者手动设置的。
  • 模型参数通常保存为学习模型的一部分。

模型参数通常使用优化算法进行估计,这是对参数可能值的有效搜索。

模型参数的一些示例包括:

  • 人工神经网络中的权重。
  • 支持向量机中的支持向量。
  • 线性或逻辑回归中的系数。

什么是模型超参数?

模型超参数是模型外部的配置,其值无法从数据中估计。

具体特点是:

  • 模型超参数通常用于估计模型参数的过程中。
  • 模型超参数通常由从业者直接指定。
  • 模型超参数通常可以使用启发式方法设置。
  • 模型超参数通常针对给定的预测建模问题进行调整。

如何获得其最优值:对于给定的问题,我们无法知道模型超参数的最优值。但是我们可以使用经验法则找到它的最佳值,或者复制用于其他问题的值,或者通过反复试验。

模型超参数的一些示例包括:

  • 训练神经网络的学习率。
  • 支持向量机的C和sigma超参数。
  • k邻域中的k。

“模型参数”和“模型超参数”

二者的联系:当针对特定问题调整机器学习算法时,例如在使用网格搜索或随机搜索时,你将调整模型或命令的超参数,以发现一个可以使模型预测最熟练的模型参数。许多模型中重要的参数无法直接从数据中估计得到。例如,在K近邻分类模型中…这种类型的模型参数被称为调整参数,因为没有可用的分析公式来为其计算一个合适的值。

区别:模型超参数通常被称为模型参数,这可能会产生误导。处理此问题的一个好的经验法则如下:如果您必须手动指定“模型参数”,那么它可能是模型超参数。

2.3.1梯度下降算法

Part2.1里面已经介绍了梯度下降法的思想,遗留了两个问题。第一就是如何计算“陡峭”程度,我们这里把它叫做梯度,我们用∇J_θ来代替。第二个也就是步长问题,我们用一个α学习率来代表这个步长,α越大代表步长越大。知道了这两个值,我们如何去得到θ参数的更新表达式了?

J是关于θ的一个函数,假设初始时我们在θ_1这个位置,要从这个点走到J的最小值点,也就是山底。首先我们先确定前进的方向,也就是梯度的反向“-∇J_θ”,然后走一段距离的步长,也就是α,走完这个段步长,就到达了θ_2这个点了。表达式如下图:机器学习基础

我们按照上述表达式一直不停地更新θ的值,一直到θ收敛不变为止,当我们到达山底,此时函数的梯度就是0了,θ值也就不会再更新了,因为表达式的后半部分一直是0了。整个下降过程中损失函数的值是一定在减少,但是我们想学习出来的参数值θ不一定一直在减小

2.3.2 提前停止

提前终止的目的是为了防止过拟合,如果我们只要返回使验证误差最低的参数,就可以获得验证集误差更低的模型。首先我们要保存好现在的模型(网络结构和权值),训练num_batch次(即一个epoch),得到新的模型。将测试集作为新模型的输入,进行测试。如果我们发现测试误差比上次得到的测试误差大,我们并不会马上终止测试,而是再继续进行几个epoch的训练与测试,如果测试误差依旧没有减小,那么我们就认为该试验在上一次达到最低测试误差时停下来。具体算法可参见《deep learning》

详见(8条消息) AI学习之深度学习系列—提前终止_laojiangseu的博客-CSDN博客_深度学习提前终止icon-default.png?t=M276https://blog.csdn.net/u012587076/article/details/78702526

2.3.3随机梯度下降

在每次更新时用1个样本,可以看到多了随机两个字,随机也就是说我们用样本中的一个例子来近似我所有的样本,来调整θ,因而随机梯度下降是会带来一定的问题,因为计算得到的并不是准确的一个梯度,对于最优化问题,凸问题,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近。但是相比于批量梯度,这样的方法更快,更快收敛,虽然不是全局最优,但很多时候是我们可以接受的,所以这个方法用的也比上面的多。下图是其更新公式

机器学习基础

2.3.4 小批量梯度下降法

在每次更新时用b个样本,其实批量的梯度下降就是一种折中的方法,他用了一些小样本来近似全部的,其本质就是我1个指不定不太准,那我用个30个50个样本那比随机的要准不少了吧,而且批量的话还是非常可以反映样本的一个分布情况的。在深度学习中,这种方法用的是最多的,因为这个方法收敛也不会很慢,收敛的局部最优也是更多的可以接受!

机器学习基础

优势:
(1)由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数,这样每一轮参数的更新速度大大加快。
缺点:
(1)准确度下降。由于即使在目标函数为强凸函数的情况下,SGD仍旧无法做到线性收敛。
(2)可能会收敛到局部最优,由于单个样本并不能代表全体样本的趋势。
(3)不易于并行实现。

解释一下为什么SGD收敛速度比BGD要快:
答:这里我们假设有30W个样本,对于BGD而言,每次迭代需要计算30W个样本才能对参数进行一次更新,需要求得最小值可能需要多次迭代(假设这里是10);而对于SGD,每次更新参数只需要一个样本,因此若使用这30W个样本进行参数更新,则参数会被更新(迭代)30W次,而这期间,SGD就能保证能够收敛到一个合适的最小值上了。也就是说,在收敛时,BGD计算了 10×30W 次,而SGD只计算了 1×30W 次。

参考(8条消息) 批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)_Andyato0520的博客-CSDN博客_批量梯度下降icon-default.png?t=M276https://blog.csdn.net/yato0514/article/details/82261821

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2022年4月6日 下午1:30
下一篇 2022年4月6日

相关推荐