卷积神经网络

Network in Network(2013),1x1卷积与Global Average Pooling

本秂侑毒 提交于 2019-12-01 04:53:45
目录 写在前面 mlpconv layer实现 Global Average Pooling 网络结构 参考 博客: blog.shinelee.me | 博客园 | CSDN 写在前面 《Network in Network》 简称NIN,出自 颜水成老师 团队,首次发表在arxiv的时间为2013年12月,至20190921引用量为2871(google scholar)。 NIN的网络结构仍是在AlexNet基础上修改而来,其主要创新点如下: 提出了 mlpconv layer :mlpconv layer中使用小的多层全连接神经网络(multilayer perceptron, MLP)“micro network”替换掉卷积操作, micro network的权重被该层输入feature map的所有local patch共享 。卷积操作可以看成线性变换,而micro network可以拟合更复杂的变换, 相当于增强了conv layer的能力 。多个mlpconv layer堆叠构成整个网络,这也是Network in Network名称的由来。 提出了 global average pooling(GAP) : NIN不再使用全连接层 ,最后一层mlpconv layer输出的feature map数与类别数相同,GAP对每个feature map求全图均值

AlexNet-ImageNet Classification with Deep Convolutional Neural Networks

北城余情 提交于 2019-12-01 01:53:53
摘要 我们训练了一个又大又深的卷积神经网络CNN来将ImageNet LSVRC-2010数据集中的120万章高分辨率的图片分成1000个不同的类。在测试集中,我们的top1错误率是37.5%,top5的错误率是17.0%。相对而言比之前的state-of -art好很多。这个神经网络有6000万个参数,65个神经元,5个卷积神经网络(有一些带有最大池化层),3个全连接层,最后有一个1000路的softmax。为了训练的快一些,我们采用了一个非饱和的神经元和非常有效的卷积神经网络GPU实施方式。为了减少全连接层的过拟合,我们使用了最近研究出来的一种方法-droupout,他能够有效的降低过拟合。我们还将这个模型的变体参加了ILSVRC-2012竞赛,并取得冠军,top5的错误率是15.3%,第二名是26.2%。 1 、开场白 四年前,Yann LeCun和他的团队的一个论文被最领先的CV会议拒绝了,因为怎么设计一个视觉系统内部是不明确的。那个时候,大部分的计算机视觉的研究人员认为视觉系统需要使用任务的自然理解来手动进行设计视觉系统。他们认为图片中对象的分类任务不会被简单的呈现图片和和对相应的图片进行标记这种方式获得。 很多计算机视觉领域内的团队没有意识到:之前的方法 由理解这个领域内的程序员来手动设计;用一种有力的通用的学习过程来替代这个专门领域中的程序员,也是可以的

边缘检测

家住魔仙堡 提交于 2019-12-01 01:23:59
在图像处理和神经网络中经常出现的一个词,卷积核 那到底什么是卷积呢?卷积为什么可以提取特征或者检测边缘呢?我们一步一步慢慢看。 首先,如图, 卷积对于离散的点来说就是两个矩阵对应位置相乘再相加的和; 也就是说卷积只是数学中的一个叫法,并不是什么高深语言; 那为什卷积能够提取特征呢? 先看模板的理解: 一个数学上的二阶导数经过我们的推导最后可以变成一个矩阵的模板; 也就是说其实卷积的提取原理就是相当于我们做一系列的数学变化,将求导,拉普拉斯变换等数学公式来近似变换成我们的卷积的样子;这就是为什么卷积有这么多作用了。 如果还没有理解,可参考我前面讲解的博文,看一遍基本就理解什么是卷积了; 二阶微分算子-拉普拉斯算子 边缘检测-算子推导 边缘检测算子 边缘检测 来源: https://www.cnblogs.com/fcfc940503/p/11645699.html

GoogLeNet论文记录

冷暖自知 提交于 2019-12-01 00:58:41
摘要简介 Inception深度卷积神经网络架构,这种架构提升利用计算机内部资源,增加网络的深度和网络的宽度,但是不增加计算量。 优化质量以Hebbian理论和多尺度直觉为基础。 随着深度学习和神经网络的发展,目标分类和检测的能力显著提高。其一是GoogLeNet参数使用更少,并且结果更加准确。第二点是考虑到算法效率,电力和内存的使用,考虑这个得出本文的深度框架设计。 计算机视觉深度神经网络架框Inception。 Serre使用了一系列固定大小的Gabor滤波器来处理多尺度,相反,Inception结构中所有的滤波器都是学习到的。 在Network-in-Network中大量运用了1 1的卷积。我们也使用1 1的卷积来作为降维模块来移除卷积瓶颈,否则会限制网络的大小。不仅允许深度的增加,还允许了宽度的增加,没有造成明显的性能损失。 R-CNN将检测问题分为2个子问题:利用低层次的信号例如颜色,纹理以跨类别的方式来产生目标位置候选区域,然后用CNN分类器来识别那些位置上的对象类别。 思想及方法 提高神经网络性能是增加宽度和深度。造成了俩个缺点,第一是更大的尺寸意味着更多的参数,使增大的网络更加容易过拟合。第二是计算资源的显著增加。解决方法为引入稀疏性并将全连接层替换成稀疏的全连接层,甚至是卷积层。 Arora主要成果说明如果数据集的概率分布可以通过一个大型稀疏的深度神经网络表示

