【类脑计算】突触可塑性模型之Hebbian学习规则和STDP

2024-06-15 23:20

本文主要是介绍【类脑计算】突触可塑性模型之Hebbian学习规则和STDP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 引言

突触可塑性 (Synaptic plasticity)指经验能够修改神经回路功能的能力。特指基于活动修改突触传递强度的能力,是大脑适应新信息的主要调查机制。分为短期和长期突触可塑性,分别作用于不同时间尺度,对感官刺激的短期适应和长期行为改变及记忆存储至关重要。
在这里插入图片描述

非对称 STDP 学习规则与对称 Hebbian 学习规则的区别

2 Hebbian学习规则

(1)数学模型
Hebbian学习是一种神经网络学习理论,它基于Donald Hebb在1949年提出的假设,即“神经元的联合使用会导致它们之间的连接增强”。这种学习规则通常被称为Hebbian规则或Hebbian学习理论,是神经科学和机器学习中理解和模拟大脑学习机制的基础之一。

Hebbian学习的核心思想是,如果两个神经元经常同时活动,它们之间的突触连接会变得更强壮。这可以用以下简单的数学形式表达:

Δ w i j = η x i x j \Delta w_{ij} = \eta x_i x_j Δwij=ηxixj

其中:

  • Δ w i j \Delta w_{ij} Δwij 是连接权重的增量。
  • η \eta η 是一个表示学习速率的小正数。
  • x i x_i xi x j x_j xj 分别是前一个神经元和后一个神经元的激活值。

原始的Hebbian学习规则可以进一步扩展,包括考虑权重的饱和和遗忘机制。例如,引入一个遗忘因子(forgetting factor) γ \gamma γ,可以使得权重随时间衰减,从而模拟短期记忆的遗忘过程:

w i j ( t + 1 ) = γ w i j ( t ) + η x i ( t ) x j ( t ) w_{ij}(t+1) = \gamma w_{ij}(t) + \eta x_i(t) x_j(t) wij(t+1)=γwij(t)+ηxi(t)xj(t)

其中,

  • w i j ( t ) w_{ij}(t) wij(t) 是在时间 ( t ) 时的权重。
  • w i j ( t + 1 ) w_{ij}(t+1) wij(t+1) 是更新后的权重。

这种形式的Hebbian学习规则可以模拟神经元之间的长期增强(Long-Term Potentiation, LTP),这是学习和记忆形成过程中的关键机制之一。

Hebbian学习规则在神经网络中的实现通常涉及突触权重的更新,以响应输入模式的激活。这种学习机制在多种类型的神经网络中都有应用,包括但不限于Hopfield网络、Boltzmann机、以及某些类型的递归神经网络(RNN)和长短期记忆网络(LSTM)。Hebbian学习是无监督学习的一种形式,因为它不需要外部的误差信号来指导学习过程。
(2)Hebbian学习规则的局限性
基本的Hebbian规则可能导致不稳定,因为如果两个神经元的激活水平最初只是弱正相关,规则会增加它们之间的权重,进而强化这种相关性,导致权重进一步增加。为了解决这个问题,可以采用一些稳定化方法,如限制权重的增长或采用更复杂的规则。
(3)改进的Hebbian学习
算法思想是将Hebbian学习规则与奖励机制结合起来以实现强化学习。首先将Hebbian更新与奖励直接相乘,但这种方法存在稳定性问题,因为它不能可靠地跟踪输入、输出和奖励之间的实际协方差。为了解决这个问题,然后提出了节点扰动规则,该规则通过引入随机扰动到神经激活中,并使用这些扰动而不是原始激活来进行权重更新,从而推动网络朝着奖励方向学习。这种方法不仅能够在生物学上合理地实现,而且还能够使网络从稀疏和延迟的奖励中学习复杂的认知或运动任务,实际上实现了REINFORCE算法,为强化学习提供了一种有效的解决方案。

3 STDP

STDP(Spike-Timing Dependent Plasticity)是一种理论模型,它允许基于神经元脉冲的相对时间来修改它们之间连接的强度。与Hebbian学习规则不同,STDP考虑了前突触和后突触脉冲的精确时间。STDP建议,如果前突触神经元在后突触神经元之前脉冲,它们之间的连接应该被加强;反之,则应该被削弱。STDP在多种生物系统中被观察到,并在神经回路的发展和可塑性中,包括学习和记忆过程中发挥关键作用。
当前突触神经元的脉冲出现在后突触神经元脉冲之前(即 Δ t = t post − t pre > 0 \Delta t = t_{\text{post}} - t_{\text{pre}} > 0 Δt=tposttpre>0),突触权重会增加,这种现象称为长时程增强(Long-Term Potentiation, LTP)。
当前突触神经元的脉冲出现在后突触神经元脉冲之后(即 Δ t = t post − t pre < 0 \Delta t = t_{\text{post}} - t_{\text{pre}} < 0 Δt=tposttpre<0),突触权重会减小,这种现象称为长时程抑制(Long-Term Depression, LTD)。
STDP的数学表达式比Hebbian学习规则更复杂,常见的公式是:

Δ w i j = { A + exp ⁡ ( − Δ t / τ + ) if  Δ t > 0 − A − exp ⁡ ( Δ t / τ − ) if  Δ t < 0 \Delta w_{ij}=\begin{cases}A_+\exp(-\Delta t/\tau_+)&\text{if }\Delta t>0\\-A_-\exp(\Delta t/\tau_-)&\text{if }\Delta t<0\end{cases} Δwij={A+exp(Δt/τ+)Aexp(Δt/τ)if Δt>0if Δt<0
其中, Δ w i j \Delta w{ij} Δwij是神经元i和j之间权重的变化, Δ t \Delta t Δt是前突触和后突触脉冲之间的时间差异, A + A+ A+ A − A- A分别是增强和抑制的幅度, τ + \tau+ τ+ τ − \tau- τ分别是增强和抑制的时间常数。

这篇关于【类脑计算】突触可塑性模型之Hebbian学习规则和STDP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Python中经纬度距离计算的实现方式

《Python中经纬度距离计算的实现方式》文章介绍Python中计算经纬度距离的方法及中国加密坐标系转换工具,主要方法包括geopy(Vincenty/Karney)、Haversine、pyproj... 目录一、基本方法1. 使用geopy库(推荐)2. 手动实现 Haversine 公式3. 使用py

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

C++作用域和标识符查找规则详解

《C++作用域和标识符查找规则详解》在C++中,作用域(Scope)和标识符查找(IdentifierLookup)是理解代码行为的重要概念,本文将详细介绍这些规则,并通过实例来说明它们的工作原理,需... 目录作用域标识符查找规则1. 普通查找(Ordinary Lookup)2. 限定查找(Qualif

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa