卷积神经网络

深度学习-卷积神经网络笔记

懵懂的女人 提交于 2020-03-04 05:25:05
卷积神经网络组成 : input--CONV--ReLU--pooling--FC 输入层--卷积层--激活函数--池化层--全连接层 在这里需要指出的是:--卷积层--激活函数--池化层--全连接层,它的组合不唯一,也可以看一下关于卷积神经网络的 概括 : 由于它们的组合可以作出相应的改变,所以使得卷积神经网络有很多不同的表达,尤其是在深度上的提高。 卷积层 卷积层一般是由3x3或5x5,甚至是11x11的卷积核与传入数据进行卷积得到的,下图是3x3Filter与绿色的图像做卷积的过程,粉红色的图是卷积之后的结果。 局部感受野 :上图中的3x3卷积核,先与图像中的左上角的 3x3局部感受野 做点积并将所有的结果进行加和才得到粉色图像中的第一个数字4,接着每移动一列进行一次内积并作加和,直到所有的 局部感受野 处理完毕为止。就得到了第一个卷积特征图。在这里面的移动步长S为1。补充一下:卷积核的行列值一般都是奇数。上图的计算过程中不难发现,输入图的矩阵的四个边只利用到了一次,如果想要充分利用边上的特征就需要扩边。在下图中就是对一个RGB图进行了边的扩充,当然RGB是三维的,所以可以利用三个卷积核对每一维进行卷积,然后将所有的卷积结果进行相加,即图中的绿色输出的第一个图的左上角数字5是由,w0三个卷积核分别对不同维度做卷积后的结果的总和。 权值共享 :在我看来

cs231n-整理

谁说胖子不能爱 提交于 2020-03-04 04:07:21
一.杂论 1.1 训练集,验证集,测试集的区别 训练集:利用标签不断的进行网络参数(权重)的更新,但是每次训练都有一定的训练参数(学习率等) 验证集:用来选择训练集中最好的训练参数(学习率等) 测试集:用来真实的评价模型或者参数的结果 1.2 max函数的梯度: 其中一个为零梯度,另一个为正常梯度计算 1.3 卷积维度的计算: 卷积输出的维度=(输入维度+增补维度-卷积核维度)/步幅+1 1.4 硬件使用 CPU 核数较少,但运算很快,操作数很多,并且可以单独运行,适合做通信处理。 GPU 核数很多,但运算慢,操作有限,不能单独运行,适合进行高度并行的处理(矩阵运算) FPGA:可编程门阵列. ASIC:特定用途集成电路 1.5全连接模块 全连接模块会产生大量的参数,可以用池化替代 1.6 跨卷积与反向跨卷积 跨卷积:调整卷积核的步幅 反向跨卷积:将卷积得到的结果再乘上卷积核,并移动一定的步长(相乘结果) 两者可以使用步长比来命名 1.7 目标函数 将最终的目标作为目标函数可以更加有效的得到对应的结果 1.8 忽略细节 不准确的说,人们往往只知道某项技术可以达到怎样的功能,但是产生这样效果的原因却尚未没解开 1.9 减小模型复杂度 剪枝: (1)降低模型的复杂度 (2)防止过拟合 (3)先训练神经网络,再去除连接,再训练。 权值共享:对一些接近的权值,使用一个近似进行表示,学习

卷积操作的参数量和FLOPs

