感知机的对偶形式
初始形式的参数更新:
ωnew=ωold+αy(i)x(i)bnew=bold+αy(i)
\omega_{new} = \omega_{old} + \alpha y^{(i)}x^{(i)}\\
b_{new} = b_{old} + \alpha y^{(i)}
ωnew=ωold+αy(i)x(i)bnew=bold+αy(i)
当我们将初始值ω\omegaω和b设为0时,那么这两个参数的一般形式就可以表示为:
ω=α∑i=1nmjyjxjb=α∑i=1nmjy(i)
\omega = \alpha \sum_{i=1}^{n} m_jy_jx_j\\
b =\alpha \sum_{i=1}^{n} m_j y^{(i)}
ω=αi=1∑nmjyjxjb=αi=1∑nmjy(i)
这里∑i=1nmjyjxj\sum_{i=1}^{n} m_jy_jx_j∑i=1nmjyjxj
每一个误分类点可能会多次影响超平面的变化,而每一个误分类点每次对参数的改变量都是固定的,mjm_jmj表示这个误分类点在学习过程中被误分类的几次,而这些次数引起参数改变量的加和就可以表示为mjyjxjm_jy_jx_jmjyjxj,那么所有的误分类点的改变量的和就可以表示为:∑i=1nmjyjxj\sum_{i=1}^{n} m_jy_jx_j∑i=1nmjyjxj
那么此时的超平面就是:
α∑i=1nmjyjxj⋅x+α∑i=1nmjy(i)=0\alpha \sum_{i=1}^{n} m_jy_jx_j \cdot x +\alpha \sum_{i=1}^{n} m_j y^{(i)} = 0α∑i=1nmjyjxj⋅x+α∑i=1nmjy(i)=0
那么对偶形式的优化处就在于观察到了每次参数更新xjxx_j xxjx被重复计算了多次,而这个值是不会改变的,那不妨提前把这个值算出来,通过矩阵的方式算出来,也就是我们的Gram矩阵:
G=[xi⋅xj]N∗N
G = [x_i \cdot x_j]_{N*N}
G=[xi⋅xj]N∗N
这样好处就是:少算,计算内积矩阵(Gram 矩阵)可以提高算法的效率和便利性。
感知机的问题在哪?
- 无法处理线性不可分问题
- 对数据噪声敏感:仅仅根据当前样本是否被正确分类来调整参数。如果数据中存在噪声点,即错误标记的样本或者异常值,感知机可能会受到这些噪声的影响而产生错误的分类决策,使得感知机的分类结果不够稳定,在实际应用中,数据中的噪声是不可避免的,感知机对噪声的敏感性使得其在有噪声的环境下性能下降