深度学习(加深网络)
加深网络关于神经网络我们已经学了很多东西比如构成神经网络的各种层、学习时的有效技巧、对图像特别有效的CNN、参数的最优化方法等这些都是深度学习中的重要技术。本节我们将这些已经学过的技术汇总起来创建一个深度网络挑战MNIST数据集的手写数字识别。向更深的网络出发话不多说这里我们来创建一个如图8-1 所示的网络结构的CNN一个比之前的网络都深的网络。这个网络参考了下一节要介绍的VGG。如图8-1 所示这个网络的层比之前实现的网络都更深。这里使用的卷积层全都是3 × 3 的小型滤波器特点是随着层的加深通道数变大卷积层的通道数从前面的层开始按顺序以16、16、32、32、64、64的方式增加。此外如图8-1 所示插入了池化层以逐渐减小中间数据的空间大小并且后面的全连接层中使用了Dropout层。这个网络使用He初始值作为权重的初始值使用Adam更新权重参数。把上述内容总结起来这个网络有如下特点。基于3×3 的小型滤波器的卷积层。激活函数是ReLU。全连接层的后面使用Dropout层。基于Adam的最优化。使用He初始值作为权重初始值。从这些特征中可以看出图8-1 的网络中使用了多个之前介绍的神经网络技术。现在我们使用这个网络进行学习。先说一下结论这个网络的识别精度为99.38% A可以说是非常优秀的性能了图8-1 的网络的错误识别率只有0.62%。这里我们实际看一下在什么样的图像上发生了识别错误。图8-2 中显示了识别错误的例子。)观察图8-2可知这些图像对于我们人类而言也很难判断。实际上这里面有几个图像很难判断是哪个数字即使是我们人类也同样会犯“识别错误”。比如左上角的图像正确解是“6”看上去像“0”它旁边的图像正确解是“3”看上去像“5”。整体上“1”和“7”、“0”和“6”、“3”和“5”的组合比较容易混淆。通过这些例子相信大家可以理解为何会发生识别错误了吧。这次的深度CNN尽管识别精度很高但是对于某些图像也犯了和人类同样的“识别错误”。从这一点上我们也可以感受到深度CNN中蕴藏着巨大的可能性。进一步提高识别精度在一个标题为“What is the class of this image ?”的网站[32] 上以排行榜的形式刊登了目前为止通过论文等渠道发表的针对各种数据集的方法的识别精度图8-3。观察图8-3 的排行结果可以发现“Neural Networks” “Deep”“Convolutional”等关键词特别显眼。实际上排行榜上的前几名大都是基于CNN的方法。顺便说一下截止到2016 年6 月对MNIST数据集的最高识别精度是99.79%错误识别率为0.21%该方法也是以CNN为基础的[33]。不过它用的CNN并不是特别深层的网络卷积层为2 层、全连接层为2 层的网络。对于MNIST 数据集层不用特别深就获得了目前最高的识别精度。一般认为这是因为对于手写数字识别这样一个比较简单的任务没有必要将网络的表现力提高到那么高的程度。因此可以说加深层的好处并不大。而之后要介绍的大规模的一般物体识别的情况因为问题复杂所以加深层对提高识别精度大有裨益。参考刚才排行榜中前几名的方法可以发现进一步提高识别精度的技术和线索。比如集成学习、学习率衰减、Data Augmentation数据扩充等都有助于提高识别精度。尤其是Data Augmentation虽然方法很简单但在提高识别精度上效果显著。Data Augmentation 基于算法“人为地”扩充输入图像训练图像。具体地说如图8-4 所示对于输入图像通过施加旋转、垂直或水平方向上的移动等微小变化增加图像的数量。这在数据集的图像数量有限时尤其有效。除了如图8-4 所示的变形之外Data Augmentation 还可以通过其他各种方法扩充图像比如裁剪图像的 “crop 处理”、将图像左右翻转的“fl ip 处理”A 等。对于一般的图像施加亮度等外观上的变化、放大缩小等尺度上的变化也是有效的。不管怎样通过Data Augmentation巧妙地增加训练图像就可以提高深度学习的识别精度。虽然这个看上去只是一个简单的技巧不过经常会有很好的效果。这里我们不进行Data Augmentation的实现不过这个技巧的实现比较简单有兴趣的读者请自己试一下。加深层的动机关于加深层的重要性现状是理论研究还不够透彻。尽管目前相关理论还比较贫乏但是有几点可以从过往的研究和实验中得以解释虽然有一些直观。本节就加深层的重要性给出一些增补性的数据和说明。首先从以ILSVRC为代表的大规模图像识别的比赛结果中可以看出加深层的重要性详细内容请参考下一节。这种比赛的结果显示最近前几名的方法多是基于深度学习的并且有逐渐加深网络的层的趋势。也就是说可以看到层越深识别性能也越高。下面我们说一下加深层的好处。其中一个好处就是可以减少网络的参数数量。说得详细一点就是与没有加深层的网络相比加深了层的网络可以用更少的参数达到同等水平或者更强的表现力。这一点结合卷积运算中的滤波器大小来思考就好理解了。比如图8-5展示了由5 × 5的滤波器构成的卷积层。这里希望大家考虑一下输出数据的各个节点是从输入数据的哪个区域计算出来的。显然在图8-5 的例子中每个输出节点都是从输入数据的某个5 × 5 的区域算出来的。接下来我们思考一下图8-6 中重复两次3 × 3 的卷积运算的情形。此时每个输出节点将由中间数据的某个3 × 3 的区域计算出来。那么中间数据的3 × 3 的区域又是由前一个输入数据的哪个区域计算出来的呢仔细观察图8-6可知它对应一个5 × 5 的区域。也就是说图8-6 的输出数据是“观察”了输入数据的某个5 × 5 的区域后计算出来的。一次5 × 5 的卷积运算的区域可以由两次3 × 3 的卷积运算抵充。并且相对于前者的参数数量255 × 5后者一共是182 × 3 × 3通过叠加卷积层参数数量减少了。而且这个参数数量之差会随着层的加深而变大。比如重复三次3 × 3 的卷积运算时参数的数量总共是27。而为了用一次卷积运算“观察”与之相同的区域需要一个7 × 7 的滤波器此时的参数数量是49。叠加小型滤波器来加深网络的好处是可以减少参数的数量扩大感受野receptive field给神经元施加变化的某个局部空间区域。并且通过叠加层将ReLU 等激活函数夹在卷积层的中间进一步提高了网络的表现力。这是因为向网络添加了基于激活函数的“非线性”表现力通过非线性函数的叠加可以表现更加复杂的东西。加深层的另一个好处就是使学习更加高效。与没有加深层的网络相比通过加深层可以减少学习数据从而高效地进行学习。为了直观地理解这一点大家可以回忆一下7.6 节的内容。7.6 节中介绍了CNN的卷积层会分层次地提取信息。具体地说在前面的卷积层中神经元会对边缘等简单的形状有响应随着层的加深开始对纹理、物体部件等更加复杂的东西有响应。我们先牢记这个网络的分层结构然后考虑一下 “狗”的识别问题。要用浅层网络解决这个问题的话卷积层需要一下子理解很多“狗”的特征。“狗”有各种各样的种类根据拍摄环境的不同外观变化也很大。因此要理解“狗”的特征需要大量富有差异性的学习数据而这会导致学习需要花费很多时间。不过通过加深网络就可以分层次地分解需要学习的问题。因此各层需要学习的问题就变成了更简单的问题。比如最开始的层只要专注于学习边缘就好这样一来只需用较少的学习数据就可以高效地进行学习。这是为什么呢因为和印有“狗”的照片相比包含边缘的图像数量众多并且边缘的模式比“狗”的模式结构更简单。通过加深层可以分层次地传递信息这一点也很重要。比如因为提取了边缘的层的下一层能够使用边缘的信息所以应该能够高效地学习更加高级的模式。也就是说通过加深层可以将各层要学习的问题分解成容易解决的简单问题从而可以进行高效的学习。以上就是对加深层的重要性的増补性说明。不过这里需要注意的是近几年的深层化是由大数据、计算能力等即便加深层也能正确地进行学习的新技术和环境支撑的。

