深度学习之卷积神经网络

前言

如果我们采用多层BP神经网络去训练1000x1000像素的图像,有1百万个隐层神经元,那么他们全连接的话,就有 1 0 12 10^{12} 1012个连接,也就是 1 0 12 10^{12} 1012个权值参数。这训练量是很惊人的.卷积神经网络使用权值共享网络结构,降低了网络模型的复杂度,减少了权值的数量。

卷积网络的“前世今生”

卷积网络是一个生物神经网络.其的结论来源于一只猫.
在这里插入图片描述
D.H.Hubel 和 T.N.Wiesel直接将示波器插入猫的视觉神经中,观察猫在看东西时的波形变化.提出了感受野(receptive field)的概念

  1. 猫观查图片是局部的
  2. 对图片有反应的神经是固定(共享权值)

卷积的数学解释

假设猫 t t t时刻看到局部图片产生的信号值的函数为 h ( t ) h(t) h(t),图片移动的函数为 x ( t ) x(t) x(t),
在这里插入图片描述
将它们放在同一坐标系,即卷积就是描述两个函数相互作用的结果 y ( t ) = x ( t ) ∗ h ( t ) y(t)=x(t)*h(t) y(t)=x(t)h(t)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这是一种自适应平移不变的 识别模式

卷积层提取特征的流程

怎么将一个55的图片提取成33的特征.
在这里插入图片描述

  1. 左上角9个像素点则是局部视野
  2. 左上角9个像素点中的小红字,则为共享权值
  3. 特征图C中的数值4,具体计算: 1 ∗ 1 + 1 ∗ 0 + 1 ∗ 1 + 0 ∗ 0 + 1 ∗ 1 + 1 ∗ 0 + 0 ∗ 1 + 0 ∗ 0 + 1 ∗ 1 = 4 1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1=4 11+10+11+00+11+10+01+00+11=4

在这里插入图片描述
移动窗口,计算特征图中的第二个值,注:对应位置权值不变.最终得图
在这里插入图片描述
一个卷积的计算过程完成了,生成了一个特征图. 这个过程还有一些其他的知识点:

  • 每次卷积核移动一个单位,这个距离就是步长(stride),一般来说,步长位置为1或者2即可。
  • 这个卷积核的尺寸为33,也可以是55,77,1111,一般来说为单数正方形,也会有3*5这种长方形卷积核。

W W W值相当于filter,他的不同,可以构造出不同的特征图,多提供几个filter就可以有多几个特征.效果如下
在这里插入图片描述

文字识别系统LeNet-5

一种典型的用来识别数字的卷积网络是LeNet-5。当年美国大多数银行就是用它来识别支票上面的手写数字的。能够达到这种商用的地步,它的准确性可想而知。
在这里插入图片描述

  1. 输入图像是32x32的大小,局部滑动窗的大小是5x5的,由于不考虑对图像的边界进行拓展,则滑动窗将有28x28个不同的位置,也就是C1层的大小是28x28。这里设定有6个不同的C1层,每一个C1层内的权值是相同的。C1就我们的上述的卷积层
  2. S2层是一个下采样层。简单的说,由4个点下采样为1个点。即有6个14*14的特征图.这过程也叫Pool在这里插入图片描述
  3. 根据对前面C1层同样的理解,我们很容易得到C3层的大小为10x10. 只不过,C3层的变成了16个10x10网络! 试想一下,如果S2层只有1个平面,那么由S2层得到C3就和由输入层得到C1层是完全一样的。但是,S2层由多层,那么,我们只需要按照一定的顺序组合这些层就可以了。具体的组合规则,在 LeNet-5 系统中给出了下面的表格:在这里插入图片描述简单的说,例如对于C3层第0张特征图,其每一个节点与S2层的第0张特征图,第1张特征图,第2张特征图,总共3个5x5个节点相连接。后面依次类推,C3层每一张特征映射图的权值是相同的。
  4. S4层是一个下采样层,由16个55大小的特征图构成。特征图中的每个单元与C3中相应特征图的22邻域相连接,跟C1和S2之间的连接一样。
  5. C5层是一个卷积层,有120个特征图大小为1*1。S4和C5之间的采用全连接的方式。C5层有48120个可训练连接: 16 ∗ 5 ∗ 5 ∗ 120 + 120 16*5*5*120 + 120 1655120+120
  6. F6层有84个单元(之所以选这个数字的原因来自于输出层的设计)
  7. 输出层由欧式径向基函数(Euclidean Radial Basis Function)单元组成,即把样本中心化,然后根据欧式距离的远近来判断出是哪个字母.

下采样中如果发现输入不能数据不规整

  1. 空白地方补0
  2. 上采样,即下采样的逆算法

卷积神经网络采用BP网络相同的学习算法,来学习对应的权值.

残差神经网络

