首页 > 编程语言 >嵌入式深度学习—硬件算法协同优化

嵌入式深度学习—硬件算法协同优化

时间:2023-09-07 09:03:22浏览次数:41  
标签:STE 权重 神经网络 嵌入式 硬件 算法 量化 hardtanh 输入

主要利用神经网络的三个特性:

  1. 并行计算、数据复用
  2. 模型具有稀疏性。很多模型中的权值为0或很小,数据经过以后会直接变为无用值
  3. 深度学习具有鲁棒性,对数据的误差不敏感

测试时固定点神经网络(Test-Time Fixed-Point Neural Networks)

测试时固定点神经网络(Test-Time Fixed-Point Neural Networks)是以低精度运行的网络。它们在推理之前使用浮点数进行预训练,并根据训练后的固定点分析结果进行量化。

  • 可以通过对层的输入和权重进行测试时量化。
  • 通过跳过冗余的稀疏计算来降低能量消耗。

量化对分类精度的影响

对于[-1,1]区间上的权重或层输入x,通过以下函数进行量化: $$q=clip(\frac{round(2^{Q-1} \times x)}{2^{Q-1}}, -1,1-2^{-(Q-1)})$$

在对权重和输入进行量化之前,根据它们的值分布将它们适当地重新缩放到[-1,1]区间。从数学上讲,这种缩放与将结果乘以2的因子相同,或者在固定点表示中移动数据。这个操作在硬件中可以非常方便地执行。

统一量化与逐层量化

  • 统一量化是一种简单直接的方法,它将同样的量化设置应用于所有层。这种方法可以快速实施,并且不需要额外的计算资源。然而,由于每个层的特性和敏感性可能不同,统一量化可能无法充分利用每个层的潜力。
  • 逐层量化更加精细和有效。通过为每个层单独选择量化设置,可以根据其特定特征和需求来优化量化过程。这可以提高每个层的准确性,并且通常会导致整体模型的更好性能。

每层量化

网络也可以具有每层量化而不是用相同位数量化网络的所有权重和输入。

优势:

  • 可以更精确地设置操作点。
  • 更好地权衡能耗与准确性。

为了找到每层的最优量化设置,需要对参数进行贪婪搜索:从第一层开始,将其输入量化,直到准确性降至目标准确性为止。接下来,保持输入的量化设置不变,通过相同的方式最大化权重的量化设置。同样的过程在下一层中应用,直到最后一层。
有一个普遍趋势:网络的较低层所需的位数比较高层要少。部分是由于向前参数扫描,但较低层与较高层之间的输入和权重统计差异也有影响。

训练时量化神经网络(QNN)

注:普通CPU和GPU仅原生支持有限的计算精度设置,如32-64浮点或8-16位整数运算,无法受益于低精度QNN。而在定制设计的ASIC中,可以根据给定条件选择最佳计算精度,以最小化每次网络推理的能量消耗。

输入层

  • 第一层输入为int8
  • 其他层的所有输入都被量化为intQ

如果M是输入位数,M>Q,那么intQ层可以表示为一系列移位和加法的点积操作。
可以使用以下编码方式在intQ硬件上处理M>Q个输入:

\[s=x \cdot w_Q \Longleftrightarrow s= \sum_{n=1}^{M / Q}(2^Q)^{n-1}(x^n \cdot w_Q) \]

在这里,\(x^{M/Q}\)是输入向量x中最高有效位(Most Significant Bit),而\(x^1\)是最低有效位(Least Significant Bit)。\(w_Q\)是经过intQ量化的权重向量,s是加权和的结果。

训练时量化权重(Train-Time Quantized Weights)

所有权重都使用固定点表示法将其量化为Q位。使用以下确定性量化函数:$$q=clip(\frac{round(2^{Q-1} \times w)}{2^{Q-1}}, -1,1-2^{-(Q-1)})$$
Q=1的情况被视为特例,时q = Sign(w)。使用“直通估计器”(straight-through estimator,STE)函数进行反向传播。如果已经获得了梯度\(\frac{∂C}{∂q}\)的估计器\(g_q\),则\(\frac{∂q}{∂w}\)的STE为:$$STE = hardtanh(w) = clip(w,−1, 1)$$

\(\frac{∂C}{∂w}\)的STE为:$$g_w=g_q \times clip(w,-1,1)$$

根据(Hubara et al. 2016a)的做法,在训练过程中,所有实值权重都被限制在区间[-1, 1]内。否则,实值权重会变得很大,而不会对量化后的权重产生影响。不同Q下的权重量化函数q(w)和STE函数在图3.15中进行了绘制。

\(STE = g_q * hardtanh(w)\)可以简化为:
当 -1 ≤ w ≤ 1 时,STE = \(g_q\)
当 w < -1 或 w > 1 时,STE = 0

训练时量化激活(Train-Time Quantized Activations)

在量化神经网络(QNN)中,所有激活值被量化为 Q 位的定点表示。前向传播中使用以下确定性的量化激活函数:

\[A_{ReLU}=max(0,q(a)) \]

\[A_{hardtanh}=qhardtanh(a) \]

\[qhardtanh(a) = 2 × hardtanh(round(hardsigmoid(a) × 2^{Q−1})/2^{Q−1}), \]

\[hardsigmoid(a) = clip((a + 1)/2, 0, 1) \]

