机器学习基础
1. 学习算法
机器学习算法是从数据中学习的算法。
学习定义为:“对于某类学习任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进之后,在任务T上由性能度量P衡量的性能有所提升。”
1.1 任务T
学习过程本身不算任务,学习是我们所谓获取完成任务的能力。
通常机器学习定义任务为机器学习系统应该如何处理样本。样本是从某些机器学习系统处理的对象或事件中收集的已经量化的特征的集合。
常见机器学习任务的分类:
1、分类;
2、输入缺失的分类;
若输入向量的每个度量不被保证,分类任务会很有挑战。一般分类任务只需学习一个从输入向量映射到输出类别的函数。但是输入缺失时,学习算法必须学习一组函数。每个函数对应分类具有不同缺失的输入子集。
有效定义大集合函数的方法是:学习所有相关变量的概率分布,通过边缘化缺失变量解决分类任务。
3、回归;
4、转录:机器学习系统观测相对非结构化的数据,并转录信息为离散的文本形式;
5、机器翻译;
6、结构化输出;任务输出是向量或其他包含多个值的数据结构,构成输出的不同元素具有重要关系。
7、异常值检测;
8、合成和采样;
生成和训练数据相似的新样本。
9、缺失值填补;
10、去燥;
11、密度估计或概率质量函数估计;
算法能隐式的捕获概率分布的结构;
1.2 性能度量P
性能度量P是特定于系统执行的任务T而言。
1.3 经验E
机器学习算法通常分为无监督学习和监督学习算法。
无监督学习算法:训练含有很多特征的数据集,学习数据集有用的结构性质。例如学习生成数据集的概率分布,比如密度估计,合成或去燥;以及聚类。
监督学习算法:训练含有很多特征的数据集,但样本中有标签。
常用数据集的表示方法是设计矩阵。设计矩阵每一行包含不同的样本,每一列对应不同的特征。
对于图像数据,若向量的维度不一致,一般将数据集表示为m个元素的集合。
2.容量、过拟合和欠拟合
训练误差:训练集上得到的标签与预测结果的度量误差;
泛化误差:新输入的误差期望,期望基于不同的可能输入。
若只能观测到训练集,如何影响测试集的性能?
统计学习理论表明,若训练集和测试集的数据是任意收集,那么能做的有限;若数据收集有一定假设,那么能对算法做出一定改进。
数据生成过程的概率分布生成训练集和测试集的数据。
独立同分布假设:数据集中的样本是彼此相互独立的,并且训练集和测试集是同一分布的。
这个假设表明我们能够在单个样本的概率分布描述数据生成过程。这个共享的潜在分布称之为数据生成分布。
这个概率框架和独立同分布假设允许从数学上研究训练误差和测试误差之间的关系。
·训练误差和测试误差之间的直接联系是:随机模型训练误差和测试误差的期望是一样的。
使用机器学习算法时会采样得到训练集,选择模型和参数降低训练误差,采样得到测试集。这个过程中,测试误差期望会大于或等于训练误差期望。一下是决定机器学习算法效果好的因素:
降低训练误差;
缩小训练误差和测试误差之间的差距;
也就是说,模型不能在训练集上得到足够的误差——欠拟合;训练误差和测试误差之间的差距太大——过拟合。
通过调整模型的容量可以控制模型是否偏向过拟合或欠拟合。
模型的容量是指其拟合各种函数的能力。
一种控制训练算法容量的方法是选择假设空间,即学习算法选择为解决方案的函数集。
2.1 奥卡姆剃刀原理
奥卡姆剃刀原理:“如无必要,勿增实体”,即简单有效原理。
在同样能解释已知观测现象的假设中,选择“最简单”的一个。
量化模型容量的各种方法。
2.2 VC维
VC维:定义为分类器能够分类的训练样本的最大数目。
Hoeffding不等式:关于一组随机变量均值的概率不等式。若是一组独立同分布的参数为的伯努利分布的随机变量,其均值定义为:
对于任意,Hoeffding不等式可以表示为
从上式中可以看出,当n逐渐变大时,不等式的Upper Bound越来越接近于0,即样本期望越来越接近总体期望。
机器学习的过程是:通过算法A,在假设空间H中,根据样本集D,选择最好的假设g。选择标准是g近似于理想方案f。
是理想情况下(已知f),总体(out-of-sample)的损失。称为expected loss。
是训练样本上(in-of-sample)损失的期望,称为expirical loss。
当样本数量足够大,且样本独立同分布,可以通过样本集上的expirical loss推测总体的expected loss。
假定整个假设空间有m个假设函数,有下面的等式
也就是说,在假设空间中,设定一个较小的值,任意一个假设h,其由该值的所约束。这个bound与“样本数n和假设数M”密切相关。
对于一个假设空间,M可能是无穷大的,目标是寻找有限的因子替代不等式bound中的M。
实时上,多个g之间存在相互重叠,并不是完全独立,因此一些假设可以归为同一类。
假设空间的维度M是很大,但是数据集是有限的,有效的假设安徽省农户数目是有限的。推导有效的假设函数值。如果有N个样本数据,有效假设个数定义为:
effective(N)=H作用于数据集D“最多”能产生多少不同的dichotomy
上式表述为一个成长函数(growth function)
举例说明
对于第一个例子,positive ray,相当于是正向的射线。该假设空间,作用于1个样本点,可以产生2种dichotomies:(–1),(+1);作用于2个样本点,可以产生3种dichotomies:(–1,+1),(–1,–1),(+1,+1);作用于3个样本点,可以产生4种dichotomies。依次类推,可以推导出其成长函数 m_H(N)=N+1;
shatter:当假设空间作用于N个input的样本集时,产生的dichotomy数量等于N个点的总的组合数是2N。
break point:对于给定的成长函数,从N=1出发,当增大到k时,出现的情况,则k是成长函数的break point。此时对于任意个输入,假设空间无法继续shatter。
成长函数额上界定义为,意思是:当break point=k时,最大可能的。
对于任意,类推可以得到,
结论:如果break point存在(有限的正整数),生长函数m(N) 是多项式的。
理解:若假设空间存在有限的break point,那么会被最高幂次为的多项式上界约束;随着N的增大,指数下降的速度会比多项式下降速度快,因此VC Bound是有限的。更进一步,当N足够大时,对H中的任意一个假设h,都将接近于,即学习是可行的。
一个假设空间H的VC维,是H最多能shatter的点的数量,记为;
根据定义,可以得到一个明显的结论:
前面的分析可得,VC维的大小与学习算法A无关,与输入变量X的分布无关,与求解的目标函数f无关,仅与模型和假设空间有关。
一个实践规律是:VC维与假设参数w的自由变量数大致相等。
上式第3项描述模型复杂度;模型越复杂,VC维越大,可能距离越远。
模型较复杂时,越大,需要更多的训练数据。理论上,数据规模约等于(采样复杂性,sample complexity),实际经验是。原因在于VC Bound过于宽松,我们得到是一个比实际大得多的界。
加入正则项后,新的假设空间得到一些限制,新假设空间的VC维会变小,即相同的训练数据下,更接近,模型泛化能力更强。
对于神经网络,VC维的公式为:
其中,表示神经元的个数,表示权重的个数。
总结:训练误差和测试误差之间的差异的上界随模型容量增长而增长,但随训练样本增多而下降。
2.3 没有免费午餐定理
NFL定理:
1、对所有可能的的目标函数求平均,得到的所有学习算法的“非训练集误差”的期望值相同;
2、对任意固定的训练集,对所有的目标函数求平均,得到的所有学习算法的“非训练集误差”的期望值也相同;
3、对所有的先验知识求平均,得到的所有学习算法的的“非训练集误差”的期望值也相同;
4、对任意固定的训练集,对所有的先验知识求平均,得到的所有学习算法的的“非训练集误差”的期望值也相同。
由于对所有可能函数的相互补偿,最优算法的性能是等价的。
没有免费午餐定理表明,在所有可能的数据生成分布上平均后,每一个分类算法在未事先观测的点上都有相同的错误率。换言之,没有一种机器学习算法总是比其他算法要好。即必须在特定任务上设计性能良好的机器学习算法。
算法的效果不仅受影响于假设空间的函数数量,也取决于函数的具体形式。
估计泛化误差重点在于测试样本不能以任何形式参与模型的选择,包括设定超参数。基于此,测试集样本不能用于验证集。因此从训练集构建验证集,用于估计训练中或训练后的泛化误差,即训练数据分为两个不相交的子集,一个用于训练;另一个用于验证。一般而言,尽管验证集误差会比训练误差小,但通常会低估泛化误差。
交叉验证在原始数据上随机采样或分离出不同数据集上的重复训练和测试的数据。最常用的是k-折交叉验证,但一个常见问题是不存在平均误差方差的无偏估计。
2.4 估计、偏差和方差
2.4.1 点估计
令是m个独立同分布的数据点。点估计是这些数据的任意函数:
这里不要求g返回一个接近真实的值,或g的值域是的允许取值范围。
假设真实参数是固定但未知的,点估计是数据的函数。由于数据是随机过程采样,数据的任何函数是随机的,因此点估计是一个随机变量。
函数估计输入与目标变量之间关系的估计。
2.4.2 偏差
其中,期望作用在所有数据上。是用于数据生成分布的真实值。
无偏:则称是无偏的。
若则称是渐近无偏的;
2.4.3 方差
独立的从潜在的数据生成过程中重采样数据集时,如何估计期望的变化。
均值的标准差
一般而言,上述计算方法倾向于低估真实标准差。
通常用测试集样本的误差均值来估计泛化误差。测试集的样本数量决定估计的精确度。
我们利用标准差计算出真实期望落在选定区间的概率。例如,以均值为中心的95%置信区间是
2.4.4 权衡、偏差与方差以最小化均方误差
偏差和方差度量着估计量的两个不同的误差来源。
偏差度量着偏离真实函数或参数的误差期望。
方差度量数据任意特定采样可能导致的估计期望的偏差。
MSE度量着估计和真实参数之间的平方误差的总体期望偏差。
理想的估计具有较小的MSE或是在检查中会约束偏差和方差。
用MSE度量泛化误差时,增加容量会增加方差,降低偏差。
一致性
训练数据增多后估计量的效果,希望数据集中的数据点的数量增加时,点估计收敛于对应参数的真实值。
一致性保证估计量的偏差会随样本数量的增多而减少。
2.5 最大似然估计
考虑一组含有m个样本的数据集,独立地由未知的真实数据生成分布。
令是一族由确定在相同空间上的概率分布。换言之,将任意输入映射到实数来估计真实概率。
对的最大似然估计被定义为
一种解释最大似然估计的观点是将它看做最小化训练集上的经验分布和模型分布之间的差异,两者之间的差异可以通过KL散度度量。
左边一项涉及数据生成过程,和模型无关。当训练模型最小化KL散度时,只需最小化
最小化KL散度时最小化分布之间的交叉熵。任何一个由负对数似然组成的损失是定义在训练集上的经验分布和定义在模型上的概率分布之间的交叉熵。
最大似然可以看做使模型分布尽可能地和经验分布相匹配的尝试。理想情况下,我们希望匹配真实的数据生成分布。
2.5.1 条件对数似然和均方误差
最大似然估计很容易扩展到估计条件概率,从而给定确定。若表示所有输入,表示观测的目标,那么条件似然估计是
若样本是独立同分布,那上式分解为
2.5.2 最大似然的性质
最大似然估计能被证明经当样本数目时,就收敛率而言是最好的渐近估计。
合适条件下,最大似然估计具有一致性,意味着训练样本数目趋向于无穷大时,参数的最大似然估计会收敛到参数的真实值,条件是:
1、真实分布必须在模型族中;否则没有估计可以还原;
2、真实分布必须刚好对应一个值,否则,最大似然估计恢复出真实分布后,也不能决定数据生成数据过程使用哪个。
2.6 贝叶斯统计
预测时考虑所有的。贝叶斯统计用概率反映知识状态的确定性程度。一方面,数据集能直接观测到,因此不是随机的;另一方面,真实参数个是未知的或不确定的,因此可以表示成随机变量。
在观察到数据前,将的已知知识表示成先验概率分布。一般选择相当宽泛(高熵)的先验分布,以反映在观测到任何数据前参数个的高度不确定性。
相对最大似然估计的区别:
1、贝叶斯方法使用的全分布。
每一个具有正概率密度的的值有助于下一个样本的预测。
2、贝叶斯先验分布能影响概率质量秘度朝参数空间中偏好先验的区域偏移。
估计的方差评估观测数据重新从观测数据中采样后,估计可能会如何变化。
对于处理不确定性的问题,贝叶斯估计的方法是积分。实践中,先验通常表现为更简单或更光滑的模型。
当训练数据有限时,贝叶斯方法通常泛化得更好,但当训练数据样本数目很大时,通常会有很大的计算代价。
为确定模型参数向量的后验分布,需先指定一个先验分布。这个先验分布反映这些参数取值的信念。
最大后验估计
上式右边第一项对应标准的对数似然项,第二项对应着先验分布。
3.促使深度学习发展的挑战
3.1 维数灾难
数据维数很高时,机器学习问题变得异常困难。
维数灾难带来的一个挑战是统计挑战。数据相关维度增大之后,输入的可能配置数目远大于训练样本的数目。
3.2 局部不变性和平滑正则化
先验信念直接影响学习函数本身,更通俗而言,先验信念间接影响选择一些偏好某类函数的算法。
最广泛的隐式先验是平滑先验或局部不变性先验,即学习的函数不应在小区域内发生很大变化。
如何引入额外的显式或隐式的先验,降低复杂任务的泛化误差。
3.3 流形学习
流形是连接在一起的区域。数学上是指,一组点,且每个点都有其邻域。给定一个任意的点,其流形局部看起来像是欧几里得空间。
流形学习算法假设中大部分区域是无效输入,有意义的输入只分布在包含少量数据点的子集构成的一组流形中,而学习函数的输出,有意义的变化都沿着流形的方向或仅发生在切换到另一流形时。数据位于低维流形的假设在处理图像、声音或文本,流形假设是近似准确的。