爱吧机器人网 » 技术 > 神经网络 > 正文

CNN经典论文研读之VGG网络及其tensorflow实现

在前两期的论文研读中,笔者和大家一起学习了 LeNet-5 和 AlexNet 这两个经典的卷积神经网络结构和基本实现方式。今天我们继续 CNN 经典论文研读之路——VGGNet。VGGNet 是牛津大学计算机视觉组(Visual Geometry Group)和谷歌 DeepMind 一起研究出来的深度卷积神经网络,因而冠名为 VGG。在2014年的 ILSVRC 中取得了第二名的成绩,可能你会问这么厉害的网络为什么不是第一名,因为当年实际提交 VGG 版本时作者并未作进一步的优化,而当年的第一名则是我们后面要继续研读的 Google Inception Net。



相较于之前的 LeNet-5 和 AlexNet,VGGNet 结构中大量使用 3x3 的卷积核和 2x2 的池化核,首次将卷积神经网络的卷积深度推向更深,最为典型的 VGGNet 是 VGG16 和 VGG19,其中的 16 的含义即网络中包含16个卷积层和全连接层, 19即即网络中包含19个卷积层和全连接层。VGGNet 的网络虽然开始加深但其结构并不复杂,但作者的实践却证明了卷积网络深度的重要性。深度卷积网络能够提取图像低层次、中层次和高层次的特征,因而网络结构需要的一定的深度来提取图像不同层次的特征。

VGG的网络结构

在论文中,作者使用了 A-E 五个不同深度水平的卷积网络进行试验,从A到E网络深度不断加深:


各结构网络所含训练参数:

其中 D 和 E 即我们常说的 VGG16 和 VGG19。可以看到 VGG16 网络需要训练的参数数量达到了 1.38 亿个,这个数量是巨大的。我们以 VGG16 为例简单探究一下它的网络结构。
VGG16 各层的结构和参数如下:
C1-1层是个卷积层,其输入输出结构如下:
输入: 224 x 224 x 3  滤波器大小: 3 x 3 x 3   滤波器个数:64
输出: 224 x 224 x 64
C1-2层是个卷积层,其输入输出结构如下:
输入: 224 x 224 x 3  滤波器大小: 3 x 3 x 3   滤波器个数:64
输出: 224 x 224 x 64
P1层是C1-2后面的池化层,其输入输出结构如下:
输入: 224 x 224 x 64  滤波器大小: 2 x 2   滤波器个数:64
输出: 112 x 112 x 64
C2-1层是个卷积层,其输入输出结构如下:
输入: 112 x 112 x 64  滤波器大小: 3 x 3 x 64  滤波器个数:128
输出: 112 x 112 x 128
C2-2层是个卷积层,其输入输出结构如下:
输入: 112 x 112 x 64  滤波器大小: 3 x 3 x 64  滤波器个数:128
输出: 112 x 112 x 128
P2层是C2-2后面的池化层,其输入输出结构如下:
输入: 112 x 112 x 128 滤波器大小: 2 x 2   滤波器个数:128
输出: 56 x 56 x 128

C3-1层是个卷积层,其输入输出结构如下:
输入: 56 x 56 x 128  滤波器大小: 3 x 3 x 128  滤波器个数:256
输出: 56 x 56 x 256
C3-2层是个卷积层,其输入输出结构如下:
输入: 56 x 56 x 256  滤波器大小: 3 x 3 x 256  滤波器个数:256
输出: 56 x 56 x 256
C3-3层是个卷积层,其输入输出结构如下:
输入: 56 x 56 x 256  滤波器大小: 3 x 3 x 256  滤波器个数:256
输出: 56 x 56 x 256
P3层是C3-3后面的池化层,其输入输出结构如下:
输入: 56 x 56 x 256  滤波器大小: 2 x 2    滤波器个数:256
输出: 28 x 28 x 256
C4-1层是个卷积层,其输入输出结构如下:
输入: 28 x 28 x 256  滤波器大小: 3 x 3 x 256  滤波器个数:512
输出: 28 x 28 x 512
C4-2层是个卷积层,其输入输出结构如下:
输入: 28 x 28 x 512  滤波器大小: 3 x 3 x 256  滤波器个数:512
输出: 28 x 28 x 512
C4-3层是个卷积层,其输入输出结构如下:
输入: 28 x 28 x 512  滤波器大小: 3 x 3 x 256  滤波器个数:512
输出: 28 x 28 x 512
P4层是C4-3后面的池化层,其输入输出结构如下:
输入: 28 x 28 x 512 滤波器大小: 2 x 2    滤波器个数:512
输出: 14 x 14 x 512

C5-1层是个卷积层,其输入输出结构如下:
输入: 14 x 14 x 512  滤波器大小: 3 x 3 x 512  滤波器个数:512
输出: 14 x 14 x 512
C5-2层是个卷积层,其输入输出结构如下:
输入: 14 x 14 x 512  滤波器大小: 3 x 3 x 512  滤波器个数:512
输出: 14 x 14 x 512
C5-3层是个卷积层,其输入输出结构如下:
输入: 14 x 14 x 512  滤波器大小: 3 x 3 x 512  滤波器个数:512
输出: 14 x 14 x 512
P5层是C5-3后面的池化层,其输入输出结构如下:
输入: 14 x 14 x 512 滤波器大小: 2 x 2    滤波器个数:512
输出: 7 x 7 x 512
F6层是个全连接层,其输入输出结构如下:
输入:4096
输出:4096
F7层是个全连接层,其输入输出结构如下:
输入:4096
输出:4096
F8层也是个全连接层,即输出层,其输入输出结构如下:
输入:4096
输出:1000
大致过程如 NG 老师的演示图:


