一文细谈SNN的基本数学原理,LIF模型,STDP与STBP学习方法

首先本文是读完

如何看待第三代神经网络SNN?详解脉冲神经网络的架构原理、数据集和训练方法 原创-CSDN博客

一文通俗入门·脉冲神经网络(SNN)·第三代神经网络-CSDN博客

两篇文章的总结,文章仅用于学习。

本文主要讨论STDP和STBP方法。

我们都知道,SNN网络由于其复杂的动力学和脉冲的不可微性质导致训练困难,于是有两种方法解决,

        1、STDP(Spike-Timing-Dependent Plasticity,脉冲时间依赖可塑性)是一种基于神经元之间的相对脉冲发放时间来调整突触权重的无监督学习规则。这种学习方式不需要标签数据,而是通过神经元的活动本身来指导学习过程。

        2、STBP是一种直接训练SNN的方法,它能够同时利用空间域和时间域的信息进行训练,它通过引入梯度下降训练,可以有效地优化网络权重,提高学习性能。STBP需要解决脉冲活动的不可微分问题,通常通过引入近似导数的方法来实现。

1、脉冲神经网络简介

        脉冲神经网络(SNN,Spiking Neural Network)是一种受生物神经系统启发的计算模型,它与传统的人工神经网络(ANN)在信息处理方式上存在显著差异。以下是SNN网络的一些基本特点:

  1. 生物可解释性:SNN模仿了生物神经元的工作机制,包括脉冲发放、突触权重变化等,因此在神经科学和认知科学领域具有较高的生物可解释性。

  2. 脉冲编码:在SNN中,信息通过神经元的脉冲(或称为尖峰)序列来编码和传递,而不是像ANN那样通过连续的激活值。

  3. 时间动态:SNN能够处理时间动态信息,即网络的输出不仅取决于当前的输入,还取决于输入的时间历史

  4. 事件驱动:SNN是事件驱动的,这意味着它们对输入信号的变化做出反应,而不是在每个时间步长都进行计算,这使得SNN在处理动态视觉传感器数据等方面表现出色。

  5. 稀疏激活SNN中的神经元通常不会同时激活,这种稀疏性有助于提高计算效率和降低能耗。

  6. 突触可塑性:SNN中的突触权重可以根据学习规则(如STDP)动态变化,这使得网络能够通过突触权重的调整来学习输入数据的统计特性。

  7. 多样化的神经元模型:SNN中可以使用多种神经元模型,如Leaky Integrate-and-Fire (LIF) 模型、Izhikevich模型等,以适应不同的生物学特性和计算需求。

  8. 学习算法:SNN的训练可以使用不同的学习算法,包括无监督学习(如基于STDP的规则)、间接监督学习(如先训练ANN再转换为SNN)和直接监督学习(如STBP算法)

  9. 硬件兼容性:SNN的脉冲特性使其非常适合在神经形态硬件上实现,这些硬件可以高效地执行SNN模型,有望在能效和速度上超越传统计算平台。

  10. 应用领域:SNN在多个领域都有潜在的应用,包括图像和语音识别、机器人控制、生物信号处理、以及需要处理时间序列数据的场景。

        SNN的研究和应用正在快速发展,它们提供了一种与传统ANN不同的视角,以理解和模拟智能信息处理机制。

        然而我们的大脑在绝对识别准确性方面,通常比现有的人工智能机器表现得差。这反映了我们需要更全面和公平的衡量标准来评估和模拟生物大脑工作方式的 SNN。我们需要考虑 SNN 网络的 Efficiency,而不仅仅是 Accuracy。评价一个 SNN 时要从多个角度考量,比如:application accuracy,memory cost, compute cost 。

        在以 ANN 主导的评价指标和任务中,相同大小的 SNN 无法打败 ANN。但是在以 SNN 主导的评价指标和任务中,SNN 的表现会更好。

2. LIF模型的两种数学模型

         从这里我们可以看出,ANN处理的是连续的数据,而SNN处理的是离散的数据。

