深度学习 --- 应用数学和机器学习基础(机器学习基础)

1、学习算法

任务列举如下

分类:计算机程序需要指定某些输入属于k类中的哪一类

输入缺失分类:当一些输入可能丢失时,学习算法必须学习一组函数。有效定义这样一个大集合函数的方法是学习所有相关变量的概率分布,然后通过边缘化缺失变量来解决分类任务。计算机程序仅需学习一个描述联合概率分布的函数

回归:对给定输入预测数值

转录:机器学习系统观测一些相对非结构化表示的数据,并转录信息为离散的文本形式。

机器翻译:输入是一种语言符号序列,计算机必须将其转化成另一种语言的符号序列。

结构化输出:结构化输出任务的输出是向量或者其他包含多个值的数据结构,并且构成输出的这些不同元素间具有重要关系。例如语法分析——映射自然语言句子到语法结构树,并标记树的结点的词性;图像的像素级分割,将每一个像素分配到特定类别。

异常检测:计算机程序在一组事件或对象中筛选,并标记不正常或非典型的个体。例如,信用卡欺诈检测

合成和采样:机器学习程序生成一些和训练数据相似的新样本。

缺失值填补

去噪:根据损坏后的样本预测干净样本,或者更一般的预测条件概率分布

密度估计或概率质量函数估计:在密度估计问题中,机器学习算法学习函数 ,其中 可以解释成样本采样空间的概率密度函数(如果x是连续的)或者概率质量函数(如果x是离散的)。要做好这样的任务,算法需要学习观测到的数据的结构。算法必须知道什么情况下样本聚集出现,什么情况下不太可能出现。所以至少要求学习算法至少能隐式地捕获概率分布的结构。估计密度可以让我们显式地捕获该分布。

大致来说,无监督学习涉及观察随机向量x的好几个样本,试图显式或隐式地学习出概率分布p(x),或者该分布一些有意思的性质;而监督学习包含观察随机向量x及其相关联的值或向量y,然后从x预测y,通常是估计p(y|x)。

概率的链式法则表明对于随机向量,联合分布可以分解成,该分解意味着我们可以将其拆分成n个监督学习问题,来解决表面上的无监督学习P(x)

在所有的情况下,数据集是样本的集合,样本是特征的集合。

设计矩阵:每一行是一个样本,每一列是一个特征

监督学习和无监督学习没有正式的定义,数据集或者经验也没有严格的区分。这里介绍的结构涵盖了大多数情况,但始终有可能为新的应用设计出新的结构。

示例;线性回归 是参数向量

参数是控制系统行为的值。在这种情况下, 是系数,会和特征 相乘之后全部相加。可以将w看作一组决定每个特征如何影响预测的权重。

2、容量、过拟合、欠拟合

欠拟合是指模型不能在训练集上获得足够低的误差

过拟合是指训练误差和和测试误差之间的差距太大。

模型的容量是指其拟合各种函数的能力。一种控制训练算法容量的方法是选择假设空间,即学习算法可以选择解决方案的函数集。例如,线性回归算法将关于其输入的所有线性函数作为假设空间。广义线性回归的假设空间包括多项式函数,而非仅有线性函数。这样做就增加了模型的容量

容量不仅取决于模型的选择。模型规定了调整参数降低训练目标时,学习算法可以从哪些函数族中选择函数,这被称为模型的“表示容量”。

额外的限制因素,比如优化算法的不完美,意味着学习算法的有效容量可能小于模型族的表示容量。

VC维度量二元分类器的容量。VC维定义为该分类器能够分类的训练样本的最大数目。假设存在m 个不同x 点的训练集,分类器可以任意地标记该m 个不同的x 点,VC维被定义为m的最大可能值。

统计学习理论最重要的结论阐述了训练误差和泛化误差之间的差异的上界随着模型容量增长而增长,但随着训练样本增多而下降。这些边界为机器学习算法可以有效解决问题提供了理论验证,但是它们很少应用于实际中的深度学习算法。一部分原因是边界太松,另一部分原因是很难确定深度学习算法的容量。由于有效容量受限于优化算法的能力,确定深度学习模型容量问题特别困难。

更简单的函数更可能泛化,但我们仍需选择一个充分复杂的假设以达到低的训练误差。通常,当模型容量上升时,训练误差会下降,直到其渐进最小可能误差。通常,泛化误差是一个关于模型容量的U形曲线函数。

为考虑容量任意高的极端情况,介绍非参数模型

参数模型的学习函在观测到新数据前,参数向量的分量个数是有限且固定的。非参数模型没有这些限制

理想模型假设我们预先知道生成数据的真实概率分布。然而这样的模型仍然会在很多问题上发生一些错误,因为分布中仍然会有一些噪声。

从预先知道的真实分布p(x,y)预测而出现的误差被称为贝叶斯误差

