两种理解:
1.寻找一个超平面可以把类分开,并且间隔最大。最后转化为一个式子maxmin,这是一个二次规划问题,凸优化,可以得到解析解
2.就是一个深度学习问题,可以通过BP算法学得权重w。其中的loss function 使用hinge loss, max(0, 1-y^*f(x))
最初的问题是 g(x) = f(x) > 0 Output = +1
g(x) = f(x) <0 Output = -1
则 loss = 1 y^*f(x)<0 ,即异号,有loss
0 y^*f(x)>0 , 即同号, 无loss
但是g(x),是无法微分的,所以使用hinge loss来作为loss function,方便使用BP算法进行微分.hinge loss 可以看作g(x)的upper bound
deep learning的前几层进行feature transformation,最后进行linear classifier。SVM也是如此,前几层把向量映射到高维空间,最后进行linear classifier,只是使用hinge loss作为loss function
linear SVM:
f(x) = WX, W = aX,即W是X的线性表示。可以这么理解,一开始W初始化为0,然后通过梯度下降W = W - rgX, r是下降速度,g是梯度,g大部分都为0,所以W可以由X线性表示
由于W = aX,所以f(x) = aXx, 即f(x) = a*K(X, x),最后的loss function 只要关心K(X, x) 就行了,不用关心映射到的高维空间的向量
Sigmoid Kernel:
K(x, z) = tanh(xz)
所以 f(x) = atanh(X*x),即组成的神经网络,输入层是x。 有多少数据,第一个隐层就有多少节点,每个节点的权重w就是训练数据X,激活函数为tanh,后面层的权重对应a,做一个线形组合
SVM 关键点:
先把问题转化为含KKT条件的minmax问题
然后把minmax问题转化为对偶的maxmin问题