反向传播中使用以下STE函数进行梯度估计:

\[g_{ReLU} = max(0, hardtanh(a)) \]

\[g_{hardtanh} = hardtanh(a) \]

聚类神经网络

  • 对权重和激活进行聚类,将浮点数网络进行压缩。一组权重或激活被聚类成n个簇以确保只剩少数不同的权重。然后,每个出现的权重或激活通过\(\log_2(n)\)位的小索引指向一个小的查找表中的实际值。
  • 在初始的聚类步骤之后,聚类的值经过重新训练,以提高网络的准确性。
  • 实际值以高精度浮点数或定点数的形式存储,计算使用16位,但所有的数据传输和存储成本都被压缩了。

拓展阅读

标签:STE,权重,神经网络,嵌入式,硬件,算法,量化,hardtanh,输入
From: https://www.cnblogs.com/xiangcaoacao/p/17683893.html

相关文章

  • 1. 硬件系统(科普了解)
    硬件系统(科普了解)主机系统CPU(中央处理器)控制器运算器内存储器RAMRandomAccessMemory随机存储器(保存不住数据)ROMRead-OnlyMemory只读存储器外部设备:输入设备键盘鼠标输出设备:显示器音箱外存储器: 软盘 U盘 硬盘软件系统系统软件操作系统->作......
  • 代码随想录算法训练营第一天
    代码随想录算法训练营第一天|LeetCode704(二分查找)LeetCode35(搜索插入位置)LeetCode34(在排序数组中查找元素的第一个和最后一个位置 )LeetCode27(移除元素)数组理论基础数组是存放在连续内存空间上的相同类型数据的集合要点:数组下标都是从0开始的数组内存空间......
  • 分治算法学习
    思路分析:先找根(最大值)分为左右子树,转化为构建最大的左右子树,很明显,这里需要用到递归算法实现#include<bits/stdc++.h>usingnamespacestd;intnums[1001];voidconstructMaxTree(intarr[],intl,intr){ if(l>=r){ cout<<arr[l]<<""; return; } //找到最......
  • 米联客-S02(Artix-7-XC7A35T/100T)开发平台硬件手册
    1产品概述    MLK-S02(XC7A35T/100T)是米联客S系列开发平台的一款高性价比开发板。其核心模块集成电源管理:1V核心电源,最大输出8A。其开发平台为一体开发板,将主芯片直接焊接于开发板上,其开发板设计尺寸紧凑、资源丰富。其应用领域包含高速通信、机器视觉、伺服系统、视频采集......
  • 电脑硬件
    电脑硬件cpucpu读取存储器中的信息,处理后输出。云cpu与家用cpu相比,云cpu网速较慢,稳定性强。家用cpu网速快有时易出故障。同类芯片cpu的频率越高,二级缓存,三级缓存越大,核心数量越多,代数越新,一般越好。显卡显卡将数字信号转化成模拟信号在显示器上显现出。显卡的好坏大部......
  • C++ 算法竞赛、02 周赛篇 | AcWing 第2场周赛
    AcWing第2场周赛竞赛-AcWing3626三元一次方程AcWing3626.三元一次方程-AcWing两层循环#include<iostream>usingnamespacestd;voidfind(intn){for(intx=0;x<=1000/3;x++){for(inty=0;y<=1000/5;y++){int......
  • 算法刷题:一步步优化系列01.最长连续序列
    题目链接:最长连续序列目录暴力解法(超时)优化内层查找(On->O1但超时)问题:重复的边界会重新迭代优化重复迭代:在值域而非定义域迭代,去重(超时)问题:值域大且元素离散度大时,会大量迭代到不存在的元素,空迭代优化空迭代:HashSet去重,每次迭代的元素都存在(26ms)从左边界重......
  • 安防监控/视频汇聚/云存储/AI视频智能算法引擎:遛狗AI检测算法详解
    根据最新修订发布的《中华人民共和国动物防疫法》规定:遛狗不栓绳,养狗不办证、未定期接种疫苗等行为都是违法行为。作为一个合格的“铲屎官"出门遛狗一定要牵好狗绳,保护他人和爱犬的安全。但就算法律明文规定,还是有很多人无视法律法规,在外遛狗不牵绳,任其自由活动。在日常管理中,遛狗......
  • 方案:TSINGSEE青犀视频AI智能算法平台电动车入梯检测解决方案
    一、方案背景随着大众的出行要求逐渐提升,交通拥堵现象也随处可见,电动车出行,就成了大家的首选。随着电动车数量的激增,众多用户为了个人方便,大多在室内停放或充电,有的甚至停放在走道、楼梯间等公共区域,由于电瓶车车体大部分为易燃可燃材料,一旦起火,燃烧速度快,并产生大量有毒烟气,人员逃......
  • 视频云存储/安防监控/AI分析/视频AI智能分析网关:垃圾满溢算法
    随着我国科技的发展和城市化进程加快,大家对于生活环境以及空气质量更加重视,要求越来越严格。城市街道垃圾以及生活区垃圾满溢已经成为城市之痛。乱扔垃圾,垃圾不入桶这些行为已经严重影响到了城市的美化问题。特别是炎热的夏日和雨水季节,大量垃圾堆放会释放有毒有害气体,暴雨过后,漂浮......