被刻印的时光 ゝ 提交于 2020-03-04 02:47:42
卷积操作的参数量和FLOPs   这里首先需要辨析一个概念就是FLOPs和FLOPS可以看到简写的差别仅仅是一个字母大小写的区别。   FLOPS(floating-point operations per second),这个缩写长这个样子确实也很奇怪,大致概念就是指每秒浮点数运算次数,最后一个S是秒(second)的缩写,是计组中的概念,用来描述计算机的运算速度。   FLOPs(floating-point operations),一旦s变为小写,就表示复数的概念,就是浮点数运算次数,这就和计算量相关了, 和卷积或者其他算法联系起来基本上就表示计算次数,可用来衡量操作的复杂程度。   卷积的参数基本上都是说的卷积核的参数,拿一层神经网络来看,卷积核的大小是 ( k h , k w ) (k_h,k_w) ( k h ​ , k w ​ ) ,显然一个卷积核的参数量是这个卷积核的矩阵 k h ∗ k w k_h*k_w k h ​ ∗ k w ​ ,通常这里还要加上一个偏置 b b b ,算作一个参数,为了简便计算,这里忽略不计。如果说一层神经网络的输入通道数为 C i n C_{in} C i n ​ 输出通道数为 C o u t C_{out} C o u t ​ ,卷积核需要通过矩阵运算,把输入的 C i n C_{in} C i n ​ 的通道数映射为输出为 C o u

06-01 DeepLearning-图像识别

房东的猫 提交于 2020-03-03 11:50:33
文章目录 深度学习-图像识别 人脸定位 手工提取特征的图像分类 识图认物 传统分类系统的特征提取 计算机眼中的图像 什么是图像特征? 卷积运算 利用卷积提取图像特征 基于神经网络的图像分类 传统图像分类系统和深度神经网络 深度神经网络的架构 卷积层 池化层 全连接层 归一化指数层 非线性激活层 Sigmoid函数 双曲正切函数 ReLU函数 深度神经网络的训练 反向传播算法 图像分类应用——人脸识别 人脸识别的流程 人脸识别应用场景 小结 深度学习-图像识别 人脸定位   相信你们外出游玩的时候,都不会带上你的牛逼plus诺基亚手机出门,而是带上你的智能手机给自己美美的拍上一张。当你用手机镜头对准人脸的时候,都会出现一个矩形框,如下图所示(前方高能),那么这个技术是怎么做到的呢?   相机中的人脸定位技术用的是二分类技术。该技术流程如下图所示。   如上图所示,相机首先会将照片分割成一块块的图像块,一张照片往往会有成千上万的图像块被切割出来。   然后每一个图像块都会经过人脸分类器去判别是否是人脸。人脸分类器是预先训练好的分类器,类似于我们之前讲的手写数字识别应用程序中的支持向量机分类器。如果人脸分类器预测该图像块为人脸,相机则会在这个图像块中显示出框的位置。   在人脸定位中,为了解决由于手机离人的距离不同,导致手机上显示的人脸大小不一致的问题。手机在切割图像的时候

深度学习知识系列(二) 各种卷积形式

最后都变了- 提交于 2020-03-03 08:01:43
文章目录 一、卷积的本质 二、2D卷积 三、3D卷积 四、转置卷积 五、1x1卷积 六、深度可分离卷积 七、**空洞卷积** 八、图卷积 一、卷积的本质     首先,我们先从数学和图像处理应用的意义上来看一下卷积到底是什么操作。我们先回到数学教科书中来看卷积,在泛函分析中,卷积也叫旋积或者褶积,是一种通过两个函数x(t)和h(t)生成的数学算子。其计算公式如下: 连 续 形 式 : x ( t ) ∗ h ( t ) = ∫ − ∞ ∞ x ( τ ) h ( t − τ ) d t 离 散 形 式 : x ( t ) ∗ h ( t ) = ∑ t = − ∞ ∞ x ( τ ) h ( t − τ ) 连续形式:\ \ \ \ x(t)*h(t) = \int_{-\infty}^{\infty}x(\tau)h(t-\tau)dt \\ 离散形式:\ \ \ \ x(t)*h(t) = \sum_{t=-\infty}^{\infty}x(\tau)h(t-\tau) 连 续 形 式 : x ( t ) ∗ h ( t ) = ∫ − ∞ ∞ ​ x ( τ ) h ( t − τ ) d t 离 散 形 式 : x ( t ) ∗ h ( t ) = t = − ∞ ∑ ∞ ​ x ( τ ) h ( t − τ )     从卷积公式可以看出

