感知机整理笔记

基于《统计学习方法》的感知机内容以及本身的理解整理以下。
应用场景
按李航老师的定义:感知机(perceptron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别(取+1 ,-1二值),感知机对应于输入空间(特征空间)中将实例分为正负两类的分离超平面,属于判别模型。
使用场景较多,好比对网站某个广告位进行点击预估,就可使用感知机离线训练样本,特征空间就是样本用户的浏览点击行为等,样本类别就是用户属于曝光、曝光点击。
感知机是1957年Rosenblatt提出,是神经网络与支持向量机的基础,感知机虽然是线性分类模型,但多层感知机组成的神经网络能够处理非线性问题,神经网络的单个神经元就是感知机。
 
感知机数学定义

  假设输入空间(特征空间),输出空间是,输入表示实例的特征向量,对应输入空间(特征空间)点;git

输出表示实例的类别,输入空间到输出空间的映射函数称为感知机。github

其中w b为模型参数,w*x表示内积,sign表示指示函数:算法

 

感知机几何解释网络

线性方程,对应于特征空间 Rn    超平面S,S的法向量为w,S的截距为b。超平面S将特征空间分为两部分,位于两部分(特征空间)函数

的点分为正负两类,所以也称为分离超平面。二维空间分离平面示意图:性能

 

 感知机的学习策略学习

给定训练集,须要找到模型参数w 、b,肯定将正负样例正确分开的超平面。这时咱们须要定义损失函数并极小化。损失函数一个天然的想法是误分类点网站

的总数,但它不是w 、b的连续可导数;另外一个想法是计算全部误分类点到超平面S的距离,其中任一点到S的距离可表示为:this

,其中是w的L2  范数。spa

对于误分类的数据(xi ,yi)有:

 

误分类点集合有:

 

误分类点到超平面S的距离为:

 

所以全部误分类点到超平面的距离为:,M为误分类点的集合。

 

不考虑就获得感知机的损失函数,感知机的学习策略就是在假设空间选取使最小的模型参数w 、b。

 

感知机损失函数极小化方法

感知机误分类集合M,全部点离超平面S越近,越小,而是连续可导的,对w求偏导得:

对b求偏导得:

 

训练时随机选取误分类点更新:

其中为学习率或步长。

比较直观的代码实现:

# 数据线性可分,二分类数据
# 此处为一元一次线性方程
class Model:
    def __init__(self):
        self.w = np.ones(len(data[0])-1, dtype=np.float32)
        self.b = 0
        self.l_rate = 0.1
        # self.data = data
    
    def sign(self, x, w, b):
        y = np.dot(x, w) + b
        return y
    
    # 随机梯度降低法
    def fit(self, X_train, y_train):
        is_wrong = False
        while not is_wrong:
            wrong_count = 0
            for d in range(len(X_train)):
                X = X_train[d]
                y = y_train[d]
                if y * self.sign(X, self.w, self.b) <= 0:
                    self.w = self.w + self.l_rate*np.dot(y, X)
                    self.b = self.b + self.l_rate*y
                    wrong_count += 1
            if wrong_count == 0:
                is_wrong = True
        return 'Perceptron Model!'
        
    def score(self):
        pass

 感知机的收敛性

Novikoff定理说明:1)线性可分的样本必定存在超平面将正负样本分开;

2)误分类次数有上限,通过有限次搜索能够找到样本彻底正确分开的超平面,也就是说原始形式经过不断迭代是收敛的。

3)当样本线性不可分时,感知机算法不收敛,原始形式迭代过程会发生震荡。

4)感知机的算法存在许多解,依赖于初值选择,也依赖于误分类点在迭代过程当中的顺序。

5)在增长约束条件下,能够获得惟一分离超平面。

 

感知机学习对偶形式

  感知机学习算法对偶形式:
  输入:线性可分的数据集其中,i=1,2...N,学习率

  输出:a,b: 感知机模型 ,其中a=

  1)

  2)在训练集中选取数据

  3)若是

  

  

  4)转至(2)直到没有误分类数据。

对偶形式中样本实例之内积形式预先计算出来,保存在Gram矩阵中

  对偶形式与原始形式本质同样,它出现的意义在于:样本点特征向量之内积事先计算好,放在Gram矩阵中,在更新参数a、b时,直接

经过查询矩阵,能够加快计算。

  不妨假设特征空间是,n很大,而样本行数N远小于n,若是采用原始形式时间复杂度为\Theta(n) ;采用对偶形式的话,直接在Gram矩阵

里查表就能拿到内积 x_jx_i ,因此这个误判检测的时间复杂度是 \Theta(N),大大下降了时间复杂度。

  换句话说感知机的对偶形式,经过提早计算好样本点内积并存储于Grama Matrix,把每轮数据迭代的时间复杂度,从特征空间维度n转移

到样本集大小的维度,达到了性能的提高。

 

参考推荐
李航《统计学习方法》
相关文章
相关标签/搜索