当前位置: 首页 > news >正文

感知机学习算法

感知机

  • 一、感知机简介
  • 二、感知机模型
    • 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 感知机的基本组成

        感知机是神经网络的基本组成单元,其基本组成包括:

  1. 输入:感知机采用多个输入特征,每个特征代表输入数据的特征或属性;
  2. 权重:每一个输入神经元都与一个权重相关联,确定每个输入神经元对感知机输出的影响程度,在训练期间,这些权重会进行调整以学习最佳值;
  3. 偏置:在输入层增加偏置项主要用于调整激活神经元所需阈值,类似于改变神经元激活“起点”,即使输入信号全为零,偏置项也能够使神经元产生一定的激活;
  4. 求和函数:感知机使用求和函数计算其输入的加权和;
  5. 激活函数:激活函数的主要作用对输出进行变换,使得输出落在一个特定的范围内(如阶跃函数的0和1,或者符号函数的1和-1);
  6. 输出:感知机的最终输出是由激活函数的结果决定。例如,在二元分类中,输出可能表示预测类别(0或1);
  7. 学习算法(权重更新规则):在训练过程中,感知机通过学习算法调整其权重和偏置。一种常见的方法是感知机学习算法,它根据预测输出于真实输出之间的差异来更新权重。
    其中,求和函数、激活函数和学习算法,是感知机模型的核心。

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<0x0
函数图像:这是一个二值化函数,当输入小于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<0x0
函数图像:当输入小于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+ex1
函数图像: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=(yy^)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年双十一有什么好物推荐?双十一必买清单大汇总

随着科技的飞速发展&#xff0c;数码产品已成为我们生活中不可或缺的伙伴。2024年双十一购物狂欢节即将来临&#xff0c;众多消费者早已摩拳擦掌&#xff0c;准备在这个年度盛事中淘到心仪的数码好物。在这个信息爆炸的时代&#xff0c;如何从琳琅满目的商品中挑选出性价比高、…...

C语言贪吃蛇

#只讲逻辑不讲一些基础&#xff0c;基础大概过一遍就行# project-one: 无 (gitee.com)仓库里面有原代码 一、基础工作 1、先将你的编译器换成32位环境&#xff0c;也就是x86&#xff0c; 如果是控制台主机窗口则管&#xff0c;若不是需要改为控制台主机窗口 打开运行窗口后点…...

SpringBoot宠物咖啡馆平台:创新设计与高效实现

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理基于Spring Boot的宠物咖啡馆平台的设计与…...

李宏毅深度学习-梯度下降和Batch Normalization批量归一化

Gradient Descent梯度下降 ▽ -> 梯度gradient -> vector向量 -> 下图中的红色箭头&#xff08;loss等高线的法线方向&#xff09; Tip1: Tuning your learning rates Adaptive Learning Rates自适应lr 通常lr会越来越小 Adaptive Learning Rates中每个参数都给它不…...

java集合框架都有哪些

Java集合框架&#xff08;Java Collections Framework&#xff09;是Java提供的一套设计良好的支持对一组对象进行操作的接口和类。这些接口和类定义了如何添加、删除、遍历和搜索集合中的元素。Java集合框架主要包括以下几个部分&#xff1a; 接口&#xff1a; Collection&…...

笔记整理—linux进程部分(8)线程与进程

前面用了高级IO去实现鼠标和键盘的读取&#xff0c;也说过要用多进程方式进行该操作&#xff1a; int mian(void) {int ret-1;int fd-1;char bug[100]{0};retfork();if(0ret){//子进程&#xff0c;读鼠标}if(0<ret){//父进程&#xff0c;读键盘}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是一个关键字&#xff0c; lock是一个接口&#xff0c;实际使用的是实现类 synchronized通过触发的是系统级别的锁机制&#xff0c; lock是API级别的锁机制 synchronized自动获得锁&#xff0c;自动释放锁。 lock需要通过方法获得锁…...

自动驾驶 车道检测实用算法

