《统计学习方法》学习笔记——感知机数学推导

1.什么是感知机

感知机是二类分类的线性模型。

2.核心思想

找一个超平面,把正例和负例分开。

我们可以用

来表示这个超平面。(w=(x1,x2,x3,…)为法向量,决定了超平面的方向;b为截距,决定了超平面与原点的距离)
我们把决策函数定义为:

当wx+b>=0时,f(x)=+1,样本被分为正类;
当wx+b<0时,f(x)=-1,样本被分为负类。

3.如何找到这样的超平面

为了找出这样一种超平面,需要确定一种学习策略,即定义损失函数并将其最小化。
一种思路是让误分类的点总数降到最小,但是这样的损失函数不是参数w,b的连续可导函数,不易优化。
所以我们采用另外一种思路,让误分类点到超平面的距离之和最小。
首先,我们要求出每一个点X(x0,y0)到超平面wx+b=0的距离,距离的推导如下。


绝对值符号看起来十分影响我们求解,得想办法把他拿掉。对于一个正类点,即wx+b>=0的点来说,如果他被错误分类了,即预测值y=-1;对于负类点,y=+1。
所以最终把他们相乘,得到的肯定是负数,加个负号:
d=-y*(wx+b)/||w||。
然后,损失函数可以写成:

损失函数L(w,b)已经有了,接下来我们要做的就是找到合适的模型参数w,b使L(w,b)的值降到最小。这里我们采用的方法是梯度下降法。

4.梯度下降法直观理解


假设我们在一座山上,想要以最快的速度下山,我们通常会走一步算一步,每次沿着最陡峭的路向下走。即每次沿着梯度最大的方向移动一个步长,一直走到我们觉得已经是最低处的地方,虽然这个地方可能只是一个局部的最低处。
因此,从上面的解释来看,梯度下降法找到的解只是局部最优解,非全局最优解。
接下来 ,我们来推导详细的算法:

是不是很清晰,注意,这里的w是一个向量,分解开来就是对每一个特征做梯度下降。

5.两种梯度下降法

这里要介绍三种不同的梯度下降算法。

  1. 批量梯度下降法(Batch Gradient Descent)
    再更新模型参数时用到所有的样本,上图中演示的即为BGD算法。
  2. 随机梯度下降法(Stochastic Gradient Descent)
    再更新模型参数时只用到k个样本(k一般大于1,极端情况下k可以取1),《统计学习方法》书中所给的样例就是SGD算法。

对两者的比较:
BGD的优点是能保证每次能以一种全局最优的方式更新模型参数,缺点很容易能看出来,每次要用到所有的样本点,比较慢;
SGD的优点是每次只用一批样本点来更新参数,速度很快,缺点是不一定每次都沿着最优方向下降;

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务