感知机学习算法

感知机

  • 一、感知机简介
  • 二、感知机模型
    • 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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/440802.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序学习实录10:轻松获取用户昵称、头像与登录openid实战攻略

在微信小程序开发中&#xff0c;获取用户的个人信息&#xff08;如昵称和头像&#xff09;以及用户的唯一标识OpenID是非常常见的需求。本文将详细介绍如何通过微信提供的API来实现这些功能&#xff0c;并提供一个完整的实战案例。 用户选择头像 微信提供了chooseAvatar组件&…

ROS基础入门——实操教程

ROS基础入门——实操教程 前言 本教程实操为主&#xff0c;少说书。可供参考的文档中详细的记录了ROS的实操和理论&#xff0c;只是过于详细繁杂了&#xff0c;看得脑壳疼&#xff0c;于是做了这个笔记。 Ruby Rose&#xff0c;放在这里相当合理 本文初编辑于2024年10月4日 C…

使用vscode调试wails项目(golang桌面GUI)

文章目录 安装 Golang 环境安装 NPM安装 VSCode安装 Go 插件安装 Go 插件依赖工具安装 Wails系统检查 准备项目Visual Studio Code 配置安装和构建步骤参考资料 安装 Golang 环境 访问 golang 官网下载环境安装包&#xff1a;https://go.dev/dl/ 安装 NPM 从 Node 下载页面 …

时序必读论文16|ICLR24 CARD:通道对齐鲁棒混合时序预测Transformer

论文标题&#xff1a;CARD: Channel Aligned Robust Blend Transformer for Time Series Forecasting 论文链接&#xff1a;https://arxiv.org/abs/2305.12095 代码链接&#xff1a;https://github.com/wxie9/CARD 前言 Transformer取得成功的一个关键因素是通道独立&#…

鸿蒙开发之ArkUI 界面篇 十九 Flex组件的特点

其语法格式是: Flex(参数对象){ 字组件1, 字组件2, 字组件3, 字组件4 } 这里你会发现&#xff0c;其实和Row容器&#xff0c;Colum容器的语法格式差不多&#xff0c;核心的关键是Colum、Row是不支持换行&#xff0c;实现FlexInterface接口&#xff0c;对外提供的属性是F…

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(二).设置主键自增等特点

前言 在上一节中&#xff0c;主要介绍了 Navicat Premium 17 的使用以及创建一个基础的表格。当时只设置了给数据表补充字段&#xff0c;没有设置给数据表删除字段。现在补充一下。 ALTER TABLE student ADD test int(4); 给名为 student 的数据表添加 test 列&#xf…

Android OTA升级

针对Android系统OTA升级&#xff0c;MTK平台有相关介绍文档&#xff1a;https://online.mediatek.com/apps/faq/detail?faqidFAQ27117&listSW 概念一&#xff1a;OTA包的构建 AOSP full build&#xff1a;Android原生提供的全量包的构建&#xff0c;意思就是可以从任何一…

数据结构:AVL树

前言 学习了普通二叉树&#xff0c;发现普通二叉树作用不大&#xff0c;于是我们学习了搜索二叉树&#xff0c;给二叉树新增了搜索、排序、去重等特性&#xff0c; 但是&#xff0c;在极端情况下搜索二叉树会退化成单边树&#xff0c;搜索的时间复杂度达到了O(N)&#xff0c;这…

【EXCEL数据处理】000020 案例 保姆级教程,附多个操作案例。EXCEL使用表格。

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000020 案例 保姆级教程&#xff0c;附多个操作案例。…

vulnhub-digitalworld.local DEVELOPMENT靶机

vulnhub&#xff1a;digitalworld.local: DEVELOPMENT ~ VulnHub 导入靶机&#xff0c;放在kali同网段&#xff0c;扫描 靶机在192.168.114.129&#xff0c;扫描端口 开了几个端口&#xff0c;8080端口有网页&#xff0c;访问 说是让访问html_pages 似乎把页面都写出来了&…