卷积神经网络CNN

旧巷老猫 提交于 2020-03-02 13:16:39
卷积神经网络CNN 为什么选择CNN? CNN基础 -- 边缘检测 padding 填充 Stride 滑动步长 CNN网络层次结构 CNN模型的训练过程 为什么选择CNN? 传统神经网络结构存在两个缺点: (1) 当输入层维度较大时,导致网络权重 W 数值较大(一张 64x64 的三通道图片,神经网络输入层的维度为 12288),训练的神经网络结构较复杂【具体原因在本篇下文介绍】,训练网络所需的内存和计算量庞大,模型训练更加困难,且样本训练集不够,容易出现过拟合; (2) 不符合图像特征提取的机制。传统神经网络是将二维或者三维(包含 RGB 三通道)图片拉伸成一维特征,作为神经网络的输入层。这种操作实际上是将图片的各个像素点独立开来,忽略了各个像素点之间的区域性联系。 CNN基础 – 边缘检测 边缘检测是用来检测图片中包含的边缘信息,具体原理是:将图片与相应的边缘检测算子进行卷积操作(对应位置元素相乘再求和)。 卷积的具体过程如下: padding 填充 根据上述的卷积过程可得,可得如下结论: 当原始图片的尺寸为 n × n (n = 6), 滤波器算法大小为 f × f (f = 3), 注意:f一般为奇数,则卷积后的图片尺寸为 (n-f+1) × (n-f+1) (4 × 4)。 观察上述结论可得出: 卷积运算后,输出的图片的尺寸变小 原始图片边缘信息对输出贡献少

卷积神经网络为什么具有平移不变性?

断了今生、忘了曾经 提交于 2020-03-02 12:09:03
概述 在读计算机视觉的相关论文时,经常会看到平移不变性这个词,本文将介绍卷积神经网络中的平移不变性是什么,以及为什么具有平移不变性。 什么是平移不变性? 不变性 不变性意味着即使目标的外观发生了某种变化,但是你依然可以把它识别出来。 这对图像分类来说是一种很好的特性,因为我们希望图像中目标无论是被平移,被旋转,还是被缩放,甚至是不同的光照条件、视角,都可以被成功地识别出来。 所以上面的描述就对应着各种不变性: 平移不变性:Translation Invariance 旋转/视角不变性:Ratation/Viewpoint Invariance 尺度不变性:Size Invariance 光照不变性:Illumination Invariance 平移不变性和平移同变性 在欧几里得几何中,平移是一种几何变换,表示把一幅图像或一个空间中的每一个点在相同方向移动相同距离。比如对图像分类任务来说,图像中的目标不管被移动到图片的哪个位置,得到的结果(标签)应该是相同的,这就是卷积神经网络中的平移不变性。 平移不变性意味着系统产生完全相同的响应(输出),不管它的输入是如何平移的 。 平移同变性(translation equivariance)意味着系统在不同位置的工作原理相同,但它的响应随着目标位置的变化而变化 。比如,实例分割任务,就需要平移同变性,目标如果被平移了

YOLO v2 / YOLO9000论文详解