训练误差和泛化误差会随训练集的大小发生变化。泛化误差的期望从不会因为训练样本数目的增加而增加。

机器学习保证找到一个在所关注的大多数样本上可能正确的规则。

机器学习的没有免费午餐定理表明,在所有可能的数据生成分布上平均之后,每一个分类算法在未事先预测的点上都有相同的错误率。

机器学习的研究目标不是找一个通用学习算法或是绝对最好的学习算法,而是理解什么样的分布于人工智能获取经验的真实世界相关,以及什么样的学习算法在我们关注的数据生成分布上效果最好。

没有免费午餐定理暗示我们必须在特定任务上设计性能良好的机器学习算法。

正则化

通过两种方式控制算法性能,一是允许使用的函数种类,二是这些函数的数量。

例如:

加入权重衰减来修改线性回归的的训练标准,带权重衰减的线性回归最小化训练集上的均方误差和正则项的和J(w),其偏好于平方 范数较小的权重。具体: 。其中,λ是提前挑选的值,控制我们偏好小范数权重的程度。当λ=0时,

我们没有偏好,越大的λ偏好范数越小的权重。

更一般地,正则化一个学习函数f(x;θ)的模型,可以给代价函数添加被称为正则化项的惩罚。

表示对函数的偏好是比增减假设空间的成员函数更一般地控制模型容量的方法。

权重衰减的示例中,通过在最小化的目标中额外增加一项,我们明确地表示了偏好权重较小的线性函数。有很多其他方法隐式或显式地表示对不同解的偏好。总而言之,这些不同的方法都被称为正则化。

正则化是指修改学习算法,使其降低泛化误差而非训练误差

3、超参数和验证集

如果在训练集上学习超参数,这些超参数总是趋向于最大可能的模型容量,导致过拟合。例如,相比低次多项式和正的权重衰减设定,更高次的多项式和权重衰减参数设定λ=0总能在训练集上更好的拟合。

测试样本不能以任何形式参与到模型的选择中,包括设定超参数,因此测试集中的样本不能用于验证集

因此从训练数据中构建验证集。其中一个用于学习参数,另一个作为验证集,用于估计训练中和训练后的泛化误差,更新超参数

验证集是用来训练超参数的,尽管验证集的误差通常会比训练集误差小,验证集会低估泛化误差。所有超参数优化完成后,泛化误差可能会通过测试集来估计。

验证集20%

4、估计、偏差和方差

点估计试图为一些感兴趣的量提供单个“最优”预测。一般地,感兴趣的量可以是单个参数,或是某些参数模型中的一个向量参数。

点估计也可以指输入和目标变量之间关系的估计,将这种类型的点估计称为函数估计。

函数估计是函数空间中的一个点估计。

线性回归都既可以被解释为估计参数w,又可以被解释为估计从x到y函数映射。

估计量偏差:

估计量方差:

估计量标准差:

均值的标准差: ,样本方差的平方根和方差无偏估计的平方根都不是标准差的无偏估计。这两种计算方法都倾向于低估真实的标准差

均值的标准差在机器学习实验中非常有用。通常用测试集样本的误差均值来估计泛化误差。测试集中样本的数量决定了这个估计的精度。中心极限定理告诉我们均值会接近一个高斯分布,我们可以用标准差计算出真实期望落在选定区间的概率。

偏差和方差度量着估计量的两个不同误差来源。偏差度量着偏离真实函数或参数的误差的期望,而方差度量着数据上任意特定采样可能导致的估计误差的偏差。

如果只可以选择一个偏差较大的估计或方差较大的估计,该如何选择,最常用的是交叉验证。另外也可以比较这些估计的均方误差MSE,MSE度量着估计和真实参数θ之间平方误差的总体期望偏差

5、最大似然估计

对θ的最大似然估计为

多个概率的乘积会因很多原因不便于计算。例如,计算值很可能会出现数值下溢。于是取对数:

因为重新缩放代价函数时argmax不会改变,于是除以m,得到和训练数据经验分布 相关的期望作为准则:

一种解释最大似然估计的观点是将它看作最小化训练集上的经验分布 和模型分布之间的差异。两者之间的差异程度可以用KL散度度量。

KL散度被定义为:

左边一项仅涉及数据生成过程,和模型无关。这意味着当训练模型最小化KL散度时,只需要最小化

最小化KL散度其实就是在最小化分布之间的交叉熵。任何一个由负对数似然组成的损失都是定义在训练集上的经验分布和定义在模型上的概率分布之间的交叉熵。例如,均方误差是经验分布和高斯模型之间的交叉熵。

示例:线性回归作为最大似然,验证了MSE可以用于最大似然估计。

最大似然估计的性质:

