发明名称 脉冲神经网络模式探测装置和模式探测方法
摘要 一种脉冲神经网络模式探测装置和模式探测方法,该神经网络模式探测装置由参数处理模块、输入判断模块、权重衰减模块、权重增强模块、输出神经元膜电位计算模块和脉冲处理模块构成。本发明可以探测淹没在背景噪声中模式的出现时刻,其探测正确率高于BP网络,基本接近于100%,而且特别适合于大数据量的输入,识别速度小于0.7秒,相对其他神经网络来说识别速度有很大提高,所述的脉冲神经网络模式探测装置训练方式简单,因而非常易于软件实现,最重要的是可以实现神经网络的线上学。
申请公布号 CN102831476B 申请公布日期 2015.02.18
申请号 CN201210301374.8 申请日期 2012.08.22
申请人 中国科学院上海光学精密机械研究所 发明人 王昊;阮昊;夏知拓
分类号 G06N3/02(2006.01)I 主分类号 G06N3/02(2006.01)I
代理机构 上海新天专利代理有限公司 31213 代理人 张泽纯
主权项 一种脉冲神经网络模式探测装置,该装置完成的工作是找到淹没在背景噪声中模式出现的时刻,其特征在于该探测装置由参数处理模块(1)、输入判断模块(2)、权重衰减模块(3)、权重增强模块(4)、输出神经元膜电位计算模块(5)和脉冲处理模块(6)构成;上述模块的连接关系如下:脉冲输入信号从所述的输入判断模块(2)的输入端输入,该输入判断模块(2)的输出端分别与所述的权重衰减模块(3)的第一输入端、所述的权重增强模块(4)的第一输入端、所述的输出神经元膜电位计算模块(5)的第一输入端和所述的脉冲处理模块(6)的第一输入端相连;所述的参数处理模块(1)的第一输出端与所述的权重衰减模块(3)的第二输入端相连,所述的参数处理模块(1)的第二输出端与所述的权重增强模块(4)的第三输入端相连,所述的参数处理模块(1)的第三输出端与所述的输出神经元膜电位计算模块(5)的第三输入端相连,所述的参数处理模块(1)的第四输出端与所述的脉冲处理模块(6)的第四输入端相连,该参数处理模块(1)的输入端与所述的脉冲处理模块(6)的第一输出端相连;所述的权重衰减模块(3)的第一输出端与所述的脉冲处理模块(6)的第五输入端相连,该权重衰减模块(3)的第二输出端与所述的权重增强模块(4)的第二输入端相连;所述的权重增强模块(4)的第一输出端与所述的脉冲处理模块(6)的第二输入端相连,该权重增强模块(4)的第二输出端与所述的输出神经元膜电位计算模块(5)的第二输入端相连;所述的输出神经元膜电位计算模块(5)的输出端与所述的脉冲处理模块(6)的第三输入端相连;所述的脉冲处理模块(6)的第二输出端是本脉冲神经网络模式探测装置的输出端;1)所述的参数处理模块(1)对所述的脉冲神经网络模式探测装置的参数进行初始化:权重最小值w<sub>min</sub>,初始化为零;权重最大值w<sub>max</sub>,初始化为1;输出神经元上一次脉冲时刻<img file="FDA0000561161910000011.GIF" wi="71" he="80" />单位毫秒,初始化为零;预测脉冲时刻<img file="FDA0000561161910000012.GIF" wi="74" he="73" />单位毫秒,初始化为零;时间分辨率r,初始化为1毫秒;细胞膜时间常量τ<sub>m</sub>,初始化为10毫秒;突触时间常量τ<sub>s</sub>,初始化为2.5毫秒;输出神经元膜电位阈值h,初始化为500;间歇时间q,初始化为3毫秒;权重正向增益系数a<sup>+</sup>,初始化为0.0312;权重负向衰减系数a<sup>‑</sup>,初始化为0.0255;正向时间常数τ<sup>+</sup>,初始化为16.8毫秒;负向时间常数τ<sup>‑</sup>,初始化为33.7毫秒;所述的参数处理模块(1)将所述的权重最大值w<sub>max</sub>、所述的输出神经元上一次脉冲时刻<img file="FDA0000561161910000021.GIF" wi="74" he="78" />所述的权重负向衰减系数a<sup>‑</sup>和所述的负向时间常数τ<sup>‑</sup>输出给所述的权重衰减模块(3);将所述的输出神经元上一次脉冲时刻<img file="FDA0000561161910000022.GIF" wi="71" he="80" />所述的预测脉冲时刻<img file="FDA0000561161910000023.GIF" wi="79" he="73" />所述的权重最小值w<sub>min</sub>、所述的权重正向增益系数a<sup>+</sup>和正向时间常数τ<sup>+</sup>输出给所述的权重增强模块(4);将所述的细胞膜时间常量τ<sub>m</sub>、所述的突触时间常量τ<sub>s</sub>、所述的输出神经元上一次脉冲时刻<img file="FDA0000561161910000025.GIF" wi="44" he="67" />和所述的输出神经元膜电位阈值h输出给所述的输出神经元膜电位计算模块(5);将时间分辨率r和所述的输出神经元膜电位阈值h输出给所述的脉冲处理模块(6);2)所述的输入判断模块(2)令时刻t=1,即单位是毫秒,令i=1;3)当第i个信号源在时刻t发出了信号,所述的输入判断模块(2)将该信号源的编号i和时刻t分别传递给所述的权重衰减模块(3)、权重增强模块(4)、输出神经元膜电位计算模块(5)和脉冲处理模块(6),之后进入步骤4);当第i个信号源在时刻t没有发出信号,则转到步骤16);4)当所述的权重衰减模块(3)接收到来自所述的输入判断模块(2)输出的信号源的编号i和时刻t后,所述的权重衰减模块(3)再接收来自所述的参数处理模块(1)的参数:所述的负向时间常数τ<sup>‑</sup>、所述的权重负向衰减系数a<sup>‑</sup>、所述的权重最大值w<sub>max</sub>和所述的输出神经元上一次脉冲时刻<img file="FDA0000561161910000026.GIF" wi="65" he="67" />令所述的衰减权重矩阵w<sub>D</sub>的每一个元素等于未更新权重矩阵w<sup>o</sup>的对应元素;5)所述的权重衰减模块(3)利用下列公式&lt;1&gt;和公式&lt;2&gt;计算并更新所述的衰减权重矩阵w<sub>D</sub>的第i个元素W<sub>Di</sub>:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>w</mi><mi>Di</mi></msub><mo>=</mo><msub><mi>w</mi><mi>Di</mi></msub><mo>-</mo><msup><mi>a</mi><mo>-</mo></msup><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mrow><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>o</mi><mi>l</mi></msubsup></mrow><msup><mi>&tau;</mi><mo>-</mo></msup></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mo>&lt;</mo><mn>1</mn><mo>></mo></mrow>]]></math><img file="FDA0000561161910000024.GIF" wi="1421" he="165" /></maths>w<sub>Di</sub>=min[w<sub>Di</sub>,w<sub>max</sub>]      &lt;2&gt;在更新完所述的衰减权重矩阵w<sub>D</sub>的第i个元素w<sub>Di</sub>后,所述的权重衰减模块(3)将所述的衰减权重矩阵w<sub>D</sub>输出给所述的权重增强模块(4),同时将所述的未更新权重矩阵w<sup>o</sup>输出给所述的脉冲处理模块(6);6)当所述的权重增强模块(4)接收来自所述的输入判断模块(2)的输出的信号源的编号i和时刻t,来自所述的权重衰减模块(3)输出的衰减权重矩阵w<sub>D</sub>,来自所述的参数处理模块(1)中的参数:所述的权重正向增益系数a<sup>+</sup>、正向时间常数τ<sup>+</sup>、权重最小值w<sub>min</sub>、输出神经元上一次脉冲时刻<img file="FDA0000561161910000037.GIF" wi="45" he="67" />和所述的预测脉冲时刻<img file="FDA0000561161910000036.GIF" wi="68" he="60" />之后,判断条件<img file="FDA0000561161910000038.GIF" wi="231" he="59" />是否成立,如果条件成立,则转到步骤7);如果条件不成立则转到步骤9);7)所述的权重增强模块(4)利用下列公式&lt;3&gt;和公式&lt;4&gt;计算并更新所述的增强权重矩阵w<sub>Q</sub>的第i个元素w<sub>Qi</sub>:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>w</mi><mi>Qi</mi></msub><mo>=</mo><msub><mi>w</mi><mi>Di</mi></msub><mo>+</mo><msup><mi>a</mi><mo>+</mo></msup><mi>exp</mi><mrow><mo>(</mo><mfrac><mrow><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>o</mi><mi>l</mi></msubsup></mrow><msup><mi>&tau;</mi><mo>+</mo></msup></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mo>&lt;</mo><mn>3</mn><mo>></mo></mrow>]]></math><img file="FDA0000561161910000031.GIF" wi="1510" he="165" /></maths>w<sub>Qi</sub>=max[w<sub>Qi</sub>,w<sub>min</sub>]       &lt;4&gt;8)所述的权重增强模块(4)令<img file="FDA0000561161910000032.GIF" wi="178" he="80" />之后所述的权重增强模块(4)将所述的增强权重矩阵w<sub>Q</sub>分别输出给所述的输出神经元膜电位计算模块(5)和所述的脉冲处理模块(6);9)当所述的输出神经元膜电位计算模块(5)接收到来自所述的输入判断模块(2)的输出的坐标(t,i)之后,再接收来自所述的参数处理模块(1)的参数:所述的输出神经元上一次脉冲时刻<img file="FDA0000561161910000039.GIF" wi="70" he="67" />所述的细胞膜时间常量τ<sub>m</sub>、所述的突触时间常量τ<sub>s</sub>和所述的输出神经元膜电位阈值h,接收来自所述的权重增强模块(4)的所述的增强权重矩阵w<sub>Q</sub>;之后,所述的输出神经元膜电位计算模块(5)利用LIF神经元模型的计算公式,即下列公式&lt;5&gt;、公式&lt;6&gt;和公式&lt;7&gt;计算所述的输出神经元膜电位p;<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>p</mi><mo>=</mo><mi>&alpha;</mi><mrow><mo>(</mo><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>l</mi><mi>o</mi></msubsup><mo>)</mo></mrow><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>t</mi><mo>&lt;</mo><msubsup><mi>t</mi><mi>o</mi><mi>l</mi></msubsup></mrow></munder><msub><mi>w</mi><mi>Qi</mi></msub><mi>&beta;</mi><mrow><mo>(</mo><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>l</mi><mi>o</mi></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mo>&lt;</mo><mn>5</mn><mo>></mo></mrow>]]></math><img file="FDA0000561161910000033.GIF" wi="1500" he="144" /></maths>其中:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>&alpha;</mi><mrow><mo>(</mo><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>l</mi><mi>o</mi></msubsup><mo>)</mo></mrow><mo>=</mo><mi>h</mi><mrow><mo>(</mo><mn>4</mn><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mrow><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>o</mi><mi>l</mi></msubsup></mrow><msub><mi>&tau;</mi><mi>s</mi></msub></mfrac><mo>)</mo></mrow><mo>-</mo><mn>2</mn><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mrow><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>o</mi><mi>l</mi></msubsup></mrow><msub><mi>&tau;</mi><mi>m</mi></msub></mfrac><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mo>&lt;</mo><mn>6</mn><mo>></mo></mrow>]]></math><img file="FDA0000561161910000034.GIF" wi="1499" he="169" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>&beta;</mi><mrow><mo>(</mo><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>l</mi><mi>o</mi></msubsup><mo>)</mo></mrow><mo>=</mo><mrow><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mrow><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>o</mi><mi>l</mi></msubsup></mrow><msub><mi>&tau;</mi><mi>m</mi></msub></mfrac><mo>)</mo></mrow><mo>-</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mrow><mi>t</mi><mo>-</mo><msubsup><mi>t</mi><mi>o</mi><mi>l</mi></msubsup></mrow><msub><mi>&tau;</mi><mi>s</mi></msub></mfrac><mo>)</mo></mrow></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mo>&lt;</mo><mn>7</mn><mo>></mo></mrow>]]></math><img file="FDA0000561161910000035.GIF" wi="1513" he="171" /></maths>所述的输出神经元膜电位计算模块(5)将所述的输出神经元膜电位p输出给所述脉冲处理模块(6);10)当所述的脉冲处理模块(6)接收到来自所述的输入判断模块(2)的输出的时刻t和信号源编号i之后,再接收来自所述的输出神经元膜电位计算模块(5)的输出神经元的膜电位p、来自所述的权重衰减模块(3)输出的所述的未更新权重矩阵w<sup>o</sup>和来自所述的权重增强模块(4)输出的所述的增强权重矩阵w<sub>Q</sub>,接收来自所述的参数处理模块(1)的参数:所述的输出神经元膜电位阈值h、所述的时间分辨率r;之后,如果条件p>h,或者<img file="FDA0000561161910000041.GIF" wi="225" he="80" />满足时,转到步骤11);如果两个条件同时不满足,转到步骤12);11)所述的脉冲处理模块(6)利用下列公式&lt;8&gt;计算所述的模式时刻<img file="FDA0000561161910000042.GIF" wi="73" he="73" /><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>t</mi><mi>o</mi><mi>m</mi></msubsup><mo>=</mo><mi>t</mi><mo>-</mo><mrow><mo>(</mo><mi>p</mi><mo>-</mo><mi>h</mi><mo>)</mo></mrow><mfrac><mi>r</mi><mi>h</mi></mfrac><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mo>&lt;</mo><mn>8</mn><mo>></mo></mrow>]]></math><img file="FDA0000561161910000043.GIF" wi="1539" he="134" /></maths>12)所述的脉冲处理模块(6)利用公式&lt;9&gt;计算所述的增强权重矩阵wQ和所述的未更新权重矩阵w<sup>o</sup>之间的希尔伯特范数γ:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>&gamma;</mi><mo>=</mo><msup><mrow><mo>[</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>u</mi></munderover><mrow><mo>(</mo><msub><mi>w</mi><mi>Qi</mi></msub><mo>-</mo><msubsup><mi>w</mi><mi>i</mi><mi>o</mi></msubsup><mo>)</mo></mrow><mo>]</mo></mrow><mfrac><mn>1</mn><mn>2</mn></mfrac></msup><mo>-</mo><mo>-</mo><mo>-</mo><mo>&lt;</mo><mn>9</mn><mo>></mo></mrow>]]></math><img file="FDA0000561161910000044.GIF" wi="1590" he="175" /></maths>13)如果所述的希尔伯特范数γ满足条件γ≤0.01,转到步骤14),如果条件不满足,则转到步骤15);14)所述的脉冲处理模块(6)令所述的模式时刻<img file="FDA0000561161910000045.GIF" wi="48" he="74" />等于所述的输出时刻T<sup>out</sup>的第k+1个元素<img file="FDA0000561161910000046.GIF" wi="113" he="76" />并将<img file="FDA0000561161910000047.GIF" wi="86" he="76" />作为所述的脉冲神经网络模式探测装置的输出;15)所述的脉冲处理模块(6)将所述的模式时刻<img file="FDA0000561161910000048.GIF" wi="50" he="72" />作为输出传递给所述的参数处理模块(1),之后所述的参数处理模块(1)令<img file="FDA0000561161910000049.GIF" wi="173" he="73" />16)所述的输入判断模块(2)令所述的信号源编号i=i+1;17)如果第i个信号源在时刻t发出了信号,则转到步骤3);如果没有发出信号则转到步骤18);18)所述的输入判断模块(2)判断所述的信号源编号i是否大于所述的输入信号源的总个数u,如果i小于或等于u,则转到步骤16);如果i大于u则进入步骤19);19)所述的输入判断模块(2)令所述时刻t=t+1,令所述的信号源编号i等于1;20)所述的输入判断模块(2)判断第i个信号源是否在时刻t发出了信号,如果发出了信号,则转到步骤4);如果没有发出信号则转到步骤21);21)所述的输入判断模块(2)判断所述时刻t是否等于输入的结束时刻,如果t不等于输入的结束时刻,则转到步骤16);如果t等于输入的结束时刻,则所述的脉冲神经网络模式探测装置的工作结束。
地址 201800 上海市嘉定区800-211邮政信箱