卷积神经网络在提取图象特征上面有显著的效果,但随着卷积层的堆叠,识别准确率反而下来了.学习算法随着层数变多,梯度消失了.残差网络怎么有效缓解梯度消失问题?
在这里插入图片描述
图中 x x x表示输入, H ( x ) H(x) H(x)表示输出.

  • 卷积网络如左图所示,训练的是x输入与输出的关系 H H H.
  • 残差网络如右图所示,训练的是x输入与输出之差的关系 F F F

为什么残差连接的网络结构更容易学习

假设我们有如下的一个网络,它可以在训练集和测试集上可以得到很好的性能。
在这里插入图片描述
接着我们构造如下的网络,前面4层的参数复制于上面的网络,训练时这几层的参数保持不变。换言之,我们只是在上面的网络新增加了几个紫颜色表示的层。
在这里插入图片描述
相信大家预想的结果是一样的,理论上,这个新的网络在训练集或者测试集上的性能要比第一个网络的性能好,毕竟多了几个新增加的层提取特征。然后,实际上这个新的网络却比原先的网络的性能要差(梯度消失)。

理论上,由于我们copy了前四层的参数,理论上前四层已经足够满足我们的性能要求,那么新增加的层便显得有些多余,如果这个新的网络也要达到性能100%,则新增加的层要做的事情就是“恒等映射”,也即后面几个紫色的层要实现的效果为 f ( x ) = x f(x)=x f(x)=x 。这样一来,网络的性能一样能达到100%。而退化现象也表明了,实际上新增加的几个紫色的层,很难做到恒等映射.

这时候,巧妙的通过添加”桥梁“,使得难以优化的问题瞬间迎刃而解。
在这里插入图片描述
可以看到通过添加这个桥梁,把数据原封不动得送到FC层的前面,而对于中间的紫色层,可以很容易的通过把这些层的参数逼近于0,进而实现 f ( x ) = x f(x)=x f(x)=x 的功能。

通过跳连接,可以把前四层的输出先送到FC层前面,也就相当于告诉紫色层:”兄弟你放心,我已经做完98%的工作了,你看看能不能在剩下的2%中发点力,你要是找不出提升性能的效果也没事的,我们可以把你的参数逼近于0,所以放心大胆的找吧。

在这里插入图片描述
当然了,实际上网络运行的时候,我们并不会知道哪几层就能达到很好的效果,然后在它们的后面接一个跳连接,于是一开始便在两个层或者三个层之间添加跳连接,形成残差块,每个残差块只关注当前的残余映射,而不会关注前面已经实现的底层映射

神经网络无非是拟合一个复杂的函数映射关系,而通过跳链接,可以很好的“切割”这种映射关系,实现“分步”完成。

数学定量分析

从数学定量分析的角度去看,残差网络是如何解决梯度消失的问题的
在这里插入图片描述
如图A,B,C,D为不同的网络模块.
在这里插入图片描述
梯度消失的一般原因是因为在连乘导致梯度为0,而上图在计算梯度的时候前面加一个1,可以有效避免梯度消失的问题,所以可以加深网络层之后,也可以训练的很好。

主要参考

《Deep Learning(深度学习)学习笔记整理系列之(七)》
《请简短地描述卷积(convolution)》
《从头深度学习(经典卷积网络篇)- LeNet-5》
《卷积神经网络》
《为什么残差连接的网络结构更容易学习?》
《残差神经网络为何可以缓解梯度消失?》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/248609.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel得到JSON串

很多时候业务都需要做一种从Excel读取或者导入数据的功能,这在cs程序比较简单,在BS程序上如果封装不好的话那么写起来还是很费劲的,这次封装Excel读取操作。 先看使用 对,你没有看错,就是这么简单。 封装 基础设计…

远程连接服务器:Ping通但SSH连接失败的解决办法

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言常见问题影响SSH的因素本地影响因素防火墙设置网络配置文件 远程主机影响因素放行…

Redis内存设置

通过redis-cli进入Redis命令行 redis权限认证命令:auth 查看redis内存使用情况的命令:info memory 查看最大内存命令:config get maxmemory 设置最大内存命令:config set maxmemory 也可以通过redis.conf配置文件修改最大内存…

搭建幻兽帕鲁需要什么样的服务器

作为一个开放世界生存制造类游戏《幻兽帕鲁》收获了空前绝后的热度,玩家们在游戏中通过在地图上捕捉收集到的“帕鲁”进行训练,合理利用他们的能力进行战斗,建立自己的家园、开辟新的世界、解锁新的冒险情节,获取更多游戏信息增加…

blender关于几何接近(geometry proximity)节点的理解

