Rosenblatt感知器详解

2024-05-27 05:38
文章标签 详解 感知器 rosenblatt

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

本文转载自:http://www.cnblogs.com/lanix/p/5003521.html

文中有些地方个人觉得有些错误(或许是自身理解不足),自己进行了修改,以绿色示之,可以对比原文一起阅读。

阅读之前需要注意的是:文中的w与x均视为列向量,,而为一矩阵,两者不可交换前后顺序。

在学习了机器学习十大算法之后,我决定将目光投向神经网络,从而攀登深度学习的高峰。这条险路的第一个拦路虎就是Rosenblatt感知器。为什么这么说呢?不仅是因为它开拓性的贡献——感知器是第一个从算法上完整描述的神经网络,而Rosenblatt感知器是感知器作为监督学习的第一个模型。还因为学习Rosenblatt感知器能够帮助了解神经元的结构、信息流的传递以及知识的学习和存储,从而打开看待问题的全新视角——模拟人脑解决问题。当然,仅仅如此的话,它只能说是可口的羔羊,谈不上拦路的猛虎。自然是在理解这一问题时遇到了难处:

1)Rosenblatt感知器为什么能收敛?《神经网络与机器学习》中的证明并不理想,它忽略了学习率和初始权重向量的影响;

2)学习率和初始权重向量对迭代次数的影响是什么?

3)它的更新过程与梯度下降法如此相似,不禁想问两者之间有何联系?

4)线性可分两类问题通常在寻找一个分割超平面,Rosenblatt感知器也不例外,能否将这个超平面可视化,从而帮助理解?

看!这真的是一个威风凛凛的猛虎,但它吓不倒人。下面开始我们的打虎过程。

 

认识这只虎——Rosenblatt感知器的结构

介绍感知器就不得不谈神经元的结构。神经元由突触、响应器、激活函数组成,顺序响应输入信号,最终获得输出结果。如图1所示,首先,输入信号的每一个分量由突触加权,再与偏置一起由响应器求和,之后通过激活函数获得输出。

响应器对突触加权后的信号和偏置求和,得到响应值:

常用的激活函数有阈值函数,Sigmoid函数和tanh函数。为纪念McCulloch和Pitts(1943)的开拓性工作,激活函数为阈值函数的神经元也被称为McCulloch-Pitts模型,此时:

图1 神经元结构

Rosenblatt感知器建立在McCulloch-Pitts神经元模型上,以解决线性可分的两类问题。两类记为{+1,-1},此时:

在神经元进行学习分类问题时,每一个样本都将作为一个刺激传入神经元。输入信号是每一个样本的特征,期望的输出是该样本的类别。当输出与类别不同时,我们将调整突触权值,直到每个样本的输出与类别相同。

   

老虎要发威——Rosenblatt感知器的更新过程

到目前为止,我们了解了Rosenblatt感知器的工作流程,但还没有解释它如何对于误分类的刺激调整权重值。在此之前,我们先定义输入的数据,方便后续的描述及推导。假设我们的样本采自m维空间Rm,每个样本由特征值和类别组成,记为X,于是:

当我们挑选样本x(k)k个刺激并不等于第k个样本,同一个样本可能反复成为刺激)刺激神经元时,有:

为了让上式更为简洁,我们将x(k)和wk增加一维:

 


此时:

神经元对刺激x^(k)的输出为:

 



到这里,我们完成了对Rosenblattt感知器的推导,其伪代码为:

 

老虎会防御——谜一样的感知器收敛原理

Rosenblatt感知器对于线性可分的两类问题总是有效的,但采用的方式与高斯分类器、逻辑回归、决策树还有SVM截然不同。那么能否保证它对所有线性可分的两类问题都能收敛?下面通过证明w在n足够大时不存在,即n有上限,对收敛性进行说明。

下界



上界




从上述第二个不等式来看,不等号左边为n的二次函数,且系数为正,而不等号右边为n的一次函数。当n足够大时,这个不等式是不成立的,也就是说n是有最大值的,因此w收敛

从第三个不等式来看,不等号左边是一个开口向上的一元二次方程,因此必存在n,使不等式不成立,因此该方法收敛。

后面这一章的内容感觉有些问题:

1)不等式本身可能有些问题,导致后面的推导出错;

2)这一章节试图通过说明初始权重向量和学习率对n的极限值的影响来解释两者对于收敛速度的影响。本人觉得这种说明不够严谨,因为n的极限值是我们通过不等式推算出的最坏的迭代情况,实际中可能(一般)不需要迭代这么多次。通过n的极限值缩小并不能说明实际迭代次数减少。

 

老虎怂了——初始权重向量和学习率的影响

 

老虎搬救兵——感知器背后的随机梯度下降法

如果学习过随机梯度下降法的话,我们就会发现Rosenblatt感知器与随机梯度下降法间的相似度。

如果我们对Rosenblatt感知器构造损失函数

因此,Rosenblatt感知器的迭代过程实际上是随机梯度下降法的一个简化。由于随机梯度下降法依期望收敛,Rosenblatt感知器也是收敛的。

   

老虎被参观——Rosenblatt感知器的可视化过程

因此,Rosenblatt感知器可理解为:1)将特征增加一维,新的一维为1,对应神经元中的偏置;2)增维后的特征与样本类别相乘,得到校正后的特征向量;3)寻找一个权重向量,其与所有校正后的特征向量的夹角小于90度。以一维空间的样本为例,

对特征空间进行升维和标签校正

权重向量的更新过程

当权重向量与特征向量夹角大于90度时,调整权重向量,减少两者夹角。最终使其对所有的特征向量夹角都小于90度,实现对样本的正确分类。

打虎心得——最后的总结

最开始学Rosenblatt感知器时,只是想把收敛原理搞清楚,但搞懂之后,有两点是之前没有预料到的:1)它隐含一个损失函数,而这个损失函数不需要像逻辑回归一样由一个logit函数进行转换;2)之前对线性可分停留在可以找到一个超平面,左边一类,右边一类。但对于超平面与样本之间有何联连并不清楚,现在明白两者对应m+1维空间两个夹角小于90度的超平面。

好了,打虎到此结束,有缘再会。

这篇关于Rosenblatt感知器详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