自动驾驶 | 车道检测实用算法 车道识别是自动驾驶领域的一个重要问题&#xff0c;今天介绍一个利用摄像头图像进行车道识别的实用算法。该算法利用了OpenCV库和Udacity自动驾驶汽车数据库的相关内容。 该算法包含以下步骤&#xff1a; 摄像头校准&#xff0c;以移除镜头畸变&…...

22.第二阶段x86游戏实战2-背包遍历REP指令详解

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要…...

java 的三种IO模型(BIO、NIO、AIO)

java 的三种IO模型&#xff08;BIO、NIO、AIO&#xff09; 一、BIO 阻塞式 IO&#xff08;Blocking IO&#xff09;1.1、BIO 工作机制1.2、BIO 实现单发单收1.3、BIO 实现多发多收1.4、BIO 实现客户端服务端多对一1.5、BIO 模式下的端口转发思想 二、NIO 同步非阻塞式 IO&#…...

低级语言和高级语言、大小写敏感、静态语言和动态语言、链接

低级语言和高级语言 一般而言&#xff0c;更接近硬件的语言被称为低级语言&#xff0c;反之&#xff0c;更远离硬件被称为高级语言。C语言既有低级语言的特点&#xff0c;又有高级语言的特点&#xff0c;又被称为系统语言。Java/Python一般被称为高级语言。 大小写敏感 DOS/Win…...

P3197 [HNOI2008] 越狱

题目传送门 题面 [HNOI2008] 越狱 题目描述 监狱有 n n n 个房间&#xff0c;每个房间关押一个犯人&#xff0c;有 m m m 种宗教&#xff0c;每个犯人会信仰其中一种。如果相邻房间的犯人的宗教相同&#xff0c;就可能发生越狱&#xff0c;求有多少种状态可能发生越狱。 …...

会声会影导出视频mp4格式哪个最高清,会声会影输出格式哪个清晰

调高分辨率后&#xff0c;mp4视频还是不清晰。哪怕全部使用4K级素材&#xff0c;仍然剪不出理想中的高画质作品。不是你的操作有问题&#xff0c;而是剪辑软件没选对。Corel公司拥有全球顶尖的图像处理技术&#xff0c;该公司研发的会声会影视频剪辑软件&#xff0c;在过去的20…...

Linux:进程调度算法和进程地址空间

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 进程调度算法 1.1 进程队列数据结构 1.2 优先级 ​编辑 1.3 活动队列 ​编辑 1.4 过期队列 1.5 active指针和expired指针 1.6 进程连接 二 进程地址空间 2.1 …...

TCP ---滑动窗口以及拥塞窗口

序言 在上一篇文章中我们介绍了 TCP 中的协议段格式&#xff0c;以及保证其可靠传输的重传机制&#xff0c;着重介绍了三次握手建立连接&#xff0c;四次挥手断开连接的过程(&#x1f449;点击查看)。  这只是 TCP 保证通信可信策略的一部分&#xff0c;现在让我们继续深入吧&…...

第十二章--- fixed 和 setprecision 函数、round 函数、进制转换及底层逻辑

1. 保留几位小数 在C中&#xff0c;如果你想要控制输出的小数点后的位数&#xff0c;可以使用<iomanip>头文件提供的fixed和setprecision函数。这里的fixed用于设置浮点数的输出格式为定点表示法&#xff0c;而setprecision(n)则用来指定小数点后保留的位数。具体用法如…...

ASP.NetCore---I18n(internationalization)多语言版本的应用

文章目录 0.实现的效果如下1.创建新项目I18nBaseDemo2.添加页面中的下拉框3.在HomeController中添加ChangeLanguage方法4.在Progress.cs 文件中添加如下代码&#xff1a;5. 在progress.cs中添加code6.添加Resource资源文件7.在页面中引用i18n的变量8. 重启项目&#xff0c;应该…...

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&#xff1a;如图 二.实操 安装完以后在对应项目中的跟package.jso…...

FakeLocation:安卓应用级位置模拟终极解决方案

FakeLocation&#xff1a;安卓应用级位置模拟终极解决方案 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 在数字时代&#xff0c;位置隐私已成为每个Android用户必须面对的重要问…...

