机器学习是什么?实际上,即使是研究机器学习的专业人士(如Hinton,Bengio,LeCun,Andrew Ng等)在定义这个问题时也会有不同认知,目前还不存在一个被广泛认可的定义,为此,我想借助斯坦福大学的Machine learning课程中的一些案例来说明这个问题。
先看一下机器学习在学术上定义的发展历程,Arthur Samuel是这样定义的:
在进行特定编程的情况下,给予计算机学习能力的领域。
他的杰作也是大家比较熟悉的西洋棋程序,通过编程让程序跟自己下了几万盘棋,通过学习那种布局会赢那种布局会输,一段时间之后,该西洋棋程序就知道什么是好的布局什么是坏的布局,再然后就牛逼了~
在此之后,机器学习的鼻祖级的人物、卡内基梅隆大学教授Tom Mitchell重新定义了什么是机器学习:
一个程序能够从经验E中学习,解决任务T,达到性能度量值P,当且仅当,优乐配经验E后,经过P评价,程序在处理任务T时的性能有所提升。
对于上述的西洋棋程序而言,经验E就是程序自己进行的上万次的自我学习,任务T就是下棋这个过程,性能度量值P就是比赛的最红会赢的概率。
这里引用电子邮件系统中的垃圾邮件标注的案例,加入我们将一份该系统并没标注为垃圾邮件的邮件手动变主卫垃圾邮件,基于我们标注的垃圾邮件,该垃圾邮件识别系统将更好的学习如何过滤垃圾邮件。
换个角度,机器学习学习的对象又是什么呢?数据,是的,是数据。他从数据出发,提取数据特征,发现数据中的知识,然后又回到对数据的分析预测中去。为此,在机器学习的假设中有很重的一个假设,那就是假设同类数据的数据有一定的统计特性。这样机器学习通过考虑学习什么样的模型以及如何学习的问题,使得模型能读数据进行准确的预测与分析。
基于数据构架模型从而对数据进行分析预测的机器学习由监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)和强化学习(reinforcement learning)等组成。
1、可以由训练资料中学到或建立一个模式,并依此模式推测新的实例。训练资料是由输入物件(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。
2、一个监督式学习的任务在观察完一些训练范例(输入和预期输出)后,去预测这个函数对任何可能出现的输入的值的输出。要达到此目的,学习者必须以"合理"(见归纳偏向)的方式从现有的资料中一般化到非观察到的情况。在人类和动物感知中,则通常被称为概念学习。
3、监督式学习有两种形态的模型。最一般的,监督式学习产生一个全域模型,会将输入物件对应到预期输出。而另一种,则是将这种对应实作在一个区域模型。(如案例推论及最近邻居法)。
目前最广泛被使用的分类器有人工神经网络、支持向量机、最近邻居法、高斯混合模型、朴素贝叶斯方法、决策树和径向基函数分类。
1、无监督式学习(Unsupervised Learning )其目的是去对原始资料进行分类,以便了解资料内部结构。有别于监督式学习网络,无监督式学习网络在学习时并不知道其分类结果是否正确,亦即没有受到监督式增强(告诉它何种学习是正确的)。其特点是仅对此种网络提供输入范例,而它会自动从这些范例中找出其潜在类别规则。当学习完毕并经测试后,也可以将之应用到新的案例上。
2、无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。
1、给定一个来自某未知分布的样本集S=L∪U, 其中L 是已标签样本集L={(x1,y1),(x2,y2), … ,(x |L|,y|L|)}, U是一个未标签样本集U={x’1,x’2,…,x’|U|},希望得到函数f:X → Y可以准确地对样本x预测其标签y,这个函数可能是参数的,如最大似然法;可能是非参数的,如最邻近法、神经网络法、支持向量机法等;也可能是非数值的,如决策树分类。其中, x与x’ 均为d 维向量, yi∈Y 为样本x i 的标签, |L| 和|U| 分别为L 和U 的大小, 即所包含的样本数。半监督学习就是在样本集S 上寻找最优的学习器。如何综合利用已标签样例和未标签样例,是半监督学习需要解决的问题。
2、半监督学习问题从样本的角度而言是利用少量标注样本和大量未标注样本进行机器学习,从概率学习角度可理解为研究如何利用训练样本的输入边缘概率 P( x )和条件输出概率P ( y | x )的联系设计具有良好性能的分类器。这种联系的存在是建立在某些假设的基础上的,即聚类假设(cluster assumption)和流形假设(maniford assumption)。
强化学习是从动物学习、参数扰动自适应控制等理论发展而来,其基本原理是:如果Agent的某个行为策略导致环境正的奖赏(强化信号),那么Agent以后产生这个行为策略的趋势便会加强。Agent的目标是在每个离散状态发现最优策略以使期望的折扣奖赏和最大。
强化学习把学习看作试探评价过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给Agent,Agent根据强化信号和环境当前状态再选择下一个动作,选择的原则是使受到正强化(奖)的概率增大。选择的动作不仅影响立即强化值,而且影响环境下一时刻的状态及最终的强化值。
强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是Agent对所产生动作的好坏作一种评价(通常为标量信号),而不是告诉Agent如何去产生正确的动作。由于外部环境提供了很少的信息,Agent必须靠自身的经历进行学习。通过这种方式,Agent在行动一一评价的环境中获得知识,改进行动方案以适应环境。
强化学习系统学习的目标是动态地调整参数,以达到强化信号最大。若已知r/A梯度信息,则可直接可以使用监督学习算法。因为强化信号r与Agent产生的动作A没有明确的函数形式描述,所以梯度信息r/A无法得到。因此,在强化学习系统中,需要某种随机单元,使用这种随机单元,Agent在可能动作空间中进行搜索并发现正确的动作。
http://blog.csdn.net/u011067360/article/details/24735415
统计学习方法
斯坦福大学machine learning
机器学习
强化学习-百度百科/维基百科
前面我们介绍了机器学习所解决的问题,以及哪些种类的机器学习方法。本文我们主要从模型容量的选择出发,讲解欠拟合和过拟合问题。机器学习的主要挑战任务是我们的模型能够在先前未观测的新输入上表现良好,而不是仅仅在训练数据集上效果良好。这儿,将在先前未观测输入上的表现能力称之为泛化(generalization)。
首先定义几个关于误差的概念,通常情况下,通过训练数据集训练模型后在训练数据上进行的一些误差计算称之为训练误差(training error),通常我们的目前是降低训练误差(为防止过拟合我们通常加一个正则化项,后面会提到)。上述这个问题其实就是一个优化问题,但是优化问题不同于机器学习问题,在进行机器学习建模时我们不仅希望我们的训练误差很小,同时我们的最终目的是使得测试误差(test error)很小,也就是泛化误差(generalization error)很小。通常,我们度量测试数据集在模型中的性能来评估模型的泛化误差。例如,在线性回归中我们通过最小化训练误差最小化来训练模型。
但是我们真正关注的是测试误差
由于训练数据集和测试数据集是独立同分布产生于同一个数据生成过程的,这个假设使得我们可以寻找训练误差和测试误差之间的关系。假设我们有概率分布p(x,y),从中进行重复采样生成训练数据集和测试数据集。对于同一个参数W,训练数据集和测试数据集的误差期望是相等的,唯一的区别便是数据集的名称不同而已。但是实际的机器学习应用中,我们不会提前确定固定的参数然后从中进行采样的。以下是决定机器学习算法效果的决定性因素:
降低训练误差
缩小训练误差与测试误差之间的差距
其实上述的两个因素真好对应于我们今天所说的欠拟合(underfitting)和过拟合(overfitting)。欠拟合发生在模型不怕能在训练数据集上获得足够小的误差。过拟合发生在训练误差和测试误差之间的差距太大。
通过调整模型的容量,我们可以控制模型是否偏向于过拟合或者欠拟合。通俗而言,模型容量就是指其拟合各种函数的能力。容量低的模型不能或者很难拟合训练数据集;容量很高可能会因为学习了一下干扰特征而出现过拟合。
接下来通过多项式函数拟合问题为例说明这个问题(引用:《统计学习方法》(P12))。
给定训练数据集:
其中,xi世输入x的观测值,yi是相应的输出y的观测值,i=1,2,3,...,N。多项式函数拟合的任务是假设给定数据由M次多项式函数生成,选择最有可能产生这些数据的M次多项式。如图所示的10个点数据,用0---9次多项式进行拟合,图中画出了需要用多项式函数曲线拟合的数据。
M次多项式函数拟合问题的例子
设M次多项式为:
解决这一问题的思路可以是这样的,首先确定模型的复杂度;然后在给定模型复杂度的情况下,按照经验风险最小化的策略求解参数,经验风险最小化具体如下
进一步转化为:
对各个参数求导后为
最终求的多项式的系数。
上图中我们给出了M=0,1,3,9时多项式的拟合效果。当M=0时,这就是一条曲线,数据拟合效果很差;当M=1时,多项式是一条直线,拟合效果也很差;当M=9时,多项式通过每个数据点,训练误差为零,从训练数据的拟合效果而言,效果很好。但是因为训练数据本身存在噪声,这种拟合对于未知数据的预测能力往往不是最好的,该现象也就是之前提到的过拟合现象,而M=0,1时存在欠拟合现象。而当M=3时,多项式曲线对训练数据拟和效果足够好,模型也比较简单是一个不错的选择。
训练误差和测试误差与模型复杂度的关系训练误差和测试误差曲线趋势表现的非常不一致。在图的左侧,训练误差和泛化误差都很高,处于欠拟合期;当我们增加模型容量也就是增加模型复杂度时,训练误差减小,但是训练误差和泛化误差之间的差距变大,最终这个间距的大小超过了训练误差的下降,从而进入了过拟合期。
合理的选择模型的复杂度和模型容量,通常采用正则化和交叉验证。
参考资料:
统计学习方法
斯坦福大学machine learning
机器学习
本文来源:机器学习算法与Python学习