聚合标签算法简介

引言

聚合标签算法是由文献2提出的一种脉冲神经网络算法(SNN),该算法实际应用就是分类,而SNN算法按照分类方式,可以分为单脉冲学习算法和多脉冲学习算法。比如说需要进行手写体MNIST数字的分类,单脉冲学习算法就是通过构造一个有10个输出神经元的模型,将某张手写体数字转化为脉冲序列作为输入信号,当某个编号的输出神经元激发了一个脉冲同时其他的输出神经元保持沉默,那么该编号就是分类结果,比如tempotron学习算法[1];同样,多脉冲学习算法同样构造有10个输出神经元的模型,将某张手写体数字转化为脉冲序列作为输入信号,其输出神经元连续输出n个脉冲( n ∈ [ 1 , 2 , 3... ] ,即输出的神经元数目可以不止取 1 n\in[1,2,3...],即输出的神经元数目可以不止取1 n[1,2,3...],即输出的神经元数目可以不止取1),那么输出神经元输出脉冲数目最多的一个即为识别结果,比如要介绍的聚合标签算法

LIF神经元模型

依据实际神经系统,有众多神经元模型,该算法以LIF神经元模型为基础。我们直接给出其计算公式,其中 N N N代表有N个输入神经元; V r e s t V_{rest} Vrest表示静息电位,一般取0; ω i \omega_i ωi表示第 i i i个输入神经元与输出神经元连接的突触权重; θ \theta θ表示输出神经元脉冲激发阈值; t i j t^j_i tij表示第i个输入神经元激发的第j个脉冲; t t t表示时刻; t s p i k e j t^j_{spike} tspikej表示输出神经元激发的第j个脉冲; V n o r m V_{norm} Vnorm表示归一化常数,目标是使得 K ( t − t i j ) K(t-t^j_i) K(ttij)范围在 [ 0 , 1 ] [0,1] [0,1]内; τ m , τ s \tau_m,\tau_s τm,τs分别是膜积分时间延迟常数,突触电流时间延迟常数; V ( t ) V(t) V(t)就是输出神经元膜电压。下面提到的计算输出膜电压过程全部是以这个公式为基础计算而来。
在这里插入图片描述

STS(Spike-Threshold-Surface)函数

由于在SNN模型中神经元的输入输出信号全部是脉冲序列,脉冲序列的离散性导致无法直接求解关于权重的导数,从而不能更新权重,训练模型,于是聚合标签算法提出了一个STS函数和临界阈值 θ \theta θ*概念,为了更容易理解,我们构造了一个有500个输入神经元和1个输出神经元的两层网络。突触权重随机生成。

在这里插入图片描述
其输入的脉冲序列如下所示,其中横坐标代表了时间,纵坐标代表了1到500个输入神经元的编号,其中每一个黑色的点(x,y)代表了在x时刻第y个输入神经元激发了一个脉冲。
在这里插入图片描述
STS函数定义为对于同样的脉冲序列输入和突触权重一定时,不同输出神经元阈值与其激发的脉冲数目之间的映射关系,因为突触后神经元阈值越高,那么输出的脉冲数目越少,所以STS函数应该是一个单调递减的曲线,如下图即按照上面的两层网络和输入信号计算的STS函数图像。临界阈值 θ \theta θ*k定义为输出脉冲数目从 k − 1 k-1 k1增加到 k k k时候的最大阈值。即下图中的拐点处,比如当突触后神经元阈值大于Vmax时候,突触后神经元激发0个脉冲,但是当突触后神经元阈值等于Vmax时候,突触后神经元激发了1个脉冲,所以 θ \theta θ*1应该等于Vmax
在这里插入图片描述
所以,临界阈值随着突触权重变化,输出脉冲数目随着临界阈值变化;最终将输出脉冲数目和突触权重的关系替代为临界阈值与突触权重之间的关系。

Multi-spike tempotron学习规则和基于临界阈值的梯度规则

引言

通过STS函数和临界阈值的定义,我们将离散的脉冲数目对权重的关系转化为临界阈值对权重之间的关系,那么接下来就需要训练模型,这就涉及到了Multi-spike tempotron学习规则和基于临界阈值的梯度规则,我们同样基于例子来介绍这两个规则,依旧是在上文中给出的两层神经网络模型和输入脉冲序列。此时,输出神经元激发的脉冲数目是3个,其输出神经元膜电压变化曲线如下所示。
在这里插入图片描述
我们希望通过更改突触权重后,使其可以激发6个脉冲。

