(5)当a=0时,表示该神经元当前周期内不处于活跃状态,不向外发出连接。
1.2 网络的生成流程
本文中提出的网络生成算法以统计神经元的活跃程度为依据,神经元越活跃时,连接其突触连接范围越远,越不活跃连接范围越近。直到网络生成达到稳定状态时,再根据生成的网络判断是否符合我们的生成目标,如果符合,则将该网络保留;如果不符合,则舍去,通过修改C矩阵参数的值来改变网络生成方法,从而达到参数学习的目的,并最终选择出合适的网络。具体的流程如下:
(1)根据所需要生成的网络类型,调整C矩阵的初始值。选择其中若干个神经元外加刺激信号,此时相当于激活了空间中的这些神经元。
(2)根据前述神经元的运算规则,其将计算神经元的活跃信息,同时根据自生成算法向外生长连接。
(3)当一段时间T内网络中不再有新的连接生成或生成到达一定范围时,终止网络生成过程。
(4)验证网络功能,如果网络功能符合我们预期要求,则保留该网络;如果不符合要求,则调整C矩阵的值,转入第一步中从新学习。
(5)将(4)中得到的较小的网络结构上,加入更多的刺激信号,生成新的连接和网络结构,转入(1);开始新一轮的更为复杂的网络生产过程,从而实现对网络的不断复杂进化目标。
2 仿生复眼神经网络的构建方法
2.1 复眼神经网络的生物学原理
通过调研发现,果蝇为生物学三大模板生物之一,生物学家对它研究最为透彻,因此本文从果蝇的复眼神经网络作为研究切入点。果蝇每个复眼大约750个小眼,后一级有重复的柱状体构成,每个柱状体直接受一个小眼信息[10]。目前对果蝇复眼的研究主要集中在:运动的分析、色彩的辨别、模式的识别3个方面进行[11]。从结构上来看,果蝇的复眼主要由4层构成[12]:视网膜层、基质层、髓质层、小叶和小叶板层。目前的研究当中,对果蝇的运动检测机制和神经网络通路有大致的了解;对颜色的分析和模式识别的原理还有很多不清楚的地方,所以本文中提出的构建方法主要以运动检测为主。
2.2 仿生复眼神经网络的构建原理
2.2.1 网络功能整体概述
通过对果蝇视神经网络处理数据的过程进行抽象,本文提出了一种五层网络用于模拟果蝇视觉的运动处理功能。该五层网络的基本功能为:第一层为感知层,用于捕捉外部信息进入神经网络进行信号处理;第二层为信号处理层,在该层可完成对物体距离的一个分级判别;第三层为将物体的位置定位于某个神经元上的过程,该层的处理方法类似于人眼将物体捕捉到视网膜的过程,即在视神经网中进行定位;第四层为对物体运动轨迹的捕捉层,该层通过物体在第三层神经元上的运动,捕捉其每个时刻的运动方向测;第五层为速度估算层,通过接受第四级传出的脉冲,统计一段时间内接受到的脉冲数量,即可对物体的运动速度做一个判定。
2.2.2 网络每层工作原理
第一层为信号感知层,调研发现果蝇的复眼中的小眼具有一定的固定视角范围,该感知层中的一个感受器相当于一个小眼,本文设定其感受范围为120°的锥形视区。当物体离感受器平面越远时,越多的感受器感受到物体存在,越近则越少。如图2中左图所示,为二维视角下情形,通过观察图形,我们可以发现4、5、6号感受器可以感受到圆形黑点所在区域;3、4、5、6、7号感受器可感受到方形黑点的区域;同理可推广至三维情形,如图2中所示,处于黑色圆点区域时,1、2、3、4与5号感受器都可感知黑色圆点的存在,其它感受器不能;物体离平面越远则越多感受器可感受到物体。
图2 感受器对不同距离的感知情形,左图为二维,右图为三维
第二层网络对第一层网络接收到的信息进行处理;当第一层的感受器感受到物体存在时,则向后一级发出一个脉冲信号。对前一级收集到的脉冲信号进行加权求和。当第一二层间的神经元连接越多时,其可判断的距离越远,分级判断也越精细。该层网络的功能可用式(3)表示
(3)
第三层网络功能是将物体的位置信息定位到网络中的某个神经元。通过比较第二层网络中加权求和值的大小,选择出最大位置的神经元,该位置即为神经元在网络中的映射位置。由于感受器感受的范围为一个锥形区域,所以在感受平面上能感受到物体存在的区域为一个圆形区域,该层主要为选择出该区域的圆形位置。具体可用式(4)表示
(4)
第四层网络的主要功能就是监测物体运动方向;由于在第三层网络中已经将物体的位置定位于某个神经元上,所以第四层网络只需要监测相邻两个时刻物体出现在第三层网络中的位置即可。如图3所示为物体检测到其运动后的8个方向判定值1到8,分别代表如图所示的8个方位。
图3 左图为三四层连接方式,右图为当检测到物体运动到该位置时第四层神经元输出方向判断值
第五层主要是统计物体在区域中运动的时间,从而做到对速度的评估。
3 软件仿真系统的设计
软件仿真平台设计主要可分为4部分:神经元阵列设计、配置文件模块设计、界面显示系统设计和生成算法和筛选算法设计。如图4所示,其中神经元阵列为一个即可支持二维仿真,也可支持三维仿真的阵列计算器。
图4 仿真平台结构
在配置文件模块中,配置文件1用于确定每个神经元的计算方式和神经网络的运行规模,其中常用神经元的运算方式已被写入到计算模型中,我们还留用了部分接口用于自定义运算方式。配置文件2用于配置神经元之间的连接权重,其中每个神经元的连接端口和权重数量是可变化的。配置文件3用于设定神经元之间的连接关系,该配置文件有两种配置方式:①通过人为写定连接关系,从而确定网络结构,本文中果蝇复眼神经网络的构建,就是采用人工配置连接的方式生成;②如果该部分运用于自生成网络,则连接方式是通过生成算法自动筛选生成的,这两种配置方式可配合使用,即在一定基础网络之上,再开始自生成的过程。
由于本课题中对神经元间的运算仿真需要很高的并行度,所以本课题采用“CPU+GPU”的仿真环境实现。CPU作为客户端,控制神经网络配置和数据加载,GPU作为服务端,负责对数据进行运算和处理;处理结果完成后将数据传回CPU进行结果输出。将GPU中的每个线程运行一个神经元,从而做到可实现千万量级的模拟规模。
4 验证及结果分析
4.1 自生成网络仿真结果
为了得到较佳的生成效果,首先通过两位输入信号依次刺激初始网络,并通过改变C值矩阵的分布,最终得到可完全识别两位输入信息的网络结构,如图5中框架中部分。将该网络复制两份,重新加入四输入的刺激信号,最终生成完全的网络结构如图5所示。其中用椭圆圈出部分为神经网络的输出节点,对应为标记为A、B神经元,用黑色小方框圈出部分为4个输入神经元的位置。
图5 四输入自生成网络结果
验证中在输入端口加入4位数据流模拟物体从外界移入到最终移出的这一过程。具体加入输入信号依次为0001-0011-0111-1111-1110-1100-1000;其中有1的部分代表物体进入,当4位全为1时,代表物体全部移入,之后1开始移出,即表示物体转入移出视界的过程。由此得到A、B神经元的输出如图6所示。
图6 加入模拟输入后,A、B神经元的输出信息
通过图6我们可以发现,随着物体的移入,神经元的输出频度变高;随着物体的移出,神经元的输出频度逐渐降低。为了进一步证实实验结果,我们对输出的频度在100个时钟周期内进行统计发现,A、B神经元的输出频度如图7所示。
图7 统计100个始终周期中A、B神经元的活跃程度
通过图7可以进一步说明,当物体从移入到移出过程中,A、B神经元的活跃程度,都经过逐渐变强到逐渐变弱的过程。由此可以说明,通过我们的自生成算法生成的网络结构,可以生成具有对运动物体进行检测功能的网络。
4.2 仿生复眼的仿真结果
针对上面模型的描述,设计的该五层网络的连接方式如图8所示,前面4层每层8*8个神经元。第二层每个神经元连接第一层的9个感受器,它们的连接权值由近及远不断减小,验证过程中9个神经元总共分三级,第一级权值为5,第二级权值为3,第三级为1;如果需要对更远的距离做出判断,可以通过增加第一二层神经元的连接数量。每个第三层神经元连接5个第二层神经元;第四层连接9个第三层神经元;第五层与第四层全连。
图8 网络全景
通过模拟物体的运动过程,感受器层检测到物体的输出如图9所示;每组数据为一个8*8阵列,即感受器层的每个感受器对应的输出信息;总共采样了9个连续时刻的数据。
图9 感受层检测到的9组信号输出
第三层通过比较第二层周围5个神经元的大小值,选择出中心神经元最大的神经元位置,并在第三层的相应位置上的标记出该神经元,该神经元即为物体在神经网络中的映射位置。该位置的神经元向后发射一个脉冲信号,用于第四层网络中对物体运动的过程进行捕捉,由此得到第三层网络的输出如图10所示。
图10 第三层神经网的输出值
此外,根据第二、三层的输出信息,在第三层有输出的神经元上,还给出了对物体距离的判定信息。上述9个输入时刻下对应的物体到感受器平面的距离为3、2、2、1、1、2、3、2、2,其中3,2,1为距离判定的级别,3为最远;由于验证中第一二层只有9个神经元进行连接,所以只能对三级距离进行判断,如果需要更精细的判断结果,可以通过增加第一、二层连接来实现。
在第四层神经网上,对第三层的运动信息做出检测,可得到每个时刻的物体运动方向信息,每时刻为8、8、7、3、8、8、6、5。由于检测物体的运动方向需要连续的两个周期进行比较,所以第一组输入没有对应方向信息,因此总共有8组方向数据。其中1到8分别代表8个方位,具体可参照图3中右图所示。
通过对第四层发出的脉冲数量进行求和,第五层得到的脉冲统计数量为18,即18个时钟周期(该时钟周期可根据需采样的快慢进行自定义)完成物体从进入到消失的过程。根据仿真结果可以发现,本文设计的网络结构可以完成对物体到感知平面的距离进行判定同时还可对物体的运动轨迹进行捕捉。整个仿真结果实现了果蝇视觉的部分功能。
5 结束语
本文通过实验验证了,我们设计的自生成算法可以生成具有检测物体运动功能的基本网络。但随着研究的进行发现,这种自生成方法难以控制生成网络的功能,同时在网络规模达到一定程度时,生成速度也较为缓慢。为了解决网络功能难以控制,我们打算在具有一定功能网络基础上使用自生长算法,指导网络的优化;从而解决功能难以控制,同时减少网络需要搜索的空间范围,提升仿真速度。因此本文通过调研果蝇的视觉处理过程,抽象出了果蝇的视觉神经网络模型,并在仿真平台上实现了该功能。
下一步工作中,我们打算在该果蝇视觉神经网络基础上利用自生成算法,优化网络结构,同时丰富网络功能,并最终完全实现果蝇视觉的全部功能。
[1]Szegedy C,Liu W,Jia Y,et al.Going deeper with convolutions[C]//IEEE Conference on Computer Vision and Pattern Recognition.IEEE Computer Society,2015:1-9.
[2]Khurodze R.Development of the learning process for the neuron and neural network for pattern recognition[J].American Journal of Intelligent Systems,2015,5(1):34-41.
[3]Wang Y,Wang D L.A deep neural network for time-domain signal reconstruction[C]//IEEE International Conference on Acoustics,Speech and Signal Processing.IEEE,2015:4390-4394.
[4]Hadley A J,Krival K R,Ridgel A L,et al.Neural network pattern recognition of lingual-palatal pressure for automated detection of swallow[J].Dysphagia,2015,30(2):176-187.
[5]D’Angelo E.The human brain project[J].Scientific Ame-rican,2012,306(6):50-55.
[6]Whalley K.Modelling:First ‘Blue Brain’ results[J].Nature Reviews Neuroscience,2015,16(12).
[7]Csuhaj-Varjú Erzsébet,Salomaa Arto.Networks of Watson-Crick D0L systems[C]//International Colloquium on Words,Languages & Combinatorics Iii,2000:134-150.
[8]Akopyan F,Sawada J,Cassidy A,et al.TrueNorth:Design and tool flow of a 65 mW 1 million neuron programmable neurosynaptic chip[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2015,34(10):1537-1557.
[9]Wu Jianjun,Gao Ziyou,Sun Huijun,et al.urban transit system as a scale-free network[J].Modern Physics Letters B,2012,18(19n20):1043-1049.
[10]Takemura S Y,Bharioke A,Lu Z,et al.A visual motion detection circuit suggested by Drosophila connectomics[J].Nature,2013,500(7461):175-181.
[11]Paulk A,Millard S S,Van S B.Vision in drosophila:Seeing the world through a model’s eyes[J].Entomology,2013,58(58):313-332.
[12]Maisak M S,Haag J,Ammer G,et al.A directional tuning map of Drosophila elementary motion detectors[J].Nature,2013,500(7461):212-216.