重版:正則

 オリジナルリンクします。https://blog.csdn.net/qq_20412595/article/details/81636105


A、なぜ&どのような正則


我々は常に、それが十分に理解され、それはとても高く、冷たいではありません実際には、これを理解することは困難であると考えられるさまざまな場所の正則化項に遭遇します

まず第一に、正規の使用から視野角の問題を解決するために:正則は、このように汎化能力を高め、オーバーフィット防止するためです。方言は汎化誤差(汎化誤差)=試験誤差(テスト・エラー)を脱出し、実際には、テスト・セットに訓練されたパフォーマンストレーニングデータモデル(または、我々はパフォーマンスのパフォーマンスを言う必要があります)の使用が良いです

上記のように、ジャンプアップするにはあまりにも豊富なこの「想像力」を赤とクロスカーブダウンオーバーフィットケースです。英語Regularizaiton-レギュラー正則の描画と正則に関連して、直訳は次のようになります。正則(誇り、中国や強いものの単語の変更「の」プラス1ワード)。ルールは何ですか?6:00前に夕食のために家を呼び出すあなたのお母さんが、これは、制限ルールです。同様に、ここでは、目的関数に加えて、いくつかのルール(制約)に必要とされる訓練のルール、彼らは自己拡張しないようにということ。正則は、そのルーツを追いかけて、理解することは、非常に困難であると考えられる、または、彼らはより良い理解のルールに変換することができるならば、中国では「通常の」二つの言葉は、本当に直感的な対応ではありません。我々は学術的概念の名詞が正確に一意に決まる重要な概念のために、非常に重要であり、それは用語の無曖昧さの配置であることを理解しなければならないことは必要であるが、名前の正則は何も間違っているが、何からビューの理解点、柔軟で類推することができます。


1つのコンセプト

  • L_ {0}正則化パラメータ値は、モデル内の非ゼロのパラメータの数です。
  • L_ {1}正則化は、各パラメータの絶対値を表します。
  • L_ {2}正則識別正方形の各パラメータの値と二乗。

2、最初のいくつかの問題について説明します。

1)まばらなことの利点を実現するパラメータは何ですか?

1つの利点は、モデルは、オーバーフィッティングを避けるために単純化することができるということです。本当に重要なモデルパラメータはあまりないかもしれないので、仕事にすべてのパラメータを考慮すると、それは良いトレーニングデータはそれに、予測することができますすることができ、テスト、パフォーマンスの低下のパフォーマンスデータ。もう一つの利点は、少数のパラメータが全体のモデルより良い解釈可能を作ることができます。

2)モデルパラメータ値より小さく、より簡単に表しますか?

はい。パラメータは、より単純なモデルに小さいなぜ、このモデルより複雑に、より多くの我々は、サンプルのすべてに適合し、さらにいくつかの異常なサンプル点、容易に予測値に狭い範囲につながるしようとしたため、より高いボラティリティは、これは、この範囲内誘導体大きなに大きな変動を反映しているが、唯一の大きなパラメータ値は、リードの多数を生成します。パラメータの値が比較的大きくなりますので、複雑なモデル、。

3)L_ {0}正則

上記の議論から、まばらパラメータは、したがって、過剰適合防止することができるL_ {0}ノルム(ゼロ以外のパラメータの数)は正則化項が過剰適合を防止することができません。

直感的に、パラメータの非ゼロ数の使用は、良好な選択機能することができ、その効果は選択パラメータが非ゼロ特異動作することができる、請求疎な特徴を、達成しました。しかしのでL_ {0}難しい正則を解決するために、NP困難問題は、それほど一般的であるL_ {1}正則。L_ {1}正則化は、L_ {0}正則凸最適近似よりもL_ {0}解決が容易、かつ効果も疎達成することができます。

4)  L_ {2}正則

L2は、後に正則化コスト関数プラス正則化項であります:

C0は1が背後にあることを、元のコスト関数を表すL_ {2}正則化項、それはこれの出てくる:全てのパラメータ乗とサンプルサイズnはトレーニングセットで割っワット λは正則化係数であり、比例項と正則化項C0を量ります。主として便宜上結果は1/2を乗じて直ちに丸め、2を生成導出続いて、折り返さ1 / 2,1 / 2の係数がしばしば見られるが、もあります。

