DenseNet是一种结构特殊的卷积神经网络,它的特点是在神经网络的前向传递中,每一层都和前面的所有层直接连接,每层的输入来自于之前所有层的输出。一个普通的有L层的神经网络会产生L个层与层之间的连接,而同样是L层的DenseNet则会因为它层与层相互连接的特点,产生多达$\frac{L(L+1)}{2}$ 个连接。
图1 一个典型DenseNet结构示意图
图片来源:Figure 1, Huang, G., Liu, Z., Van Der Maaten, L., & Weinberger, K. Q. (2017, July). Densely connected convolutional networks. In CVPR (Vol. 1, No. 2, p. 3).
接下来举例说明,图1所示即为一个典型的DenseNet结构,图中一共可以看到5层网络,其中最左上方是输入层(input layer),剩下4层是隐藏层(hidden layer)。输入层会输出数据,隐藏层会输出特征图(feature map)。对于每个隐层来说,之前的所有层的输出会作为本层输入的一部分。从图1可以看到 ,每个隐藏层都会产生4个特征图,DenseNet把每个隐藏层都称为一个稠密块(Dense Block),而隐藏层产生的特征图的数量被定义为生长率(growth rate),用小写字母k表示,每个隐层产生4个特征图就是k=4。
当然,我们还可以进一步地优化DenseNet。从上面我们知道,DenseNet的每一层需要处理的输入数据非常多,不仅有来自于输入层的数据,还有之前的每个隐层的特征图。例如对于图1中的最右下角的隐层,它不仅要接收输入层数据,还要接收前面3个隐层产生的一共12个特征图。这就存在两个问题,第一个是特征图的数量太多,第二个是每个特征图的大小也不一致。
我们接下来针对这两个问题对DenseNet进行优化。首先,对于特征图的数量问题,我们可以设置一个在(0,1]区间的压缩率Θ,原来每个稠密快(Dense Block)有m个特征图,现在只接收其中Θ*m个特征图就行了。其次,对于特征图的大小问题,那就更简单了,使用卷积或者池化操作对特征图进行下采样(down sampling)就可以了。当然根据需要,还可以加入其他神经网络中常用的优化方法,比如说批标准化
(Batch Normalization)。
改进的DenseNet拥有非常多的优点:①相比于普通的卷积神经网络,DenseNet的特殊结构既可以减少深度网络面临的梯度消失问题,又因为对特征图的反复利用强化了网络的“理解能力”;②相比于深度残差网络(ResNet),达到同样的准确率,需要学习的参数数量远低于ResNet。
[描述来源:Huang, G., Liu, Z., Van Der Maaten, L., & Weinberger, K. Q. (2017, July). Densely connected convolutional networks. In CVPR (Vol. 1, No. 2, p. 3).
URL:https://arxiv.org/pdf/1608.06993.pdf]
发展历史
描述
1989年,LeCun等人首次提出卷积神经网络,1998年他们构造了5层的LeNet网络应用在文档识别,但是受制于当时计算机的硬件水平,神经网络的“深度”还不够。直到近年来,Highway Networks和深度残差网络才让神经网络变成了真正的深度神经网络,网络深度轻易可以达到100层以上。
但是深度神经网络的发展也带来更多的挑战,比如说梯度消失,学习效率的问题,在这一领域不断有新的成果出现。2016年Huang等人提出的Stochastic Depth通过随机丢弃ResNet中的层,提高了梯度流动效率和训练的准确率。2017年,Larsson等人提出的FractalNets按照不同顺序,反复组合各个层,从另一角度实现了深度的神经网络。同年,Huang等人提出了我们这里讲的DenseNet及其改进版本。总之,这些深度神经网络都有着一个相同的优化思路,就是尽可能在距离较远的神经网络层之间建立一种“捷径”,让他们直接可以高效地直接进行数据的交换,从而解决网络过深带来的问题,相信未来我们会在这一领域看到更多令人惊喜的研究成果。
主要事件
年份 | 事件 | 相关论文/Reference |
1989 | LeCun等人首次提出卷积神经网络的思想 | LeCun, Y., Boser, B., Denker, J. S., Henderson, D., Howard, R. E., Hubbard, W., & Jackel, L. D. (1989). Backpropagation applied to handwritten zip code recognition. Neural computation, 1(4), 541-551. |
1998 | LeCun等人提出LeNet5,这是一个只有5层的神经网络 | LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278-2324. |
2015 | Simonyan等人提出VGG | Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556. |
2015 | Srivastava提出Highway Networks, 拓展神经网络的深度 | Srivastava, R. K., Greff, K., & Schmidhuber, J. (2015). Training very deep networks. In Advances in neural information processing systems (pp. 2377-2385). |
2016 | He等人提出深度残差网络,深度神经网络也可以更加有效地训练学习 | He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778). |
2016 | Huang等人提出Stochastic Depth改进ResNet | Huang, G., Sun, Y., Liu, Z., Sedra, D., & Weinberger, K. Q. (2016, October). Deep networks with stochastic depth. In European Conference on Computer Vision (pp. 646-661). Springer, Cham. |
2016 | Larsson等人提出Fractalnet深度神经网络 | Larsson, G., Maire, M., & Shakhnarovich, G. (2016). Fractalnet: Ultra-deep neural networks without residuals. arXiv preprint arXiv:1605.07648. |
2017 | Huang等人提出DenseNet及其改进版本 | Huang, G., Liu, Z., Van Der Maaten, L., & Weinberger, K. Q. (2017, July). Densely connected convolutional networks. In CVPR (Vol. 1, No. 2, p. 3). |
发展分析
瓶颈
深度神经网络的发展面临众多挑战,尽管近年来计算机运算能力有了显著的提升,但是对于越来越深的网络结构和互联网时代人类以指数级速度产生的超大规模数据,即使强如超级计算机也会面临工作效率的问题。还有深度神经网络在训练过程中常见的梯度消失,显存占用大等问题也是目前发展的瓶颈所在。
未来发展方向
①优化深度神经网络的核心思路,就是尽可能在距离较远的神经网络层之间建立一种“捷径”,让他们直接可以高效地直接进行数据的交换,从而解决网络过深带来的问题。②发展速度更快的计算机,比如量子计算机,如果可以实现,那将是一个全新的数据时代。
Contributor: Keyu Qi