2.1 第一种LIF模型

        脉冲神经元电位动力学的数学模型最常用的是漏电积分放电模型(leaky integrate-and-fire ( LIF )),这个模型工作过程与生物神经元充电、漏电、放电过程类似。下面详细讨论LIF模型。

        我们知道,每个脉冲神经元内部有电压v,当没有接收到任何脉冲输入时,电压v会随着时间指数稳定到平衡电压a,这个过程用LIF模型描述为:

        这是一个一阶线性非齐次微分方程,求解后得到

        其中,\tau控制变化到静息电位的速率并且与速率成反比。 初始时t=0时刻,v=a-c,其中c取恰当的值就可以使a-c等于脉冲神经元初始时刻电压,当t为无穷时,v=a,该方程控制了电压v随时间指数稳定到平衡电压a。

        上面是连续电压v(t)的变化方程,然而计算机只能模拟离散过程,取离散时间间隔为dt:

        故微分方程的离散形式为:

        当某个时刻神经元接收到一个脉冲输入时,要累积该脉冲到电压中,最简单的方式是让当前的电压加上某个值,通常这个值跟连接该输入脉冲的突触权重有关,电压更新过程为:

v=v+w

        神经元内部有一个发放阈值v_t,当神经元内部电压大于发放阈值时,神经元会发送一个电压,并回到静息电位v_r

前向传播

我们来研究这个前向传播的案例,牢记我们的离散公式,并且x是输入

         

v(0)=0

v(t1)=\beta*(v(0)-a)+a+x=\beta*v(0)+x=0.99*0+0.1=0.1

v(t2)=v(t1+dt)=\beta*v(t1)+x=0.99*0.1+0.5=0.599

v(t3)=v(t2+dt)=\beta*v(t2)+x=0.99*0.599+0.6=1.19301

此时神经元释放一次脉冲,释放后回到静息电压,v(t3)=a=0

2.2 第二种LIF模型

        

        在有些文章中我们可能看到这样的LIF公式,与第一种相比,这里将电压v换成了u静息电压a换成了u_{r1} ,u_{r2}是重置电位。但是注意,在第一种中我们没有将外部输入加进公式,我们是先推导出LIF公式,然后将外部输入加进来,让外部输入也遵从LIF的衰减规则。简单的说就是我们也是通过LIF模型来模拟每个时刻的输入是如何随时间变化的。

        而在第二种模型中,我们可以看到多了

        

        wj是第j个神经元的权重,S_j^{T_w}是神经元j发射脉冲的时刻的集合,t^k_j \in S_j^{T_w} 意思是找出所有发射脉冲的时刻,K(·)是代表延时效应的核函数,简单的说,就是在第二种LIF模型中使用核函数来模拟每个时刻的输入随时间的变化,而不是通过LIF模型。

        将输入看做常数,求解这个一阶线性非齐次微分方程的结果是

3.SNN的三种学习方法

3.1 ANN转SNN

        最简单的方法是把训练好的ANN换成SNN

        1.训练ANN:首先,我们使用常规的反向传播算法训练一个ANN
        2.网络结构的调整:为了使ANN能够转换为SNN,我们需要对网络结构进行一些调整。例如,我们可能需要去除偏置项,使用dropout,以及将池化层改为平均池化
        3.权重归一化:在将ANN转换为SNN之前,我们需要对权重进行归一化。这是因为SNN中的神经元只能发出脉冲,而不能像ANN中的神经元那样输出连续值。因此,我们需要将权重归一化,以便在SNN中可以通过脉冲的频率来表示权重的大小。
        4.阈值的调整:在SNN中,神经元的阈值决定了神经元何时发出脉冲。因此,我们需要根据ANN中的权重来调整SNN中的阈值。
        5.负值的处理:由于SNN中的神经元只能发出正的脉冲,因此我们需要找到一种方法来处理ANN中的负值。一种可能的方法是使用抑制性神经元,建立一个双脉冲发放机制的网络。
        6.转换为SNN:最后,我们将训练好的ANN转换为SNN。这一步通常包括将ANN中的激活函数替换为脉冲函数,以及将ANN中的权重和阈值映射到SNN中。

