卷积神经网络

Convolution with even-sized kernels and symmetric padding论文解读笔记

一个人想着一个人 提交于 2019-12-27 02:11:10
文章目录 导读 摘要 引言 相关工作 对称填充 实验 讨论 总结 导读 我们都习惯使用3*3的卷积核,这篇文章介绍了 偶数卷积核 其实表现更强 。 首先附上文章地址: Convolution with even-sized kernels and symmetric padding 【PDF】 摘要 紧凑型卷积神经网络主要通过深度卷积,扩展的通道和复杂的拓扑来提高效率,这反过来又加剧了训练过程。 此外,在这些模型中, 3×3内核占主导地位 ,而偶数大小的内核(2×2、4×4)很少被采用。 在这项工作中,我们通过信息侵蚀假设来量化偶数大小的核卷积中发生的偏移问题,并通过在特征图的四个侧面(C2sp,C4sp)提出对称填充来消除它。 对称填充以很少的计算成本释放了偶数大小的内核的泛化能力,使其在图像分类和生成任务方面优于3×3内核。此外,C2sp获得了与新兴紧凑型模型相当的精度,而训练期间的内存和时间消耗却少得多。 对称填充和偶数卷积可以很好地实现到现有框架中,为体系结构设计提供有效的元素,尤其是在强调训练工作的在线和持续学习场合。 引言 深度卷积神经网络(CNN)在许多计算机视觉任务中都取得了重大成功,例如图像分类[37],语义分割[43],图像生成[8]和游戏[29]。 除了特定领域的应用程序之外,还设计了各种体系结构来提高CNN的性能[3,12,15]

卷积神经网络初始化参数解释

荒凉一梦 提交于 2019-12-26 01:14:07
input_dim:输入数据层大小:3-3层-彩色图像。32:矩阵高。32:矩阵宽 num_filters:卷积核的数量。 filter_size:卷积核大小-7的意思就是7*7大小的计算的卷积核。 hidden_dim:隐藏层即全连接层的(神经元)的个数。 num_classes;需要分类数。 weight_scale:初始化参数的数据量,1e-3即10的负3次方数量级。 reg:正则化的惩罚项。 dtype:把所有值由64位转化成32位 来源: CSDN 作者: 王壹浪 链接: https://blog.csdn.net/com_fang_bean/article/details/103702793

Image Super-Resolution Using Deep Convolutional Networks 论文总结

喜夏-厌秋 提交于 2019-12-24 01:16:28
Image Super-Resolution Using Deep Convolutional Networks 论文总结 提示: 文中【】中的内容表示我没读懂的内容或不知道怎么翻译的内容 若文中有错误或知道【】中内容的正确含义,希望能在评论区中指出 Abstract 摘要讲了讲论文写了些啥: 作者提出了一种针对单图像超分辨的深度学习方法,即SRCNN。该方法直接学习低/高分辨率图像之间的端到端映射。映射是用一个低分辨率图像为输入,高分辨率图像为输出的深度卷积神经网络来表示的。 证明了传统基于稀疏编码的SR方法也可以看作是一个深度卷积网络。 传统方法是分别处理每个组件,而SRCNN联合优化所有层。 SRCNN具有轻量级的结构,同时有最先进的恢复质量,并且实现了快速的实际在线使用。 作者探索了不同的网络结构和参数设置,以实现性能和速度之间的权衡。 SRCNN可以同时处理三个颜色通道,表现出更好的整体重建质量。 Introduction 超分辨率问题本质是不适定的( inherently ill-posed)或者说超分辨率是个欠定逆问题( underdetermined inverse problem)。意思就是超分辨率是个解不是唯一的问题,因为对于任何给定的低分辨率像素都存在多重解。对于这个问题通常用强先验信息约束解空间来缓解,为了学习强先验信息,现在最先进的方法大多基于例子的策略

卷积神经网络的输入输出尺寸计算

二次信任 提交于 2019-12-23 18:22:16
给出输入尺寸和参数值计算输出尺寸 当给出: 输入尺寸(n * n)、卷积核尺寸(m * m)、步长Stride(s)、填充信息Padding ( p ) 则输出尺寸为: ( ( n - m + 2 * p ) / s +1 ) * ( ( n - m + 2 * p ) / s +1 ) 解释: 当输入图像为 :5 * 5,卷积核尺寸为:3 * 3, padding = 0 , stride = 1时,输入图像的卷积运算如下: 来源: CSDN 作者: 油醋三椒 链接: https://blog.csdn.net/weixin_42664622/article/details/103570549

计算CNN卷积神经网络中各层的参数数量「附代码」