卷积神经网络的卷积核大小、个数,卷积层数如何确定呢?

房东的猫 提交于 2019-12-01 00:00:48
卷积神经网络的卷积核大小、卷积层数、每层map个数都是如何确定下来的呢?看到有些答案是刚开始随机初始化卷积核大小,卷积层数和map个数是根据经验来设定的,但这个里面应该是有深层次原因吧,比如下面的手写字卷积神经网络结构图1,最后输出为什么是12个map,即输出12个特征?然后图2又是输出10个特征了? 在达到相同感受野的情况下,卷积核越小,所需要的参数和计算量越小。 具体来说。卷积核大小必须大于1才有提升感受野的作用,1排除了。而大小为偶数的卷积核即使对称地加padding也不能保证输入feature map尺寸和输出feature map尺寸不变(画个图算一下就可以发现),2排除了。所以一般都用3作为卷积核大小。 每一层卷积有多少channel数,以及一共有多少层卷积,这些暂时没有理论支撑,一般都是靠感觉去设置几组候选值,然后通过实验挑选出其中的最佳值。这也是现在深度卷积神经网络虽然效果拔群,但是一直为人诟病的原因之一。 多说几句,每一层卷积的channel数和网络的总卷积层数,构成了一个巨大的超参集合,这个超参集合里的最优组合,很可能比目前业界各种fancy的结构还要高效。只是我们一来没有理论去求解这个超参集合里的最优,二来没有足够的计算资源去穷举这个超参集合里的每一个组合,因此我们不知道这个超参集合里的最优组合是啥。 现在业界里提出的各种fancy结构中不少都是不断trial

Winograd Convolution 推导 - 从1D到2D

China☆狼群 提交于 2019-11-30 21:08:01
Winograd Convolution 推导 - 从1D到2D 姚伟峰 http://www.cnblogs.com/Matrix_Yao/ Winograd Convolution 推导 - 从1D到2D 1D Winograd 卷积 2D Winograd卷积 实操粉 理论粉 参考文献 1D Winograd 卷积 1D Winograd算法已经有很多文章讨论了,讨论得都比较清楚,这里就不再赘述,仅列出结论。 输入 :四维信号 卷积核 : 三维向量 输出 : 二维信号 则 可表示为: 其中: 2D Winograd卷积 2D Winograd可以由1D Winograd外推得到,因此为解决2D Winograd问题,首先要 重温1D 卷积解决的问题 。在此复述一遍: 假设一个卷积核尺寸为3的一维卷积,假设每次我们输出2个卷积点,则我们形式化此问题:F(2, 3)。 因为输出为2,卷积核大小为3,对应的输入点数应该为4,则此问题表述为: 输入 :四维信号 卷积核 : 三维向量 因此,此卷积的 矩阵乘形式 应为: 请记住这个形式是Winograd算法解决的问题,后续2D算法将化归为这个问题。 下面我们来定义2D 卷积问题,将1D卷积扩展一维: 假设一个卷积核尺寸为3x3的二维卷积,假设每次我们输出2x2个卷积点,则我们形式化此问题:F(2x2, 3x3)。 因为输出为2x2

神经网络模型(Backbone)

岁酱吖の 提交于 2019-11-30 19:52:14
  自己搭建神经网络时,一般都采用已有的网络模型,在其基础上进行修改。从2012年的AlexNet出现,如今已经出现许多优秀的网络模型,如下图所示。 主要有三个发展方向:     Deeper:网络层数更深,代表网络VggNet     Module: 采用模块化的网络结构(Inception),代表网络GoogleNet     Faster: 轻量级网络模型,适合于移动端设备,代表网络MobileNet和ShuffleNet     Functional: 功能型网络,针对特定使用场景而发展出来。如检测模型YOLO,Faster RCNN;分割模型FCN, UNet   其发展历史可以分为三个阶段:   这些模型在ImageNet上的表现效果对比如下:    1. LeNet-5   LeNet-5是LeCun在1998年的论文中 Gradient-Based Learning Applied to Document Recognition 提出的网络模型,其结构如下:(其中卷积为5*5的kernel,下采样为2*2的MaxPooling),其结构比较简单,关于LeNet-5结构设计的详细分析,参见: 参考一 , 参考二 2. AlexNet   AlexNet是Alex Krizhevsky在2012的文章ImageNet Classification with Deep