在合适的条件下,最大似然估计具有一致性,即训练样本数目趋向于无穷大时,参数的最大似然估计会收敛到真实的参数值。这些条件是:

·真实分布  必须在模型族 中。否则没有估计可还原

·真实分布  必须刚好对应一个θ值。否则最大似然估计恢复出真实分布后,也不能决定数据生成过程使用哪个θ

统计效率

统计效率通常用于有参情况的研究中。

一种度量和真实参数相差多少的方法是计算均方误差的期望,即计算m个从数据生成分布中出来的训练样本上的估计参数和真实参数之间差值的平方。有参均方误差估计随着m的增加而减少,当m较大时,Cramer-Rao下界表明不存在均方误差低于最大似然估计的一致估计。

因为这些原因(一致性和统计效率),最大似然估计通常是机器学习中的首选估计方法。当样本数据小到会发生过拟合时,正则化策略如权重衰减可用于获得训练数据有限时方差较小的最大似然有偏版本。

6、贝叶斯统计

频率派的视角是真是参数θ是未知的定值,而点估计 是考虑数据集上函数(可以看作随机的)的随机变量

贝叶斯统计用概率反映知识状态的确定性程度。数据集能够被观测到,因此不是随机的。另一方面,真实参数θ是未知或不确定的,因此可以表示成随机变量。

在观察到数据前,我们将θ的已知知识表示成先验概率分布p(θ)。一般,机器学习实践者会选择一个相当宽泛的(即,高熵的)先验分布,以反映在观测到任何数据前参数θ的高度不确定性。

相对于最大似然估计,贝叶斯估计有两个重要区别:

第一,不像最大似然方法估计时使用θ的点估计,贝叶斯方法使用θ的全分布。

例如在观测到m个样本后,下一个数据样本 的预测分布如下:

频率派方法给定点估计θ的不确定性的方法是评估方差。对于如何处理估计不确定性的这个问题,贝叶斯派的答案是积分,这往往会防止过拟合。

第二个最大区别是由贝叶斯先验分布造成的。先验能够影响概率质量密度朝参数空间中偏好先验的区域偏移。实践中,先验通常表现为偏好更简单或更光滑的模型。

当训练数据很有限时,贝叶斯方法通常泛化得更好,但是当训练样本数目很大时,通常会有很大的计算代价。

示例:贝叶斯线性回归

实数值参数通常使用高斯作为先验分布:

于是:

定义:

于是:

大多数情况下,我们设置μ0 = 0。如果我们设置μ0 = 1,,那么μm 对w 的估计就和频率派带权重衰减惩罚 αw⊤w 的线性回归的估计是一样的。一个区别是若 α 设为0 则贝叶斯估计是未定义的——我们不能将贝叶斯学习过程初始化为一个无限宽的w 先验。更重要的区别是贝叶斯估计会给出一个协方差矩阵,表示w 所有不同值的可能范围,而不仅是估计μm。

原则上,应使用参数θ的完整贝叶斯后验分布进行预测,但单点估计常常也是需要的。希望使用点估计的一个常见原因是,对于大多数有意义的模型而言,大多数设计贝叶斯后验的计算是非常棘手的,点估计提供了一个可行的近似解。

最大后验(MAP)估计:选择后验概率最大的点(或在θ是连续值的更常见情况下,概率密度最大的点):

左边对应着标准的对数似然项,log p(θ)对应着先验分布。

MAP贝叶斯推断的优势是能够利用来自先验的信息,这些信息无法从训练数据中获得。该附加信息有助于减少最大后验点估计的方差(相比于ML估计)。然而,这个优点的代价是增加了偏差。

MAP提供了一个直观的方法来设计复杂但可解释的正则化项。例如,更复杂的惩罚项可以通过混合高斯分布作为先验得到,而不是一个单独的高斯分布。

7、监督学习算法

概率监督学习

可以使用最大似然估计找到对于有参分布族p(y|x;θ)最好的参数向量θ

线性回归对应于分布族

逻辑回归

线性回归可以通过求解正规方程以找到最佳权重。相比而言,逻辑回归其最佳权重没有闭解,必须最大化对数似然来搜索最优解。

通过确定正确的输入和输出变量上的有参条件概率分布族,相同的策略基本上可以用于任何监督学习问题。

核技巧十分强大的两个原因:

其一,它使我们能够使用保证有效收敛的凸优化技术来学习非线性模型(关于x的函数)

其二,核函数K的实现方法通常比直接构建φ(x)再算点积高效很多。

高斯核: ,也被称为径向基函数核,因为其值沿v中从u向外辐射的方向减小。高斯核对应于无限维空间中的点积。

可以认为高斯核在执行一种模板匹配。训练标签y相关的训练样本x变成了类别y的模板。当测试点x'到x的欧几里得距离很小,对应的高斯核相应很大时,表明x'和模板x非常相似。该模型会赋予相对应的训练标签y较大的权重。总的来说,预测将会组合很多这种通过训练样本相似度加权的训练标签。