3.2 STDP

        STDP,全称为脉冲时序依赖可塑性(Spike-Timing-Dependent Plasticity),是一种调整大脑中神经连结强度的生理过程。具体来说,是根据一个特定神经元的动作电位输入与输出的相对时间,去调整连接的强度
        在脉冲时序依赖可塑性(STDP)中,如果神经元的某个输入信号总是发生在整个神经元输出信号前的瞬间,该输入信号会变得更强效。而如果某个输入信号总是发生在神经元输出信号后的瞬间,该输入信号则会变得更弱效,所以得名"脉冲冲时序依赖可塑性"。
        这种可塑性被认为是学习、记忆、实时计算等功能的核心的神经基础。例如在学习同一知识点时,第二次学习比第一次更轻松,因为这个知识点对应的突触的连接强度增强,所谓“熟能生巧“也是这个道理。
        STDP是由Henry Markram提出的,它根据神经元学习的先后顺序,调整神经元之间连接的强弱。这种机制部分解释了神经系统中的活性依赖发育,具体来讲如长期增强作用(LTP)和长期抑制作用(LTD)。

        省流的说,就是

        假如突触前神经元是j,突触后神经元是i,兴奋由j传到i。

        如果j在i之前兴奋,就说明是j的兴奋导致了i的兴奋,那么就增加他们之间的权重。

        如果i在j之前兴奋,就说明i的兴奋和j没多大关系,就减小他们之间的权重。

        这个很类似于我们人类的学习方法,就是用进废退,用的多了就会增强,长时间不用就会遗忘。

        那么如何调整权重呢?增加权重,要加多少。减少权重,又要减多少呢?如果建一个表,存储每个神经元产生兴奋的话是不现实的,因为人体内的神经元不可能记住之前的所有尖峰时间,同时这样也很占用内存,效率低下。

        事实证明,有一种更有效、生理上更合理的方法可以达到同样的效果,该方法可以在突触前脉冲发放或突触后脉冲发放就立刻更新权重。

    

        这里我们也用LIF模型来对权重进行修改,这样可以将时间的因素也加进去,假如突触后神经元没有兴奋,那么100ms前发生的突触前兴奋对权重的影响肯定要比10ms前发生的突触前兴奋对权重的影响更大。

        我们定义a_{pre}a_{post},分别对应上图中的黑色曲线和橙色曲线,他们的变化满足LIF模型。

        我们再定义两个变量A_{pre }A_{post},分别是非常小的正常数和负常数,并且是不会改变的。

        如果突触前神经元兴奋,那么就a_{pre}=a_{pre}+A_{pre},同时w=w+a_{post}

        如果突触后神经元兴奋,那么就a_{post}=a_{post}+A_{post},同时w=w+a_{pre}

        要注意,这里的a_{pre},a_{post}与神经元的膜电位无关,a_{pre},a_{post}只用于调整权重,他们可以看做一个特殊的LIF模型,这个LIF模型中,静息电位是0。

        同时a_{pre}要么就是加A_{pre}(A_{pre}>0),要么就是在向静息电位0恢复,所以a_{pre}一定大于0。同理a_{post}一定小于零。

        所以当突触前神经元兴奋时,w=w+a_{post},只要a_{post}还没有衰减到0,就会使权重减小。同理当突触后神经元兴奋也一样。

        这样,我们就能对权重进行合理的修改,并且这还是一个无监督的学习方法,不需要损失函数和反向传播。

3.3 STBP

        基于前向模型是LIF模型

LIF的迭代版本表示如下,

        这里o代表脉冲输出

        t代表time step

        n代表层

        e^{-\frac{d t}{\tau}}是膜电位的延迟效应,也就是我们第一种LIF模型中的\beta

        f(\cdot )是一个阶跃函数,也就是膜电位是否输出

        这里为了方便理解,我们将静息电位u_{r1}和重置电位u_{r2}设为0,积分时间窗口T_w设为1,代表延时效应的核函数设为K(\cdot )=1因为每个时间步长只考虑一个单位时间内的输入脉冲,这样输入脉冲的影响可以直接加在膜电位上,而不需要权重进行缩放。

        那么我们来理解一下这个公式,首先

        这一项的意思是这一层的神经元如果在上一个时间步发出了脉冲(=0),那么就将膜电位变为重置电位(0)。如果没有发出脉冲(=1),则将上一个时间步的膜电位根据LIF模型缩小。

        现在已经算出了历史遗留电位,再让膜电位累积上上一层神经元的输出(),就得到新时刻的膜电位。

        于是给定迭代 LIF 模型,梯度沿着时间和空间维度传播,LIF 模型的迭代版本的参数更新可以按照如下方式进行:

        由于从膜电位u到输出o是一个阶跃函数(),它是不可导的,为了解决这个问题,可以用辅助函数计算输出o到膜电位u的导数值。比如下面这个函数:

        式中,参数 a 决定了梯度宽度。

        L 是损失函数,比如可以是 MSE Loss:

        这样SNN网络就可以进行反向传播了。

4. 编码及数据集任务