人盡茶涼 提交于 2019-12-23 16:59:27
每个对机器学习感兴趣的机器学习工程师/软件开发人员/学生都在卷积神经网络(也称为CNN)上工作。我们有一个一般理论,即如何训练网络对图像进行分类。但是,刚接触机器学习/神经网络的人们并不了解CNN如何精确地学习参数。 我们知道,在每个转换层中,网络都试图了解基本模式。例如:在第一层中,网络尝试学习图案和边缘。在第二层中,它尝试了解形状/颜色和其他内容。最后一层称为要素层/完全连接层尝试对图像进行分类。 在学习参数之前,我们需要了解卷积网络中的一些基本概念,这对修改/重用源代码非常有帮助。 CNN网络中存在各种层。 输入层: 所有输入层所做的都是读取图像。因此,这里没有学习参数。 卷积层: 考虑一个以“ l ”个特征图为输入并以“ k ”个特征图为输出的卷积层。过滤器尺寸为“ n * m ” 。 在此,输入具有 l = 32个 特征图作为输入, k = 64个 特征图作为输出,并且过滤器大小为 n = 3和m = 3 。重要的是要理解,我们不只是拥有3 * 3过滤器,而是实际上拥有 3 * 3 * 32 过滤器,因为我们的输入具有32个尺寸。作为第一转换层的输出,我们学习了64个不同的 3 * 3 * 32 滤波器,总权重为“ n * m * k * l ”。然后,每个特征图都有一个称为“偏差”的术语。因此,参数总数为“ (n * m * l + 1)* k ”. 池化层 : 池化层

深度剖析YOLO系列的原理

和自甴很熟 提交于 2019-12-22 17:13:31
深度剖析YOLO系列的原理 小说阅读网 https://www.7wx.org/ 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/12072225.html 目录 1. YOLO的作用 2. YOLO(v1,v2,v3)的技术演化 1. YOLO的作用 yolo是当前目标检测最顶级的算法之一,v1版本是2016年提出来的,v2是2017年提出来的,v3是2018年提出的。 官网地址:https://pjreddie.com/darknet/yolo/ 说它最牛掰,有两点: 一是因为它采用深层卷积神经网络,吸收了当前很多经典卷积神经网络架构的优秀思想,在位置检测和对象的识别方面, 性能达到最优(准确率非常高的情况下还能达到实时检测)。 二是因为作者还将代码开源了。真心为作者这种大公无私的心胸点赞。 美中不足的是:作者虽然将代码开源,但是在论文介绍架构原理的时候比较模糊,特别是对一些重要改进,基本上是一笔带过。 现在在网络上有很多关于YOLO原理的讲解,个人感觉讲得不是很清楚,总感觉有点知其然而不知其所以然。比如: yolo是在什么背景下出现的? v1是在哪个经典网络架构上发展起来的?解决了什么问题?又存在什么问题? v2针对v1的缺点做了哪些改进?改进后效果怎么样?又存在什么问题?

用C语言搭建简单的神经网络

佐手、 提交于 2019-12-22 13:46:24
这份代码是笔者为了巩固神经网络当中反向传播而写的,同时也巩固了一些对于细节的理解,当然由于笔者水平有限,搭建的仅仅是序列模型,而且有些地方没想清楚就开始写了,导致有点冗长,甚至有些地方还有一些bug或者错误,仅用于学习,代码放在 https://github.com/Spock343/Seq_Model 由于模型不怎么样,则仅用于做简单的分类(自己生成数据集) 在这个模型中,我将每层得到的结果放在该模型的caches中,将对于该层caches的导数放在模型的dcaches中,将对于权重,偏置和卷积核以及相应的导数放在层当中。这里总共写了四种层,卷积层,池化层,扁平化层和全连接层,由于维度的原因,这里将矩阵的二级指针当中,即caches[l][0][0](l为层数)当中。 首先其中大部分操作都是根据理论直接写的,没什么特别的,这里说一些遇到的困难 在一开始是还没写dropout正则化时,过拟合现象及其严重传统的L2正则化几乎不起效果,在加入dropout之后才稍微解决。 然后是发现训练速度很慢,然后写入Adam优化器之后训练速度很快就上来了。 最后是梯度过大的问题,无论是加了梯度衰减还是,调整学习率都效果不好,但是后来加了梯度裁剪后,才得以解决。 接下来就是调模型和调参数了,在调的过程中可以发现在单层加了很多卷积核的效果远不如做两层卷积核,当时一开始做了两层

卷积神经网络(CNN)之入门篇