相关新闻

提示工程架构师如何优化提示系统接口标准设计流程

提示工程架构师如何优化提示系统接口标准设计流程

提示工程架构师指南:优化提示系统接口标准设计流程 第一部分:引言与基础 1. 引人注目的标题 主标题:提示工程架构师指南:优化提示系统接口标准设计流程 副标题:从零到一构建高性能、可扩展的提示系统接口标准 2. 摘要/…

2026/7/6 5:30:56 阅读更多 →
深度学习进阶:手写数字识别99.38%准确率的网络是怎样炼成的?

深度学习进阶:手写数字识别99.38%准确率的网络是怎样炼成的?

深度学习进阶:手写数字识别99.38%准确率的网络是怎样炼成的? 今天我们来聊聊一个非常经典的话题——加深网络。 之前我们学了很多关于神经网络的知识:各种层、技巧、CNN、最优化方法……现在,是时候把这些技术整合起来&#xff…

2026/7/4 16:22:21 阅读更多 →
政务热线语音分析:SenseVoice-Small在12345热线工单自动生成中的落地实践

政务热线语音分析:SenseVoice-Small在12345热线工单自动生成中的落地实践

政务热线语音分析:SenseVoice-Small在12345热线工单自动生成中的落地实践 想象一下,每天有成千上万的市民拨打12345政务服务便民热线,反映着从噪音扰民到政策咨询的各类问题。话务员一边接听电话,一边要快速、准确地记录下通话内…

