论文阅读笔记

北理博士论文,基于FPGA的实时机器人视觉系统研究

基于FPGA实现了并行化的图像预处理算法。包括通过查表法对畸变图片数据进行矫正

 

 [1]王超,王腾,马翔,周学海.基于FPGA的机器学习硬件加速研究进展[J].计算机学报,2020,43(06):1161-1182.

 

机器学习算法的加速需要兼顾考虑加速数据通信传输以及加速算法计算执行两个方面。

加速算法的着眼点大体分为四个方面:加速算法的计算核心、抽象算法的共性特性、并行化机器学习算法以及优化机器学习算法的数据通信传输。

基于各个加速器的特性,将硬件加速器设计分为四类:针对特定问题的加速器、针对特定算法的加速器、针对算法的共性特征的加速器以及利用硬件模板的通用加速器框架。这四大类遵循了一个从特殊到一般的过程,并且设计难度呈递增趋势。

使用FPGA集群的 FPDeep不仅拥有更好的性能,而且整体的资源利用率也得到了进一步的提升.
使用Stream 方式的FPDeep加速器,从性能和资源利用率等方面都优于基于 Singgle Engine方式的加速器。

未来硬件加速器的发展方向:首先,面向领域的专用硬件平台会提供越来越高效且易用的编程接 口.第二,将加 速 器放置在内存附近,实现存内计算,以进一步减轻访存和数据重用的压力.第三,硬件加速器目前还主要聚焦于如何降低机器学习算法中推断过程的延迟,需逐步开展面向训练过程的优化.第四,由于 FPGA 的功耗和计算性能的优异表现,在物联网设备和智能边缘计算设备中会得到广泛采用.第五,在新兴的如自动驾驶汽车领域中,FPGA 和 NPU 等专 门 加速器也 在开始逐渐应用.在该领域中,利用这些硬件加速器处理由高级驾驶员辅助系统产生的大量时间序列信息来增加自动驾驶的性能.第六,作为人工智能革命的重要部分,以 Qualcomm855、Kirin980和 A12Bionic等芯片为代表的集成解决方案也会逐渐大规模应用,在广泛推广之后可以实现人人都是计算节点的未来愿景.
 

基于FPGA的递归神经网络加速器的研究发展        高琛  国家数字交换系统工程技术研究中心

由于 RNN 模型的参数量比较大,一般的FPGA 芯片不足以完全存储其权重参数;另外,由于 RNN 模型的复杂性,将 RNN 模型映射到FPGA 上,设计合理的加速器架构进行加速计算比较困难。

一般的 RNN 架构在训练的过程中存在很严重的梯度消失及梯度爆炸现象,通过增加门控单元可以解决这个问题,相应的预测准确率也由于门控单元的加入而得到提高。

梯度消失:那么为什么会出现梯度消失的现象呢?因为通常神经网络所用的激活函数是sigmoid函数,这个函数有个特点,就是能将负无穷到正无穷的数映射到0和1之间,并且对这个函数求导的结果是f′(x)=f(x)(1−f(x))。因此两个0到1之间的数相乘,得到的结果就会变得很小了。神经网络的反向传播是逐层对函数偏导相乘,因此当神经网络层数非常深的时候,最后一层产生的偏差就因为乘了很多的小于1的数而越来越小,最终就会变为0,从而导致层数比较浅的权重没有更新,这就是梯度消失

梯度爆炸:梯度爆炸就是由于初始化权值过大,前面层会比后面层变化的更快,就会导致权值越来越大,梯度爆炸的现象就发生了。

在深层网络或循环神经网络中,误差梯度可在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。在极端情况下,权重的值变得非常大,以至于溢出,导致 NaN 值。网络层之间的梯度(值大于 1.0)重复相乘导致的指数级增长会产生梯度爆炸。

Sigmoid函数:Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。 在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。

 LSTM算法最开始主要是为了解决 RNN 梯度消失及梯度爆炸问题而提出的,这个模型有效解决了传统 RNN 不能建立长时间依赖的问题。

GRU 也具有门控单元来调控信息的学习与遗忘。GRU RNN 具有与 LSTM RNN 类似的预测精度,但计算复杂度较低。GRU与 LSTM 共有的一个特征就是在从t −1时刻到t时刻,增加了门控单元来控制信息的流入与流出,而传统的 RNN 总是用一个新的向量来代替当前的状态而并没有保留上一时刻的相关信息。

