机器学习算法之正则化

前端之家收集整理的这篇文章主要介绍了机器学习算法之正则化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
>By joey周琦

正则化

假设目标函数 J ,比如 J 可以是对数似然函数的负数形式,特征 i 的系数为 wi ,系数向量 w=[w1,...,wK] ,假设一共有 K 个备选类。 机器学习(分类为例)的目标就是要解决一个优化问题

w=argminwL(w)

而为了避免模型的过拟合(overfitting),所以需要在这里进行正则化(regularization)[2]。正则化的主要思想就是控制系数 |w| 的大小,从而控制模型的复杂度,减小过拟合,提高泛化能力,常见的正则化选择有一阶和二阶,如下
二阶(L2):

w=argminwL(w)+α/2k=1Kw2k

一阶(L1):

w=argminwL(w)+αk=1K|wk|

那么在迭代优化时:
L2的更新公式为:

w@H_301_579@t+1k=wtkλLwkλα@H_301_691@wk

L1的更新公式为:

w@H_301_579@t+1k=wtkλLwkλαsgn(wk)

L1 正则化在0处不可导,但是可以采用“次梯度”替代。在batch(批量数据)模式下,L1更容易产生稀疏的解,即很多不重要的特征的系数会比较接近0,所以在从而可以达到特征选择的作用。在梯度下降优化中一般偏导数的公式是一个包含所有样本的加和形式如下

Lwk=n=1NQn

可以看出梯度下降法的一次迭代即要用到所有的训练数据,这样的迭代速度过慢。为了提高更新速度,随机梯度下降法将上述的全量加和梯度,近似为了单样本的梯度如下:

LwkQn

对于凸优化问题,相对于梯度下降法,在学习率适当的收敛和一些温和的假设下,随机梯度下降法更快速接近全局最优解[3]。
在线(online)模式,即以增量的形式更新,数据一条一条过来的时候,梯度下降法的batch模式无法应用 ,而应该使用随机梯度下降法。对于随机梯度下降法,L1正则化也得不到比较稀疏的解。所以在线模式中想要产生稀疏特征,则要利用下面讲的一些在线优化的方法

在线优化

简单截断法

k 为窗口,当 t/k 不为整数时,进行标准的SGD迭代 w@H_301_579@t+1k=wtkλLwk (不包含L1 or L2),当 t/k 为整数时

w@H_301_579@t+1k=T0(wtkλLwk)

其中
T0(vi)={0,vi,|vi|θotherwise

其中 θ 是控制截断的阈值。

截断梯度法(Truncated Gradient,TG)

为了避免上述too aggressive的截断方法,TG采用了一种比较温和的截断方法
k 为窗口,当 t/k 不为整数时,进行标准的SGD迭代 w@H_301_579@t+1k=wtkλLwk ,当 t/k 为整数时

w@H_301_579@t+1k=T1(wtkλLwk)

其中
T1(vi)=max(0,viα),min(0,vi+α),vi,@H_327_2301@|vi|[0,θ]|vi|[θ,0]otherwise

可以看出TG方法增加了一个参数 α 来温和截断,原论文中有一个图可以形象的对比两种截断方法

参考 1 在线最优化求解,冯扬 2 wiki,Regularization (mathematics) 3 Stochastic gradient descent - Wikipedia

原文链接:https://www.f2er.com/regex/359781.html

猜你在找的正则表达式相关文章