神经网络稀疏性调研

本文深入探讨了神经网络模型的稀疏性,包括CNNs、序列到序列模型、GANs、脉冲神经网络和图神经网络等。分析了稀疏性的来源,如激活函数、dropout和权重剪枝,及其对模型性能和计算效率的影响。讨论了结构化与非结构化稀疏性,以及在GPU加速和硬件优化方面的策略。此外,还涉及了推荐系统、目标检测网络和文本分析中的稀疏性问题,并提出了处理高维数据稀疏性的方法。
摘要由CSDN通过智能技术生成

背景

人工智能在诸多领域都取得了突破性进展,例如计算机视觉,nlp等。但是,各种机器学习模型存在一个很致命的问题:神经网络巨大的计算量+访存量,这对性能提出了较高的要求(能耗、延时、访存等)。一种可行的解决方案:充分利用机器学习模型中的稀疏性。所谓的稀疏性是指在计算中不必要,没用的计算。通过减少计算量,就可以保证降低不必要的存储和计算,提升机器学习模型部署时的性能。

稀疏性的分布

根据稀疏性的来源,我们可以基本分为以下几类。

  • 科学计算和传统的机器学习
  • 神经网络:神经网络(CNN,DNN)中存在大量的不需要计算的数据。例如大量的非零权重,dropout,一些典型模型构建和操作(如Relu,dropout)等操作将大量零值引入到activation中。为了解决这些不必要的计算,一些主流神经网络压缩技术(如稀疏化和量化)通过对神经网络模型参数的稀疏化来压缩模型大小。稀疏化就是跳过不必要的计算,包含剪枝。量化是指将需要浮点数表示的小数用int或者二值来表示。一般稀疏性分为权重和activation两种。
  • 输入数据
    神经网络稀疏性

CNNs

用于图像(自动驾驶)。CNN的特征是包括大量的全连接层(FC)和卷积层(Conv),前面的层提取低纬的信息(图像中物体的边缘),后面的层提取高维的信息(分类)。CNNs的稀疏性主要来源于

  • 激活函数:例如relu会引入大量的中间变量的稀疏性。
  • Dropout:这个是为了解决过拟合的问题。目前有target dropout和weight dropout等,这些会一如fc和conv的稀疏性。
  • 参数的稀疏性:一般会利用一些剪枝的算法。根据剪枝出来的粒度可以分为

Structured sparsity / unstructured sparsity

结构化稀疏就是指我们需要剪掉的计算的分布是有一定规律的,这种对硬件更加友好,但是在影响模型的精度方面是有很大的负面影响的;非结构化稀疏是指我们需要剪掉的计算的分布没有什么规律,因此我们可以剪掉完全的0值,这样对精度的影响很小,但是这种会对硬件的加速非常不友好。
结构化稀疏根据粒度可以分为下面的几个方面:

  • vector-level:它相对于细粒度更大,属于对卷积核内部的剪枝,例如剪掉一行或者一列。
  • kernel-level:即去除某个卷积核的channel,它将丢弃对输入通道中对应计算通道的activation。<
  • 12
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值