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

前言

在之前提到的全连接神经网络中,我们直接把一个比如说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. MySQL-this is incompatible with sql_mode=only_full_group_by 错误解决

    MySQL-this is incompatible with sql_mode=only_full_group_by 错误解决 编辑配置文件 Linux 中 :my.cnf Windows中 : m ...

  2. 如何开发 RESTful、GraphQL 和 SOAP 等不同类型的 API ?

    在软件开发中,API(应用程序编程接口)的重要性不言而喻.API已成为不可或缺的构建模块,使开发人员能够创建功能丰富.多样化和可扩展的应用程序.这是一篇综合指南,旨在深入探讨API开发,使初学者和有经 ...

  3. 从零玩转SpringBoot3-快速入门

    一.简介 1.前置知识 ​ ● Java17 ​ ● Spring.SpringMVC.MyBatis ​ ● Maven.IDEA 2.环境要求 环境&工具 版本(or later) Spr ...

  4. 【技术积累】HTML+CSS+JavaScript中的基础知识【一】

    HTML基础标签 <html> 定义HTML文档的根元素. <!DOCTYPE html> <html> <head> <title>My ...

  5. 手写raft(一) 实现leader选举

    1. 一致性算法介绍 1.1 一致性同步与Paxos算法 对可靠性有很高要求的系统,通常都会额外部署1至多个机器为备用副本组成主备集群,避免出现单点故障. 有状态的系统需要主节点与备用副本间以某种方式 ...

  6. 在虚拟机VMware上安装OpenKylin开源操作系统

    在虚拟机(VMware)上安装OpenKylin开源操作系统 今天我们一下学习下开放麒麟系统的安装.也是我的开源项目在OpenKylin上运行的实践. 希望通过该项目了解和学习Avalonia开发的朋 ...

  7. windows安装uwsgi报错 AttributeError: module 'os' has no attribute 'uname'

    Win10系统不支持安装UWSGI, 不用尝试了 安装 pip install uwsgi windows安装报错 AttributeError: module 'os' has no attribu ...

  8. 天地图三维帮助文档(Cesium)

    https://blog.csdn.net/Tmraz/article/details/114977652

  9. 配置DHCP

    配置DHCP 条件:关闭防火墙 和selinux 1,安装dhcp服务 [root@localhost ~]#yum install dhcp -y#安装dhcp服务 2,查看配置文件 [root@l ...

  10. pandas读取mysql并导出为excel

    前言 业务需要从数据库导出数据为excel,并设置成自动化.这里用pandas写的数据导入导出,还算方便.配合crontab + shell脚本使用,每天晚上自动生成excel,然后cp到指定目录.s ...