热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

李航《统计学习方法》第二版第2章感知机浅见

李航《统计学习方法》第二版-第2章感知机浅见2.1感知机模型2.2感知机学习策略2.3感知机学习方法总结2.1感知机模型感知机是二分类线性模型,输入为实例的特征向量

李航《统计学习方法》第二版-第2章 感知机 浅见

  • 2.1 感知机模型
  • 2.2 感知机学习策略
  • 2.3 感知机学习方法
    • 总结


2.1 感知机模型

感知机是二分类线性模型,输入为实例的特征向量,输出为类别,-1和1。

目的是求出将数据分离的超平面,基于误分类的损失函数,用梯度下降法进行最小化,求得感知机模型。

感知机的定义简单就是输入空间X,输出Y={1,-1}。即:
f(x)=sign(w⋅x+b)f(x)=sign(w\cdot x+b)f(x)=sign(wx+b)
w叫权重,就是影响程度,b叫偏置,就是修正偏差用的。其实后面更新的就这两个参数,w就是斜率,旋转多少,w就是平移多少,sign是符号函数,即:
sign(x)&#61;{&#43;1,x≥0−1,<0sign(x)&#61;\left\{ \begin{aligned} &&#43;1,x \geq 0 \\ &-1 ,<0 \\ \end{aligned} \right.sign(x)&#61;{&#43;1,x01,<0

线性方程 w⋅x&#43;b&#61;0w\cdot x&#43;b&#61;0wx&#43;b&#61;0对应于特征空间的一个超平面&#xff0c;w是法向量&#xff0c;b是截距。二维就是一条线将样本分成两类&#xff0c;三维空间就是一个平面分割成两部分。简单可以如图所示&#xff1a;
在这里插入图片描述

2.2 感知机学习策略

我们应该选择怎么样的感知机呢&#xff0c;就是要定个损失函数。我们当然希望能够分清所有的样本&#xff0c;没有偏差&#xff0c;所以损失函数可以定义成有偏差&#xff0c;就是某个样本到超平面的距离&#xff0c;首先要先选出分类分错的样本&#xff0c;即做(xi,yi)(x_i,y_i)(xi,yi)&#xff0c;则分错就是真实的类别和错分的类别相反了&#xff0c;也就是相乘是<0。所以可以是这样:
−yi(w⋅xi&#43;b)>0-y_i(w\cdot x_i&#43;b)>0yi(wxi&#43;b)>0
即真实的和预测的结果异号。因此到超平面的距离是&#xff1a;−1∣∣w∣∣yi(w⋅xi&#43;b)-{\frac {1} {||w||}y_i(w\cdot x_i&#43;b)}w1yi(wxi&#43;b)

这样所有分类错的点的集合设为M&#xff0c;到超平面的总距离为:−1∣∣w∣∣∑xi∈Myi(w⋅xi&#43;b)-\frac{1}{||w||} \sum_{x_i \in M} y_i(w\cdot x_i&#43;b)w1xiMyi(wxi&#43;b)

不考虑1∣∣w∣∣\frac {1} {||w||}w1,这个是常数&#xff0c;就得可以得到感知机学习的损失函数。

对于给定训练集T&#61;(x1,y1),(x2,y2),...,(xN,yN)T&#61;{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}T&#61;(x1,y1),(x2,y2),...,(xN,yN)
其中xi∈X&#61;Rnx_i \in X&#61;R^nxiX&#61;Rn,yi∈Y&#61;{1,−1}y_i\in Y&#61;\{1,-1\}yiY&#61;{1,1}&#xff0c;i&#61;1,2,..,Ni&#61;1,2,..,Ni&#61;1,2,..,N。则损失函数定义为:
L(w,b)&#61;−∑xi∈Myi(w⋅xi&#43;b)L(w,b)&#61;- \sum_{x_i \in M} y_i(w\cdot x_i&#43;b)L(w,b)&#61;xiMyi(wxi&#43;b)
其中M为分类错误点的集合。

2.3 感知机学习方法

当然采用梯度下降法啦&#xff0c;而且是随机梯度下降法&#xff0c;每次随机选一个错分类的点来进行梯度下降&#xff0c;损失函数的梯度由:
∇wL(w,b)&#61;−∑xi∈Myixi\nabla_wL(w,b)&#61;-\sum_{x_i \in M} y_ix_iwL(w,b)&#61;xiMyixi
∇bL(w,b)&#61;−∑xi∈Myi\nabla_bL(w,b)&#61;-\sum_{x_i \in M} y_ibL(w,b)&#61;xiMyi
给出。

随机选取一个错分类点(xi,yi)(x_i,y_i)(xi,yi),对w&#xff0c;b进行更新&#xff1a;
w←w&#43;ηyixiw \leftarrow w&#43;\eta y_ix_iww&#43;ηyixi
b←b&#43;ηyib \leftarrow b&#43;\eta y_ibb&#43;ηyi

其中η\etaη是步长&#xff0c;也就是学习率&#xff0c;这样就不断的进行&#xff0c;使得最后损失函数不断减小&#xff0c;直到为0。

基本算法就是:
1.选取初值w0,b0w_0,b_0w0,b0;
2.在训练集上选取数据(xi,yi)(x_i,y_i)(xi,yi);
3.如果1∣∣w∣∣yi(w⋅xi&#43;b)≤0{\frac {1} {||w||}y_i(w\cdot x_i&#43;b)} \leq0w1yi(wxi&#43;b)0,
w←w&#43;ηyixiw \leftarrow w&#43;\eta y_ix_iww&#43;ηyixi
b←b&#43;ηyib \leftarrow b&#43;\eta y_ibb&#43;ηyi
4.转至2&#xff0c;直至训练集中没有错分类的.

很容易理解&#xff0c;就不多说了。做实验会发现&#xff0c;采取不同的初值或者选取不同的错分类点&#xff0c;解可以不同&#xff0c;并且该算法也右收敛性的理论证明&#xff0c;具体可以去看书&#xff0c;我就不写了&#xff0c;因为写了大多人也不会看的哈哈。

还有中算法就是叫对偶形式&#xff0c;名字比较奇怪&#xff0c;其实因为是收敛的&#xff0c;那必定是有限次更新可以完成&#xff0c;所以可以写出训练集之间内积的形式&#xff0c;而且内积可以服用&#xff0c;存在一个矩阵里&#xff0c;其他原理和上面的算法一样。

总结

感知就模型就是二分类的线性模型&#xff0c;利用梯度下降法将错分类降到最低。

好了&#xff0c;今天就到这里了&#xff0c;希望对学习理解有帮助&#xff0c;大神看见勿喷&#xff0c;仅为自己的学习理解&#xff0c;能力有限&#xff0c;请多包涵&#xff0c;部分图片来自网络,侵删。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 如何使用计算机控制遥控车的步骤和电路制作方法
    本文介绍了使用计算机控制遥控车的步骤和电路制作方法。首先,需要检查发送器的连接器和跳线,以确定命令的传递方式。然后,通过连接跳线和地面,将发送器与电池的负极连接,以实现遥控车的前进。接下来,制作一个简单的电路,使用Arduino命令将连接到跳线的电线接地,从而实现将Arduino命令转化为发送器命令。最后,通过焊接晶体管和电阻,完成电路制作。详细的步骤和材料使用方法将在正文中介绍。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
author-avatar
fjfzfisher
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有