不想你离开。 提交于 2019-12-19 00:52:36
一、CNN的作用 1、在图片的分类问题中,我们依旧需要根据训练集去判断测试集属于哪一个类别。图片是由不同的像素点组成,同一种动物不同的形态都会导致像素值的不同,通过CNN我们可以汇总得出图片中动物的整体特征,从而进行比对。 2、给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,输出结果为:如果是车 那是什么车 二、CNN简介 1、CNN的概念:卷积神经网络是一种带有卷积结构的深度神经网络,卷积结构可以减少网络占用的内存量,三个关键的操作分别是 局部感受野 (每一次只取一小部分)、 权值共享 (相当于一个滤波器)、 pooling层 (适当的降维),有效的减少了参数,缓解了过拟合的问题。 (1)局部感受野:由于图像的空间联系是局部的,每个神经元不需要对全部的图像做感受,只需要感受局部特征即可,然后在更高层将这些感受得到的不同的局部神经元综合起来就可以得到全局的信息了,这样可以减少连接的数目。 (2)权值共享(不同的权值相当于不同的特征进行过滤):不同神经元之间的参数共享可以减少需要求解的参数,使用多种滤波器去卷积图像就会得到多种特征映射。权值共享其实就是对图像用同样的卷积核进行卷积操作,也就意味着第一个隐藏层的所有神经元所能检测到处于图像不同位置的完全相同的特征。其主要的能力就能检测到不同位置的同一类型特征

yolov3--19--一文读懂深度可分离卷积

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-18 09:20:26
深度可分卷积 MobileNet 的核心层使用了一种称之为 深度可分离卷积的操作来替代传统的标准卷积,减少了卷积核的冗余表达。深度可分离卷积可以被分解为深度卷积和卷积核尺寸为1×1的逐点卷积组合。 可以将产生和组合步骤被分为两步,分别用深度卷积和逐点卷积代替,从而大大减少计算开销。 现在来看深度可分卷积,这在深度学习领域要常用得多(比如 MobileNet 和 Xception)。深度可分卷积包含两个步骤:深度卷积核 1×1 卷积。 在描述这些步骤之前,有必要回顾一下我们之前介绍的 2D 卷积核 1×1 卷积。首先快速回顾标准的 2D 卷积。举一个具体例子,假设输入层的大小是 7×7×3(高×宽×通道),而过滤器的大小是 3×3×3。经过与一个过滤器的 2D 卷积之后,输出层的大小是 5×5×1(仅有一个通道)。 用于创建仅有 1 层的输出的标准 2D 卷积,使用 1 个过滤器 一般来说,两个神经网络层之间会应用多个过滤器。假设我们这里有 128 个过滤器。在应用了这 128 个 2D 卷积之后,我们有 128 个 5×5×1 的输出映射图(map)。然后我们将这些映射图堆叠成大小为 5×5×128 的单层。通过这种操作,我们可将输入层(7×7×3)转换成输出层(5×5×128)。空间维度(即高度和宽度)会变小,而深度会增大。 用于创建有 128 层的输出的标准 2D 卷积,要使用

CNN - 卷积神经网络

﹥>﹥吖頭↗ 提交于 2019-12-18 02:47:56
例: 卷积公式: 卷积和卷积没有什么特别的关系,只是计算步骤比较像,成为卷积神经网络名字的由来。 感受野: 单个感觉神经元的感受野是感觉空间的特定区域(如体表或视野),在这个区域内,刺激会改变神经元的放电。 卷积神经网络的感受野 卷积神经网络的基本结构 卷积神经网络的组成部分 卷积层+ReLU(Convolution) 池化层(Pooling) 全连接层(Full-connected) 卷积层 不同过滤器可检测不同特征。 卷积运算(二维): 卷积步长(stride): 滑动滤波器时每次移动的像素点个数 边缘扩充(addpad) : Full: 刚开始相交进行卷积 Same:输入和输出保持不变的卷积 Valid: 在图像内进行卷积 如果我们有一个𝑛×𝑛的图像,使用𝑓×𝑓的卷积核进行卷积操作,在进行卷积操作之前我们在图像周围填充𝑝层数据,步幅为s。输出的维度为: 深度(卷积核个数): 一个卷积层通常包含多个尺寸一致的卷积核 卷积核参数:可以通过训练得出 浅层卷积层:提取的是图像基本特征,如边缘、方向和纹理等特征 深层卷积层:提取的是图像高阶特征,出现了高层语义模式, 如“车轮”、“人脸”等特征 激活函数 Sigmoid激活函数 求导: ReLu激活函数 池化层 池化操作使用某位置相邻输出的总体统计特征作为该位置的输出,常用最大池化(max-pooling)和均值池化(average