【AI不惑境】网络的宽度如何影响深度学习模型的性能?

article/2025/11/9 20:24:51

大家好,这是专栏《AI不惑境》的第三篇文章,讲述模型宽度与模型性能的关系。

进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程,那么到这个阶段,应该跃过了模仿和追随的阶段,进入了创造的阶段。从这个境界开始,讲述的问题可能不再有答案,更多的是激发大家一起来思考。

作者&编辑 | 言有三 

上一期咱们说到深度学习模型之所以在各种任务中取得了成功,足够的网络深度起到了很关键的作用。


在一定的程度上,网络越深,性能越好。这一次我们来考虑另一个维度,宽度,即通道(channel)的数量。注意我们这里说的和宽度学习一类的模型没有关系,而是特指深度卷积神经网络的宽度。


1 为什么需要足够的宽度

网络更深带来的一个非常大的好处,就是逐层的抽象,不断精炼提取知识,如下图第一层学习到了边缘,第二层学习到了简单的形状,第三层开始学习到了目标的形状,更深的网络层能学习到更加复杂的表达。如果只有一层,那就意味着要学习的变换非常的复杂,这很难做到。

640?wx_fmt=jpeg

而宽度就起到了另外一个作用,那就是让每一层学习到更加丰富的特征,比如不同方向,不同频率的纹理特征。


下面是AlexNet模型的第一个卷积层的96个通道,尽管其中有一些形状和纹理相似的卷积核(这将成为优化宽度的关键),还是可以看到各种各种的模式。

640?wx_fmt=png

因为该卷积层的输入是RGB彩色图,所以这里就将其可视化为3通道的彩色图,每一个大小是11*11。


有的是彩色有的是灰色,说明有的侧重于提取纹理信息,有的侧重于提取颜色信息。

可以发现卷积核可视化之后和Gabor特征算子其实很像。Gabor特征算子就是使用一系列不同频率的Gabor滤波核与图像卷积,得到图像上的每个点和附近区域的频率分布。通常有8个方向,5个尺度。


太窄的网络,每一层能捕获的模式有限,此时网络再深都不可能提取到足够的信息往下层传递。

2 网络到底需要多宽

那么一个网络是越宽越好吗?我们又该如何利用好宽度呢?

2.1、网络宽度的下限在哪?

就算一个网络越宽越好,我们也希望效率越高越好,因为宽度带来的计算量是成平方数增长的。我们知道对于一个模型来说,浅层的特征非常重要,因此网络浅层的宽度是一个非常敏感的系数,那么发展了这么久,那些经典的网络第一个卷积层的宽度都是多少呢?

640?wx_fmt=png

从AlexNet的96层到Vgg,Resnet等多数网络使用的64层,到高效网络Mobilenet的32层和Shufflenet的24层,似乎已经探到了下限,再往下性能就无法通过其他的方法来弥补了。


前次我们说过有许多的研究都验证了网络必须具有足够的深度才能逼近一些函数,比如文[1]中构造的3层网络,如果想要2层网络能够逼近表达能力,宽度会是指数级的增加。

那么反过来,是不是也有一些函数只有足够宽才能够表达呢?

针对网络宽度的研究虽不如网络深度多,但是也有学者做了相关研究。文[2]中就提出了任何Lebesgue-integrable函数,不能被一个宽度小于n的ReLU网络逼近,n是输入的维度,Lebesgue-integrable函数就是满足下面积分条件的函数。

640?wx_fmt=png

不过与深度不同的是,这样的一些函数宽度减少后,用于补偿模型性能的深度不是呈指数级增长,而是多项式增长,这似乎反应了宽度并没有深度那么重要。

不过不管怎么样,当前研究者们都从理论上探索了宽度和深度的下限,表明宽度和深度是缺一不可的。

2.2、网络宽度对模型性能的影响

网络的宽度自然也不是越宽越好,下面我们看看网络的宽度带来的性能提升。

我们看一下Mobilenet网络的结果,Mobilenet研究了网络的宽度对性能的影响,通过一个乘因子来对每一层的宽度进行缩放,它们试验了1, 0.75, 0.5和0.25共4个值。

640?wx_fmt=png

从上面结果可以看得出来,性能是持续下降的。


那么,是不是网络越宽越好呢?下面我们还是通过几个实验来证明就是了。公开论文中使用的ImageNet等数据集研究者已经做过很多实验了,我们另外选了两个数据集和一个全卷积模型。

第一个数据集是GHIM数据集,第二个数据集是从Place20中选择了20个类别,可见两者一个比较简单,一个比较困难。


使用全卷积模型的基准结构,包含5层卷积和一个全连接层, 因此我们称其为allconv6吧,表示深度为6的一个卷积网络。

