感知机学习算法
感知机
- 一、感知机简介
- 二、感知机模型
- 2.1 感知机的基本组成
- 2.2 求和函数
- 2.2.1 时间总合
- 2.2.2 空间总合
- 2.3 激活函数
- 2.4 学习算法
- 2.4.1 赫布学习规则
- 2.4.2 Delta学习规则
- 三、 结论
- 参考文献
一、感知机简介
M-P神经元模型因其对生物神经元激发过程的极大简化而成为神经网络研究的基础模型。然而,由于该模型仅支持二进制输入,并依赖于手动学习权重和偏置,因此在实际应用中,它的扩展性受到了限制,无法满足更复杂的学习任务。
1949年,唐纳德 ⋅ \cdot ⋅ 赫布在《行为的组织》中论述道,当神经元A的轴突足够接近并反复激发神经元B时,这两个神经元或其中一个神经元会发生某种生长过程或代谢变化,致使二者的关联性增强。在人工神经网络中,神经元之间的关联性由二者的连接权重表示。同步激发的两个神经元,二者的权重增加;反之,则权重减少。在人工神经网络的训练中利用该可塑性,可以在不使用外界监督的情况下,引导网络学习提取有用特征。
受赫布规则的启发,康奈尔大学心理学教授弗兰克·罗森布拉特于1958年基于M-P神经元模型提出了感知机模型。该模型不仅能够处理离散和连续数据,还能够通过感知机学习算法自动调整权重,这对后来的神经网络发展产生了深远影响。以下是单层感知机模型的示意图。