深度学习论文翻译解析(五):Siamese Neural Networks for One-shot Image Recognition

半世苍凉 提交于 2019-11-30 16:32:43
论文标题:Siamese Neural Networks for One-shot Image Recognition 论文作者: Gregory Koch Richard Zemel Ruslan Salakhutdinov 论文地址: https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf 声明:小编翻译论文仅为学习,如有侵权请联系小编删除博文,谢谢! 小编是一个机器学习初学者,打算认真研究论文,但是英文水平有限,所以论文翻译中用到了Google,并自己逐句检查过,但还是会有显得晦涩的地方,如有语法/专业名词翻译错误,还请见谅,并欢迎及时指出。 摘要   为机器学习应用程序学习一个好的特征的过程可能在计算上非常昂贵,并且在数据很少的情况下可能会变得困难。一个典型的例子就是一次学习设置,在这种情况下,我们必须仅给出每个新类的一个示例,就可以正确的做出预测。在本文中,我们探索了一种学习孪生神经网络的方法,该方法采用独特的结构自然对输入之间的相似性进行排名。一旦网络被调整好,我们就可以利用强大的判别功能,将网络的预测能力不仅用于新数据,而且适用于未知分布中的全新类别。使用卷积架构,我们可以在单次分类任务上获得近乎最先进的性能,从而超过其他深度学习模型的强大结果。   人类展现出强大的获取和识别新模式的能力。特别是,我们观察到

deep_learning_CNN

最后都变了- 提交于 2019-11-30 16:11:15
AI学习笔记——卷积神经网络(CNN) image.png 上篇文章简单地地介绍了 神经网络和深度学习 ,在神经网络中,每一层的 每个 神经元都与下一层的 每个 神经元相连(如下图), 这种连接关系叫 全连接(Full Connected) 。如果以图像识别为例,输入就是是每个像素点,那么每一个像素点两两之间的关系(无论相隔多远),都被下一层的神经元"计算"了。 这种全连接的方法用在图像识别上面就显得太"笨"了,因为图像识别首先得找到图片中各个部分的"边缘"和"轮廓",而"边缘"和"轮廓"只与相邻近的像素们有关。 这个时候 卷积神经网络(CNN) 就派上用场了,卷积神经网络可以简单地理解为,用 滤波器(Filter) 将相邻像素之间的"轮廓"过滤出来。 image.png 卷积(Convolution) 卷积的滤波器(Filter)是如何工作的呢?以下图,一个6x6的图片被一个3x3的滤波器(可以看成一个窗口)卷积为例,3x3的滤波器先和6x6的图片最左上角的3x3矩阵 卷积 得到结果后,再向右移一步继续卷积( 窗口滑动 ),直到将整个图片过滤完成,输出一个4x4的矩阵(图片)。 image.png 这样有什么意义呢?如果如下图所示,被卷积的图片有明显的竖直轮廓(10和0之间有一轮廓,这条轮廓需要被标记出来),用3x3的竖直轮廓滤波器卷积之后,就能发现中间那条非常明显的竖直轮廓

机器学习之卷积神经网络CNN

只谈情不闲聊 提交于 2019-11-30 13:22:51
卷积神经网络CNN(入门认知) CNN的目的:特征提取 层次:卷积层 .池化层 .输出层 卷积层 :利用局部特征(卷积核),去计算出目标的 整体特征情况。 上图中的 各种X ,我们可以提取其中的几个特征作为卷积核。下图中选择红框框起来的作为特征。 所以我们可以得到三个 卷积核(也称为过滤器) : 卷积运算: 矩阵对应位子的乘法运算,然后选择平均值填入 feature map 图中。(如下图所示) 将目标与卷积核分别进行卷积运算,就可以 一个feature map,比如这里三个卷积核,最后会有三层的 feature map被得到。 所以经过卷积运算,可以将目标数据缩小,上图中9x9 的目标,卷积后 变成 7x7了。完整动态图见下方 激励层Relu: 获取特征图中 关联性大的数据,将关联性小的 都直接设置为0 数学公式是:f(X)=max(0,X) 池化层pooling (采样):压缩数据 虽然进行卷积操作已经使得数据变小了一点,但是还是不够小。需要使用到池化层,池化的方法有 最大池化(取最大值)和平均池化(取最小值)。下图所示的就是最大池化,在2x2的池化窗口中,选择一个最大的数值 填入到新的 特征图(feature mao)中。 为什么可以这样压缩?因为CNN想要的是知道有没有匹配的特征,不需要知道这个特征在那个位置匹配,所以这样压缩还是可以知道有匹配的数据以及其程度。 1