L2正則化項では、それを過剰適合を回避する方法ですか?我々はそれを導出し、最初の派生を参照してください。

見つけることができますL_ {2}Bの更新に影響を与えるが、影響力のワットの更新をしていない正用語:

       在不使用L_ {2}正则化时,求导结果中w前系数为1,现在w前面系数为 (1- \ FRAC {\と\ラムダ} {N}) ,因为η、λ、n都是正的,所以 1-ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。当然考虑到后面的导数项,w最终的值可能增大也可能减小。

       到目前为止,我们只是解释了L_ {2}正则化项有让w“变小”的效果,但是还没解释为什么w“变小”可以防止overfitting?人们普遍认为:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀)。而在实际应用中,也验证了这一点,L_ {2}正则化的效果往往好于未经正则化的效果。

5) L1 regularization

       在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n(这里不像L2正则化项那样,需要再乘以1/2)

同样先计算导数:

上式中sgn(w)表示w的符号。那么权重w的更新规则为:比原始的更新规则多出了η * λ * sgn(w)/n这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。

 

二、一般正则项


直观的详解为什么要选择二次正则项。首先,需要从一般推特例,然后分析特例情况的互相优劣条件,可洞若观火。一般正则项是以下公式的形式

M是模型的阶次(表现形式是数据的维度),比如M=2,就是一个平面(二维)内的点

q=2就是二次正则项。高维度没有图像表征非常难以理解,那就使用二维作为特例来理解。这里令M=2,即 x={x1,x2}  w={w1,w2}x={x1,x2}w={w1,w2} ,令q=0.5  q=1  q=2  q=4 有

 

 

下方的三维图像能给你一个直观的领悟(与绿线图一一对应)

 

 

エッジ正則化項の視覚的表現

q=2是一个圆非常好理解,考虑 z=w21+w22z=w12+w22 就是抛物面,俯视图是一个圆。其他几项同理(必须强调俯视图和等高线的概念,z轴表示的是正则项项的值)

 

 

蓝色的圆圈表示没有经过限制的损失函数在寻找最小值过程中,w的不断迭代(随最小二乘法,最终目的还是使损失函数最小)变化情况,表示的方法是等高线,z轴的值就是 E(w)
w∗ 最小值取到的点

可以直观的理解为(帮助理解正则化),我们的目标函数(误差函数)就是求蓝圈+红圈的和的最小值(回想等高线的概念并参照式),而这个值通在很多情况下是两个曲面相交的地方

可以看到二次正则项的优势,处处可导,方便计算,限制模型的复杂度,即 w中M的大小,M是模型的阶次,M越大意味着需要决定的权重越多,所以模型越复杂。在多项式模型多,直观理解是每一个不同幂次的 x前的系数,0(或很小的值)越多,模型越简单。这就从数学角度解释了,为什么正则化(规则化)可以限制模型的复杂度,进而避免过拟合

不知道有没有人发现一次正则项的优势,w∗ 的位置恰好是 w1=0的位置,意味着从另一种角度来说,使用一次正则项可以降低维度(降低模型复杂度,防止过拟合)二次正则项也做到了这一点,但是一次正则项做的更加彻底,更稀疏。不幸的是,一次正则项有拐点,不是处处可微,给计算带来了难度,很多厉害的论文都是巧妙的使用了一次正则项写出来的,效果十分强大

 

三、深入理解


为了使得模型能够充分拟合训练样本点,我们希望上述目标函数C0=L(W)的值尽可能小,即:           

                                                                                                 (1)                                                                                 但是由于实际中的训练数据量往往并不大,如果让模型完美拟合训练数据的话,很可能造成模型过拟合,从而使得模型的泛化能力较差。这一点可以从得到的模型参数向量w的各个分量中看出,其中大部分分量的绝对值都非常大,这种现象直观表现在图上就是曲线(曲面)不光滑,凹凸不平,很复杂;相反,如果w的各个分量的绝对值都很小,在0附近,那么曲线(曲面)就会显得很平滑。很显然,在机器学习中,我们更希望拟合出的曲线(曲面)更为平滑,因为这样的曲线(曲面)是具有较好的泛化能力的。那么如何将w各个分量的绝对值降低呢?这就要用到正则化技术了。在用正则化技术估计参数w时,引入了我们对参数的先验认知,即我们认为参数的绝对值应该很小。

