统计学习方法笔记-感知机

2024-05-29 17:32

本文主要是介绍统计学习方法笔记-感知机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    感知机是二类分类的线性模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值,属于判别模型。分为原始形式和对偶形式。是神经网络与支持向量机的基础。
    由输入空间到输出空间的如下函数:f(x) = sign(w·x + b)  称为感知机.
    其中,w和b为感知机模型参数, 叫做权值或权值向量, 叫做偏置,
sign是符号函数,即
                                            
感知机模型的假设空间是定义在特征空间中的所有线性分类模型或线性分类器,即函数集合
{f | f(x) = w·x + b}
感知机有如下几何解释:
    线性方程    w·x + b = 0     对应特征空间中的一个超平面S,其中w是超平面的法向量,b是超平面的截距。这个超平面将特征空间分成两部分.位于两部分的点分别被分为正、负两类(注意:正负类只是代表两种不同的类别,而不是正的表示正确分类的类、负的表示错误分类的类)。因此,超平面S称为分离超平面。

感知机学习策略
    假设训练数据是线性可分的,感知机学习的目标是求得一个能将训练数据集的正负实例完全正确分开的分离超平面。为了找出这样的超平面,定义损失函数并将损失函数极小化
    损失函数的一个自然选择是误分类点的总数。但是这样的损失函数不是参数w,b连续可导的函数,不易优化。损失函数的另一个选择是误分类点到超平面S的总距离,这是感知机所采用的。输入空间中的任一点x0到超平面S的距离:
                                    1/||w|| · |w·x0 + b|
这里,||w||是w的L2范数。
证明如下:


对于误分类点来说-yi(w·xi + b) > 0,因此误分类点xi到超平面S的距离是:-1/||w|| · yi (w·xi + b)
因为||w||是固定的,所以可以不考虑1/||w||,那么就得到了感知机的损失函数
其中M为误分类点的集合,这个损失函数就是感知机的经验风险函数。

感知机学习算法
感知机学习算法的原始形式
感知机学习算法是对以下最优化问题的算法 

其中M为误分类点的集合。

感知机学习算法是误分类驱动的,具体采取随机梯度下降法,首先选取一个超平面w0,b0,然后用梯度下降法不断地极小化目标函数。极小化过程不是一次使M中所有误分类点的梯度下降,而是一次随机选取一

这篇关于统计学习方法笔记-感知机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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