【两项业界最佳】普林斯顿新算法自动生成高性能神经网络,同时超高效压缩

简介: 普林斯顿大学研究人员提出了一种会在训练过程中连接、生长、移除神经元的神经网络。这种神经网络使用梯度和神经元强弱来生长(grow)和修剪(prune),从而实现权重和结构的同时训练。此算法可同时实现神经网络结构的自动选择和超高效压缩。所取得的压缩率,所获得的神经网络模型均为当前业内最好纪录。

神经网络的结构对其性能有极其重要的影响。目前主流的神经网络结构搜索法仍然是试凑法,该方法存在三大问题:

  1. 训练过程中神经网络结构是固定的,训练并不能改善结构
  2. 时间和计算消耗巨大
  3. 生成的网络通常很冗余,计算和存储成本过高

为了解决以上问题,普林斯顿大学研究人员仿照人类大脑的学习过程,提出了一种自动生成神经网络的算法。该算法从一个种子结构(seed architecture)开始,这个种子结构类似于初生婴儿的大脑。

在训练过程中,先根据反向传播算法获得的梯度(gradient),连接和生长(grow)神经元,类似于幼儿的大脑的生长。随后,根据神经连接的强度(magnitude)逐步修剪(prune)冗余的连接和神经元,最终实现高性能、低能耗的神经网络,此时得到的推理模型(inference model)类似于成年人的大脑。

7c5b8cff7dde25654de9357433853a7f6a8091c5

普林斯顿大学的一组研究人员提出了一种自动生成神经网络的算法,过程与人脑发育类似。图片来自论文(下同)

自动生成高性能神经网络,并实现超高效压缩,当前业界最佳

算法主体由两部分组成: 基于梯度的生长(gradient-based growth) 和基于强度的修剪(magnitude-based pruning)。前者在结构空间(architecture space)里通过生长和连接神经元实现梯度下降(gradient descent);实验表明,这种生长和连接可快速降低损失函数(loss function)值。后者通过修剪弱连接和再训练来精简神经网络结构;实验表明, 这种修剪过程可以有效的降低存储和计算能耗。此外,生长和修剪过程针对卷积层都有特殊的设计。

a89d6915f0763d7171ff50cf820c6af193a046f7

算法主体由两部分组成: 基于梯度的生长(gradient-based growth) 和基于强度的修剪(magnitude-based pruning)

实验结果表明,对于线性分类器、SVM等多种种子结构,这种算法都能自动生成高性能的神经网络,并实现超高效压缩。在LeNet-5上,该算法取得了74.3x (43.7x)的参数数量(浮点运算数量)的压缩率。在AlexNet上,对应的数值为15.7x (4.6x)。在不影响精度的前提下,这些压缩比均为当前最好纪录。

d340e4fa420a258b272a41857a2a3da4a2dea1a4

在LeNet-5上,该算法取得了74.3x (43.7x)的参数数量(浮点运算数量)的压缩率。在AlexNet上,对应的数值为15.7x (4.6x)。

三大特性,克服传统神经网络压缩局限

目前主流的神经网络压缩方法是单纯的修剪。而普林斯顿研究者发现,在相同的修剪(pruning)方式下,修剪前相对大的神经网络,修剪之后仍然比较大。这意味着传统的修剪方法具有很大的局限性: 对于修剪前本身很冗余(redundant)的神经网络,再好的修剪也回天无力;反之,如果修剪前的神经网络已经很精简(compact),那么修剪则为锦上添花,并最终实现超高效的压缩

69981afd2b7e54e66aba710a01d4cdce0131735c

研究者所提出的算法主要是受到了人脑的三个特性的启发:

1、动态连接:人类的学习过程,本质是大脑神经元连接方式的动态改变。然而目前的神经网络学习方式只是权重的调整。因此,研究者模仿人脑的学习机制,在训练过程中根据梯度动态调整神经元的连接方式来实现梯度下降。普林斯顿的研究人员证明,这种学习方式比单纯的权重训练更加有效

2、数量演化:人脑在不同年龄段有着不同的神经突触数量。从出生开始,人脑神经元逐步增长,在一岁左右达到峰值,随后稳定下降。研究者模仿这一机制,让神经网络在生长过程中,不断生成新的神经元和对应连接来提高性能,在修剪过程中不断移除冗余的神经元和连接来降低能耗。这种网络的神经元连接数量随训练时间发生变化,与人脑神经元随年龄增长发生的变化几乎完全吻合。

fe93bfe91ebaa896813dd624d8234a07106e4a2d

3、稀疏特性:人脑单次推理(inference)通常只有很少量的神经元处于活跃状态,这也是人脑能以很低的功率(<20瓦)运行的原因。然而目前主流的神经网络仍然是全连接(fully connected)。为了实现稀疏性,研究者提出了多种不同的修剪方式,以及对卷积层的局部卷积算法(partial-area convolution),从而实现了在精度不变的前提下,参量和浮点计算数量的大幅减少。

目前,研究者正在将这一方法拓展到RNN、LSTM和强化学习(reinforcement learning)。同时,他们也在研究如何将这一方法应用于在线学习(online learning)和终生学习(lifelong learning)。

论文:NeST:基于生长-修剪范式的神经网络合成工具

d99a396c51b98850d12f817db14316dcdca91836


摘要

神经网络(NN)已经开始对机器学习的各种应用产生广泛的影响。然而,为大型应用寻找最佳NN架构的问题几十年来一直没有得到很好解决。传统方法通过大量试错来寻找最佳的NN架构。这种过程非常低效。此外,生成的NN架构会产生相当大的冗余。为了解决这些问题,我们提出了一个NN合成工具(NeST),它可以为给定的数据集自动生成非常紧凑的结构。NeST从种子NN结构开始,通过基于梯度的生长(growth)和基于神经连接强度(magnitude)的神经元修剪,不断迭代调整架构。实验结果表明,在大范围的种子结构选择中,NeST都生成了高精度且非常紧凑的神经网络。例如,对于MNIST数据集的LeNet-300-100(LeNet-5)NN架构,我们将网络参数减少了34.1倍(74.3倍),将浮点运算(FLOPs)减少了35.8倍(43.7倍)。对于ImageNet数据集的AlexNet NN结构,我们将网络参数减少了15.7倍,FLOP减少了4.6倍。所有这些结果都是这些结构当前最佳记录。


原文发布时间为:2017-11-14

本文作者:闻菲

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【两项业界最佳】普林斯顿新算法自动生成高性能神经网络,同时超高效压缩

相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
131 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
353 55
|
12天前
|
算法 安全 大数据
【算法合规新时代】企业如何把握“清朗·网络平台算法典型问题治理”专项行动?
在数字化时代,算法推动社会发展,但也带来了信息茧房、大数据杀熟等问题。中央网信办发布《关于开展“清朗·网络平台算法典型问题治理”专项行动的通知》,针对六大算法问题进行整治,明确企业需落实算法安全主体责任,建立健全审核与管理制度,并对算法进行全面审查和备案。企业应积极自查自纠,确保算法合规透明,防范风险,迎接新机遇。
|
2月前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
208 80
|
4天前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
|
4天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
1月前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
1月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
213 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
2月前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。

热门文章

最新文章