4.1 泊松脉冲编码

        由于脉冲神经网络接收的是脉冲信号,所以需要对初始输入数据进行脉冲编码,其中输入数据脉冲编码一个比较常用的方式是泊松脉冲编码。

        泊松脉冲编码首先需要设置脉冲速率ρ0 ,ρ0 可以是常数,也可以是时间函数。编码过程可描述为:取时间间隔为Δt ,则每个时间间隔脉冲发放的概率为pF=ρ0*Δt电脑在每个时间间隔生成一个(0,1)范围内均匀分布的随机数随机数小于ρ0*Δt 则在该时间间隔内产生一个脉冲。

        泊松脉冲编码可以这样应用:把输入时间序列值看成脉冲速率ρ0 ,如t1时刻输入为a, t2时刻输入为b,t3时刻输入为c,若t1时刻0-1随机数大于或等于a*Δt ,则t1时刻神经元不发放脉冲,t2时刻0-1随机数小于b*Δt ,则t2时刻神经元发放脉冲,t3时刻0-1随机数大于或等于c*Δt ,则t3时刻神经元不发放脉冲,所以a,b,c编码后的脉冲序列为无脉冲,脉冲,无脉冲。

4.2 脉冲神经网络数据集

        像 MNIST,CIFAR10 这类基于帧的静态图像,广泛应用于 ANN 中,我们称之为 ANN-oriented dataset,这类数据集的维度一般是[H,W,C]

        

        

        图中的后2行 N-MNIST 和 DVS-CIFAR10 叫做 SNN-oriented dataset。这里的 DVS 叫做 dynamic vision sensor(动态视觉传感器)代表使用了动态视觉传感器扫描每张 images 得到的 spike 数据。它除了具有与 ANN-oriented dataset 相似的空间信息外,还包含更多的动态时间信息,而且尖峰事件与神经网络中的信号格式自然兼容,因此我们称之为 SNN-oriented dataset。

        DVS 产生两个通道的脉冲事件,命名为 On 和Off 事件 (分别如图2中红色和蓝色所示)。因此,DVS 将每个图像转换为[row,column,2,T]  的脉冲模式。

        一般来说,ANN 接收帧为基础的图像,而 SNN 接收事件驱动的脉冲信号。因此,有时需要将相同的数据转换为另一个域中的不同形式来处理。本文以视觉识别任务为例,主要介绍了四种信号转换方法,如下图所示。

 

Image to spike pattern

        由图片信号转化为脉冲信号的方法比较直观。

        一种方法是:如图 (a) 所示。 在每一个时间步骤,采样的原始像素强度 (pixel intensity) 到一个二进制值 (通常归一化为[0,1]),其中的这个强度值就等于发射一个脉冲的概率。这个采样遵循一个特定的概率分布,例如伯努利分布或泊松分布

        例如,图(a) 中的 i1 神经元,对应于标准化强度为 0.8 的 intensity,产生一个二进制尖峰序列,跟随着伯努利分布 B ( 0.8 , T )。这里 T 是取样的时间窗口。

        再例如,图(a) 中的 i2 神经元,对应于标准化强度为 0.1 的 intensity,产生一个二进制尖峰序列,跟随着伯努利分布 B ( 0.1 , T )  。这里 T 是取样的时间窗口。

        这种方法在取样的时间窗口 T  比较短时有一个较大的精度损失。

        另一种方法是: 如图 (b) 所示。使用一个编码器来产生全局的脉冲信号。这个编码器的每个神经元接受图片多个像素的强度值intensity 信号作为输入, 而产生脉冲作为输出。 虽然编码层是 ANN-SNN 混合层,而不是像网络中的其他层那样的完整 SNN 层,但它的权重是可训练的,因为我们的训练方法也是 BP 兼容的。由于神经元的数量可以灵活定制,参数也可以调整,因此它可以适应整体最佳化问题,从而获得更高的精确度。

Spike pattern to image

        由脉冲信号转化为图片信号的输出主要有2种:

        binary image with 0/1 pixels。
        intensity image with real-valued pixels。
        如图(c) 所示,代表把脉冲pattern转化为二值图片。2D 脉冲 pattern 可以直接看做一个二值图像 (每个脉冲 Event 代表像素强度为1,否则像素强度为0)。 为了转换为强度图像 (Intensity image),需要在一个时间窗 T 内随时间对脉冲时间的累积。

        如图(d)所示,代表把脉冲pattern转化为强度图片。描述了100毫秒内脉冲事件的累积过程,累积脉冲数将被归一化为具有适当强度值的像素。由于 DVS 的相对运动和固有噪声,使得图像常常模糊,边缘特征模糊。这种转换只允许一个强大的假设,每个脉冲位置不应该移动,否则将严重损害生成的图像质量。

