感知器、感知器对偶形式(含作业)||《统计学习方法》李航_第1章_蓝皮(学习笔记)

本文主要是介绍感知器、感知器对偶形式(含作业)||《统计学习方法》李航_第1章_蓝皮(学习笔记),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第2章 感知机学习算法

  • 感知器
    • 原始版算法(含作业)
    • 对偶形式
      • 对偶形式算法

依旧只记录重要的

感知器

感知器是神经网络和SVM的基础。

原始版算法(含作业)

先记录一下优化函数:
min ⁡ w , b − ∑ x i ∈ M y i ( w ⋅ x i + b ) \min \limits_{w,b}-\sum\limits_{x_{i\in M}}{y_i(w·x_i+b)} w,bminxiMyi(wxi+b)
优化算法是随机梯度下降法(SGD):每次只用一个样本来跟新 w , b w,b w,b
具体算法:在这里插入图片描述
重点:该算法是当训练集中没有误分类点时结束。
结论:作业在这里根据我做的实验 Matlab感知器实现可知

  • 算法中 w , b w,b w,b初始化以及样本顺序会影响网络收敛速度
  • 算法结果不唯一
  • 较优的超平面可以通过平均法来求得
  • 离群点会影响感知器的性能,也就是说,当数据线性可分时,感知器表现较好,反之,则不然。

对偶形式

感知器的对偶形式是:将 w , b w,b w,b表示成 x i , y i x_i,y_i xi,yi的线性组合,再求解系数,进而求得 w , b w,b w,b
在这里插入图片描述
重点:对于梯度,会因为 x i x_i xi而修改 n i n_i ni次,所以 n i n_i ni是针对不同样本而不同的。 n i n_i ni越大,说明超平面因这个 x i x_i xi修改的次数越多,说明这个 x i x_i xi越难分类。

对偶形式算法

在这里插入图片描述
确实感觉 w , b w,b w,b就是所有样本的线性组合。。


看"对偶形式"那里,不懂为什么要弄个对偶形式出来。查了资料,

每一个线性规划问题都伴随有另一个线性规划问题,称为对偶问题.原来的线性规划问题则称为原始线性规划问题,简称原始问题.对偶问题有许多重要的特征,它的变量能提供关于原始问题最优解的许多重要资料,有助于原始问题的求解和分析.对偶问题与原始问题之间存在着下列关系:
①目标函数对原始问题是极大化,对对偶问题则是极小化.
②原始问题目标函数中的收益系数是对偶问题约束不等式中的右端常数,而原始问题约束不等式中的右端常数则是对偶问题中目标函数的收益系数.
③原始问题和对偶问题的约束不等式的符号方向相反.
④原始问题约束不等式系数矩阵转置后即为对偶问题的约束不等式的系数矩阵.
⑤原始问题的约束方程数对应于对偶问题的变量数,而原始问题的变量数对应于对偶问题的约束方程数.
⑥对偶问题的对偶问题是原始问题,这一性质被称为原始和对偶问题的对称性.
支持向量机的二次规划问题,如果转化为对偶问题,会将其求解问题简化.简化的道理,通过对偶理论就可以知道.例如,支持向量机的最大化分类间隔,可以通过对偶问题转为min形式.
总之,对偶形式有很多的优点,利于计算,方便推导等等.

总的来说,是为了简化问题,方便求解的。(具体可能要参考凸优化,#TODO)
《统计学习方法》第1版的参考附录C就写了对偶问题以及解决方法。。看到第6章才看到。。

这篇关于感知器、感知器对偶形式(含作业)||《统计学习方法》李航_第1章_蓝皮(学习笔记)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/168513

相关文章

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert