DSP

FPGA视觉从入门到放弃——懒人的支持向量机

2019-07-13 19:07发布

支持向量机曾是机器学习领域中的主流方法。针对小样本,现在用起来依然很方便。同时,该方面的工具和教程多得数不清。所以这里引用老师木的话就很合适:“经常,有些事还没做就已经知道它无意义,于是就没做;有些事做不做都知道无意义,还是蠢蠢欲动”。 本篇围绕“用现有的库把自己的代码工作量减到最小”为话题,以比大多教程尽量简单的支持向量机理论和实践为例,讲述软件与硬件(DSP或FPGA等)结合时的偷懒方法

1. 基本原理 5

(1) 超平面

假设数据集中有l个样本,每个样本包括属性向量和标签。所以,有样本{(X1,y1)...(Xi,yi),...(Xl,yl)}l为样本的个数,yi{1,1}为标签,第i个样本Xi=[xi1,...,xin]n为每个样本的属性数目。 超平面的方程为:
H=wTX+b=w0x0+w1x1+...+wnxn+b=0
其中,wn权重,b为偏置。
如果数据可分,则存在很多可分的超平面。贴着正负样本时的边缘超平面为H=±1,中间超平面为H=0。最优的超平面会使边缘超平面和中间超平面之间的间隔最大。

(2) 优化

第i个样本的属性向量Xi距离超平面H的距离为:
d(Xi,H)=wTXi||w|| 最大化间隔等价于优化问题:
minw,b12||w||2s.t.yi(wTXi+b)1,i=1,...,l
  • 超平面H=±1之间的距离为2||w||,所以最大化间隔等价于最小化||w||22
  • yi=1时,wTXi+b1xi位于H=1超平面的上侧;
  • yi=1时,