0 - 算法描述
感知机算法是一类二分类算法,其问题描述为,给定一个训练数据集
$$T={(x_1,y_1),(x_2,y_2),cdots,(x_N,y_N)},$$
其中$x_iin mathbb{R}^n,y_iin{-1,1},i=1,2,cdots,N$,求参数$w,b$,使得以下损失函数极小化问题的解
$$min_{w,b}L(w,b)=min -sum_{x_iin M}y_i(wcdot x_i+b),$$
其中$M$为误分类点的集合。
下一节给出损失函数的推导过程。
1 - 推导过程
感知机算法求解的数据集必须具有线性可分性,其定义为,对于数据集
$$T={(x_1,y_1),(x_2,y_2),cdots,(x_N,y_N)},$$
其中$x_iin mathbb{R}^n,y_iin{-1,1},i=1,2,cdots,N$,如果存在某个超平面$S$
$$wcdot x + b = 0,$$
能够将数据集的正类和负类完全正确地划分到超平面的两侧,即对所有$y_i=+1$的样本$i$,有$wcdot x_i+b>0$,对所有$y_i=-1$的样本$i$,有$wcdot x_i + b < 0$,则称数据集$T$为线性可分数据集(linearly separable dataset)。
感知机算法即是求解线性可分数据集中的超平面$S$的算法。由于超平面是由$w$和$b$确定的,因此学习超平面的目标即是确定参数$w$和$b$,按照梯度下降法优化要求,需要定义一个关于参数$w$和$b$的损失函数进行优化。
注意到,损失函数被期望是连续可导的,因此不能直接选取误分类点个数作为损失函数,在感知机中,选取误分类点到超平面$S$的总距离作为损失函数。对于输入空间$mathbb{R}^n$中任意一点$x_i$到超平面$S$的距离为
$$frac{1}{left | w ight |_2}left | w cdot x_i + b ight |,$$
其次,对于误分类点来说,满足
$$-y_i(w_icdot x_i+b)>0,$$
因此可以把距离公式的绝对值替换得到
$$-frac{1}{left | w ight |_2}y_ileft ( w cdot x_i + b ight ),$$
假设超平面$S$的误分类集合为$M$,那么所有误分类点到超平面$S$的总距离为
$$-frac{1}{left | w ight |_2}sum_{x_iin M}y_ileft ( w cdot x_i + b ight ),$$
不考虑$frac{1}{left | w ight |_2}$,则感知机$sign(wcdot x+b)$的损失函数定义为
$$L(w,b)=-sum_{x_iin M}y_i(wcdot x_i+b).$$
2 - 参考资料
《统计学习方法》,李航