2-115 基于matlab的瞬态提取变换(TET)时频分析

基于matlab的瞬态提取变换&#xff08;TET&#xff09;时频分析&#xff0c;瞬态提取变换是一种比较新的TFA方法。该方法的分辨率较高&#xff0c;能够较好地提取出故障的瞬态特征&#xff0c;用于故障诊断领域。通过对原始振动信号设置不同信噪比噪声&#xff0c;对该方法的抗…

面向对象特性中 继承详解

目录 概念&#xff1a; 定义&#xff1a; 定义格式 继承关系和访问限定符 基类和派生类对象赋值转换&#xff1a; 继承中的作用域&#xff1a; 派生类的默认成员函数 继承与友元&#xff1a; 继承与静态成员&#xff1a; 复杂的菱形继承及菱形虚拟继承&#xff1a; 虚…

学MybatisPlus

1.设置MySql的数据库 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicodetrue&characterEncodingUTF-8&autoReconnecttrue&serverTimezoneAsia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: MySQL123 logging:l…

IDEA搭建JDK1.8源码调试环境

大家好 下载源码 安装好 JDK 后&#xff0c;源码目录下面有 src.zip 文件&#xff0c;这个文件就是 JDK 的源码 搭建调试环境 新建 Maven 工程&#xff0c;包含以下文件 source&#xff1a;源码文件夹&#xff08;手动新建&#xff09;test&#xff1a;单元测试文件夹&…

Linux文件重定向文件缓冲区

目录 一、C文件接口 二、系统文件I/O 2.1认识系统文件I/O 2.2系统文件I/O 2.3系统调用和库函数 2.4open( )的返回值--文件描述符 2.5访问文件的本质 三、文件重定向 3.1认识文件重定向 3.2文件重定向的本质 3.3在shell中添加重定向功能 3.4stdout和stderr 3.5如何理…

JS测试框架——Jest

文章目录 安装yarn安装jestvscode支持jest的智能提示创建JS测试用例 安装yarn yarn是meta发布的一款取代npm的包管理工具。 npm install -g yarn查看yarn软件源 yarn config get registry换源 yarn config set registry https://registry.npmmirror.com恢复官方源 yarn co…

中广核CGN25届校招网申SHL测评题库、面试流程、招聘对象,内附人才测评认知能力真题

​中国广核集团校园招聘在线测评攻略&#x1f680; &#x1f393; 校园招聘对象 2024届、2025届海内外全日制应届毕业生&#xff0c;大专、本科、硕士、博士&#xff0c;广核集团等你来&#xff01; &#x1f4c8; 招聘流程 投递简历 简历筛选 在线测评&#xff08;重点来啦…

个人项目简单https服务配置

1.SSL简介 SSL证书是一种数字证书&#xff0c;由受信任的证书颁发机构&#xff08;CA&#xff09;颁发&#xff0c;用于在互联网通信中建立加密链接。SSL代表“安全套接层”&#xff0c;是用于在互联网上创建加密链接的协议。SSL证书的主要目的是确保数据传输的安全性和隐私性…

看Threejs好玩示例,学习创新与技术(LiquidRaymarching)

今天的示例有点超出我的想象&#xff0c;首先会科普下WGSL这种新的着色器脚本&#xff0c;然后说说示例《Liquid Raymarching Scene with Three.js Shading Language | Codrops (tympanus.net)》的技术流程。本示例最终呈现的效果如下。可以看到他跟QQ那个消息拖拽消灭的效果非…

基于STM32的数字温度传感器设计与实现

引言 STM32 是由意法半导体&#xff08;STMicroelectronics&#xff09;开发的基于 ARM Cortex-M 内核的微控制器系列&#xff0c;以其强大的处理能力、丰富的外设接口和低功耗著称&#xff0c;广泛应用于嵌入式系统设计中。在这篇文章中&#xff0c;我们将介绍如何基于 STM32…