使用核技巧的算法类别被称为核机器或核方法。

核技巧的一个主要缺点是计算决策函数的成本关于训练样本的数目是线性的。

K-近邻能达到非常高的容量。例如,假设有一个用0-1误差度量性能的多分类任务,在此设定中,当训练样本数目趋向于无穷大时,1-最近邻收敛到两倍贝叶斯误差。超出贝叶斯误差的原因是它会随即从等距离的临近点中随机挑选一个。而存在无限的训练数据时,所有测试点x周围距离为零的邻近点有无限多个。如果使用所有这些临近点投票的决策方式,而不是随机挑选一个,那么该过程将会收敛到贝叶斯错误率。k近邻的高容量使其在训练样本数目大时能获得较高的精度,然而计算成本很高,在训练集小时泛化误差能力很差。

k近邻的一个弱点是它不能学习出哪一个特征比其他更具识别力。例如,假设我们要处理一个回归任务,其中  是从各向同性的高斯分布中抽取的,但是只有一个变量x1和结果相关,进一步假设y=x1,。最近邻回归不能检测到这个简答模式。大多数点x的最近邻取决于x2到x100的大多数特征,而不是单独取决于特征x1,。因此,小训练集上的输出将会非常随机。

8、无监督学习

有很多方式定义较简单的表示。最常见的3种包括低维表示、稀疏表示和独立表示。

稀疏表示将数据集嵌入到输入项大多数为零的表示中,通常用于需要增加表示维数的情况,使得大部分为零的表示不会丢失很多信息。这会使得表示的整体结构倾向于将数据分布在表示空间的坐标轴上。

独立表示试图分开数据分布变化的来源,使得表示的维度是统计独立的。

9、随机梯度下降

梯度下降,计算所有样本损失:

随机梯度下降:

随机梯度下降的核心是,梯度是期望。期望可使用小规模的样本近似估计。具体而言,在算法的每一步,我们从训练集中均匀抽出一小批量样本 。小批量的数目m′ 通常是一个相对较小的数,从一到几百。重要的是,当训练集大小m 增长时,m′ 通常是固定的。我们可能在拟合几十亿的样本时,每次更新计算只用到几百个样本。

梯度估计:

,ϵ 是学习率

10、促使深度学习发展的挑战

在传统机器学习中实现泛化的机制不适合学习高维空间中复杂的函数。

许多传统机器学习算法只是简单地假设在一个新点的输出应大致和最接近的训练点的输出相同。

为了更好的泛化,机器学习算法需要由先验信念引导应该学习什么类型的函数。使用最广泛的隐式“先验”是平滑先验,或局部不变性先验,这个先验表明我们学习的函数不应在小区域内发生很大变化。许多简单算法完全依赖于此先验达到良好的泛化,其结果是不能推广去解决人工智能级别任务中的统计挑战。

有许多不同的方法来显式或隐式地表示学习函数应该具有光滑或局部不变的先验。所有这些不同的方法都旨在鼓励学习过程能够学习出函数f*,对于大多数设置x和小变动ε,都满足条件f*(x)≈f*(x+ε)

有没有什么方法能表示区间数目比训练样本数目还多的复杂函数,显然,只是假设函数的平滑性不能做到这点

只要在要学习的真实函数的峰值和谷值处有足够多的样本,那么平滑性假设和相关的无参数学习算法的效果都非常好。当要学习的函数足够平滑,并且只在少数几维变化时,这样做一般没问题。

是否可以有效地表示复杂函数(想区分多于训练样本数目的大量区间)以及所估计的函数是否可以很好地泛化到新的输入,关键观点是只要通过额外假设生成数据的分布来建立区域间的依赖关系,那么O(k)个样本足以描述如O(2^k)的大量区间。

神经网络不会包含很强的假设,因此神经网络可以泛化到更广泛的各种结构中。人工智能任务结构非常复杂,很难限制到简单的、人工手动指定的性质,如周期性。深度学习的核心思想是假设数据由因素或特征组合产生,这些因素或特征可能来自一个层次结构的多个层级。

流形学习算法假设认为 中大部分区域都是无效的输入,有意义的输入只分布在包含少量数据点的子集构成的一组流形中,而学习函数的输出中,有意义的变化都沿着流形的方向或仅发生在我们切换到另一流形时。

当数据位于低维流形中时,使用流形中的坐标而非中的坐标表示机器学习数据更为自然。

日常生活中,我们可以认为道路是嵌入到三维空间的一维流形。

发布了27 篇原创文章 · 获赞 2 · 访问量 203

猜你喜欢

转载自blog.csdn.net/weixin_43575791/article/details/105464597