2026/7/4 19:23:44 阅读更多 →

最新新闻

5分钟解放双手:League Akari - 英雄联盟玩家的本地化智能助手终极指南

5分钟解放双手:League Akari - 英雄联盟玩家的本地化智能助手终极指南

5分钟解放双手:League Akari - 英雄联盟玩家的本地化智能助手终极指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为游戏中…

2026/7/6 5:30:38 阅读更多 →
AI Agent 链上操作:签名之前先生成可验证计划

AI Agent 链上操作:签名之前先生成可验证计划

AI Agent 链上操作:签名之前先生成可验证计划 一、Agent 不能直接替用户签名 AI Agent 能帮用户分析资产、构造交易、调用合约、提交治理提案。但链上操作一旦签名,就具备真实资产和权限后果。让 Agent 直接决定并发起签名,是非常危险的设计。…

2026/7/6 5:28:37 阅读更多 →
League-Toolkit终极指南:英雄联盟玩家的智能助手与效率神器

League-Toolkit终极指南:英雄联盟玩家的智能助手与效率神器

League-Toolkit终极指南:英雄联盟玩家的智能助手与效率神器 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是一款基…

2026/7/6 5:28:37 阅读更多 →
3个关键设计如何让一个API征服六大音乐平台?

3个关键设计如何让一个API征服六大音乐平台?

3个关键设计如何让一个API征服六大音乐平台? 【免费下载链接】listen1-api One API for all free music in China 项目地址: https://gitcode.com/gh_mirrors/li/listen1-api 还在为音乐应用开发中对接多个平台API而头疼吗?面对网易云音乐、QQ音乐…

2026/7/6 5:26:37 阅读更多 →
AI 内容风格控制:风格一致不能牺牲事实边界

AI 内容风格控制:风格一致不能牺牲事实边界

AI 内容风格控制:风格一致不能牺牲事实边界 一、风格不是唯一目标 AI 内容生成常要求风格一致:更活泼、更专业、更像品牌语气。但如果为了风格牺牲事实边界,内容会变得危险。产品介绍、技术文档、行业报告、新闻摘要,都不能只追求…

2026/7/6 5:26:37 阅读更多 →
ROS Noetic gmapping 建图实战:Gazebo仿真环境 5 步完成地图保存(附完整launch文件)

ROS Noetic gmapping 建图实战:Gazebo仿真环境 5 步完成地图保存(附完整launch文件)

ROS Noetic下gmapping建图与地图保存实战指南 在机器人自主导航领域,SLAM(即时定位与地图构建)技术扮演着至关重要的角色。本文将详细介绍如何在ROS Noetic环境中,利用gmapping算法实现Gazebo仿真环境下的地图构建,并通…

2026/7/6 5:26:37 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