multi-spike tempotron规则

Multi-spike tempotron规则就是如何更新权重。
Δ → ω = { − λ ∇ → ω → θ o ∗ ,if o > d λ ∇ → ω → θ o + 1 ∗ ,if o < d \overset{\to}{\Delta}\omega=\left\{ \begin{aligned} &&-\lambda \overset{\to}{\nabla}_{\overset{\to}{\omega}}\theta^*_o \text {,if o > d}\\ &&\lambda \overset{\to}{\nabla}_{\overset{\to}{\omega}}\theta^*_{o+1} \text {,if o < d}\\ \end{aligned} \right. Δω= λωθo,if o > dλωθo+1,if o < d
其中 λ \lambda λ是学习率, o o o表示实际输出神经元激发的脉冲数目, d d d代表预期输出神经元激发的脉冲数目, θ o ∗ \theta^*_o θo表示输出神经元激发脉冲数目为 o o o的临界阈值, ∇ → ω → θ o ∗ \overset{\to}{\nabla}_{\overset{\to}{\omega}}\theta^*_o ωθo表示 θ o ∗ \theta^*_o θo对突触权重( ω \omega ω是一个 1 × 500 1\times500 1×500的向量)的导数。
即当实际脉冲数目小于预期脉冲数目时候,希望增加突触权重,增大输出神经元膜电压和激发的脉冲数目,反之减少。

基于临界阈值的梯度规则

multi-spike tempotron规则给出了更新公式,临界阈值的梯度规则目的在于求解 ∇ → ω → θ o ∗ \overset{\to}{\nabla}_{\overset{\to}{\omega}}\theta^*_o ωθo,求解过程可以具体参考论文的材料部分,反正是一个非常复杂的公式[2]。

更新权重

以输出6个脉冲为目标,训练上面的两层神经网络,更新权重后,可以得到输出神经元膜电压变化曲线如下图所示,
在这里插入图片描述
其中红色线为训练后的输出神经元膜电压变化,可以看到,其输出脉冲数目从3变成了6。
同时,STS函数曲线因为突触权重的改变,也随之发生了变化,其中黑色线为训练之前的STS函数,红色为训练后,黑色实线表示实际生物阈值, θ = 1 \theta = 1 θ=1,可以看到训练前 θ 4 ∗ < θ < θ 3 ∗ \theta^*_4<\theta<\theta^*_3 θ4<θ<θ3,所以输出神经元激发3个脉冲,训练后 θ 7 ∗ < θ < θ 6 ∗ \theta^*_7<\theta<\theta^*_6 θ7<θ<θ6,所以输出神经元激发6个脉冲。我们希望输出6个脉冲的目标可以理解为更新突触权重从而更新STS函数曲线,使实际生物阈值落到预期临界阈值范围之内。
在这里插入图片描述

[1]The tempotron: a neuron that learns spike timing–based decisions
[2]Spiking neurons can discover predictive features by aggregate-label learning

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。 --------------------------------------------------------------- 目录 Introduction to Algorithms, Third Edition 出版者的话 译者序 前言 第一部分 基础知识 第1章 算法在计算中的作用  1.1 算法  1.2 作为一种技术的算法  思考题  本章注记 第2章 算法基础  2.1 插入排序  2.2 分析算法  2.3 设计算法   2.3.1 分治法   2.3.2 分析分治算法  思考题  本章注记 第3章 函数的增长  3.1 渐近记号  3.2 标准记号与常用函数  思考题  本章注记 第4章 分治策略  4.1 最大子数组问题  4.2 矩阵乘法的Strassen算法  4.3 用代入法求解递归式  4.4 用递归树方法求解递归式  4.5 用主方法求解递归式  4.6 证明主定理   4.6.1 对b的幂证明主定理   4.6.2 向下取整和向上取整  思考题  本章注记 第5章 概率分析和随机算法  5.1 雇用问题  5.2 指示器随机变量  5.3 随机算法  ?5.4 概率分析和指示器随机变量的进一步使用   5.4.1 生日悖论   5.4.2 球与箱子   5.4.3 特征序列   5.4.4 在线雇用问题  思考题  本章注记 第二部分 排序和顺序统计量 第6章 堆排序  6.1 堆  6.2 维护堆的性质  6.3 建堆  6.4 堆排序算法  6.5 优先队列  思考题  本章注记 第7章 快速排序  7.1 快速排序的描述  7.2 快速排序的性能  7.3 快速排序的随机化版本  7.4 快速排序分析   7.4.1 最坏情况分析   7.4.2 期望运行时间  思考题  本章注记 第8章 线性时间排序  8.1 排序算法的下界  8.2 计数排序  8.3 基数排序  8.4 桶排序  思考题  本章注记 第9章 中位数和顺序统计量  9.1 最小值和最大值  9.2 期望为线性时间的选择算法  9.3 最坏情况为线性时间的选择算法  思考题  本章注记 第三部分 数据结构 第10章 基本数据结构  10.1 栈和队列  10.2 链表  10.3 指针和对象的实现  10.4 有根树的表示  思考题  本章注记 第11章 散列表  11.1 直接寻址表  11.2 散列表  11.3 散列函数   11.3.1 除法散列法   11.3.2 乘法散列法   11.3.3 全域散列法  11.4 开放寻址法  11.5 完全散列  思考题  本章注记 第12章 二叉搜索树  12.1 什么是二叉搜索树  12.2 查询二叉搜索树  12.3 插入和删除  12.4 随机构建二叉搜索树  思考题  本章注记 第13章 红黑树  13.1 红黑树的性质  13.2 旋转  13.3 插入  13.4 删除  思考题  本章注记 第14章 数据结构的扩张  14.1 动态顺序统计  14.2 如何扩张数据结构  14.3 区间树  思考题  本章注记 第四部分 高级设计和分析技术 第15章 动态规划  15.1 钢条切割  15.2 矩阵链乘法  15.3 动态规划原理  15.4 最长公共子序列  15.5 最优二叉搜索树  思考题  本章注记 第16章 贪心算法  16.1 活动选择问题  16.2 贪心算法原理  16.3 赫夫曼编码  16.4 拟阵和贪心算法  16.5 用拟阵求解任务调度问题  思考题  本章注记 第17章 摊还分析  17.1 聚合分析  17.2 核算法  17.3 势能法  17.4 动态表   17.4.1 表扩张   17.4.2 表扩张和收缩  思考题  本章注记 第五部分 高级数据结构 第18章 B树  18.1 B树的定义  18.2 B树上的基本操作  18.3 从B树中删除关键字  思考题  本章注记 第19章 斐波那契堆  19.1 斐波那契堆结构  19.2 可合并堆操作  19.3 关键字减值和删除一个结点  19.4 最大度数的界  思考题  本章注记 第20章 van Emde Boas树  20.1 基本方法  20.2 递归结构   20.2.1 原型van Emde Boas结构   20.2.2 原型van Emde Boas结构上的操作  20.3 van Emde Boas树及其操作   20.3.1 van Emde Boas树   20.3.2 van Emde Boas树的操作  思考题  本章注记 第21章 用于不相交集合的数据结构  21.1 不相交集合的操作  21.2 不相交集合的链表表示  21.3 不相交集合森林  *21.4 带路径压缩的按秩合并的分析  思考题  本章注记 第六部分 图算法 第22章 基本的图算法  22.1 图的表示  22.2 广度优先搜索  22.3 深度优先搜索  22.4 拓扑排序  22.5 强连通分量  思考题  本章注记 第23章 最小生成树  23.1 最小生成树的形成  23.2 Kruskal算法和Prim算法  思考题  本章注记 第24章 单源最短路径  24.1 Bellman?Ford算法  24.2 有向无环图中的单源最短路径问题  24.3 Dijkstra算法  24.4 差分约束和最短路径  24.5 最短路径性质的证明  思考题  本章注记 第25章 所有结点对的最短路径问题  25.1 最短路径和矩阵乘法  25.2 Floyd?Warshall算法  25.3 用于稀疏图的Johnson算法  思考题  本章注记 第26章 最大流  26.1 流网络  26.2 Ford\Fulkerson方法  26.3 最大二分匹配  26.4 推送重贴标签算法  26.5 前置重贴标签算法  思考题  本章注记 第七部分 算法问题选编 第27章 多线程算法  27.1 动态多线程基础  27.2 多线程矩阵乘法  27.3 多线程归并排序  思考题  本章注记 第28章 矩阵运算  28.1 求解线性方程组  28.2 矩阵求逆  28.3 对称正定矩阵和最小二乘逼近  思考题  本章注记 第29章 线性规划  29.1 标准型和松弛型  29.2 将问题表达为线性规划  29.3 单纯形算法  29.4 对偶性  29.5 初始基本可行解  思考题  本章注记 第30章 多项式与快速傅里叶变换  30.1 多项式的表示  30.2 DFT与FFT  30.3 高效FFT实现  思考题  本章注记 第31章 数论算法  31.1 基础数论概念  31.2 最大公约数  31.3 模运算  31.4 求解模线性方程  31.5 中国余数定理  31.6 元素的幂  31.7 RSA公钥加密系统  31.8 素数的测试  31.9 整数的因子分解  思考题  本章注记 第32章 字符串匹配  32.1 朴素字符串匹配算法  32.2 Rabin\Karp算法  32.3 利用有限自动机进行字符串匹配  32.4 Knuth?Morris?Pratt算法  思考题  本章注记 第33章 计算几何学  33.1 线段的性质  33.2 确定任意一对线段是否相交  33.3 寻找凸包  33.4 寻找最近点对  思考题  本章注记 第34章 NP完全性  34.1 多项式时间  34.2 多项式时间的验证  34.3 NP完全性与可归约性  34.4 NP完全性的证明  34.5 NP完全问题   34.5.1 团问题   34.5.2 顶点覆盖问题   34.5.3 哈密顿回路问题   34.5.4 旅行商问题   34.5.5 子集和问题  思考题  本章注记 第35章 近似算法  35.1 顶点覆盖问题  35.2 旅行商问题  35.2.1 满足三角不等式的旅行商问题  35.2.2 一般旅行商问题  35.3 集合覆盖问题  35.4 随机化和线性规划  35.5 子集和问题  思考题  本章注记 第八部分 附录:数学基础知识 附录A 求和  A.1 求和公式及其性质  A.2 确定求和时间的界  思考题  附录注记 附录B 集合等离散数学内容  B.1 集合  B.2 关系  B.3 函数  B.4 图  B.5 树   B.5.1 自由树   B.5.2 有根树和有序树   B.5.3 二叉树和位置树  思考题  附录注记 附录C 计数与概率  C.1 计数  C.2 概率 C.3 离散随机变量  C.4 几何分布与二项分布  *C.5 二项分布的尾部  思考题  附录注记 附录D 矩阵  D.1 矩阵与矩阵运算  D.2 矩阵基本性质  思考题  附录注记
3D目标跟踪算法是一种用于追踪三维目标的方法。其中引用的内容涉及到一个具体的算法的细节和损失函数的计算。 该算法首先通过网络输出3来估计目标框的位置,其中第五位表示目标的目标程度得分。然后根据网络输出4和真实位置之间的距离,计算目标框的标签。 损失函数分为几个部分,其中loss_box是通过计算预测框和真实框之间的位置差异来衡量。只有正样本被用来进行训练。损失函数通过计算正样本的平均损失值,并乘以目标的目标程度得分,然后除以正样本的总数来计算。 综合考虑了分类损失、回归损失和目标程度得分之间的权重,得到总的损失值。其中分类损失的权重是0.2,回归损失的权重是1.5,目标程度得分的权重是0.2。 网络的输出3由两个部分组成:proposal_offsets和center_xyzs。它们被拼接在一起形成一个(batch, 5, 64)的输出。此外,目标特定特征通过经过3层卷积层得到(batch, 1, M2),然后经过Sigmoid函数处理得到(batch, M2),作为网络的输出1:estimation_cla。 另外,通过聚合投票方法得到的特征(batch, 256, M2)也是网络的输出2。这些特征包括了用于分类任务的分数(batch, M2)和用于投票聚合的位置信息(batch, 257, M2)。 最后,验证步骤用于检验目标跟踪算法的性能。 总结起来,3D目标跟踪算法通过网络输出关于目标位置、目标程度得分、分类分数和位置信息的多个部分,并利用损失函数来训练和优化模型的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值