最近在学深度学习,学到SVM时突然忘记了点到超平面的距离公式,往常都是死记硬背公式。不过学过梯度的几何意义以后我又有了点新的理解,现在写下来以防自己忘记。
首先我们知道某个超平面的方程是:
(1)
x是一个列向量,w是行向量,k1是一个常数。
我也可以认为这个超平面是曲面:的一个等势面,那么
就很自然的是等势面的法向量了,也就是式(1)所述的超平面的法向量。
现在取某个点x0,点x0显然也在的某个等势面上,我们就把这个等势面表示为:
(2)
因为两个等势面是平行的,因此点到超平面的距离就转化为了求两个等势面之间的距离,这个距离就是两个等势面之间的法向量的长度。
现在我们看看让x沿着的方向移动一个单位向量(这个单位向量是
)的结果是什么:
(3)
现在我们知道移动一个单位向量会让z增加,那么如果想让z从k1变化到k2就需要移动:
(4)
当然距离是大于等于0的,所以加个绝对值符号我们就得到点到超平面的距离公式啦:
(5)
在机器学习里面一般是k1=0,再将式(2)带入到式(5)中得到:
4341

被折叠的 条评论
为什么被折叠?