相比于标准的 RNN 模型,LSTM 及 GRU 模型的参数量较大。这意味着理论上,在计算出一个输出向量之前,LSTM 与 GRU 模型的所需运算量更大,模型更复杂。
 

对于一个典型的基于 FPGA 的 RNN 加速器,其系统架构如图 4 所示。RNN 加速器主要包括CPU 控制部分及 FPGA 逻辑运算部分。FPGA 芯片通常通过一个PCIe/AXI接口与CPU部分相连。FPGA 逻辑运算部分主要包含 RNN 加速器模块、数据控制模块及存储模块。具体地,数据控制模块主要负责数据的读取与流出;RNN 加速器模块包括阵列计算、激活函数查找表等单元,主要负责对 RNN 模型进行加速运算,包括矩阵向量乘法计算、激活函数计算、向量乘法计算等。存储模块主要用来临时存储计算的中间结果及计算所需的网络权重参数、输入向量等。


DDR,双倍速率同步动态随机存储器。

低位宽数据量化技术就是一种能直接减小处理单元大小、降低处理单元对片上资源消耗的方法。合理地把这些处理单元设计成阵列进行高效的并行运算是提高 RNN 加速器数据吞吐量的关键。


 针对RNN模型数据的压缩算法比较:

硬件架构的设计往往依赖于数据处理后的数据结构形式及数据量,并且所针对的 RNN 模型中的问题有所不同。已有的架构设计技术:

1)  矩阵阵列计算单元主要针对 RNN 中的矩阵向量计算模块进行加速。通过并行计算矩阵的多行或者多列数据,以提高 RNN 加速器的吞吐量。但阵列计算单元需根据数据格式,设计相应位宽的浮点或者定点乘法器、加法器。
2)  流水线设计主要针对 RNN 模型的复杂运算进行加速。将 RNN 计算部分拆分并设计成流水计算,以降低 RNN 加速器的计算延迟。 
3)  数据存储系统设计主要针对 RNN 的参数,结合数据压缩算法,降低 RNN 计算及内存访问能耗。在实际应用中,可根据 RNN 参数规模选择片上存储模型参数,以进一步提高计算速度。

现存问题: 

1)  现有 RNN 加速器的深度一般为 1-2 层,未来是否可通过构建合理的架构,在 FPGA 有限的资源上搭建深层 RNN 以提高模型的计算精度有待于进一步研究。
2)  现有 RNN 加速器流水线技术仅应用在隐层节点的计算或者层间计算中,未来将隐层内流水线推理运算与层间流水线设计结合到一块,模型的性能是否会提升,有待于在 FPGA 上进行进一步验证。 
3)  现有 RNN 加速器都是针对不同 RNN 模型的专用加速器,这导致其应用场景十分受限,未来是否可在 FPGA 上实现加速器模型的动态可配置,即可以根据需求及应用场景动态配置计算单
元构建LSTM、GRU 等 RNN 变体,来自适应处理不同的自然语言处理任务有待于进一步研究。 
4)  现有 RNN 加速器优化算法发展比较快、种类比较多,但至今没有公正客观的硬件性能对比实验来评估这些算法的优劣。未来是否可在其他设计方法相同的前提下,进行实验来评估这些优化算法硬件实现的设计复杂度及对 RNN 性能的提升,有待于进一步研究。

视频图像去雾算法的自适应机制设计及FPGA加速实现     东南大学汤勇明

现阶段已公开的去雾算法从策略上可分为基于图像增强去雾、基于图像恢复去雾和基于机器学习去雾。图像增强去雾一般具有算法简单实时性好的特点,但主要关注点在对比度增强和信息量的提升,而往往忽视了色彩还原度和局部细节处理;图像恢复算法通常具有较好的色彩还原度,但是算法通常较为复杂,难以做到实时处理,常用于单张图像去雾。近年来机器学习技术发展火热,有学者提出通过机器学习方法进行去雾,取得了较好的去雾效果。

在晴朗天气下拍摄的户外图像成像质量一般较好,无需执行去雾操作,不必要的去雾操作可能会造成成像效果的下降。本文参考颜色衰减先验理论,通过对饱和度参数的分析判定图像是否带雾,并以此来建立自适应去雾机制。

开源代码:https://github.com/Wang Tianpeng SEU/video_dehazing/raw/mas-ter/dehaze.zip

 RGB:颜色对照表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值