感知机算法
1. 问题设定
为了便于后面的计算,我们定义:
yi=⎩⎨⎧1,−1,Xi∈C,Xi∈/C.
我们的目标是找到 权重向量 w 使得:
Xi⋅w⎩⎨⎧≥0,≤0,if yi=1,if yi=−1.
乘上我们的标签,式子统一为一种情况:
yiXi⋅w≥0
根据这个统一的式子,我们定义风险函数 R,当上面的约束式子没有满足时,风险函数为正数。然后我们就可以使用优化方法来优化这个风险函数使得它的值最小。
为了计算整体的风险,我们定义损失函数L:
L(y^,yi)=⎩⎨⎧0,−yiy^,if yiy^≥0,otherwise.
其中 y^i 为分类器预测结果,yi 为实际的分类结果。这样,对于权重 w,风险函数可以如下计算:
R(w)=n1i=1∑nL(Xi⋅w,yi)=n1i∈V∑−yi(Xi⋅w),V={i∈{1,…,n}∣yi(Xi⋅w)<0}.
这样,我们就将问题转化为:寻找 w 使得 minR(w)
在这里,我们不再只是关注找到超平面 H,而是具体到对 w 的优化。我们的视角从样本空间 X 转换到了权重空间 W/
2. 梯度下降方法
优化 R(w) 的一个常用方法是梯度下降。我们计算 R(w) 的梯度:
∇R(w)=∇i∈V∑(−yiXi⋅w)=−i∈V∑yiXi
然后按照如下规则更新 w:
w←arbitrary nonzero starting point (e.g. any yiXi)while R(w)>0:V←{i∣yi(Xi⋅w)<0}w←w+ϵi∈V∑yiXireturn w
但是逐一更新所有错分点的时间复杂度为 O(nd),在实践中我们一般采用随机梯度下降:我们不一次性找出所有错分点,而是随机选择一个错分点,然后直接开始更新:
while ∃i such that yi(Xi⋅w)<0:choose such iw←w+ϵyiXireturn w