dnn神经网络_MIT的DNN硬件加速器教程(一)综述

DNN综述

本slide主要是DNN中的一些概念介绍和名词解释。

slide链接

https://www.rle.mit.edu/eems/wp-content/uploads/2019/06/Tutorial-on-DNN-01-Overview.pdf​www.rle.mit.edu

1 深度神经网络背景

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第1张图片

机器学习是人工智能的重要内容之一,脑启发计算是机器学习的方法之一,spiking是脑启发计算的方法之一,它的原理是模仿大脑工作。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第2张图片

spiking架构的典型芯片是IBM的TrueNorth。TureNorth芯片包含64x64个核心,每个核心由几部分组成:片上SRAM、神经元neuron、符号控制逻辑、调度器和路由组成。右侧ABCD是它的工作原理

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第3张图片

脑启发计算还有一种重要的方法就是神经网络

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第4张图片

神经网络实现了权重的相加,输入为来自上一个神经元的轴突x0、x1.。。。,权重为本神经元的突触w0、w1.。。。神经细胞体就是求和公式,所有轴突突触的乘积和加上偏置b。输出轴突为细胞体结果经过激活函数的值。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第5张图片

神经网络有很多权重,分布于输入层、隐藏层和输出层。图中是全连接的情况,即每个神经元和上一层神经元的所有输出相关。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第6张图片

深度学习是神经网络中的一个重要方法。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第7张图片

深度学习中的层可以看做是神经元集合

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第8张图片

权重可以看做是突触集合

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第9张图片

每个突触都有自己的权重。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第10张图片

多个突触使用相同的权重值称为权重共享

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第11张图片

L1层的神经元输入为输入层比如图像像素,L1层神经元输出为经过激活函数后的值

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第12张图片

L2层同理

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第13张图片

全连接:所有的输入神经元都连接到所有的输出神经元

稀疏连接:非全连接

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第14张图片

前馈:参数向前传递

反馈:参数向自身传递

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第15张图片

当前DNN流行的类型:

全连接神经网络,也叫作MLP,是一个前馈的网络

卷积神经网络CNN,前馈网络,具有稀疏连接、共享权重的特性

循环神经网络RNN,反馈网络

长短期记忆网络LSTM,反馈网络和存储的属性

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第16张图片

训练:训练的目的是决定权重,可分为

监督:有用于训练的带标签数据集,包含输入和输出

无监督/自监督:没有带标签的训练数据集

半监督:训练集中有一部分带标签的数据

增强(强化)学习:通过奖励和惩罚来评估输出

推理:推理是使用权重来决定输出

深度卷积神经网络

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第17张图片

当前的深度卷积神经网络可能包含了5~1000层的卷积层,在最后使用1~3层的全连接层,最后得出分类结果。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第18张图片

卷积层主要完成卷积和卷积结果经过激活函数后的值

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第19张图片

全连接层主要完成全连接计算以及结果经过激活函数后的值

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第20张图片

在卷积层之间或卷积层和全连接层之间可以插入归一化处理和池化Pooling来优化整个深度神经网络

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第21张图片

卷积大约占了所有计算量的90%,决定了运行时长和能耗。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第22张图片

卷积层完成filter(由权重组成的矩阵)和输入特征图fmap矩阵进行元素乘(element-wise)的计算。即输出的结果为两个矩阵对应位置每个元素相乘的部分和累加。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第23张图片

由于filter矩阵规模小(RxS),特征图矩阵规模大(HxW),所以采用滑动窗口的方法处理得到输出特征图矩阵(ExF)

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第24张图片

如果特征图有多个通道(C个),那么同时也需要C个filter来进行卷积,这C个一对矩阵元素乘的结果的部分和为输出特征图矩阵的一个元素。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第25张图片

如果filter有M组(每组C个矩阵),那么可以得到一个通道数为M的输出特征图矩阵,即输出fmap的通道数C由filter的组数M决定,即本卷积层的M为下一卷积层的C。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第26张图片

如果输入特征图有N组(每组C个矩阵),filter还是M组(每组C个矩阵),则可以得到N组通道数为M的输出特征图矩阵。N表示同时处理多少批图片,一般也称为batch size

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第27张图片

由上可知,filter和输入fmap的通道数必定一样,输入fmap和输出fmap的组数必定一样,filter的组数和输出fmap的通道数必定一样。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第28张图片

以上卷积过程用公式表示就如图中所示。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第29张图片

用软件简单实现需要7层循环完成卷积层的计算,外四层为输出fmap的循环,内三层为filter和输入fmap的乘法累加计算。

激活函数

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第30张图片

传统的激活函数Sigmoid和双曲正切

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第31张图片

当前流行的激活函数ReLU及其衍生(为了解决梯度消失问题)

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第32张图片

全连接层和卷积层的计算基本一致

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第33张图片

输出fmap的规模为MxN,filter和输入fmap的规模一样大

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第34张图片

Pooling层主要完成下采样,可以独立的减少每个通道的特征图规模

根据stride的大小也可以决定有没有overlap。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第35张图片

上图为max-pooling的简单软件实现有6层循环,内两层是找到窗口的最大值保存。

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第36张图片

归一化层主要是批处理的归一化处理(BN),归一化后均值为0,标准差为1,一般认为使用BN可以提高精度,并且可以加速DNN的训练

dnn神经网络_MIT的DNN硬件加速器教程(一)综述_第37张图片

你可能感兴趣的:(dnn神经网络)