基于Cortex-M3的IP软核实现神经网络加速的SoC设计 (1)算法分析
关键字:神经网络加速,前馈神经网络,人工神经元
<0>人工神经元
神经网络算法包含推理和训练两个过程,大部分神经网络加速硬件是针对推理过程的,推理过程相对与训练过程较为简单。以前馈神经网络为例,单个神经元的计算过程是如下图,其中X是输入,W是权重,B是阈值,f是激活函数,Y是输出。
权重和阈值是需要训练得到的,我们设计的加速器只针对推理过程,所以训练过程可以在PC上完成然后导出。例如通过BP算法得到网络参数的前馈神经网络是BP神经网络。神经网络通常包含一层输入层,一层输出层和若干层隐含层,输入层节点的个数和所需处理的数据相关,输出层的节点数目和所得到的结果数目相关,例如识别数字的输出层节点数应该是代表0到9数字的共10个节点。隐含层的层数和每层个数是可以根据训练效果调整的。
前馈神经网络的推理过程还是比较简单的,只涉及乘法、加法和激活函数,可以用硬件电路实现相应的过程,但是实现过程中有一些问题还是需要考虑的。
<1>硬件实现时考