这节课中介绍了卷积网络的基本组成部分(全连接层,激活函数,卷积层,池化层,标准化等),下节课讨论了卷积神经网络的发展历史以及几种经典结构是如何构建的

前言

在之前提到的全连接神经网络中,我们直接把一个比如说32 * 32 * 3的图像展开成一个3072*1的向量,然后使用向量与权重矩阵点积得到结果,这实际上是不太合理的,从某种意义上说,我们破坏了原本图像的空间信息,把它简单的看成一个一维向量,而在卷积神经网络中,我们引入了卷积层,能够帮助我们在保存原本图像的空间信息的情况下,对图像特征进行提取

卷积层



如上图所示我们引入了一个卷积核或者说filter,与原始图像进行卷积运算,就是我们把卷积核在原始图像上从起始位置开始滑动,依次对每个5 * 5的区域与filter点积,再加上偏置项,其实就是进行$W^{T}x + b$的运算,这样一个区域得到一个输出,最终一行我们可以得到$32 - 5 + 1 = 28$个输出结果,也就意味着最终我们可以得到一张$1 \times 28 \times 28$的激活图

更进一步地,我们可以使用不同的filter,来获得不同的激活图,组成我们的卷积层:



更一般地形式:



我们可以看到$C_{out}$代表着一个卷积层中filter的数目,同样也与输出层的维度保持一致,而$C_{in}$一般都是与上一层的输入保持一致

我们可以将不同的卷积层进行叠加,记得注意要在卷积层之后还要加入一个relu层,否则两个卷积层的连接和一个卷积层毫无区别:

我们可以采用和之前一样的可视化方法,看看卷积层实际上做了什么:



我们可以看出卷积层提供的图像模板,和我们之前用线性分类器或者全连接网络得到的很不一样,这里的模板大多是一些边缘或者颜色信息,从另一个角度说,卷积层其实起到了提取图像特征的作用,我们可以把这些模板都看作图像的某种特征

在之前我们也提到过,输入层图像在经过卷积层之后,它的大小会缩减,实际上也损失了某种图像信息,我们不想这样,于是引入了padding,在原本的图像周围加上0,保证图像的维度不变:

现在我们来看另一个问题:



在经过不同卷积层之后,对于输出层来说,想要去学习全局的图像,看到全局的图像非常困难,所以我们需要下采样来缩小图像,便于特征的提取,这样我们引入了步长stride的概念,就是我们的卷积核在图像上滑动时,是一次滑动stride步长:

然后我们来看看关于卷积层的其它信息,比如说可学习的参数:



显然每个filter矩阵的每个参数都是可学习的,同时也不要忘了偏置项

比如说运算次数:



总共有10240个输出,每个输出都是通过点积(75次运算)得到

最后总结一些常见参数设置:

池化层

池化层也是一种下采样的方法,可以实现图像缩小与特征降维,常用的有平均池化与最大池化:



max pooling就是取对应kernel size区域里面的最大值,同样这里也可以设置步长值

常用的设置如下,我们可以发现池化层是只有超参数设置的,没有任何可学习的参数



下图是一个卷积神经网络的架构,我们可以看到使用卷积层与池化层,可以实现空间的降维但是通道数提升,我认为这意味着我们得到了更多更简单但是更有用的图像特征:

normalization

batch normalization是在2015年发现的一种可以极大地提升训练神经网络速度的方法,可以使其快速收敛,但是小哥哥老师在课上指出,他觉得原论文的数学原理的阐述并不是很有道理