640?wx_fmt=png

对这个网络的各个卷积层,我们也设置了不同的参数配置如下,每一个卷积层的stride都等于2。

640?wx_fmt=png

首先我们比较Allconv6_1,Allconv6_2,Allconv6_3,Allconv6_4这4个模型和基准模型的结果,它们是以Allconv6_1为基础的模型。

Allconv6_1是各个通道数为baseline的四分之一的网络,而Allconv6_2,Allconv6_3,Allconv6_4分别是将Allconv6_1的第1,2层,第3,4层,第5层卷积通道数加倍的网络。

在GHIM数据集上的收敛结果如下:

640?wx_fmt=png

从上图结果可以看出,基准模型allconv6的性能最好,allconv6_2,allconv6_3,allconv6_4的模型性能都超过allconv6_1,说明此时增加任何一个网络层的通道数都有益于模型性能的提升,而且性能仍旧未超过基准模型。

然后我们再看allconv6_5,allconv6_6,allconv6_7,allconv6_8与基准模型的对比,allconv6_5的各层的通道数只有baseline模型的一半

640?wx_fmt=png

从上图可以看出,模型的性能相差不大,这说明allconv6_5已经有足够好的宽度,再增加无益于性能的提升。这一点可以通过Place20上的实验结果进行证明,结果如下:

640?wx_fmt=png

2.3、网络宽度和深度谁更加重要?

这个问题目前没有答案,两者都很重要,不过目前的研究是模型性能对深度更加敏感,而调整宽度更加有利于提升模型性能。

Mobilenet的作者们将深层更窄的网络和浅层更宽的网络进行了对比,去掉了conv5_2到conv5_6这5层不改变分辨率的depth seperable卷积块,结果对比如下:

640?wx_fmt=png

更窄的网络拥有了更少的参数和更好的性能,这似乎也验证了增加网络的深度比增加网络的宽度更有利于提升性能。

在Wide Resnet网络中,作者们在CIFAR10和CIFAR100上用参数只是稍微增加的一个16层的宽网络取得了比1000层的窄网络更好的性能,而且计算代价更低。在ImageNet上50层的宽Resnet在参数增加少量的基础上,也比相应的ResNet152层的性能更好。

640?wx_fmt=png

另一方面,宽度相对于深度对GPU也更加友好,因为GPU是并行处理的,许多研究也表明加宽网络比加深网络也更加容易训练。

没有谁更重要,根据笔者的经验,我们应该优先调整网络的宽度。

3 如何更加有效地利用宽度?

从前面的结果我们可知,网络的宽度是非常关键的参数,它体现在两个方面:(1) 宽度对计算量的贡献非常大。(2)宽度对性能的影响非常大。


我们的追求当然是越窄同时性能越高的网络,确实很贪婪,不过这是要实现的目标,可以从以下几个方向入手。


3.1、提高每一层通道的利用率

宽度既然这么重要,那么每一个通道就要好好利用起来,所以,第一个发力点,便是提高每一层的通道利用率。下面我们首先观察一下AlexNet网络的第一个卷积层。

640?wx_fmt=png

看出来了吧,有些卷积核很相似,相互之间可以通过反转得到,比如前面两个,那么就只需要学习一个就行了,这便是网络参数互补现象,如果将减半后的通道补上它的反,会基本上相当于原有的模型。

基于这个原理,文[3]便是通过输入通道取反和输入通道进行concat的方式来扩充通道。这样仅仅以原来一半的计算量便维持了原来的网络宽度和性能。


3.2、用其他通道的信息来补偿

这个思想在DenseNet[4]网络中被发挥地淋漓尽致。DenseNet网络通过各层之间进行concat,可以在输入层保持非常小的通道数的配置下,实现高性能的网络。

640?wx_fmt=png

这一次的网络宽度对模型性能的影响就说到这里,更多请大家至我的知乎live中交流。

参考文献


[1] Eldan R, Shamir O. The power of depth for feedforward neural networks[C]//Conference on learning theory. 2016: 907-940.

[2] Lu Z, Pu H, Wang F, et al. The expressive power of neural networks: A view from the width[C]//Advances in Neural Information Processing Systems. 2017: 6231-6239.

[3] Shang W, Sohn K, Almeida D, et al. Understanding and improving convolutional neural networks via concatenated rectified linear units[C]//international conference on machine learning. 2016: 2217-2225.

[4] Huang G, Liu Z, Van Der Maaten L, et al. Densely connected convolutional networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4700-4708.

总结

深度学习成功的关键在于深,但是我们也不能忘了它的宽度,即通道数目,这对于模型性能的影响不亚于深度,在计算量上的影响甚至尤比深度更加重要。