5. 总结

        文章写到这里就结束了,希望可以一直坚持下去。在此最要感谢的就是两位作者大佬,他们的文章为我学习SNN之路扫清了道路。同时文章仅供学习。

        首先我们在第一章中简短的介绍了SNN网络的特点,然后在第二章中直入正题,分别介绍了两种LIF数学模型,这两种模型又分别对应我们后面说的STDP和STBP学习方法,并且在第一个LIF离散模型中我们简要的说了一个前向传播的例子,要牢记第一个LIF模型的离散公式。

        第二个LIF模型的数学公式其实与第一个相差无几,要主要他使用一个代表延时效应的核函数来模拟每个时刻的输入随时间的变化。

        第三章是本文的重中之重,我们详细讲了SNN网络的三种学习方法,这也是当初我最困惑的地方,我在两位作者的肩膀上做了一些梳理。5.1的ANN转SNN就没什么可细说的了,然后是STDP和STBP方法,其中我觉得STDP是精髓中的精髓,因为SNN相较于ANN最大的突破就是它更受生物神经系统启发。STDP我做了详细的描述,虽然文字不多,但我相信应该通俗易懂。而STBP应该更好理解一些,因为他与ANN的BP算法没什么区别,需要注意的就是他用了一个辅助函数来计算输出o到膜电位u的导数值。

        说完了几个大头,第四章的内容就显得非常容易理解了,包括泊松编码ANN-oriented dataset,SNN-oriented dataset。

        本篇作为因为一些个人原因0科研一年后的第一篇文章,祝我日后在SNN的研究道路上顺利!谢谢大家🙏!

        

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

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

相关文章

JavaEE、SSM基础框架、JavaWeb、MVC(认识)

目录 一、引言 (0)简要介绍 (1)主要涉及的学习内容 (2)学习的必要性 (3)适用学习的人群(最好有这个部分的知识基础) (4)这个基础…

FFmpeg中内存分配和释放相关的源码:av_malloc函数、av_mallocz函数、av_free函数和av_freep函数分析

一、av_malloc函数分析 (一)av_malloc函数的声明 av_malloc函数的声明放在在FFmpeg源码(本文演示用的FFmpeg源码版本为5.0.3,该ffmpeg在CentOS 7.5上通过10.2.1版本的gcc编译)的头文件libavutil/mem.h中:…

Science | 稀土开采威胁马来西亚的生物多样性

马来西亚是一个生物多样性热点地区,拥有超过17万种物种,其中1600多种处于濒临灭绝的风险。马来西亚的热带雨林蕴藏了大部分的生物多样性,并为全球提供重要的生态系统效益,同时为土著社区带来经济和文化价值。同时马来西亚具有可观…

Python批量保存Excel文件中的图表为图片

Excel工作簿作为一款功能强大的数据处理与分析工具,被广泛应用于各种领域,不仅能够方便地组织和计算数据,还支持用户创建丰富多彩的图表,直观展示数据背后的洞察与趋势。然而,在报告编制、网页内容制作或分享数据分析成…

30.保存游戏配置到文件

