正则化算法
㈠ 贝叶斯正则化算法是怎么提高泛化能力的!有点不懂原理!
由于造成过拟合的原因可能是太多的特征量,所以可采用减少特征量的方法。但是不妨换种思路,减少特征量的权值(这个特征乘以的 \theta 很小),来达到目的。
例如,对于 h_{\theta}(x)=\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}+\theta_{3}x_{3}+\theta_{4}x_{4},已知 x_{3}\ x_{4} 的关联度不大,我们需要减少它的权值(\theta_{3}\ \theta_{4}),可将代价函数修改为 J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+1000\theta_{3}^{2}+1000\theta_{4}^{2},这样为了降低 J(\theta),就会使得 \theta_{3}\ \theta_{4} \rightarrow 0,达到了减小特征的目的。
但是通常,我们不知道哪些特征量是无关的,所以给出修改后的代价函数定义:
\large J(\theta)=\frac{1}{2m}[\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda\sum_{i=1}^{n}\theta_{j}^{2}]
其中,\lambda 称为正则化参数,\lambda\sum_{i=1}^{n}\theta_{j}^{2} 称为正则项,目的是使得 \theta_{j} 减小。正则化使得假设函数更加简单,减小发生过拟合概率。
注:如果 \lambda 过大,会造成 \theta_{j}\rightarrow 0 \ (j=1,2,...,n),使得 h_{\theta}(x)=\theta_{0},造成欠拟合。
㈡ 正则化是什么意思
正则化的意思:修改学习算法,使其降低泛化误差而非训练误差。
正则化,英文为regularizaiton,定义是修改学习算法,使其降低泛化误差(generalization error)而非训练误差。旨在更好实现模型泛化的补充技术,即在测试集上得到更好的表现。它是为了防止过拟合,进而增强模型的泛化能力。
2、模型集成(ensemble)
常用的模型集成方法有:bagging、boosting、stacking。
3、dropoutd
dropoutd的基本步骤是在每一次的迭代中,随机删除一部分节点,只训练剩下的节点。每次迭代都会随机删除,每次迭代删除的节点也都不一样,相当于每次迭代训练的都是不一样的网络,通过这样的方式降低节点之间的关联性以及模型的复杂度,从而达到正则化的效果。
㈢ 什么是正则化希望得到详细定义和例子
图像复原从数学角度考虑,它等价于第一类fredholm积分方程,是一种反问题,具有很大的病态性,因此,必须进行正则化处理。从统计的角度看,正则化处理其实就是一种图像的先验信息约束 。假设图像退化过程用如下模型描述:
g=hf+n (1)
则图像复原即根据观测图像g恢复原始图像f。正则化图像复原从贝叶斯角度来说,可以用map(最大后验概率估计)方法实现,即:
f=argmax{p(f|g)=p(g|f)p(f)/p(g)} (2)
先验分布函数 p(f)可以看成一正则化项。图像复原关键问题是先验模型p(f) 的选取,也可以说图像建模在图像复原中起者中心作用。早期的图像复原方法假设 服从平稳高斯分布,从而导致约束最小二乘图像复原方法;但许多统计试验表明大部分自然图像都不能用平稳高斯分布准确的描述,模型的不准确导致复原的图像质量较差,图像边缘不能很好的保持。mrf (markov random field)在图像复原中起很重要的作用,如果将原始图像看作mrf的一次实现,根据mrf的局部性,可以用局部gmrf(gauss markov random field)对图像进行建模,按照这种方式建立的模型比用平稳高斯分布更为准确,因此所复原的质量也较好。现代很多人热衷于小波变换的图像复原,其原因是图像的小波系数可近似认为互相独立,且能够用简单的统计模型描述(如广义高斯分布等)。我认为小波在图像复原中主要起工具的作用,现在关于小波方法进行图像复原,研究重点应放在对小波系数的统计建模(如小波系数尺度间、尺度内、方向间的相关性等)。由于一般正交小波变换不具有平移不变性和方向较少的特点,基于这些不足,现在的发展是在其他变换域内建立模型,如(冗余小波变换,复小波变换,脊波,曲波等)这仍是一个正在发展的课题,关于对这些变换域系数进行统计建模用于图像复原能够弥补正交小波变换的不足,然而重点仍是对变换系数的统计建模。
正如我们如上所说,图像建模对图像复原起很重要的作用。然而,从计算复杂度的角度考虑,一个好的模型常导致计算上的困难。因为一个好的模型最终导致一个(2)式有多个极值点,从而在计算上必须用一些全局优化算法(如模拟退火等),这导致很大的计算量。
综上分析,图像复原需要两方面的知识需要考虑:1统计建模的知识2计算方法的知识。
两者任一方面的改进,都会推动图像复原的发展。因此,必须懂得数理统计,贝叶斯分析,随机场,优化算法,矩阵论,小波分析等数学课程。
㈣ 正则化详解
机器学习模型需要拥有很好地泛化能力来适应训练集中没有出现过的新样本。在机器学习应用时,我们经常会遇到过度拟合(over-fitting)的问题,可能会导致训练出来的模型效果很差。接下来,我们将谈论的正则化(regularization)技术,它可以改善或者减少过度拟合问题,以使学习算法更好实现。
机器学习中一个重要的话题便是模型的泛化能力,泛化能力强的模型才是好模型,对于训练好的模型,若在训练集表现差,不必说在测试集表现同样会很差,这可能是欠拟合(under fitting)导致;若模型在训练集表现非常好,却在测试集上差强人意,则这便是过拟合(over fitting)导致的,过拟合与欠拟合也可以用 Bias 与 Variance 的角度来解释,欠拟合会导致高 Bias ,过拟合会导致高 Variance ,所以模型需要在 Bias 与 Variance 之间做出一个权衡。
使用简单的模型去拟合复杂数据时,会导致模型很难拟合数据的真实分布,这时模型便欠拟合了,或者说有很大的 Bias, Bias 即为模型的期望输出与其真实输出之间的差异 ;有时为了得到比较精确的模型而过度拟合训练数据,或者模型复杂度过高时,可能连训练数据的噪音也拟合了,导致模型在训练集上效果非常好,但泛化性能却很差,这时模型便过拟合了,或者说有很大的 Variance,这时模型在不同训练集上得到的模型波动比较大, Variance 刻画了不同训练集得到的模型的输出与这些模型期望输出的差异 。
举例:
Bias反映的是模型的期望与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。
我们通过公式来直观了解一下,文字没有数学符号解释的清楚:
用图形解释方差与偏差:
举一个例子,一次打靶实验,目标是为了打到10环,但是实际上只打到了7环,那么这里面的Error就是3。具体分析打到7环的原因,可能有两方面:一是瞄准出了问题,比如实际上射击瞄准的是9环而不是10环;二是枪本身的稳定性有问题,虽然瞄准的是9环,但是只打到了7环。那么在上面一次射击实验中,Bias就是1,反应的是模型期望与真实目标的差距,而在这次试验中,由于Variance所带来的误差就是2,即虽然瞄准的是9环,但由于本身模型缺乏稳定性,造成了实际结果与模型期望之间的差距。
简单的模型会有一个较大的偏差和较小的方差,复杂的模型偏差较小方差较大。
解决欠拟合的方法:
1、增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间;
2、尝试非线性模型,比如核SVM 、决策树、DNN等模型;
3、如果有正则项可以较小正则项参数;
4、Boosting ,Boosting 往往会有较小的 Bias,比如 Gradient Boosting 等.
解决过拟合的方法:
1、交叉检验,通过交叉检验得到较优的模型参数;
2、特征选择,减少特征数或使用较少的特征组合,对于按区间离散化的特征,增大划分的区间;
3、正则化,常用的有 L1、L2 正则。而且 L1正则还可以自动进行特征选择;
4、如果有正则项则可以考虑增大正则项参数;
5、增加训练数据可以有限的避免过拟合;
6、Bagging ,将多个弱学习器Bagging 一下效果会好很多,比如随机森林等.
DNN中常见的方法:
1、早停策略。本质上是交叉验证策略,选择合适的训练次数,避免训练的网络过度拟合训练数据。
2、集成学习策略。而DNN可以用Bagging的思路来正则化。首先我们要对原始的m个训练样本进行有放回随机采样,构建N组m个样本的数据集,然后分别用这N组数据集去训练我们的DNN。即采用我们的前向传播算法和反向传播算法得到N个DNN模型的W,b参数组合,最后对N个DNN模型的输出用加权平均法或者投票法决定最终输出。不过用集成学习Bagging的方法有一个问题,就是我们的DNN模型本来就比较复杂,参数很多。现在又变成了N个DNN模型,这样参数又增加了N倍,从而导致训练这样的网络要花更加多的时间和空间。因此一般N的个数不能太多,比如5-10个就可以了。
3、DropOut策略。所谓的Dropout指的是在用前向传播算法和反向传播算法训练DNN模型时,一批数据迭代时,随机的从全连接DNN网络中去掉一部分隐藏层的神经元。在对训练集中的一批数据进行训练时,我们随机去掉一部分隐藏层的神经元,并用去掉隐藏层的神经元的网络来拟合我们的一批训练数据。使用基于dropout的正则化比基于bagging的正则化简单,这显而易见,当然天下没有免费的午餐,由于dropout会将原始数据分批迭代,因此原始数据集最好较大,否则模型可能会欠拟合。
正则化的目的是限制参数过多或者过大,避免模型更加复杂。例如,使用多项式模型,如果使用 10 阶多项式,模型可能过于复杂,容易发生过拟合。因此需要在目标函数添加一些额外的惩罚项,即正则项。添加惩罚项可看成是对损失函数中的某些参数做一些限制,根据惩罚项的不同可分为:L0范数惩罚、L1范数惩罚(参数稀疏性惩罚)、L2范数惩罚(权重衰减惩罚)。
L0范数惩罚:为了防止过拟合,我们可以将其高阶部分的权重 w 限制为 0,这样,就相当于从高阶的形式转换为低阶。为了达到这一目的,最直观的方法就是限制 w 的个数,但是这类条件属于 NP-hard 问题,求解非常困难。因此机器学习中经常使用L1、L2正则化。L1正则化项也称为Lasso,L2正则化参数也称为Ridge。
L1范数:权值向量w中各个元素的绝对值之和,L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。
L2范数:权值向量w中各个元素的平方和然后再求平方根,L2正则化可以防止模型过拟合;一定程度上,L1也可以防止过拟合。
上面我们得到了带约束的优化问题A2,在实际的求解中,带约束的优化问题往往较难求解,大多都是转化为无约束优化问题去求解。接下来自然而然的我们采用拉格朗日乘子法将约束转化到目标函数上去,也就将约束优化问题A2转化为一个无约束的优化问题。那么这个无约束优化问题的形式是什么样的呢?这里直接先把最终的结论摆上来:
稀疏性对很多机器学习建模问题来说是非常重要的,也是非常好的一个性质。既然有很多系数等于0了,那么说明与之对应的输入是没有用了,这些输入就可以舍去,相当于起到了 降维和feature selection的作用。特殊要说明的是用L1正则化来降维和PCA降维是不同的,可以理解为L1正则化是用了数据的标签来做的,而PCA无需数据的标签。所以L1正则化实际上是带有监督学习性质的降维方法。
拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是抗扰动能力强。
λ可以控制L图形的大小,λ越小,L的图形越大(上图中的黑色方框和圆);λ越大,L的图形越小,最后求得代价函数最值时各参数也会变得很小。从另一方面看,由公式5可以看到,λ越大,θj衰减得越快。
机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?
机器学习防止欠拟合、过拟合方法
【学界】有约束转无约束,拉格朗日松弛观点下的L1正则化稀疏性探讨
斯坦福机器学习课程 第三周 (4)正则化:解决过拟合问题
拉格朗日乘子法如何理解?
机器学习中正则化项L1和L2的直观理解
㈤ 正则化为什么能防止过拟合
在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不工作。
为了防止overfitting,可以用的方法有很多,下文就将以此展开。有一个概念需要先说明,在机器学习算法中,我们常常将原始数据集分为三部分:
这个validation data是什么?它其实就是用来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大小、根据validation data确定learning rate等等)。那为啥不直接在testing data上做这些呢?因为如果在testing data做这些,那么随着训练的进行,我们的网络实际上就是在一点一点地overfitting我们的testing data,导致最后得到的testing accuracy没有任何参考意义。因此,training data的作用是计算梯度更新权重,validation data如上所述,testing data则给出一个accuracy以判断网络的好坏。
避免过拟合的方法有很多:
L2正则化就是在代价函数后面再加上一个正则化项:
C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。
L2正则化项是怎么避免overfitting的呢?我们推导一下看看,先求导:
可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:
在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n ,因为η、λ、n都是正的, 所以 1−ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。当然考虑到后面的导数项,w最终的值可能增大也可能减小 。
另外,需要提一下,对于基于mini-batch的随机梯度下降,w和b更新的公式跟上面给出的有点不同:
对比上面w的更新公式,可以发现后面那一项变了,变成所有导数加和,乘以η再除以m,m是一个mini-batch中样本的个数。
到目前为止,我们只是解释了L2正则化项有让w“变小”的效果,但是还没解释为什么w“变小”可以防止overfitting?一个所谓“显而易见”的解释就是:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。
过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大 。
而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况 。
㈥ 贝叶斯正则化算法,为什么可以提高泛化能力,别的算法也只是把训练样本,训练好,为什么泛化能力就不行了
因为贝叶斯这些是综合考虑过去与未来进行整合的算法,有些算法只考虑预测值是否合适。贝叶斯是对预测值与当前值进行耦合,贝叶斯本身就是一种预测器,预测器模型都有泛化能力好的优点。
㈦ 正则化 到底指什么
由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
㈧ 正则化(Regularization)
在之前的学习中,我们已经了解了线性回归和逻辑回归的相关问题,并且学习了两种算法的假设函数和梯度下降的基本算法。但是,在算法的实际应用中,并不是特征值越多,假设函数与训练数据集拟合的越完美越好,或者说其代价函数为0( ),出现这种情况会使得假设函数预测新的数据变得困难,称之为过拟合(Overfitting),过拟合如下图所示:
为了解决过拟合问题,有以下解决方案:
正则化的思想就是减少高次项 的值,使得曲线平滑,因此,在线性回归算法中的代价函数可以如下表示:
以上公式中, 表示正则化参数,在算法实际运行过程中,要选择合适的 值,不能使其过大,否则可能会导致过拟合不能被消除,或者梯度下降算法不收敛。
正规方程法的正则化算法公式如下:
其中 表示 x 的对角矩阵,其主对角线第一个元素为0,其余全为1.
与线性回归算法类似,逻辑回归算法的正则化也是通过减少高次项 的值,使得决策边界变得平滑,以避免出现过拟合问题,其代价函数正则化用如下公式表示:
梯度下降算法中的正则化表示如下所示:
需要注意的是:与线性回归不同的是,此时