感知机模型的初步理解(参考统计学习方法)

    技术2024-10-16  2

    超平面: 方程表达:a1x1+a2x2+…………+anxn = b

    L2范数:其定义为向量所有元素的平方和的开方

    感知机模型是二分类的线性分类模型,其思想是找出一个超平面将两类别很好的区分开 1)感知机模型:f(x) = sign(wx + b) 其中sign(x)为符号函数,当x>=0时,y=1;当x<0时,y=-1; 2)感知机是一种线性分类模型,它的假设空间是满足条件的所有线性分类模型,即满足条件的超平面的集合 (一个线性可分的数据集可以有多种超平面的划分方式) 线性方程wx+b=0 对应着一个超平面,平面的维度取决于特征集的维度;当数据为2维特征时,超平面为一条直线;当数据维度为m时,超平面的维度为m-1;

    感知机的学习策略 1)数据集的线性可分性:针对一个数据集,存在超平面能够将正实例和负实例完全划分在超平面的两侧; 2)学习的任务是找出这样的一些超平面,利用损失函数来确定这个超平面的参数 损失函数的选择:首先想到的是误分类的点数,但是这样的损失函数无法求导,不容易优化求解算法;所以采用误分类点到超平面距离的总和来作为损失函数;

    点到超平面的距离公式:|wx0+b|/||w|| ||w||为w向量的L2范式 针对误分类点来说,当wxi +b >0 得到的结果应该是1,但是真实yi=-1,则-yi*(wxi +b)>0; 当wxi +b <0 得到的结果应该是-1,但是真实yi=1,则-yi*(wxi +b)>0; 因此针对误分类点来说,-yi(wxi +b) 等价于|wxi+b| (因为y的取值只有+1、-1)

    所以损失函数为 Loss = -(1/||w||)sum(-yi(w*xi +b)) i取遍所有误分类点的下标

    最后一定会达到一定二分类正确划分的情况,即Loss=0,并且该情况取决于-sum(-yi*(wxi +b)) 所以感知机的损失函数可以简化为 Loss = -sum(-yi(w*xi +b)) i取遍所有误分类点的下标 感知机学习算法(原始形式) 极小化感知机的损失函数 1)感知机的学习算法是基于误分类点的,因此我们采用随机梯度下降而不采用使用全样本的梯度下降,因为我们需要采用的样本为误分类点的集合;在极小化损失函数的过程中,一次随机选取一个误分类点让其进行梯度下降; 2)学习算法的过程: 1)初始化w、b参数 2) 从训练集合中选取点 3)判断点是否为误分类点 yi(wxi +b) <= 0若满足上述条件,则为误分类点 那么需要对当前的w、b参数进行更新(注意这里采用的是SGD) w := w + learning_rateyixi b := b + learning_rateyi 4)重复2、3步骤,直至没有误分类点

    上述学习算法的直观解释:当一个点被错误分类时,调整超平面的参数,不断缩小误分类点和超平面之间的距离,使得超平面越过误分类点而使得原先的误分类点被正确分类 感知机学习算法的收敛性 即对于一个线性可分的数据集,一定可以通过有限性的迭代找出将训练集完全正确划分的超平面及感知机模型 (请参考统计学习方法) 感知机学习算法具有很多解,依赖于初值的选择,也依赖于在迭代过程中误分类点的选择 当数据集线性不可分时,感知机学习算法不收敛;

    感知机学习算法的对偶形式 暂时略

    Processed: 0.027, SQL: 9