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