下期预告:学习率和batchsize如何影响模型的性能。

本周直播

640?wx_fmt=png

今日看图猜技术

640?wx_fmt=png

今日AI1000问

640?wx_fmt=png

有三AI生态

640?wx_fmt=png

640?wx_fmt=png

转载文章请后台联系

侵权必究

更多请关注知乎专栏《有三AI学院》

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

  • 【AI不惑境】数据压榨有多狠,人工智能就有多成功

  • 【AI不惑境】网络深度对深度学习模型性能有什么影响?

  • 【AI白身境】深度学习从弃用windows开始

  • 【AI白身境】Linux干活三板斧,shell、vim和git

  • 【AI白身境】学AI必备的python基础

  • 【AI白身境】深度学习必备图像基础

  • 【AI白身境】搞计算机视觉必备的OpenCV入门基础

  • 【AI白身境】只会用Python?g++,CMake和Makefile了解一下

  • 【AI白身境】学深度学习你不得不知的爬虫基础

  • 【AI白身境】深度学习中的数据可视化

  • 【AI白身境】入行AI需要什么数学基础:左手矩阵论,右手微积分

  • 【AI白身境】一文览尽计算机视觉研究方向

  • 【AI白身境】AI+,都加在哪些应用领域了

  • 【AI白身境】究竟谁是paper之王,全球前10的计算机科学家

  • 【AI初识境】从3次人工智能潮起潮落说起

  • 【AI初识境】从头理解神经网络-内行与外行的分水岭

  • 【AI初识境】近20年深度学习在图像领域的重要进展节点

  • 【AI初识境】激活函数:从人工设计到自动搜索

  • 【AI初识境】什么是深度学习成功的开始?参数初始化

  • 【AI初识境】深度学习模型中的Normalization,你懂了多少?

  • 【AI初识境】为了围剿SGD大家这些年想过的那十几招

  • 【AI初识境】被Hinton,DeepMind和斯坦福嫌弃的池化,到底是什么?

  • 【AI初识境】如何增加深度学习模型的泛化能力

  • 【AI初识境】深度学习模型评估,从图像分类到生成模型

  • 【AI初识境】深度学习中常用的损失函数有哪些?

  • 【AI初识境】给深度学习新手做项目的10个建议

  • 【完结】深度学习CV算法工程师从入门到初级面试有多远,大概是25篇文章的距离

  • 【完结】优秀的深度学习从业者都有哪些优秀的习惯

  • 【完结】给新手的12大深度学习开源框架快速入门项目

  • 【完结】总结12大CNN主流模型架构设计思想

  • 【完结】中国12大AI研究院,高调的低调的你pick谁


http://chatgpt.dhexx.cn/article/OJ7K9VD3.shtml

相关文章

CSS:宽高自适应详解

宽度自适应的应用 1.属性:width 2.属性值:px/% 3.宽度自适应的特点 - HTML,BODY表示浏览器,默认是块级元素,宽度是100% - 当块级元素不设置宽度或者设置100%的时候,宽度会沾满全屏(通栏效果) - 子级是块级元素,不设置宽度的时候会和父级等…

陈俊龙:从深度强化学习到宽度强化学习—结构,算法,机遇及挑战

来源:AI科技评论 摘要:如何赋予机器自主学习的能力,一直是人工智能领域的研究热点。 强化学习与宽度学习 如何赋予机器自主学习的能力,一直是人工智能领域的研究热点。在越来越多的复杂现实场景任务中,需要利用深度学习…

网络的宽度对深度学习模型的性能影响

目录 1 为什么需要足够的宽度 2,经典网络的第一层的宽度 3,宽度对模型性能的影响 4 如何更加有效地利用宽度 4.1 提高每一层通道的利用率 4.2 用其他通道的信息来补偿 5 经典网络模型宽度设计方法 5.1 采用多分支网络结构设计 1)ResN…

深度学习笔记(七):网络宽度(卷积核个数)的一些想法

文章目录 一、前言二、网络深度的意义三、宽度的意义四、 网络宽度设计4.1 网络宽度的下限在哪?4.2 网络宽度对模型性能的影响4.3 网络宽度和深度谁更加重要? 五、如何加有效地利用宽度?5.1 提高每一层通道的利用率5.2 用其他通道的信息来补偿…

宽度 深度学习 特点对比

宽度 & 深度学习 特点对比 推荐系统模型介绍实验过程与实验结果实验总结 为了提高神经网络的性能,是应该增加宽度呢?还是应该增加深度呢?增加宽度和增加深度各有什么样的效果呢? 本文对论文《Wide & Deep Learning for Re…

为什么是“深度”学习而不是宽度?

