相对于之前的几章,d性网络显得相对简单的多。不过借着d性网络,我正好了解了一下机器学习算法里很常见的“对偶的概念”。
一、简介我们知道Ridge和Lasso是有弊端的:
- Ridge虽然很稳定,但是因为对参数(特征)没有进行筛选,所以样本一大,特征一多,模型复杂度就直线上升
- Lasso依靠嵌入式特征选择,拥有相当优秀的抗过拟合的能力。不过也是因为它的稀疏性,它不太稳定。毕竟特征一少,遇到样本远多于特征的情况时,模型很容易就崩了
所以,遇到这样的问题,我们和容易想到将Ridge和Lasso,即带有 l 1 l_1 l1和 l 2 l_2 l2范数的模型,做一个结合。
我们可以看出,d性网络不仅具备Lasso的稀疏性,也同时具备Ridge的稳定性,效果十分突出。
二、目标函数min w 1 2 n s a m p l e ∥ X w − y ∥ 2 2 + α ρ ∥ ω ∥ 1 + α ( 1 − ρ ) 2 ∥ ω ∥ 2 minlimits_{w} frac{1}{2n_{sample}}parallelmathit{Xw} -mathit{y}parallel_2^2+alpharhoparallelomegaparallel_1+frac{alpha(1-rho)}{2}parallelomegaparallel_2 wmin2nsample1∥Xw−y∥22+αρ∥ω∥1+2α(1−ρ)∥ω∥2
哎呦我去,打这一行公式可不容易,没把我累死。
介绍一下这几个参数是啥意思
- α alpha α:学习率,没啥好说的,对两个正则项都一样,是控制正则化程度的
- ρ rho ρ:这个大家就不用想太多,它代表的是 l 1 l_1 l1范数与 l 2 l_2 l2范数的比值。所以 l 1 l_1 l1范数前面乘上了系数 ρ rho ρ, l 2 l_2 l2范数前面乘上了系数 1 − ρ 1-rho 1−ρ。
- l 2 l_2 l2范数前面的系数多了个 1 2 frac{1}{2} 21,其用处和ridge那一章讲的一样,是为了便于计算,没有什么特殊的意义。
想到要了解这个是因为sklearn里的一句话
这里简单介绍一下对偶的思想(事实上,我也没太整明白)
这个可以参照知乎的这个问题,感觉它讲的蛮清楚的。
- 目的:求B条件下A的最小值(我们有A的点集,想找点满足B的A当中最小的那个)
- 我们找到一个跟A高度相关,但是有跟B有关系的变量C),我们参照拉格朗日数乘求条件极值的形式把它写成C = kB+A。
- 我们通过这个C,从小往上去逼近A的点集(方程代表),目的是找到唯一满足条件的A使得C最大(几何意义表现为相切)。
- C最大,意思是在花费很小的条件满足B的情况下,找到最小的A(因为逼近与相切)
- 这种情况下,找到的A即为对偶关系的解。
通常来说,如果A的点集是凸的,我们找到的A就是最小值;但是很多时候,因为逼近点集时,我们会受到其它不符合条件,但值又很小的点的干扰,所以我们所求的解和最优解之间会存在间隙(即duality gap对偶间隙)
如果对偶间隙太大,但我们要求的间隙(这里可近似理解为误差)要尽可能小,所以模型有时会不收敛。所以我们要权衡一下“收敛”和“间隙”的关系。
1.1.6. Multi-task Elastic-NetMulti-task Elastic-Net是d性网络在多任务学习领域的推广
有关多任务学习的介绍具体可参照Multi-task Lasso一章。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)