提示与不变性

試著忘記壹切 提交于 2019-11-29 01:33:10

提示与不变性

提示是在你看到数据之前就知道的关于目标函数的信息

例如信用审核中,工资是和信用额度呈正比

又例如视觉处理中旋转不改变目标函数的输出

有以下数据(红色代表-1,蓝色代表+1)

avatar

你使用如下两个假设集去拟合数据

\(H_+=\{h|h(x)=sign(wx+w_0);w\ge0\}\)

\(H_-=\{h|h(x)=sign(wx+w_0);w<0\}\)

无论你怎么拟合,\(H_+\)很轻松就可以使得\(E_{in}\approx0\),而\(H_-\)最多使得\(E_{in}\approx\frac{1}{2}\)

假如你看到数据之前知道数据的某些信息,就可以收缩假设集(就像这里使用\(H_+\)而不关心\(H_-\)),这样减少假设集大小从而提高泛化能力

提示类型

提示类型 描述
对称与非对称性 \(f(\mathtt{x})=f(-\mathtt{x}) orf(\mathtt{x})=-f(-\mathtt{x})\)
旋转不变性 \(f(\mathtt{x})\)依赖于$
广义不变性(平移,旋转,缩放) \(f(\mathtt{x})=f(\Phi(\mathtt{x}))\)
单调性 \(f(\mathtt{x}+\Delta{\mathtt{x}})>f(\mathtt{x})\)
凸性 \(f(\eta{\mathtt{x}}+(1-\eta)\mathtt{x}')\le\eta{f(\mathtt{x})}+(1-\eta)f(\mathtt{x}')\)

严格提示

严格提示就是剔除所有不满足提示的假设式

假如你提前知道目标函数是单调递增的,然后你使用假设集\(H=\{h^*,h_1,h_2\}\)去拟合红色的目标函数,由严格提示来看\(h^*\)应该剔除(非单调递增)

avatar

从图中来看\(h^*\)是拟合目标函数最好的假设式,但由于稍稍不满足提示被剔除,而其他假设式又不能很好的拟合目标函数

提示是目标函数的已知特性,丢弃不满足提示的假设式不会降低你匹配目标的能力,但若是目标函数不在假设式中那情况就不一定了

虚拟例子

严格执行提示就像一个硬约束,太过偏执会产生不良效果.适当的允许违反提示才能够更好地拟合目标函数,通用的方法是构造虚拟例子(生成的虚拟对\(\mathtt{(-v_m,v_m)},m=1,...m\))来产生一个误差函数,当提示满足时这个误差为0,当不满足提示时这个误差衡量偏离提示的程度(虚拟例子可以根据真实样本构造)

这样我们就可以只关注这些增强的数据(真实例子和虚拟例子),而不需要显示的处理提示,学习算法,通过尝试匹配所有的数据,来权衡满足提示(匹配虚拟例子)和拟合数据(匹配真实例子).相反若是显示限制模型满足提示就无法做到权衡,你只是在满足提示的前提下尽可能拟合数据,如果稍稍违反提示就可以得到更好的拟合,抱歉,你做不到

对称提示 \(f(x)=f(-x)\)

提示误差 \(E_{hint}=\frac{1}{M}\sum_{m=1}^M(\mathtt{h(v_m)-h(-v_m))^2}\)

增强误差 \(E_{aug}(h)=E_{in}(h)+\lambda E_{hint}(h)\)

这样我们就完成了对提示的软约束,这与正则化很像

\(\lambda\)描述了对约束的强度,\(\lambda\)越大表示越强调提示,有可能导致欠拟合;\(\lambda\)越小表示越忽略提示,导致提示没有起到作用.可以使用验证集来确认这个参数

单调性提示误差 \(E_{hint}=\frac{1}{N}\sum_{n=1}^N(h(\mathtt{x_n})-h(\mathtt{x_n}'))^2[[h(\mathtt{x_n}')<h(\mathtt{x_n})]]\)

提示与正则化

正则化 \(E_{aug}=E_{in}+\frac{\lambda}{N}\Omega(h)\)

提示 \(E_{aug}=E_{in}+E_{hint}\)

正则化是通过降低假设式复杂度来减小噪声的影响(随机噪音),以增加适量的偏差为代价减少方差

提示是我们选择一个较小的假设集(包含目标),减少方差而不要付出偏差的代价

\(E_{aug}=E_{in}+\frac{\lambda}{N}\Omega(h)+E_{hint}\)

二者通常会将学习推往一致的方向,正则化是必须的,因为总是存在噪声

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!