umich cv-4-1 卷积网络基本组成部分介绍
这节课中介绍了卷积网络的基本组成部分(全连接层,激活函数,卷积层,池化层,标准化等),下节课讨论了卷积神经网络的发展历史以及几种经典结构是如何构建的
前言
在之前提到的全连接神经网络中,我们直接把一个比如说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 卷积网络基本组成部分介绍的更多相关文章
- TCN时间卷积网络——解决LSTM的并发问题
TCN是指时间卷积网络,一种新型的可以用来解决时间序列预测的算法.在这一两年中已有多篇论文提出,但是普遍认为下篇论文是TCN的开端. 论文名称: An Empirical Evaluation of ...
- 基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法
基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法 Siamese CNN Temporally Constrained Metrics T ...
- 使用Caffe完成图像目标检测 和 caffe 全卷积网络
一.[用Python学习Caffe]2. 使用Caffe完成图像目标检测 标签: pythoncaffe深度学习目标检测ssd 2017-06-22 22:08 207人阅读 评论(0) 收藏 举报 ...
- 最全面的图卷积网络GCN的理解和详细推导,都在这里了!
目录 目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral doma ...
- 【论文阅读】ConvNeXt:A ConvNet for the 2020s 新时代卷积网络
一.ConvNext Highlight 核心宗旨:基于ResNet-50的结构,参考Swin-Transformer的思想进行现代化改造,知道卷机模型超过trans-based方法的SOTA效果. ...
- EdgeFormer: 向视觉 Transformer 学习,构建一个比 MobileViT 更好更快的卷积网络
前言 本文主要探究了轻量模型的设计.通过使用 Vision Transformer 的优势来改进卷积网络,从而获得更好的性能. 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟 ...
- PRML读书会第五章 Neural Networks(神经网络、BP误差后向传播链式求导法则、正则化、卷积网络)
主讲人 网神 (新浪微博:@豆角茄子麻酱凉面) 网神(66707180) 18:55:06 那我们开始了啊,前面第3,4章讲了回归和分类问题,他们应用的主要限制是维度灾难问题.今天的第5章神经网络的内 ...
- 学习笔记TF028:实现简单卷积网络
载入MNIST数据集.创建默认Interactive Session. 初始化函数,权重制造随机噪声打破完全对称.截断正态分布噪声,标准差设0.1.ReLU,偏置加小正值(0.1),避免死亡节点(de ...
- 全卷积网络 FCN 详解
背景 CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题.神经网络大神Jonathan Long发表了<Fully Convolutional N ...
- 学习笔记CB009:人工神经网络模型、手写数字识别、多层卷积网络、词向量、word2vec
人工神经网络,借鉴生物神经网络工作原理数学模型. 由n个输入特征得出与输入特征几乎相同的n个结果,训练隐藏层得到意想不到信息.信息检索领域,模型训练合理排序模型,输入特征,文档质量.文档点击历史.文档 ...
随机推荐
- NextJS项目的部署以及多环境的实现
背景 开发了个Next项目,将部署过程记录一下.另外由于项目准备了两个服务器分别作为开发自测的开发环境和交付给客户的生产环境使用:因此也介绍一下NextJS项目中多环境的配置. 项目结构 计划是让Ng ...
- SpringBoot 使用 Sa-Token 实现账号封禁、分类封禁、阶梯封禁
一.需求分析 之前的章节中,我们学习了 踢人下线 和 强制注销 功能,用于清退违规账号.在部分场景下,我们还需要将其 账号封禁,以防止其再次登录. Sa-Token 是一个轻量级 java 权限认证框 ...
- Redis的设计与实现(2)-链表
链表在 Redis 中的应用非常广泛, 比如列表键的底层实现之一就是链表: 当一个列表键包含了数量比较多的元素, 又或者列表中包含的元素都是比较长的字符串时, Redis 就会使用链表作为列表键的底层 ...
- PREDIV与PLLMUL配置应用笔记
下图为CH32V305/307和CH32F205/207时钟树框图,在此,以CH32V307VCT6芯片,外置25MHz晶振为例,简述图中PREDIV与PLLMUL的配置方法,最终实现144MHz系统 ...
- 2021-3-9 保存csv格式文件
public void SaveCSV(DataTable dt, string fullPath) { FileInfo fi = new FileInfo(fullPath); if (!fi.D ...
- java位运算及移位运算你还记得吗
本文中所提到的运算都是基于整数来说的,因为只有整数(包括正数和负数)在操作系统中是以二进制的补码形式运算的,关于原码.反码.补码.位运算.移位运算的背景这里不再介绍,网上资料很多,感兴趣的可自行搜索. ...
- nodejs中如何使用http创建一个服务
http模块是nodejs中非常重要的一部分,用于开启一个服务,我们可以用它自定义接口供客户端使用. 开启服务的方式也比较简单,几行代码就可以搞定 const http = require('ht ...
- 行行AI人才直播第15期:【AIGC科技公司法律顾问】Amber《AIGC的法律挑战》
近年来,AIGC技术的迅速进步为社会经济发展带来了新的机遇.各行各业都开始关注AIGC相关技术在商业落地中的应用,AIGC相关的创业及项目如雨后春笋般涌现.然而,AIGC的广泛应用也带来了一系列的法律 ...
- GPT-4助力数据分析:提升效率与洞察力的未来关键技术
摘要 随着大数据时代的到来,数据分析已经成为企业和组织的核心竞争力.然而,传统的数据分析方法往往无法满足日益增长的数据分析需求的数量和复杂性.在这种背景下,ChatGPT-4作为一种先进的自然语言处理 ...
- quarkus依赖注入之十一:拦截器高级特性上篇(属性设置和重复使用)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<quarkus依赖注入> ...