batch normalization主要思想就是将输入标准化,不同神经网络有不同形式,训练与测试集上方式也不同(这里主要是因为训练集我们可以求数据的均值方差,但是我们显然无法在测试集上这样做

训练集:



测试集:



卷积神经网络:

而batch normalization常常在全连接层与卷积层之后,下图我们可以看到这种方法有着诸多好处:

事实上还有其它不同的normalization方法:







batch normalization是在c这个面上即不同样本的同一个通道的特征做归一化,layer是在n对应的面即同一个样本的不同通道做归一化,instance对应的是每个样本每个通道的归一化

下面这张图来自知乎:https://zhuanlan.zhihu.com/p/56542480

这是专栏文章的一篇讲的比较好,关于batch normalization同专栏的另一篇文章:https://zhuanlan.zhihu.com/p/54171297

umich cv-4-1 卷积网络基本组成部分介绍的更多相关文章

  1. TCN时间卷积网络——解决LSTM的并发问题

    TCN是指时间卷积网络,一种新型的可以用来解决时间序列预测的算法.在这一两年中已有多篇论文提出,但是普遍认为下篇论文是TCN的开端. 论文名称: An Empirical Evaluation of ...

  2. 基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法

    基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法 Siamese CNN Temporally Constrained Metrics T ...

  3. 使用Caffe完成图像目标检测 和 caffe 全卷积网络

    一.[用Python学习Caffe]2. 使用Caffe完成图像目标检测 标签: pythoncaffe深度学习目标检测ssd 2017-06-22 22:08 207人阅读 评论(0) 收藏 举报 ...

  4. 最全面的图卷积网络GCN的理解和详细推导,都在这里了!

    目录 目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral doma ...

  5. 【论文阅读】ConvNeXt:A ConvNet for the 2020s 新时代卷积网络

    一.ConvNext Highlight 核心宗旨:基于ResNet-50的结构,参考Swin-Transformer的思想进行现代化改造,知道卷机模型超过trans-based方法的SOTA效果. ...

  6. EdgeFormer: 向视觉 Transformer 学习,构建一个比 MobileViT 更好更快的卷积网络

    ​  前言 本文主要探究了轻量模型的设计.通过使用 Vision Transformer 的优势来改进卷积网络,从而获得更好的性能. 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟 ...

  7. PRML读书会第五章 Neural Networks(神经网络、BP误差后向传播链式求导法则、正则化、卷积网络)

    主讲人 网神 (新浪微博:@豆角茄子麻酱凉面) 网神(66707180) 18:55:06 那我们开始了啊,前面第3,4章讲了回归和分类问题,他们应用的主要限制是维度灾难问题.今天的第5章神经网络的内 ...

  8. 学习笔记TF028:实现简单卷积网络

    载入MNIST数据集.创建默认Interactive Session. 初始化函数,权重制造随机噪声打破完全对称.截断正态分布噪声,标准差设0.1.ReLU,偏置加小正值(0.1),避免死亡节点(de ...

  9. 全卷积网络 FCN 详解

    背景 CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题.神经网络大神Jonathan Long发表了<Fully Convolutional N ...

  10. 学习笔记CB009:人工神经网络模型、手写数字识别、多层卷积网络、词向量、word2vec

    人工神经网络,借鉴生物神经网络工作原理数学模型. 由n个输入特征得出与输入特征几乎相同的n个结果,训练隐藏层得到意想不到信息.信息检索领域,模型训练合理排序模型,输入特征,文档质量.文档点击历史.文档 ...

随机推荐

  1. 详解RISC v中断

    声明 本文为本人原创,未经许可严禁转载.部分图源自网络,如有侵权,联系删除. RISC-V 中断与异常 trap(陷阱)可以分为异常与中断.在 RISC v 下,中断有三种来源:software in ...

  2. MySQL——GROUP BY详解与优化

    在 MySQL 中,GROUP BY用于将具有指定列中相同值的行分组在一起.这是在处理大量数据时非常有用的功能,允许对数据进行分类和聚合. 基本使用 语法 以下是GROUP BY子句的基本语法: &q ...

  3. 使用guestmount更改qcow2镜像内容

    参考: 使用guestmount更改qcow2镜像内容 guestmount 安装 yum install libguestfs libguestfs-tools -y 使用 guestmount - ...

  4. JMeter 线程组之Stepping Thread Group插件

    JMeter 线程组之Stepping Thread Group插件 测试环境   apache-jmeter-2.13 插件:https://jmeter-plugins.org/downloads ...

  5. 《深入理解Java虚拟机》读书笔记:HotSpot虚拟机对象探秘

    基于实用优先的原则,以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配.布局和访问的全过程.以下是本节内容的脑图. HotSpot虚拟机对象 ...

  6. 安装 配置 正向 解析 DNS方法

    安装 配置 正向 解析 DNS方法 1,安装dhcp [root@localhost ~]#yum install bind* -y 2,关闭防火墙和selinux [root@localhost ~ ...

  7. nginx搭建静态文件下载服务器

    配置文件大致内容 server { # 监听8001端口 listen 8001; server_name 192.168.0.2; # 指定使用utf8的编码 charset utf-8; # 内容 ...

  8. Vue+SpringBoot项目分离部署踩坑记录

    昨天花了一晚上终于成功部署了个人网站,在这个过程中踩了很多坑,现在回顾总结记录一下,以免今后继续犯错误 前端:Vue 后端:SpringBoot 数据库:Mysql 一.前端 1.前端项目采用Ngin ...

  9. Code Llama:Llama 2 学会写代码了!

    引言 Code Llama 是为代码类任务而生的一组最先进的.开放的 Llama 2 模型,我们很高兴能将其集成入 Hugging Face 生态系统!Code Llama 使用与 Llama 2 相 ...

  10. KRpano项目微信出现"关于潜在的违法或违规内容"

    最近,部分小伙伴反应某些KRPano项目在微信中,出现"关于潜在的未发或违规内容"而无法播放的问题,会看到下图中的提示: 出现原因 这个问题是由于KRPano项目中的webvr.j ...