上一个内容:29.添加录入注入信息界面 以 29.添加录入注入信息界面 它的代码为基础进行修改 效果图: 首先在我们辅助程序所在目录下创建一个ini文件 文件内容 然后首先编写一个获取辅助程序路径的代码 TCHAR FileModule[0x100]{};GetModuleFileName(NUL…

Apache Paimon系列之:Append Table和Append Queue

Apache Paimon系列之:Append Table和Append Queue 一、Append Table二、Data Distribution三、自动小文件合并四、Append Queue五、压缩六、Streaming Source七、Watermark Definition八、Bounded Stream 一、Append Table 如果表没有定义主键,则默认为…

离散数学复习

1.关系的介绍和性质 (1)序偶和笛卡尔积 两个元素按照一定的顺序组成的二元组就是序偶,使用尖括号进行表示,尖括号里面的元素一般都是有顺序的; 笛卡尔积就是有两个集合,从第一个集合里面选择一个元素&am…

github国内加速访问有效方法

这里只介绍实测最有效的一种方法,修改主机的Hosts文件,如果访问github网站慢或者根本无法访问的时候可以采用下面方法进行解决。 1、搜索一个IP查询网站 首先百度搜索选择一个IP查询的网站,这里我用下面这个网站(如果该网站失效…

相约北京“信通院数据智能大会”

推动企业数智化转型发展,凝聚产业共识,引领行业发展方向,摩斯将参与信通院首届“数据智能大会”(6月19-20日,北京)。 本次大会设置多个主题论坛,将发布多项研究成果,分享产业最新实…

如何通过改善团队合作来提高招聘效率

当招聘顶尖人才时,时间就是一切。招聘效率取决于团队快速响应和完成任务的能力,但招聘经理和面试官并不总是最关心重要的招聘任务。更重要的是,求职者的经历取决于准备好的面试官是否准时出现。有时候最好的候选人会接受另一份工作&#xff0…

Spring Cloud Alibaba Nacos持久化配置

所谓的持久化就是将Nacos配置持久化存储到数据库里面,在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力。 ① 找到并执行sql脚本 这里路径为:n…

时间复杂度 空间复杂度分析

时间复杂度就是需要执行多少次&#xff0c;空间复杂度就是对象被创建了多少次。 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(2^n) < O(n!) < O(n^n) 这里写目录标题 时间复杂度O(1)O(logn)、O(nlogn)O(mn)、O(m*n)最好、最坏情况时间复杂度平均情况…

32、循环语句while+until

一、循环控制语句 双层循环和循环语句的使用&#xff0c;while和until的语法使用 1、进入调试模式 在脚本里第一行写入set -x bash -x 脚本 1.1、echo 打印 continue&#xff1a;跳出当次&#xff0c;后续的条件成立&#xff0c;继续执行。 break&#xff1a;一旦break&am…

实时数仓Hologres V2.2发布,Serverless Computing降本20%

Highlight 新发布Serverless Computing&#xff0c;提升大任务稳定性&#xff0c;同时可降低20%计算成本 引擎性能优化&#xff0c;TPC-H 1TB测试相对V1.X 提升100% 实时湖仓加速架构升级&#xff0c;支持Paimon&#xff0c;直读ORC、Parquet数据性能提升5倍以上 新增实例监…

LLM中表格处理与多模态表格理解

文档处理中不可避免的遇到表格&#xff0c;关于表格的处理问题&#xff0c;整理如下&#xff0c;供各位参考。 问题描述 RAG中&#xff0c;对上传文档完成版式处理后进行切片&#xff0c;切片前如果识别文档元素是表格&#xff0c;那么则需要对表格进行处理。一般而言&#x…

JupyterLab使用指南(二):JupyterLab基础

第2章 JupyterLab基础 2.1 JupyterLab界面介绍 JupyterLab的用户界面非常直观和灵活。它包括文件浏览器、工作区、多标签页、命令面板和侧边栏等功能。以下是各个部分的详细介绍&#xff1a; 2.1.1 文件浏览器 文件浏览器位于界面左侧&#xff0c;用于导航和管理文件。你可…

计算机网络:网络层 - 虚拟专用网 VPN 网络地址转换 NAT

计算机网络&#xff1a;网络层 - 虚拟专用网 VPN & 网络地址转换 NAT 专用地址与全球地址虚拟专用网 VPN隧道技术 网络地址转换 NAT网络地址与端口号转换 NAPT 专用地址与全球地址 考虑到 IP 地址的紧缺&#xff0c;以及某些主机只需要和本机构内部的其他主机进行通信&…

cbsd创建ubuntu jail 时下载系统慢的问题解决

下载时速度慢 使用cbsd创建ubuntu jail的时候 cbsd jconstruct-tui 提示&#xff1a; no base dir in: /usr/jails/basejail/base_amd64_amd64_jammy Select base sources:0 .. CANCELa .. build b .. extract c .. pkg d .. repo 选了pkg没找到 fetch: https://pkg.convec…

【减法网络】Minusformer:通过逐步学习残差来改进时间序列预测

摘要 本文发现泛在时间序列(TS)预测模型容易出现严重的过拟合。为了解决这个问题&#xff0c;我们采用了一种去冗余的方法来逐步恢复TS的真实值。具体来说&#xff0c;我们引入了一种双流和减法机制&#xff0c;这是一种深度Boosting集成学习方法。通过将信息聚合机制从加法转…

【第16章】Vue实战篇之跨域解决

文章目录 前言一、浏览器跨域二、配置代理1.公共请求2.代理配置 总结 前言 前后端项目分离衍生出浏览器跨域问题&#xff0c;开发之前我们通过配置代理解决这个问题。 一、浏览器跨域 浏览器的跨域问题主要是由于浏览器的同源策略导致的。同源策略是浏览器的一个安全功能&…