正则化技术就是使得式(1)的值尽可能小,与此同时,要保证||w||的值也尽可能小,即:

                                                                                                  (2) 

在上式中,优化函数的目标变成了两个,w的取值不仅要使得L(w)的值最小,也要使得||w||的值最小。从上式我们可以看出,一方面要使得L(w)的取值最小,必然w的绝对值会取到很大,这样模型才能完美拟合训练样本点;另一方面,当w的绝对值很大时,||w||的值又会变得很大,因此为了权衡,只有使得w取值适当,才能保证式(2)的值取到最优。这样得到的曲线(曲面)比式(1)得到的曲线(曲面)平滑很多,因此具有泛化能力。值得注意的是,式中的t是L(w)与||w||之间的一个trade-off,如果t过大,那么表明对模型参数w的惩罚越狠,这样就会导致更多的W取0(当t很大时,由于目标函数是min,逼得只有W取0,才会使目标函数不至于太大),这样得到的模型处于欠拟合状态,如果t过小,那么表明对模型参数w的惩罚越小(理解的思路相同),这样得到的模型处于过拟合状态,只有选择合适的t,才能使得到的模型具有很好地泛化能力。关于如何选择t的值,工程上一般采取交叉验证的方式来确定一个较合理的t。

我们先来看L2正则化。

                                                                                       (3)

式中,||w||2为w的2范式,平方是为了求解的方便。

我们来看看L2正则化的性质。

1.从式(3)中可以看出,L2正则化对于绝对值较大的权重予以很重的惩罚,对于绝对值很小的权重予以非常非常小的惩罚,当权重绝对值趋近于0时,基本不惩罚。这个性质与L2的平方项有关系,即越大的数,其平方越大,越小的数,比如小于1的数,其平方反而越小。

2.从贝叶斯推导的角度看,我们可以认为式(3)中的第二项为参数w的一个均值为0的高斯先验分布,即,w~N(0, B ^ {2})。这也符合我们对于参数w的先验认知:w的绝对值不是很大。

3.从性质2可知,既然w的先验分布服从高斯分布,那么L2正则化的作用实际上就是使得参数向量w的大部分分量的值趋近于0,而不是等于0。这一点在处理具有共线性特征的特征集时非常重要,也是L2在这种情况下胜过L1的原因。

4.由于式(3)是个凸函数,并且函数可微,因此w的值具有解析解:

                                                                   

从解的解析表达式可以看出,w的求解不需要对X-1是否存在作任何假设,因为I为单位矩阵,因此解析式中的逆始终存在。

接下来我们看看L1正则化。

随着海量数据处理的兴起,工程上对于模型稀疏化的要求也随之出现了。这时候,L2正则化已经不能满足需求,因为它只是使得模型的参数值趋近于0,而不是等于0,这样就无法丢掉模型里的任何一个特征,因此无法做到稀疏化。这时,L1的作用随之显现。L1正则化的作用是使得大部分模型参数的值等于0,这样一来,当模型训练好后,这些权值等于0的特征可以省去,从而达到稀疏化的目的,也节省了存储的空间,因为在计算时,值为0的特征都可以不用存储了。

                                                                                        (4)

(4)式中||w||1为w的1范式,即

 

同样,我们来看看L1正则化的性质。

1. 从式(4)中可以看出,L1正则化对于所有权重予以同样的惩罚,也就是说,不管模型参数的大小,对它们都施加同等力度的惩罚,因此,较小的权重在被惩罚后,就会变成0。因此,在经过L1正则化后,大量模型参数的值变为0或趋近于0,当然也有一部分参数的值飙得很高(这一点在性质2解释)。由于大量模型参数变为0,这些参数就不会出现在最终的模型中,因此达到了稀疏化的作用,这也说明了L1正则化自带特征选择的功能,这一点十分有用。

