感知器、感知器对偶形式(含作业)||《统计学习方法》李航_第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

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定