Cadence 17.4重装系统后,PCB快捷键失灵?别急着重装,先检查这个‘文件类型’

Cadence 17.4重装系统后PCB快捷键失效的深度排查指南 当你在Windows系统重装后&#xff0c;发现Cadence 17.4的PCB编辑器快捷键全部失灵&#xff0c;那种感觉就像突然失去了双手——每个操作都变得异常笨拙和低效。本文将从底层文件系统原理出发&#xff0c;带你深入排查这个看…...

LaTeX-PPT:如何在3分钟内将专业数学公式融入PowerPoint演示

LaTeX-PPT&#xff1a;如何在3分钟内将专业数学公式融入PowerPoint演示 【免费下载链接】latex-ppt Use LaTeX in PowerPoint 项目地址: https://gitcode.com/gh_mirrors/la/latex-ppt 还在为PowerPoint中编辑复杂数学公式而头疼吗&#xff1f;LaTeX-PPT这款开源插件彻底…...

基于RAG与LLM的智能文献分析工具OpenResearcher:从部署到实战全解析

1. 项目概述&#xff1a;一个为研究者量身打造的AI驱动开源工具箱 如果你是一名科研工作者、学术写手&#xff0c;或者任何需要深度处理文献、进行系统性知识梳理的人&#xff0c;那么你大概率经历过这样的场景&#xff1a;面对海量的PDF文献&#xff0c;手动下载、整理、阅读、…...

AI技能库实战:模块化设计赋能博客创作自动化工作流

1. 项目概述&#xff1a;一个面向AI时代的博客技能开源库最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫inblog-inc/inblog-ai-skills。光看这个名字&#xff0c;就透着一股子“务实”的味道。它不是又一个教你如何调参炼丹的AI模型库&#xff0c;也不…...

开源智能告警聚合路由引擎:从原理到实战部署

1. 项目概述&#xff1a;一个开源的智能告警聚合与路由引擎如果你和我一样&#xff0c;长期负责线上系统的稳定性&#xff0c;那你一定对“告警风暴”和“告警疲劳”这两个词深恶痛绝。想象一下这样的场景&#xff1a;凌晨三点&#xff0c;一个核心服务的某个实例因为网络抖动重…...

OpenClaw Studio:基于Web技术的可视化自动化工作流构建平台解析

1. 项目概述&#xff1a;从开源仓库到创意工坊的蜕变 看到 grp06/openclaw-studio 这个项目标题&#xff0c;我的第一反应是&#xff1a;这又是一个在 GitHub 上诞生的、充满潜力的开源工具。 grp06 看起来像是一个团队或个人的标识&#xff0c;而 openclaw-studio 则直…...

C语言文件长度获取:fseek/ftell与stat方法详解与实战对比

1. 项目概述&#xff1a;为什么文件长度获取是基础却关键的操作在C语言开发中&#xff0c;处理文件是家常便饭。无论是读取配置文件、解析日志&#xff0c;还是处理二进制数据&#xff0c;我们经常需要知道一个文件到底有多大。这个看似简单的需求——“获取文件长度”——背后…...

终极指南:如何快速将AIO Sandbox与主流AI框架集成(LangChain、OpenAI Assistant等)

终极指南&#xff1a;如何快速将AIO Sandbox与主流AI框架集成&#xff08;LangChain、OpenAI Assistant等&#xff09; 【免费下载链接】sandbox All-in-One Sandbox for AI Agents that combines Browser, Shell, File, MCP and VSCode Server in a single Docker container. …...

Zeek日志AI分析平台:从网络监控到智能威胁检测的架构与实践

1. 项目概述&#xff1a;从开源网络监控到智能分析的进化如果你在网络安全、运维或者数据分析领域摸爬滚打过几年&#xff0c;大概率听说过 Zeek&#xff08;以前叫 Bro&#xff09;。它不是一个简单的入侵检测系统&#xff0c;而是一个功能强大的网络分析框架&#xff0c;能够…...