2.从贝叶斯推导的角度看,我们可以认为式(4)中的第二项为参数w的一个均值为0的拉普拉斯先验分布。从高斯概率密度函数和拉普拉斯概率密度函数的图形中可以看出,拉普拉斯概率密度函数的截尾比高斯概率密度函数的截尾更长,也就是说L1正则化更能够接受绝对值较大的参数值。

3.从性质2可知,既然拉普拉斯分布比高斯分布有更长的截尾,那么可以推知L1正则化的鲁棒性要好于L2正则化,也就是说,L1正则化对于绝对值较大的参数没有L2正则化那么敏感,从而能够容忍一些这样的参数留下。

4.由1范式的定义可知,L1正则化在任意权值为0的时候不可导,因此式(4)不能求出w的解析解,同时,基于梯度的优化算法也无法高效地计算出w的值,因此对于L1正则化,一般可以采取坐标下降法求解。

L1正则化和L2正则化在实际应用中的比较。

L1在确实需要稀疏化模型的场景下,才能发挥很好的作用并且效果远胜于L2。在模型特征个数远大于训练样本数的情况下,如果我们事先知道模型的特征中只有少量相关特征(即参数值不为0),并且相关特征的个数少于训练样本数,那么L1的效果远好于L2。比如在文本分类中,如果我们将一篇文章的所有词语作为它的特征,那么很显然,其中绝大部分特征是无关特征,只有很少量的特征是相关特征。这时,如果我们将每篇文章作为训练样本,直接扔进L1正则化的模型,那么可以通过L1的稀疏化性质去掉无关特征,只留下相关特征。从而L1在这里起到了特征选择的作用,也就省去了特征工程这一步,因为特征工程往往还是需要人工干预的,L1的做法则直接让数据说话,避免人工干预。然而,如果模型的特征服从高斯分布,那么从贝叶斯的观点来看,即便特征数远超训练样本数,L2也要优于L1。

然而,需要注意的是,当相关特征数远大于训练样本数时,无论是L1还是L2,都无法取得很好的效果。

从上面的观点可以看出,L1似乎总是好于L2,那么L2还有什么存在的价值呢?然而在实际工程中,L1不总是像万金油一样,随处可用。对于上面文本分类的例子,结合我实际的工程经验谈谈L1的弊端。

在最开始做文本分类的时候,我也是依然毫不犹豫地选择了L1来做特征选择,以此训练出分类模型,但得到的分类模型效果却不尽如人意,训练误差和泛化误差都较高。后来经过分析得知,在进行模型训练时,没有对数据的特征作分析,而盲目地运用L1正则化,从而导致失败。在经过分析后发现,训练数据里的特征很多是共线性的,比方说,有几个特征的共线性很高,并且它们对于分类都很重要,这时L1的做法是随机选择其中一个特征,而扔掉其它的特征。试想,如果训练数据中有很多这样类似的特征,那么经过L1正则化后的模型将会失去很多有用的特征,进而导致模型误差较大。这个时候,我们不得不选择L2正则化了,但由于L2正则化在面对大量无关特征并且特征不是由高斯分布产生时,误差依然很大,因此我们需要在训练模型之前,先进行特征选择,然后再用L2正则化,L2正则化的特点是,在面对几个存在共线性的特征时,它会将权值平分给这些特征,从而使得这些有用的特征都得以留下,从而改进了文本分类的准确率。

也许读者认为,加入了特征工程的L2正则化稍显麻烦,确实是这样的。实践中也可以采取L1+L2结合的方式,即elastic net。这种方式同时兼顾特征选择(L1)和权重衰减(L2)。其公式如下

                                                            (6)                                                                                                                                                    

上式中,t为正则项与L(w)之间的trade-off系数,和之前的描述一致,p是elastic net里独有的参数,它是L1和L2之间的一个trade-off,如果p为0,那么上式退化为L2正则化,如果p为1,那么上式退化为L1正则化。所以当p取值为0到1时(不包含端点),上式兼顾了L1和L2的特点。又由于L1为1范式,L2为2范式,那么elastic net就介于1范式和2范式之间。

 

 

 
 

おすすめ

転載: www.cnblogs.com/dotaball/p/12405304.html