参数范式惩罚,通过对代价函数添加一个参数范式惩罚,限制模型的学习能力。把正则化后的函数记为:
当我们在的训练算法在最小化正则化后的代价函数时,会在减少原来的代价函数J的同时减小在某些衡量标准下参数的规模。书上说通常只对权重进行惩罚而不对偏置值做惩罚。精确拟合偏置值所需的数据数量要比拟合权重所需的数据量要少的多。每个权重会指定两个变量如何相互作用(Y=WX,Y和X两个变量)。我们需要在各种条件下观察这两个变量才能良好的拟合。而每个偏置仅控制一个单变量(偏置值总是和1相乘,所以只控制一个变量)。这意味着,我们即使对偏置进行正则化也不会导致太大的方差。另外,正则化偏置参数可能会导致明显的欠拟合。
(感觉这种惩罚只是会减少权重在数值上的大小,权重的纬度大小在一开始就被设定好了,并不能减少纬度上的大小吧??而很常见的那个过拟合的例子,扭来就去的曲线是参数的纬度过大,并不是指参数在数值上的太大吧。。
好吧,好像是可以令多余的纬度上的参数为0,就相当于减少参数的纬度了。
多余的参数真的会收缩到0吗,总感觉每个参数再小也会有一点很小的数值)
L2正则化
这种参数范式惩罚,通常被称为权重衰减,这个正则化策略的目标会把权重限制在一定的大小。
L2范式为:,我们的目标是对权重的规模进行限制,不妨设
,这个其实就是把参数限制在一个半径为
的圆内。一般地,我们可以把参数正则化接近于参数空间中的任意一点,但是特定点越接近真实点越好,但是我们并不知道真实值是什么,是正还是负。0是有意义的默认值,由于模型参数正则化为0的情况更为常见,我们只探讨这种情况。那么就是说
,再看我们的目标:
,
。这不就是凸优化吗,于是就可以得到优化函数。
(这部分是结合书上的部分,自己琢磨了一下,瞎写的,不知道可不可以这样理解为凸优化。。。)
换一种写法:
可以看到,在L2范式正则化中,每次更新都会先对原本的权重进行收缩,然后进行梯度下降。
进一步分析,令W*为未正则化时,minJ(w,X,y)时,取得的最优参数,然后再对代价函数在 = W*处进行泰勒二阶展开,
其中H是J在W*处计算的Hessian矩阵(关于w),因为W*被定义为最优,一阶导数为0,所以在展开式中没有一阶项。
当J取得最小值时,
然后我们考虑加上正则项,最优 =
,然后在
处进行泰勒二阶展开,此时的梯度为:
(这里要补充一下特征值和特征向量的东西,才能理解为什么是拉伸,可以看这篇文章。 https://blog.youkuaiyun.com/Murray_/article/details/79945148
大概是:把矩阵分解成特征值和特征向量,特征向量表示新的向量基,然后就是向量的点乘,而向量的点乘指一条边向另一条边的投影乘以另一条边的长度。在这里就是把原本的投影到新的坐标上,得到新的向量
。然后特征值进行各分向量的拉伸。
分析一下书上讲的。首先Hessian表示二阶导数,那么在图上的第一维的变化率不高,那么这一维的Hessian的值也就不高,然后把Hessian分解成特征向量和特征值,特征向量表示的是向量基,特征值表示的是向量在这个向量基上的大小,如果值不高,那么特征值自然也就小了。
L1正则化
(这个最小化的Wi是肿么求的不晓得。。。。)