提示与不变性
提示是在你看到数据之前就知道的关于目标函数的信息
例如信用审核中,工资是和信用额度呈正比
又例如视觉处理中旋转不改变目标函数的输出
有以下数据(红色代表-1,蓝色代表+1)
你使用如下两个假设集去拟合数据
\(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^*\)应该剔除(非单调递增)
从图中来看\(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}\)
二者通常会将学习推往一致的方向,正则化是必须的,因为总是存在噪声