二、感知机模型
2.1 感知机的基本组成
感知机是神经网络的基本组成单元,其基本组成包括:
- 输入:感知机采用多个输入特征,每个特征代表输入数据的特征或属性;
- 权重:每一个输入神经元都与一个权重相关联,确定每个输入神经元对感知机输出的影响程度,在训练期间,这些权重会进行调整以学习最佳值;
- 偏置:在输入层增加偏置项主要用于调整激活神经元所需阈值,类似于改变神经元激活“起点”,即使输入信号全为零,偏置项也能够使神经元产生一定的激活;
- 求和函数:感知机使用求和函数计算其输入的加权和;
- 激活函数:激活函数的主要作用对输出进行变换,使得输出落在一个特定的范围内(如阶跃函数的0和1,或者符号函数的1和-1);
- 输出:感知机的最终输出是由激活函数的结果决定。例如,在二元分类中,输出可能表示预测类别(0或1);
- 学习算法(权重更新规则):在训练过程中,感知机通过学习算法调整其权重和偏置。一种常见的方法是感知机学习算法,它根据预测输出于真实输出之间的差异来更新权重。
其中,求和函数、激活函数和学习算法,是感知机模型的核心。
2.2 求和函数
英国科学家查尔斯·斯科特·谢灵顿在其著作《神经系统的整合作用》中,详细讨论了神经系统如何整合信息,并引入了“时间总合”和“空间总合”的概念。
2.2.1 时间总合
与空间总合不同,时间总合指的是神经元在短时间内接收到重复的信号时,会将这些信号叠加起来。如果这些信号在时间上足够接近,它们的累积效应也可能足以触发神经元的动作电位。
2.2.2 空间总合
空间总合指的是神经元接收来自不同空间位置的多个突触输入,并将它们整合起来。如果这些输入信号的总和足够强大,神经元就会触发动作电位。这些输入可以来自多个不同的突触,并在神经元的树突或细胞体上分布。当这些突触信号同时到达时,它们会在神经元内部产生叠加效应。
谢灵顿提出的空间总合概念直接影响了人工神经网络中的加权求和机制。在生物神经元中,来自不同突触的信号可以被整合起来,并根据总和的强度决定是否产生动作电位。这个原理在人工神经元中通过对输入信号进行加权求和的方式加以体现,每个输入都乘以特定的权重,并将它们求和,再经过激活函数进行输出。这种机制是感知机以及更复杂的神经网络中的核心计算步骤。
2.3 激活函数
激活函数是神经元模型中不可或缺的组成部分。M-P神经元模型使用的是Heaviside函数作为激活函数,但在神经网络的实际应用中,还可以使用其他激活函数,如符号函数和Sigmoid函数。每个函数的表达式和对应的图像如下:
1. Heaviside 函数
Heaviside函数是阶跃函数,其输出为0或1,用于判断输入是否达到某个阈值。其表达式为:
H ( x ) = { 0 , x < 0 1 , x ≤ 0 H(x) = \begin{cases} 0, & x < 0 \\ 1, & x \leq 0 \end{cases} H(x)={0,1,x<0x≤0
函数图像:这是一个二值化函数,当输入小于0时输出0,大于等于0时输出1,具体函数图像如下所示。

def heaviside(x):y = np.zeros(x.shape)y[x < 0] = 0y[x >= 0] = 1return y
2. 符号函数 (Signum function)
符号函数是另一种常用的激活函数,它可以输出-1或1,用于二分类问题。其表达式为:
S i g n ( x ) = { − 1 , x < 0 1 , x ≤ 0 Sign(x) = \begin{cases} -1, & x < 0 \\ 1, & x \leq 0 \end{cases} Sign(x)={−1,1,x<0x≤0
函数图像:当输入小于0时输出-1,输入大于等于0时输出1,输出仅为两个离散值,具体函数图像如下所示。

def signum(x):y = np.zeros(x.shape)y[x < 0] = -1y[x >= 0] = 1return y
3. Sigmoid 函数
Sigmoid函数是常用于神经网络中的平滑激活函数,其输出为连续值,介于0和1之间,特别适合用于处理概率输出。其表达式为:
σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e−x1
函数图像:Sigmoid函数的图像呈S形,在极端情况下(输入为负无穷或正无穷时)分别趋近于0或1,但从不过界,具体函数图像如下所示。

def sigmoid(x):return 1 / (1 + np.exp(-x))
2.4 学习算法
感知机学习算法种类繁多,其中最著名且经典的当属赫布学习算法和Delta学习算法。
2.4.1 赫布学习规则
赫布学习算法是神经科学和人工智能中一种重要的学习规则,由加拿大心理学唐纳德 ⋅ \cdot ⋅ 赫布于1949年提出。作为一种无监督学习方法,因为它不需要外部的标签或反馈来指导,而是仅依赖于神经元活动的关联性。在人工神经网络中,赫布学习的数学表达形式如下:
w i = w i o l d + △ w i w_{i} = w_{i}^{old} + \triangle w_{i} wi=wiold+△wi
△ w i = x i y \triangle w_{i} = x_i y △wi=xiy
其中, △ w i \triangle w_{i} △wi 表示神经元 i i i 的权重变化; x i x_i xi 表示神经元 i i i 的输入; y y y 表示神经元的输出。
为了帮助理解赫布学习算法,以下是赫布学习过程的示意图,直观展示了该算法的典型案例。

2.4.2 Delta学习规则
Delta学习算法是Widrow和Hoff于1960年提出,是一种经典的学习算法,广泛应用于神经网络训练。该规则的基本思想是根据节点输出与期望输出之间的误差来调整权重,具体数学表达式如下:
w i = w i o l d + △ w i w_{i} = w_{i}^{old} + \triangle w_{i} wi=wiold+△wi
△ w i = ( y − y ^ ) x i \triangle w_{i} = (y - \hat{y}) x_i △wi=(y−y^)xi
其中, y ^ \hat{y} y^ 表示预测结果。
三、 结论
感知机算法解决了M-P模型二进制输入问题和人工手动调参问题,为深度学习的发展奠定了坚实的基础。
参考文献
[1] 张玉宏. 深度学习之美[M]. 北京: 电子工业出版社, 2018:164-178.
相关文章:
感知机学习算法
感知机 一、感知机简介二、感知机模型2.1 感知机的基本组成2.2 求和函数2.2.1 时间总合2.2.2 空间总合 2.3 激活函数2.4 学习算法2.4.1 赫布学习规则2.4.2 Delta学习规则 三、 结论参考文献 一、感知机简介 M-P神经元模型因其对生物神经元激发过程的极大简化而成为神经网络研究…...
2024年双十一有什么好物推荐?双十一必买清单大汇总
随着科技的飞速发展,数码产品已成为我们生活中不可或缺的伙伴。2024年双十一购物狂欢节即将来临,众多消费者早已摩拳擦掌,准备在这个年度盛事中淘到心仪的数码好物。在这个信息爆炸的时代,如何从琳琅满目的商品中挑选出性价比高、…...
C语言贪吃蛇
#只讲逻辑不讲一些基础,基础大概过一遍就行# project-one: 无 (gitee.com)仓库里面有原代码 一、基础工作 1、先将你的编译器换成32位环境,也就是x86, 如果是控制台主机窗口则管,若不是需要改为控制台主机窗口 打开运行窗口后点…...
SpringBoot宠物咖啡馆平台:创新设计与高效实现
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理基于Spring Boot的宠物咖啡馆平台的设计与…...
李宏毅深度学习-梯度下降和Batch Normalization批量归一化
Gradient Descent梯度下降 ▽ -> 梯度gradient -> vector向量 -> 下图中的红色箭头(loss等高线的法线方向) Tip1: Tuning your learning rates Adaptive Learning Rates自适应lr 通常lr会越来越小 Adaptive Learning Rates中每个参数都给它不…...
java集合框架都有哪些
Java集合框架(Java Collections Framework)是Java提供的一套设计良好的支持对一组对象进行操作的接口和类。这些接口和类定义了如何添加、删除、遍历和搜索集合中的元素。Java集合框架主要包括以下几个部分: 接口: Collection&…...
笔记整理—linux进程部分(8)线程与进程
前面用了高级IO去实现鼠标和键盘的读取,也说过要用多进程方式进行该操作: int mian(void) {int ret-1;int fd-1;char bug[100]{0};retfork();if(0ret){//子进程,读鼠标}if(0<ret){//父进程,读键盘}else{perror("fork&quo…...
使用 Python 实现遗传算法进行无人机路径规划
目录 使用 Python 实现遗传算法进行无人机路径规划引言1. 遗传算法概述1.1 定义1.2 基本步骤1.3 遗传算法的特点 2. 使用 Python 实现遗传算法2.1 安装必要的库2.2 定义类2.2.1 无人机模型类2.2.2 遗传算法类 2.3 示例程序 3. 遗传算法的优缺点3.1 优点3.2 缺点 4. 改进方向5. …...
JAVA基础: synchronized 和 lock的区别、synchronized锁机制与升级
1 synchronized 和 lock的区别 synchronized是一个关键字, lock是一个接口,实际使用的是实现类 synchronized通过触发的是系统级别的锁机制, lock是API级别的锁机制 synchronized自动获得锁,自动释放锁。 lock需要通过方法获得锁…...
自动驾驶 车道检测实用算法
自动驾驶 | 车道检测实用算法 车道识别是自动驾驶领域的一个重要问题,今天介绍一个利用摄像头图像进行车道识别的实用算法。该算法利用了OpenCV库和Udacity自动驾驶汽车数据库的相关内容。 该算法包含以下步骤: 摄像头校准,以移除镜头畸变&…...
22.第二阶段x86游戏实战2-背包遍历REP指令详解
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…...
java 的三种IO模型(BIO、NIO、AIO)
java 的三种IO模型(BIO、NIO、AIO) 一、BIO 阻塞式 IO(Blocking IO)1.1、BIO 工作机制1.2、BIO 实现单发单收1.3、BIO 实现多发多收1.4、BIO 实现客户端服务端多对一1.5、BIO 模式下的端口转发思想 二、NIO 同步非阻塞式 IO&#…...
低级语言和高级语言、大小写敏感、静态语言和动态语言、链接
低级语言和高级语言 一般而言,更接近硬件的语言被称为低级语言,反之,更远离硬件被称为高级语言。C语言既有低级语言的特点,又有高级语言的特点,又被称为系统语言。Java/Python一般被称为高级语言。 大小写敏感 DOS/Win…...
P3197 [HNOI2008] 越狱
题目传送门 题面 [HNOI2008] 越狱 题目描述 监狱有 n n n 个房间,每个房间关押一个犯人,有 m m m 种宗教,每个犯人会信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。 …...
会声会影导出视频mp4格式哪个最高清,会声会影输出格式哪个清晰
调高分辨率后,mp4视频还是不清晰。哪怕全部使用4K级素材,仍然剪不出理想中的高画质作品。不是你的操作有问题,而是剪辑软件没选对。Corel公司拥有全球顶尖的图像处理技术,该公司研发的会声会影视频剪辑软件,在过去的20…...
Linux:进程调度算法和进程地址空间
✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 进程调度算法 1.1 进程队列数据结构 1.2 优先级 编辑 1.3 活动队列 编辑 1.4 过期队列 1.5 active指针和expired指针 1.6 进程连接 二 进程地址空间 2.1 …...
TCP ---滑动窗口以及拥塞窗口
序言 在上一篇文章中我们介绍了 TCP 中的协议段格式,以及保证其可靠传输的重传机制,着重介绍了三次握手建立连接,四次挥手断开连接的过程(👉点击查看)。 这只是 TCP 保证通信可信策略的一部分,现在让我们继续深入吧&…...
第十二章--- fixed 和 setprecision 函数、round 函数、进制转换及底层逻辑
1. 保留几位小数 在C中,如果你想要控制输出的小数点后的位数,可以使用<iomanip>头文件提供的fixed和setprecision函数。这里的fixed用于设置浮点数的输出格式为定点表示法,而setprecision(n)则用来指定小数点后保留的位数。具体用法如…...
ASP.NetCore---I18n(internationalization)多语言版本的应用
文章目录 0.实现的效果如下1.创建新项目I18nBaseDemo2.添加页面中的下拉框3.在HomeController中添加ChangeLanguage方法4.在Progress.cs 文件中添加如下代码:5. 在progress.cs中添加code6.添加Resource资源文件7.在页面中引用i18n的变量8. 重启项目,应该…...
vue3 环境配置vue-i8n国际化
一.依赖和插件的安装 主要是vue-i18n和 vscode的自动化插件i18n Ally https://vue-i18n.intlify.dev/ npm install vue-i18n10 pnpm add vue-i18n10 yarn add vue-i18n10 vscode在应用商城中搜索i18n Ally:如图 二.实操 安装完以后在对应项目中的跟package.jso…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
