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 深度神经网络背景

5e97df0c3ab51891ad0ebe7320ce79ed.png

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

f288823bcb619afff30de3464790e560.png

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

0cd94fa94c5881ccb7ea19e7fb1cbe40.png

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

280cb9818d70c34b0fbf973cf3b57293.png

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

d0c0a1f96f6225b4c148f3c3b95ee679.png

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

978404d45fb9b17dbc3bc44cc496d190.png

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

978b24d01d373e6d7a5be6991a96321a.png

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

27947d14fd5c19ccb7f236d91038c3d7.png

权重可以看做是突触集合

7d395ab7a568a9d7e173ff59b1d41a9a.png

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

a4cb4b882864198ae0c30e24636c825f.png

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

7d6e31f4e81ff53065d4d231825baab0.png

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

e7e2e6ff17fb51952e4f52dd0ed24611.png

L2层同理

954c91c995baf5b5e6a9509d729433fe.png

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

稀疏连接:非全连接

c0ca4bc063c8e94ff5bb90b125945d81.png

前馈:参数向前传递

反馈:参数向自身传递

0838bbcd039ee13694d4762c28fca969.png

当前DNN流行的类型:

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

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

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

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

85aa1d8bca21a5eba8f0ab4ff9fec8ac.png

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

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

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

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

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

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

深度卷积神经网络

95ebefc76f41bc9d1a85378960bc6fe7.png

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

1961b3782a3de1a27efa89a4a5ab0b7b.png

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

d6c8fccdcfafc3ec48a6e3e09b753ac4.png

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

ca77451e2a964c94a96bc2a3ecfda0ba.png

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

47312a25b6051e16b96c7d7a754f6895.png

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

c578a6cbd67d56b830f4611c2bf3545c.png

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

cd15f84789ccdd41f2f48369bf01d457.png

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

9d1dd6dc4bbdd94655da233d3b475ffb.png

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

90983befa22bc8a6046650a178bd9b7b.png

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

625d06b8c11a15fc23d690917a508d7d.png

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

4ff1c1918b2484d8249a5c17e48e0a72.png

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

6822e78d79e8a1713924ffb0d6580eb8.png

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

2aff81a41127689a7a89390e6a9c7e7c.png

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

激活函数

e43f1fdba536217e505dd392ee8eed1b.png

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

33ebd1d0e3f72b8fb388a00e42fcefaf.png

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

53801fc31cc34ac429c832c464e34996.png

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

68140099f59dbfc5c955c963a9a4f616.png

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

eb9d3e53fcd0fca63851eaaa0c17dd42.png

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

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

784d6b96e3ea2929a738ded5713ab17b.png

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

5a6e8bb3c1ffeefbb973d7655fcb2b8e.png

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

76b0c097e6d87cc8ef1f53f92ca8b8db.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值