期刊阅读笔记
文章使用忆阻器和CMOS神经元作为神经形态计算的硬件系统,进行视觉模式的识别。主要的特点就是基于忆阻器这种新元件搭建的一套神经形态的硬件系统。
神经形态计算是一套仿生的系统。模拟人脑识别图片的过程。
对于图片的识别,在上图中,是使用CMOS的图像传感器得到图片的信息,然后使用FPGA实现的信号处理单元将其转化为spike信号。spike信号通过忆阻器的网络与下一层神经元相连,下一层神经元是基于leaky I&F的CMOS电路。从而实现的图片的处理。
上面的电路可以分为三个部分:(1)CMOS图形传感器和SPU构成的图片接收器(Photoreceptor)。
单层的ANN,其中包括(2)300个忆阻器(RRAM)和(3)10个输出神经元(Out Neuron)。
part 1: Photoreceptor
这一层就是一个可以将光信号转化为spike信号的电路。
CMOS图像传感器包含480*330的像素阵列,ADC,控制电路和行列移位寄存器。单个像素点是通过光电二极管的来采集信号,然后通过ADC转换为10-b的数字编码。SPU通过将96×55邻域像素映射到二值图像中的一个像素,将CIS中480×330像素的图像重构为5×6像素的二值图像。SPU计算96×55像素数字输出的本地平均值,并将其与整个像素的全局平均值进行比较。如果局部平均值大于全局平均值,则将二值图像中相应的像素值设置为“1”; 否则,将其设置为“0”。当像素值为1时,SPU(同时也是一个传感器神经元)将产生spike,而当像素值为0时不会产生spike。
Part 2 RRAM
对于这样一个仿生系统来说,前一个神经元其实就是SPU(产生spike信号),前后神经元连接的突触是用RRAM来实现的。
RRAM其实就是可以记忆其阻值的非挥发性存储器件。文中使用的Pt/TiNx/PCMO/Pt器件,其阈值电压设置为1.2V,当电压超过该数值时,可以改变其阻值。对于不同的阻值,可以加上电压的次数来改变,当电压撤走时,忆阻器的阻值可以保持。如下图所示:
可以发现,横轴是加上3v或者-3v脉冲电压(大于1.2V)的脉冲次数,随着次数的增加,就可以改变其阻值,其阻值在10^6-8次之间变化。具体原理参考RRAM器件书籍。
对于突触的权重来说,对应的其实就是忆阻器的阻值。前后神经元感受的spike信号的之间差与权重之间的关系,可以STDP来描述:
注意这里是前-后的时间差,所以画在二四象限。如果忆阻器从高阻变到低阻,表示前后神经元连接更紧密了,所以权重增加。而高阻到低阻忆阻器的转变可以使用正向脉冲数量来实现。
Part 3:OutPut neuron
RRAM往下走就是输出神经元。他的实现包括积分器,比较器,开关和控制电路。
积分器具有反相输出; 因此,当电流通过忆阻器在CF上积累时,输出减小。忆阻越小,电流幅值越大,输出电压下降越快。一旦积分器的输出降低到某个阈值电压(VTH)以下,比较器的输出就会升高(逻辑“1”),当神经元触发时,控制逻辑就会识别出这一点。这也就是Integrate and Fire的来源。
对于图片识别,需要有两个模式,训练和测试。对应这两种模式,图7的电路上会有Rf的差别。如下
在训练阶段:
神经元积分,一旦一个神经元fire,他会使其他神经元停止积分,积分器保持其当前输出。在重置阶段,fire的神经元积分器输出电压设置为3.3V,同时Input端接地,如图8(a)右上所示。其他神经元的输出向上移动0.5 V。为了转移输出电压,同时保持电荷存储在CF上,添加了一个串联电容(CS),将0.5 v直流电从CS转移到CF。
在测试阶段:神经元积分,一旦一个神经元fire,他会使其他神经元停止积分。在复位期间,所有的忆阻器与神经元断开,积分器的输出稳定在一个共模电压(2v),此时CF通过漏泄路径缓慢放电。
其学习过程如图所示:
(a)刚开始所有RRAM被设置为高阻态HRS,通过反向电压-3V来实现。积分器的输出设置为3.3V。
(b)现在一个P1的信号输入进来,由于有噪声的存在,使得RRAM不是均一,所以其中有一个I&F电路肯定有一个先fire。这个过程由于没有预测就,所以也称为无监督学习。
(c)这时中间列打开S2,其余S1关闭。之后Fire神经元设置为LRS。其余为HRS。
(d)接着Fire神经元的积分器电压恢复至3.3,其余没有fire积分器电压向上提升0.5V。然后将其作为一个初始态作为下一个训练模式。
反复bcd。
C为1-9-0数字的仿真结果图。
硬件实现。
觉得有帮助,希望帮点赞、转发~ ,本文原发于【牙牙】