为什么是深度而不是宽度? 先说说我个人的理解,如下图所示,圆圈表示神经元,有两种方式。第一种,只有一层神经层,有8个神经元;第二种方式,有两层神经层,分别有2个和4个神经…

宽度学习系统:一种不需要深度结构的高效增量学习系统

宽度学习系统:一种不需要深度结构的高效增量学习系统 本文是对陈俊龙教授团队“Broad Learning System: An Effective and Efficient Incremental Learning System Without the Need for Deep Architecture”的中文综述,原文将在IEEE Transactions on Neu…

网络的宽度如何影响深度学习模型的性能?

大家好,这是专栏《AI不惑境》的第三篇文章,讲述模型宽度与模型性能的关系。 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程&#xff0…

宽度学习代码的一些问题

最近在拜读陈院士的宽度学习论文,受益匪浅,在此先感谢陈院士团队的开源代码! 在复现代码的过程中,发现了一些小问题,在此记录,方便自己日后翻阅。 此博客仅代表个人观点,姑且算作个人读书笔记…

DeepLearning | Broad Learning System 宽度学习系统 : 高效增量式浅层神经网络

Broad Learning System (BLS,宽度学习系统)是澳门大学的陈俊龙教授在2017年TNNLS上基于随机向量函数链接神经网络(RVFLNN)和单层前馈神经网络(SLFN)提出的一种单层增量式神经网络。这个模型相比于传统的深层网络模型,它在保证一定精度的同时,…

宽度学习系统(BLS)的原理、变体形式及当前应用(随时更新......)

ABSTRACT 近年来深度学习迅猛在各个研究领域发展发展,新的模型结构不断涌现,且有层数逐渐加深的趋势。然而深度模型往往有数量过于庞大的待优化参数,通常需要耗费大量的时间和机器资源来进行优化,而且不能根据需求及输入的变化进行…

为什么要做深度学习而不是宽度学习?

点击此处返回总目录 前面在深度学习介绍的最后有留下一个疑问。我们为什么要deep learning。 我们说,变深了,参数增多,model变复杂,performance变好,是很正常的。 所以,真…

宽度学习学习笔记

宽度学习笔记 随机向量函数链接网络(RVFLNN)增强节点权值计算Greville 定理 宽度学习系统(Broad Learning System)数据处理简单BLS增强节点的增量学习特征节点的增量学习输入的增量学习SVD 参考论文: Broad Learning …

宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统

Motivation 深度学习: 1,时间长:由于涉及到大量的超参数和复杂的结构,大多数神经网络的训练过程非常耗时。 2,重新训练:如果要更改神经网络的结构,或者增加样本,深度学习系统将遇到一个完整的重新训练过程。 宽度学习: 1,消除了训练过程长的缺点,并且提供了很好的…

第三十七课.宽度学习

目录 前置内容宽度学习的基本结构:RVFLNN宽度学习系统岭回归 前置内容 深度学习计算量过大,成本过高,因此提出宽度学习(BLS,Broad Learning System)。我们首先要知道,BLS的网络结构不是固定的&…

宽度学习详解(Broad Learning System)

宽度学习(Broad Learning System) 1:Introduction1.1:级联相关网络(本节来自周志华《机器学习》)1.2:随机向量函数连接网络(RVFLNN) 2:宽度学习系统(Broad Learning Syst…

七、宽度学习系统Broad Learning System

七、宽度学习系统Broad Learning System 1、宽度学习的发展2、宽度学习系统(BLS)3、 BLS的增量形式1、宽度学习的发展 宽度学习系统(BLS) 的提出最早源于澳门大学科技学院院长陈俊龙和其学生于2018年1月发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,…

宽度学习(Broad Learning System)

一、宽度学习的前世今生 宽度学习系统(BLS) 一词的提出源于澳门大学科技学院院长陈俊龙和其学生于2018年1月发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,VOL. 29, NO. 1 的一篇文章,题目叫《Broad Learnin…

宽度学习(BLS)实战——python复刻MNIST数据集的数据预处理及训练过程

目录 1.宽度学习(Broad Learning System) 2.MNIST数据集 3.复刻MNIST数据集的预处理及训练过程 1.宽度学习(Broad Learning System) 对宽度学习的理解可见于这篇博客宽度学习(Broad Learning System)_颹蕭蕭的博客-CSDN博客_宽度学习 这里不再做详细…

《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)进展同步更新

本博实时更新《Linux设备驱动开发详解(第3版)》的最新进展。 目前已经完成稿件。 2015年8月9日,china-pub开始上线预售: http://product.china-pub.com/4733972 2015年8月20日,各路朋友报喜说已经拿到了书。 本书已经rebase到开发中的Linu…