Fast-Classifying, High-Accuracy Spiking Deep Networks Through Weight and Threshold Balancing

本文介绍如何将传统的的前馈网络训练所得的链接权至转化到脉冲神经网络。

  • Spiking Network Conversion 脉冲神经网络转换
  1. ReLU 可以看做是上一层输入量(Membrane)与IF模型产生的脉冲速率(Firing Rate)的线性关系。
  2. 对于Classification来说,Output中Activation数目最多的即表示最可能的类别,而不是需要精确地知道脉冲数,进而映射到某个量。
  3. Without a bias to provide an external reference value, the relative scale of the neuron weights to each other and to the threshold of the neuron are the only parameters that matter.
  • 一旦网络中的ReLU替换为IF Neuron,分类精度会有一定损失,损失产生原因如下:
  1. 每个Unit从上层收到的input不足使membrane高于threshold,这意味着firing rate过低
  2. 每个Unit从上层收到的input过多,导致每个步长激发了多余一个spike。这种情况原因可能是存在太多输入的input spikes,也可能使连接权值高于neuron的threshold
  3. 由于脉冲的概率性,有可能导致一组脉冲高于或低于去activate一个特征。
  • Experiment Setup
  1. Dataset: MNIST。训练集由60000个手写0-9阿拉伯数字标记的图片(数据来源是信件上的邮政编码,图片像素28*28)。训练集10000个数据。
  2. Architecture
  3. 脉冲输入Spike Input:

首先,讲MNIST归一化处理weight[0, 1]。然后根据

        % Create poisson distributed spikes from the input images
        % (for all images in parallel)
        rescale_fac = 1/(dt*opts.max_rate); % firing rate in window time 200
        spike_snapshot = rand(size(test_x)) * rescale_fac;
        inp_image = spike_snapshot <= test_x;

  

posted @ 2017-05-03 16:22  洗个痛快澡吧  阅读(353)  评论(0)    收藏  举报