1.为什么感知机迭代算法能进行学习?
先把经典的线性感知机算法拿出来:
- 输入:训练数据 D={(xi,yi)}Ni=1,yi∈−1,1
输出:感知机模型 f(X)=WXT ,参数 W (增广形式的)
W← 随机值- repeat
- 选取数据 (xi,yi)∈D
- if(yi∗f(X)≤0)
- W←W+yiXi
- end if
until convergence
上述代码意思是:首先随机生成参数 W ,然后进行迭代,如果模型预测的函数值与样本的真实标签异号,那么根据W←W+yiXi 对权重进行更新,直到收敛(通常权重不发生改变)博主曾很纳闷,为什么这样更新权重就会使得模型得到有效的学习呢?该怎么去理解呢?
在解释前,我们首先明确:如果模型对第i个样本分类出错,则 yi∗f(Xi)≤0
那么,我们的学习目标就很清晰了,即:对于所有样本 yi∗f(Xi)>0 ,也就是说,当样本出错的时候,我们希望通过 W 的更新使得
yi∗f(Xi) 尽可能增大
那么,接下来我们将证明感知机的权重更新方式: W←W+yiXi 是可以满足上述要求的。Wt 代表当前的权重; Wt+1 代表更新后的权重;
- ft(X) 代表当前的模型; ft+1(X) 代表更新后的模型;
(xi,yi) 代表模型 ft(X) 误判的样本
则有: Wt+1=Wt+yiXi Xi为xi的增广形式yift+1(Xi)
=yi(Wt+1XTi)
=yi(Wt+yiXi)XTi
=yiWtXTi+y2iXiXTi
=yift(Xi)+y2iXiXTi
≥yift(Xi)
以上的推导说明感知机的更新策略是有效的,通过 W←W+yiXi 迭代的方式的确能够使感知机得到修正。
2.求目标函数的对偶形式时的系数问题
博主发现当求解对偶形式时,好多SVM的教程上都在原函数的第一项中乘上了1/2的系数即:
博主曾很纠结为什么要乘以1/2呢,什么都不乘,系数为1不挺好的吗?
接着博主又怀疑是不是原函数第一项的系数不会影响到其对偶形式的函数呢?
然后推了一下,发现原函数的系数会影响的对偶形式下函数的系数。。
那么,这岂不是不等价了吗?这不意味着原函数的系数是不能随便选的吗?那么为什么要选1/2,而不选择其他非负数呢?
后来才发现,虽然原函数的系数会影响到其对偶函数的形式,但是这并不会影响到最后求解得到的参数,只是最值不同了!(取得最优值时的参数不会改变,但是最值改变了!)
而之所以选择1/2,只是因为便于对偶函数的求导和计算,仅此而已。。
博主可能是脑抽了。。纠结了好长时间。