神经网络压缩是什么

2023-07-31 05:26:00 生活常识 投稿:取一盏清酒

神经网络压缩是指通过改变网络结构或利用量化、近似的方法来减少网络的参数或存储空间, 在不影响神经网络性能的情况下,降低网络计算代价和存储空间。

一个深度学习模型通常包含数以百万计甚至千万计的参数和十几层甚至几十层的网络,通常需要非常大的计算代价和存储空间。神经网络压缩是指通过改变网络结构或利用量化、近似的方法来减少网络的参数或存储空间, 在不影响神经网络性能的情况下,降低网络计算代价和存储空间。

神经网络压缩是什么

简介

神经网络压缩简单来说通过有关方法来减少网络的参数和存储空间,在神经网络性能影响不大的情况下。神经网络压缩大体上可以分为近似,量化和裁剪三类方法。近似类方法主要利用矩阵或张量分解的思想,通过少量参数重构原始网络参数矩阵或参数张量,以达到减少网络存储开销的目的。通常,在网络运行时,这些参数将会被适当重建,网络的运行时开销并没有得到有效减少。第二类方法是量化方法,量化方法的主要思想是将网络参数的可能值从实数域映射到有限数集,或将网络参数用更少的比特数来表示。

量化的方法将原本具有无限种可能的参数约束到少数几种参数中,再对这些参数进行重用,就可以减少网络存储开销。通过改变参数的数据类型,如将原本的 64 位浮点型量化为整形甚至布尔型,网络的运行时开销也将得到大幅度减少。第三类方法是网络裁剪的方法,与前两种方法相比,网络裁剪的主要特点是会直接改变网络的结构。网络裁剪可以按粒度分为层级裁剪,神经元级裁剪和神经连接级裁剪。层级裁剪的裁减对象是网络层,裁剪的结果是获得更浅的网络。

需求

神经网络压缩不但具有必要性,也具有可能性。首先,尽管神经网络通常是深度越深,效果越好,但针对具体的应用场景和需求,适当深度和参数数目的网络即能够满足。盲目加深网络复杂度所带来的微弱性能提升在许多应用场合意义并不大。其次,神经网络常常存在过参数化的问题,网络神经元的功能具有较大的重复性,即使在网络性能敏感的场景,大部分网络也可以被“安全地”压缩而不影响其性能。神经网络压缩可以有助于理解神经元作用机理和使神经网络模型部署在轻量级的设备上。

深度神经网络尽管在计算机视觉、语音识别、机器人技术等多个领域都取得了良好成果。深度学习的实际应用往往受限于其存储和运算规模。例如,VGG-16 网络含有约 1.4 亿浮点数参数,假设每个参数存储为 32 位浮点数格式,则整个网络需要占用超过 500 兆存储空间。这样的计算量在只能通过高性能并行设备进行,且仍不具备很好的实时性。高性能并行计算设备具有体积大、能耗大、价格高的特点,在许多场合都不能使用。因此,如何在资源受限场合,如手机、平板电脑、各种嵌入式和便携式设备上运行神经网络,是深度学习走向日常生活的关键一步,也是学界和工业界研究的热点问题之一。

标签: # 神经网络
声明:犀牛文库所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系admin@qq.com