╄→尐↘猪︶ㄣ 提交于 2020-03-02 01:14:56
YOLO9000:Better, Faster, Stronger 声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢 ! 源论文地址: https://arxiv.org/abs/1612.08242 注 :文字中标粗和亮色的部分为笔者认为有创新改进余地和需要注意的地方,斜体部分为笔者的一些想法,因水平所限,部分笔触可能有不实和错误之处,敬请广大读者批评指正,让我们一起进步~ YOLO v2 和 YOLO 9000 可以看成是两部分,其中v2是对v1的各个部分进行技术上的加持和改进;9000是对数据集和检测类别进行扩展。这里我们重点说YOLO v2部分。 v2相对于v1来说,速度更快、精度更高。 具体改进措施有以下几点: 1. 各卷积层后添加BN层; 2. YOLO2在采用 224×224 图像进行分类模型预训练后,再采用 448×448 的高分辨率样本对分类模型进行微调(10个epoch),使网络特征逐渐适应 448×448 的分辨率。然后再使用 448×448 的检测样本进行训练,缓解了分辨率突然切换造成的影响; 3. 引入anchor boxes(召回率上升,准确率略微下降),448×448 -> 416×416 通过使用K-means聚类方法筛选出一个网格cell里预测5个锚点框最合适; 通过给anchor

【68】一维和三维卷积

荒凉一梦 提交于 2020-03-01 19:38:02
1. 2维数据 从卷积神经网络框架,到如何使用它进行图像识别、对象检测、人脸识别与神经网络转换 即使大部分讨论的图像数据,某种意义上而言都是2D数据,考虑到图像如此普遍 许多所掌握的思想不仅局限于2D图像,甚至可以延伸至1D,乃至3D数据 关于2D卷积,可能会输入一个14×14的图像,并使用一个5×5的过滤器进行卷积 接下来看到了14×14图像是如何与5×5的过滤器进行卷积的 通过这个操作会得到10×10的输出 如果使用了多通道,比如14×14×3,那么相匹配的过滤器可能是5×5×3 如果使用了多重过滤,比如16,最终你得到的是10×10×16 2. 1维数据 事实证明早期想法也同样可以用于1维数据 举个例子,左边是一个EKG信号,或者说是心电图(electrocardiogram) 当在胸部放置一个电极,电极透过胸部测量心跳带来的微弱电流 正因为心脏跳动,产生的微弱电波能被一组电极测量 这就是人心跳产生的EKG,每一个峰值都对应着一次心跳 如果想使用EKG信号,比如医学诊断 那么将处理1维数据,因为EKG数据是由时间序列对应的每个瞬间的电压组成 这次不是一个14×14的尺寸输入,可能只有一个14尺寸输入 在这种情况下可能需要使用一个1维过滤进行卷积 只需要一个1×5的过滤器,而不是一个5×5的 当对这个1维信号使用卷积,将发现一个14维的数据与5维数据进行卷积

(附代码)一看就会!详解卷积后的图片size、卷积核大小、channel深度计算公式

大城市里の小女人 提交于 2020-03-01 16:37:26
本文参考资料 Stanford CS231n AlexNet VGG ResNet DenseNet 卷积神经网络 随着CV的发展,卷积神经网络有越来越多的应用,但是在写代码的时候,size、channel匹配常常是我们关心的问题。 图片大小计算公式 卷积示意图: 两个 Filter(卷积核) ,输出两个矩阵,深度也就是2 初始图片+pad1是周围加了1圈0,从5x5x3( 3代表RGB三个颜色 )变为7x7x3, 但笔者下文给出的计算公式是根据原图片大小给出的,因Pytorch默认pad层为1,若考虑容易导致重复。 因为图片有 三个颜色通道,深度是3,因此filter的深度也是3 ,再加上大小为3x3,故filter矩阵是3x3x3矩阵 图片中最右侧的绿色框为输出,相当于对三个颜色通道进行了加权平均 输出矩阵的大小计算为(5( 原图 )+1( pad层 )-3( 卷积核大小 ))=3( 输出大小 ),因此输出3x3矩阵,加上两个filter,为3x3x3 看不太懂?下面还有例子。 Conv2d代码详解 笔者将使用Pytorch的Conv2d搭建一个简单的卷积神经网络例子,并将卷积核大小设置为5x5。 Conv2d参数: 下面是使用 28*28的MNIST数据集 的模型初始化, 备注里包含了卷积核的大小、模型传递方式。 conv net的结构设计比较复杂,一般是: input->[