【机器学习算法】感知机模型

2023-11-03

1. 感知机模型

  感知机模型是一个二分类的模型,它通过形如 y = w x + b y=wx+b y=wx+b的式子将实例x转换为类别,取+1和-1表示,从而将实例进行划分。它是简单并且容易实现的一个模型。
  感知机模型主要用来将平面上线性可分的数据集进行划分,对于线性不可分的数据集,感知机无法收敛。
  感知机模型的输入输出由以下函数进行映射,其中w是n维空间的一个向量,b是偏置,sign是符号函数。
f ( x ) = s i g n ( w x + b ) . . . . . . . . . . ( 1 ) s i g n ( x ) = { + 1 x ≥ 0 − 1 x &lt; 0 . . . . . . . . . . ( 2 ) f(x)=sign(wx+b)..........(1) \\ sign(x)= \begin{cases} +1 &amp; x \ge 0 \\ -1 &amp; x \lt 0 \end{cases}..........(2) f(x)=sign(wx+b)..........(1)sign(x)={+11x0x<0..........(2)
  对于感知机的学习策略,我们可以考虑当一个实例点被误分类,则调整w,b的值 ,使分离超平面向该误分类点的一侧移动,减少该误分类点与超平面的距离,直至超平面越过该误分类点使其正确分类。于是有感知机的损失函数
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) . . . . . . . . . . ( 3 ) L(w,b)=-\sum_{x_i \in M}y_i(w·x_i+b)..........(3) L(w,b)=xiMyi(wxi+b)..........(3)
  其中M为误分类点的集合。可以发现 − y i ( w ⋅ x i + b ) -y_i(w·x_i+b) yi(wxi+b)恒为正数,当所有点都完全分类正确时,损失函数为0。对于一个误分类的样本点来说,式子(3)是w,b的连续可导函数。所以采用随机梯度下降法进行学习。感知机学习算法的原始形式如下:

  1. 定义初始的 w 0 , b 0 w_0,b_0 w0,b0
  2. 扫描训练集,若 y i ( w ⋅ x i + b ) ≤ 0 y_i(w·x_i+b) \le 0 yi(wxi+b)0,则更新 w = w + η y i x i , b = b + η y i w=w+\eta y_ix_i,b=b+\eta y_i w=w+ηyixi,b=b+ηyi
  3. 重复2,直至不存在误分类点。

c不同的初始值,或者误分类点的选取顺序不同,都可能使得最后得到的w和b不同。

2. 收敛性证明(Novikoff定理)

  我们如何保证在算法原始模型中,经过有限次的迭代后一定会收敛呢?下面我们进行收敛性的证明。首先令 w ^ x ^ = w ⋅ x + b \hat w \hat x=w·x+b w^x^=wx+b。假设最终得到的超平面 w ^ o p t ⋅ x ^ = w o p t ⋅ x + b o p t = 0 \hat w_{opt}·\hat x=w_{opt}·x+b_{opt}=0 w^optx^=woptx+bopt=0,使 ∣ ∣ w ^ o p t ∣ ∣ = 1 ||\hat w_{opt}||=1 w^opt=1,因此对于所有的样本i,有
y i ( w ^ o p t ⋅ x ^ i ) &gt; 0 y_i(\hat w_{opt}·\hat x_i) \gt 0 yi(w^optx^i)>0
  存在
γ = min ⁡ i { y i ( w o p t ⋅ x i + b o p t ) } \gamma =\min_{i}\{y_i(w_{opt}·x_i+b_{opt})\} γ=imin{yi(woptxi+bopt)}
  使得
y i ( w ^ o p t ⋅ x ^ i ) ≥ γ . . . . . . . . . . ( 4 ) y_i(\hat w_{opt}·\hat x_i) \ge \gamma..........(4) yi(w^optx^i)γ..........(4)
  选择初值 w ^ 0 \hat w_0 w^0,令 w ^ k − 1 \hat w_{k-1} w^k1是第k个误分类实例之前的权重向量,则第k个误分类实例的条件是
y i ( w ^ k − 1 ⋅ x ^ i ) = y i ( w k − 1 ⋅ x i + b k − 1 ) ≤ 0......... ( 5 ) y_i(\hat w_{k-1}·\hat x_i)=y_i(w_{k-1}·x_i+b_{k-1}) \le 0.........(5) yi(w^k1x^i)=yi(wk1xi+bk1)0.........(5)
  假如样本 ( x i , y i ) (x_i,y_i) (xi,yi)被误分类,则更新权重和偏置
w k = w k − 1 + η y i x i b k = b k − 1 + η y i w_k=w_{k-1}+\eta y_ix_i \\ b_k=b_{k-1}+\eta y_i wk=wk1+ηyixibk=bk1+ηyi
  即
w ^ k = w ^ k − 1 + η y i x ^ i . . . . . . . . . . ( 6 ) \hat w_{k}=\hat w_{k-1}+\eta y_i\hat x_i..........(6) w^k=w^k1+ηyix^i..........(6)
  由式子4和6得
w ^ k w ^ o p t = w ^ k − 1 ⋅ w ^ o p t + η y i w ^ o p t ⋅ x ^ i ≥ w ^ k − 1 ⋅ w ^ o p t + η γ . . . . . . . . . . ( 7 ) \begin{aligned} \hat w_k \hat w_{opt} &amp;=\hat w_{k-1}· \hat w_{opt} + \eta y_i \hat w_{opt} · \hat x_i \\ &amp;\ge \hat w_{k-1}· \hat w_{opt} +\eta \gamma..........(7) \end{aligned} w^kw^opt=w^k1w^opt+ηyiw^optx^iw^k1w^opt+ηγ..........(7)
  因此可得 w ^ k \hat w_k w^k w ^ k − 1 \hat w_{k-1} w^k1之间的递推式,从而有
w ^ k w ^ o p t ≥ w ^ k − 1 ⋅ w ^ o p t + η γ ≥ w ^ k − 2 ⋅ w ^ o p t + 2 η γ ≥ . . . ≥ k η γ . . . . . . . . . . ( 8 ) \hat w_k \hat w_{opt} \ge \hat w_{k-1}· \hat w_{opt} +\eta \gamma \ge \hat w_{k-2}· \hat w_{opt} +2\eta \gamma \ge ... \ge k\eta \gamma..........(8) w^kw^optw^k1w^opt+ηγw^k2w^opt+2ηγ...kηγ..........(8)
  令 R = max ⁡ 1 ≤ i ≤ N ∣ ∣ x i ∣ ∣ R=\max\limits_{1 \le i \le N}||x_i|| R=1iNmaxxi,又由式子5和6推得
∣ ∣ w ^ k ∣ ∣ 2 = ∣ ∣ w ^ k − 1 ∣ ∣ 2 + 2 η y i w ^ k − 1 ⋅ x ^ i + η 2 ∣ ∣ x ^ i ∣ ∣ 2 ≤ ∣ ∣ w ^ k − 1 ∣ ∣ 2 + η 2 ∣ ∣ x ^ i ∣ ∣ 2 ≤ ∣ ∣ w ^ k − 1 ∣ ∣ 2 + η 2 R 2 ≤ ∣ ∣ w ^ k − 2 ∣ ∣ 2 + 2 η 2 R 2 ≤ . . . ≤ k η 2 R 2 . . . . . . . . . . ( 9 ) \begin{aligned} ||\hat w_k||^2 &amp;=||\hat w_{k-1}||^2 + 2\eta y_i \hat w_{k-1}·\hat x_i+\eta ^2 ||\hat x_i||^2 \\ &amp;\le ||\hat w_{k-1}||^2 +\eta ^2 ||\hat x_i||^2 \\ &amp;\le ||\hat w_{k-1}||^2 +\eta ^2 R^2 \\ &amp;\le ||\hat w_{k-2}||^2 +2\eta ^2 R^2 \\ &amp;\le ... \\ &amp;\le k\eta ^2 R^2 ..........(9) \end{aligned} w^k2=w^k12+2ηyiw^k1x^i+η2x^i2w^k12+η2x^i2w^k12+η2R2w^k22+2η2R2...kη2R2..........(9)
  结合8和9,得到
k η γ ≤ w ^ k ⋅ w ^ o p t ≤ ∣ ∣ w ^ k ∣ ∣ ∣ ∣ w ^ o p t ∣ ∣ ≤ k η R k\eta \gamma \le \hat w_{k} · \hat w_{opt} \le ||\hat w_k||||\hat w_{opt}|| \le \sqrt{k}\eta R kηγw^kw^optw^kw^optk ηR
  于是
k ≤ ( R γ ) 2 . . . . . . . . . . ( 10 ) k \le \left(\frac{R}{\gamma}\right)^2..........(10) k(γR)2..........(10)
  根据10,我们知道误分类次数k是有上界的,也就是说经过有限次分类我们一定能找到将训练数据完全分开的超平面。

3. 感知机对偶形式

  假设w和b初始值均为0,对于误分类点通过 w = w + η y i x i w=w+\eta y_ix_i w=w+ηyixi b = b + η y i b=b+\eta y_i b=b+ηyi逐步修改,设修改N次,则最后学习到的w和b分别是
w = ∑ i = 1 N a i y i x i b = ∑ i = 1 N a i y i w=\sum_{i=1}^Na_iy_ix_i \\ b=\sum_{i=1}^Na_iy_i w=i=1Naiyixib=i=1Naiyi
  其中 a i = n i η a_i=n_i\eta ai=niη n i n_i ni表示第i个实例点由于被误分而更新的次数。则我们的感知机模型可以表示为 f ( x ) = s i g n ( ∑ j = 1 N a j y j x j ⋅ x + b ) f(x)=sign\left(\sum\limits_{j=1}^Na_jy_j x_j·x+b\right) f(x)=sign(j=1Najyjxjx+b)
  感知机算法的对偶形式总结如下:

  1. 初始化 a ⃗ = 0 , b = 0 \vec a=0,b=0 a =0b=0
  2. 遍历训练集,如果当前样本 y i ( ∑ j = 1 N a j y j x j ⋅ x + b ) ≤ 0 y_i\left(\sum\limits_{j=1}^Na_jy_j x_j·x+b\right) \le 0 yi(j=1Najyjxjx+b)0,则更新 a i = a i + η , b = b + η y i a_i=a_i+\eta,b=b+\eta y_i ai=ai+ηb=b+ηyi
  3. 重复2直至没有误分类数据。

  由于训练过程中需要不停地计算內积,因此可以先将训练实例的內积计算出来并以矩阵的形式存储,这个矩阵被称为Gram矩阵

4.感知机的缺点

  • 在数据集线性可分时,感知器虽然可以找到一个超平面把两类数据分开,
    但并不能保证能其泛化能力。
  • 感知器对样本顺序比较敏感。每次迭代的顺序不一致时,找到的分割超平
    面也往往不一致。
  • 如果训练集不是线性可分的,就永远不会收敛

5.感知机的几个变形

5.1 投票感知机

  投票感知器记录第k 次更新后得到的权重 w k w_k wk 在之后的训练过程中正确分类样本的次数 c k c_k ck 。这样最后的分类器形式为:
y = s g n ( ∑ k = 1 K c k s g n ( w k T x ) ) y = sgn(\sum_{k=1}^Kc_ksgn(w^T_kx)) y=sgn(k=1Kcksgn(wkTx))
  投票感知机需要保存K个权重向量,带来额外开销。

5.2 平均感知机

  为了降低开销,对投票感知机的式子进行简化,得到
y = s g n ( ∑ k = 1 K ( c k w k ) T x ) = s g n ( w ˉ T x ) \begin{aligned} y &amp; = sgn(\sum_{k=1}^K(c_kw_k)^Tx) \\ &amp; = sgn(\bar w^Tx) \end{aligned} y=sgn(k=1K(ckwk)Tx)=sgn(wˉTx)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【机器学习算法】感知机模型 的相关文章

  • nuget nuspec清单描述

    创建NuGet包 在创建一个NuGet包之前我们应该先创建一个以 nuspec为后缀的xml清单文件 这个清单文件描述了包的内容 在安装NuGet包的过程中这个清单文件扮演者很重要的角色 实际上它的作用就像app config一样 并且是不

随机推荐

  • (C语言)多项式加法

    多项式加法 问题描述 编写一个程序 实现两个多项式的加法运算 要求用一个有序的链表表示一个多项式 每一项用一个结点表示 在链表中按照项的幂数进行排列 输入形式 两个多项式 用空格隔开 每个多项式中没有空格 每项的系数是浮点数 每项的指数是非
  • 联想小新进入BIOS方法(解决安装VM虚拟机提示“Intel VT-x处于禁用状态”)

    最近要学项目部署 所以先安装个VWmare虚拟机 在虚拟机里安装Linux系统 我下载好Linux的镜像文件后 在vw里创建新的虚拟机时报错 发现我的电脑的虚拟化是禁用的 于是我在网上查了一下得打开BIOS才能修改虚拟化设置 问题是 我的电
  • 线性代数复习公式整理(自用/持续更新)

    文章目录 第一章 行列式 秩 化 叉 型行列式 化 ab 型行列式 化 三条杠 型行列式 化 两线加一点 型行列式 行列式运算 第二章 矩阵 矩阵与初等矩阵相乘做初等变换 矩阵转置的性质 矩阵伴随的性质 矩阵的逆的性质 矩阵可逆的充要条件
  • NeurIPS 2021 | Twins:重新思考高效的视觉注意力模型设计

    Twins 是美团和阿德莱德大学合作提出的视觉注意力模型 相关论文已被 NeurIPS 2021 会议接收 本文主要讲述 Twins 解决的难点 设计和实现思路 以及在美团场景的探索落地 希望能对从事视觉算法研发的同学有所帮助和启发 导读
  • SecureCRT日志上添加时间戳

    1 首先成功使用secureCRT打印串口信息 2 打开option菜单的session options对话框 3 点击LogFile选项 输入log文件路径和名字 最后在log data输入 Y M D h m s t 最后点击OK 4
  • MySQL下载步骤详解

    对于不同的操作系统 MySQL 提供了相应的版本 在 Windows 操作系统下 MySQL 数据库的安装包分为图形化界面安装和免安装这两种安装包 这两种安装包的安装方式不同 配置方式也不同 图形化界面安装包有完整的安装向导 安装和配置很方
  • my学习OC--流程控制

    1 顺序结构 编程语言中最常见的就是顺序结构 顺序结构就是程序从上到下一行一行执行 中间没有判断和跳转 如果main韩式几行代码间没有任何流程控制 则程序总是由上到下依次执行 2 条件语句 if 和 switch语句 if语句和switch
  • Parameter ‘contractState‘ not found. Available parameters are [request, page, param1, param2]

    目录 一 问题描述 二 解决过程 一 问题描述 org mybatis spring MyBatisSystemException nested exception is org apache ibatis binding BindingE
  • 博云,站在中国容器潮头

    容器云 微服务 中间件 AI 容器安全 每一个关键词背后 对应的是博云的新故事 是中国容器市场的新故事 也更是新一代定位PaaS的中国企业的故事 作者 皮爷 出品 产业家 2019年年底 赵安全邀请了三家服务过的企业客户来到公司总部 他是博
  • Android开发“仿美团”

    步骤分析 1 需求分析 首先需要确定该app的功能 包括用户端和商家端 以及必要的后台管理系统 需要考虑到美团app的主要功能 如定位 搜索 点评 下单 支付等 2 UI设计 根据需求确定app的界面设计风格 布局 色彩等 要考虑到用户体验
  • mybatis-plus在实体中加入其他不属于数据库表的字段注释和数据类型的转换

    一 mybatis plus在实体中加入其他不属于数据库表的字段注释和数据类型的转换 数据库 MySQL 表 t society problems 字段 PROBLEM TYPE 题干类型 类型 int 业务描述 在导入Excel文档时候
  • virtualbox无法安装64位系统

    今天在实验室用VirtualBox安装 64位的Ubuntu系统 在安装时没有显示64位的Linux安装项 只有32位的Linux安装选项 为了以后遇到能够快速解决 我就把坑在这里填了吧 要安装64位的虚拟机要满足下面几个条件 1 CPU要
  • 【面试宝典】面试中你能遇到的问题答案全在这儿了

    人生中最尴尬的考试不是你不会 而是明明知道答案也答不对 职上网小编 人生数十载 考试千百回 小时候我们有小考 中学时我们有中考 高中时我们有高考 大学时我们还有大考 而在要工作时我们还要面考 总少不了以下这几个问题 请做一下自我介绍 请说一
  • unity-3d:打飞碟游戏

    unity 3d 打飞碟游戏 1 编写一个简单的鼠标打飞碟 Hit UFO 游戏 uml类图 Director DiskData DiskFactory FirstController FlyActionManager Interface
  • VMware虚拟机中如何配置静态IP,以及DNS服务器

    参考的是这位同学的博客 写这篇博客是为了自己学习用 到时候忘记了可以翻出来看看 这个是VMware的草图 1 查看网关 以及网段 将VMnet8中 使用本地DHCP服务将IP地址分配给虚拟机 的选项去掉 然后点击NAT设置 记住这上面的NA
  • Nginx具体配置(三)

    一 Nginx配置实例 反向代理 实例一 1 1 实现效果 在Windows浏览器地址栏中输入www 123 com 跳转到Linux系统中的tomcat主页面 访问Nginx 192 168 92 130 80 访问Tomcat 192
  • 在colab上部署novelAI

    目录 一 获取模型 1 使用他人提供的模型链接直接在Google云端硬盘中添加快捷连接 推荐 2 自己上传模型到Google云端硬盘 二 colab上进行操作 第一步 加载Google云盘 第二步 克隆git仓库 第三步 安装依赖 第四步
  • Spring Boot 学习研究笔记(十七) -Spring boot JPA的复杂查询

    Spring boot JPA的复杂查询 一 JpaSpecificationExecutor 接口查询方式 1 JpaSpecificationExecutor接口 JPA 提供动态接口JpaSpecificationExecutor 利
  • JavaScript 算法 -- 贪心算法

    文章目录 贪心算法 例题一 分饼干 例题二 买卖股票的最佳时机 II 贪心算法 贪心算法是算法设计的一种方法 期盼通过每个阶段的局部最优选择 从而达到全局的最优 但最后的结果不一定最优 例题一 分饼干 param number g 胃口 p
  • 【机器学习算法】感知机模型

    文章目录 1 感知机模型 2 收敛性证明 Novikoff定理 3 感知机对偶形式 4 感知机的缺点 5 感知机的几个变形 5 1 投票感知机 5 2 平均感知机 1 感知机模型 感知机模型是一个二分类的模型 它通过形如 y w x