如图,可以见到,我输入了一个立方体,一个圆锥体,为了便于区分 ,将原生的立方体与圆锥转为了曲线,而进行了几何接近处理的网格不进行此转换。 几何接近的输入端,分为target(目标&…

Cache Lab:Part A【模拟出使用LRU策略的高速缓存存储器组织结构】

目录 任务描述 知识回顾 实验内容 测试结果 Cache Lab 对应《CS:APP》6.3节至第六章结束的内容。 任务描述 Your job for Part A is to fill in the csim.c file so that it takes the same command line arguments and produces the identical output as the reference …

2024年最新 MySQL的下载、安装、启动与停止

一、MySQL的下载 MySQL最常用的2个版本: 社区版:免费开源,自由下载,不提供官方技术支持,大多数普通用户选择这个即可。企业版:需要付费,不能在线下载,可以使用30天,提供…

Java学习笔记(十一)——常用类

一、包装类 (一)包装类和基本数据类型的转换 ​编辑 (二)包装类型和String类型的相互转换 (三)Integer类和Character类的常用方法 二、String (一)创建String对象的两种方式 …

Jenkins(三):自动化部署SpringBoot项目

前言 在软件开发过程中,自动化部署已经成为不可或缺的一环。Jenkins是一个广泛使用的开源自动化部署工具,它提供了强大的功能和灵活的配置选项,可以帮助开发团队实现高效的持续集成和持续部署。本文将详细介绍如何使用Jenkins自动化部署Spri…

Windows系统本地安装Wnmp服务并结合内网穿透公网远程访问

目录 前言 1.Wnmp下载安装 2.Wnmp设置 3.安装cpolar内网穿透 3.1 注册账号 3.2 下载cpolar客户端 3.3 登录cpolar web ui管理界面 3.4 创建公网地址 4.固定公网地址访问 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊Windows…

探索数字经济:从基础到前沿的奇妙旅程

新一轮技术革命方兴未艾,特别是以人工智能、大数据、物联网等为代表的数字技术革命,催生了一系列新技术、新产业、新模式,深刻改变着世界经济面貌。数字经济已成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。预估到20…

第5章 python深度学习——波斯美女

第5章 深度学习用于计算机视觉 本章包括以下内容: 理解卷积神经网络(convnet) 使用数据增强来降低过拟合 使用预训练的卷积神经网络进行特征提取 微调预训练的卷积神经网络 将卷积神经网络学到的内容及其如何做出分类决策可视化 本章将…

wordcloud库和jieba库的使用

文章目录 wordcloud库的简单示范使用wordcloud库报错记录anaconda安装第三方jieba库jieba库的简单示范任务 1:三国演义中的常见词汇分布在“三国"这两个隶书字上,出现频率高的词字体大任务 2:三国演义中出现频率前十的人名。必须是以下这…

ES的一些名称和概念总结

概念 先看看ElasticSearch的整体架构: 一个 ES Index 在集群模式下,有多个 Node (节点)组成。每个节点就是 ES 的Instance (实例)。每个节点上会有多个 shard (分片), P1 P2 是主分片, R1 R2…

伊恩·斯图尔特《改变世界的17个方程》毕达哥拉斯定理笔记

它告诉我们什么? 直角三角形的三个边之间有什么关系。 为什么重要? 它提供了几何和代数之间的重要联系,使我们能够根据坐标计算距离。它也催生出了三角学。 它带来了什么? 测绘、导航,以及较近代出现的狭义和广义相对论…

无法解析的外部符号_WinMain@16

错误示例&#xff1a; #include <Windows.h>int main() {return 0; } 正确示例1&#xff1a; 控制台&#xff1a; #include <Windows.h>int main() {return 0; } 正确示例2&#xff1a; Windows窗口 #include <Windows.h>int WINAPI wWinMain(HINSTANC…

微信小程序如何实现点击上传图片功能

如下所示,实际需求中常常存在需要点击上传图片的功能,上传前显示边框表面图片显示大小,上传后将图形缩放到边框大小。 实现如下: .wxml <view class="{{img_src==?blank-area:}}" style="width:100%;height:40%;display:flex;align-items: center;jus…

MySQL原理(三)锁定机制(1)综述

一、介绍&#xff1a; 1、锁的本质 业务场景中存在共享资源&#xff0c;多个进程或线程需要竞争获取并处理共享资源&#xff0c;为了保证公平、可靠、结果正确等业务逻辑&#xff0c;要把并发执行的问题变为串行&#xff0c;串行时引入第三方锁当成谁有权限来操作共享资源的判…

探索智能巡检机器人深度学习的奥秘

机器人深度学习&#xff08;Robot Deep Learning&#xff09;是指利用深度学习技术&#xff0c;使机器人能够从大量数据中学习和提取特征&#xff0c;进而实现自主感知、决策和行动的能力。通过深度学习算法&#xff0c;机器人可以从传感器获取的数据中自动学习模式和规律&…

flask基于python的个人理财备忘录记账提醒系统vue

在当今高度发达的信息中&#xff0c;信息管理改革已成为一种更加广泛和全面的趋势。 “备忘记账系统”是基于Mysql数据库&#xff0c;在python程序设计的基础上实现的。为确保中国经济的持续发展&#xff0c;信息时代日益更新&#xff0c;蓬勃发展。同时&#xff0c;随着信息社…