从上述的 VGG 结构分析中,我们可以看到这种网络结构非常规整,2-2-3-3-3的卷积结构也非常利于编程实现。卷积层的滤波器数量的变化也存在明显的规律,由64到128再到256和512,每一次卷积都是像素成规律的减少和通道数成规律的增加。

VGG16 的简单实现

原本自己利用 Tensoflow 简单写了个 VGG16 的网络结构,但去谷歌一搜发现别人的代码写的实在太好了,以至于这里就不用自己代码展示 VGG16 了。编写的思路无非就是定义卷积过程、池化过程和全连接过程,然后将其封装到 VGG16 的模型函数中去,其中注意一些编写细节即可。
笔者自己写的部分代码截图:


GitHub 上大佬的开源实现:

https://gist.github.com/ksimonyan/211839e770f7b538e2d8#file-readme-md




参考资料:
https://www.coursera.org/learn/machine-learning
https://www.deeplearning.ai/
https://gist.github.com/ksimonyan/211839e770f7b538e2d8#file-readme-md
黄文坚 tensorflow实战


上一篇:50行代码玩转生成对抗网络GAN模型!(附源码)
下一篇:实战深度强化学习DQN-理论和实践
精选推荐
亚马逊计划建一个4000万美元的机器人中心
亚马逊计划建一个4000万美元的机器人中心

[2019-11-07]  爱吧机器人网消息,亚马逊11月6日宣布了一项计划,计划在美国马萨诸塞州韦斯特伯勒建立一个4000万美元、35万平方英尺的机器人创新中心。新 ...

受大脑控制的机器人
受大脑控制的机器人

[2017-03-21]   想让机器人做我们想做的,首先,他得全面地了解我们。通常,这就意味着人类需要要付出更多。比如,教机器人复杂的人类语言或者把一项任务 ...

英伟达用联合学习创建医学影像AI 可共享数据和保护隐私
英伟达用联合学习创建医学影像AI 可共享数据和保护隐私

[2019-10-14]  英伟达(Nvidia)和伦敦国王学院(King’s College London)的人工智能研究人员利用联合学习训练了一种用于脑肿瘤分类的神经网络, ...

集群机器人领域最新研究:一种用于探测未知环境的微型无人机群
集群机器人领域最新研究:一种用于探测未知环境的微型无人机群

[2019-10-26]  (图:无人机扩散至不同方向来探索环境。当一个无人机注意到另一个无人机在它的首选方向,它将试图飞到另一个方向。若首选方向冲突,低优先 ...

MIT用深度学习处理3D点云数据 应用于无人汽车等领域
MIT用深度学习处理3D点云数据 应用于无人汽车等领域

[2019-10-23]  如果你见过自动驾驶汽车,也许会对车顶上那个一直在旋转的圆柱体感到好奇。这是一个雷达传感器,无人驾驶汽车依靠它在现实世界中进行导航。 ...

人工神经网络技术解码人类行为和想象时的大脑活动信号
人工神经网络技术解码人类行为和想象时的大脑活动信号

[2017-08-23]  为搜索引擎过滤信息,棋盘游戏对弈,识别图像 人工智能在某些任务中远远超过了人类智能。来自弗莱堡由神经科学家私人讲师Tonio Ball博士领导的几个杰出的BrainLinks-Bra......

2018年企业数字化转型的五大趋势
2018年企业数字化转型的五大趋势

[2017-12-16]  据2016年哈佛商学院研究表明,选择进行数字化转型的企业在3年内表现出了55%的平均毛利润提升,相比之下其他企业毛利润同期降低了37%。数字化转型企业的领头羊,也曾是收入处于......

这个外科手术机器人可以为患者“量身定制”
这个外科手术机器人可以为患者“量身定制”

[2019-07-12]  世界首创,来自澳大利亚机器人视觉研究中心的研究人员正在推动手术机器人的发展边界,他们创造了可定制的、小型化的手术机器人,能够唯一地 ...

本周栏目热点

飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

[2020-03-26]  11 年前的「阿凡达」让少年的我们第一次戴上 3D 眼镜,声势浩大的瀑布奔流而下,星罗棋布飘浮在空中的群山,无一不体现着对生命的敬意, ...

从基础概念到数学公式,这是一份520页的机器学习笔记(图文并茂)

[2018-06-19]  近日,来自SAP(全球第一大商业软件公司)的梁劲(Jim Liang)公开了自己所写的一份 520 页的学习教程(英文版),详细、明了地介绍了机器学习中的相关概念、数学知识和各......

50行代码玩转生成对抗网络GAN模型!(附源码)

[2018-07-30]  本文为大家介绍了生成对抗网络(Generate Adversarial Network,GAN),以最直白的语言来讲解它,最后实现一个简单的 GAN 程序来帮助大家加深理解。...

神经网络和模糊逻辑的工作流

[2016-11-20]   行业观察 神经网络 和模糊逻辑的工作流 null 来源:神州数码erp 发布时间: 2009-10-14 9:06:01 关键词: 工作流,协同,B2B,OA  以下 ...

深度神经网络揭示了大脑喜欢看什么

[2019-11-06]  爱吧机器人网编者按:近日,《自然-神经科学》发表了一篇论文,研究人员创建了一种深度人工神经网络,能够准确预测生物大脑对视觉刺激所产 ...