卷积神经网络

反卷积与棋盘效应(Checkerboard Artifacts)

蹲街弑〆低调 提交于 2020-03-01 10:58:31
当我们仔细观察由神经网络生成的图像时,我们经常会看到一种奇怪的棋盘图案。在某些情况下,它比其他情况更明显,但最近的大部分模型都表现出这种行为。 当我们要用到深度学习来生成图像的时候,往往是基于一个低分辨率且具有高维的特征图。我们通常使用 反卷积 操作来完成此操作,但不幸的是,当卷积核大小不能被步长整除的时候,会出现棋盘现象 并且在二维图片上,情况会更加严重: 方法尝试1:现在,神经网络在创建图像时通常使用多层反卷积,从一系列较低分辨率的描述中迭代地构建较大的图像。虽然这些堆叠的去卷积可能会消除伪影,但它们通常会复合,从而在各种尺度上产生伪影。 方法尝试2:在反卷积后面,再接一个步长为1的卷积,效果有限 方法尝试3:调整卷积核的权重,适当加大重叠部分少的权重,虽然理论有效,但在实际操作中,不仅有困难也会减弱模型的表达力 方法尝试4:使得卷积核大小不能被步长整除,但卷积核权重的学习不均匀也会导致伪影现象(下图为步长为2,核大小为4所产生的现象) 正确的方法尝试5:调整图像大小(使用 最近邻插值 或 双线性插值 ),然后执行卷积操作。这似乎是一种自然的方法,大致相似的方法在图像超分辨率方面表现良好 方法对比实验,效果最好的是方法5 参考资料: https://distill.pub/2016/deconv-checkerboard/ 当我们仔细观察由神经网络生成的图像时

CNN

柔情痞子 提交于 2020-02-29 13:47:21
文章目录 1.全连接神经网络的局限性: 2 2.1 CNN结构: 2.2 卷积 2.3 pooling池化 2.4 卷积函数 2.5池化函数 1.全连接神经网络的局限性: 当图片分辨率进一步增加时,当隐层数量增加时,参数会过多,参数增多导致计算速度缓慢,过拟合问题,需要合理的结构来有效减少参数个数.CNN可看做神经认知机的推广形式,CNN是一个多层的神经网络,每层由多个二维平面组成,其中每个平面由多个独立神经元组成. 2 2.1 CNN结构: 输入层:将每个像素代表一个特征点输入到网络中 卷积层:卷积运算的主要目的是使原信号特征增强,并降低噪音 降采样层:通过减少矩阵的长和宽,降低网络训练参数及模型的过拟合程度 全连接层:对生成的特征进行加权 softmax层:获得当前样例属于不同类别的概率 2.2 卷积 权值矩阵称为卷积核 卷积核在2维输入数据上滑动,对当前输入部分的元素进行矩阵乘法,然后将结果汇为单个输出像素值,重复直到 遍历整个图像,这个过程称为卷积 卷积操作之后的图像称为特征图feature map 局部连接:每个输入特性不用查看每个输入特征,只需查看部分输入特征 权值共享:卷积核在图像上滑动过程保持不变 多通道卷积:每个通道使用一个卷积核进行卷积操作,然后将这些特征图相同位置上的值相加,生成一个特征图 [m,m]->[n,n] ->[n,n] ->[n,n] [m,m

计算机视觉入门——01 CNN网络(卷积神经网络的结构)

徘徊边缘 提交于 2020-02-28 18:14:39
卷积的计算: https://blog.csdn.net/qq_32846595/article/details/79053277 入门资料: https://zhuanlan.zhihu.com/p/31249821 采样层实际上只是特征提取的过程,并不是一个实际的模块!!! 卷积实际上可以充当一个对原图像进行二次转化,提取feature 的作用。 全连接层:将pixels放入神经网络输出结果。 采样层:相当于信息预处理,只保留有用的信息。 加入卷积层,进一步减少数据 一个3x3 source pixels 经过一个3x3的卷积核后,source pixels 的特征映射成一个1x1 destination pixel。 级联分类器:大概意思就是我从一堆弱分类器里面,挑出一个最符合要求的弱分类器,用着这个弱分类器把不想要的数据剔除,保留想要的数据然后再从剩下的弱分类器里,再挑出一个最符合要求的弱分类器,对上一级保留的数据,把不想要的数据剔除,保留想要的数据。最后,通过不断串联几个弱分类器,进过数据层层筛选,最后得到我们想要的数据。 CNN主要由3钟模块构成: 卷积层 采样层 全连接层 整个过程相当于: 1、通过第一个卷积层提取最初特征,输出特征图(feature map) 2、通过第一个采样层对最初的特征图(feature map )进行特征选择,去除多余特征,重构新的特征图 3

马里奥AI实现方式探索 ——神经网络+增强学习

元气小坏坏 提交于 2020-02-28 08:44:28
目录 马里奥AI实现方式探索 ——神经网络+增强学习 神经网络 M-P模型 早期神经网络 深度神经网络 总结 增强学习 马尔可夫决策过程(MDP) 基于NEAT算法的马里奥AI实现 基于Deep Reinforcement Learning的马里奥AI实现 总结 马里奥AI实现方式探索 ——神经网络+增强学习 儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典的马里奥形象出现。平时我们都是人来玩马里奥游戏,能否可以让马里奥智能的自己闯关个呢?OK,利用人工智能的相关算法来进行自动化通关一直是一个热门的话题,最近最火的相关东东就是传说中的alphaGo啦。而在游戏的自动化测试当中,这种算法也是非常实用的,可以大量的减少测试人力成本。 首先,对于实现马里奥AI当中涉及到的神经网络和增强学习的相关概念进行整理,之后对智能通关的两种方式进行阐述。(本人才疏学浅,在神经网络和增强学习方面基本门外汉,如有任何纰漏,还请大神指出,我会第一时间改正。) 神经网络 像飞机的灵感来源于鸟类,雷达的灵感来源于蝙蝠,红外线的灵盖来源于蛇,而本文要讨论的神经网络灵感来源于我们自己,人类大脑的神经元结构。从神经元结构被提出,到时下火热的无以复加的深度神经网络,发展过程也可为一波三折。我们按照时间的顺序

【39】为什么使用卷积?(Why convolutions?)

谁说我不能喝 提交于 2020-02-27 21:03:08
为什么使用卷积?(Why convolutions?) 我们来分析一下卷积在神经网络中如此受用的原因,然后对如何整合这些卷积,如何通过一个标注过的训练集训练卷积神经网络做个简单概括。和 只用全连接层相比,卷积层的两个主要优势在于参数共享和稀疏连接 ,举例说明一下。 假设有一张32×32×3维度的图片,这是上节课的示例,假设用了6个大小为5×5的过滤器,输出维度为28×28×6。32×32×3=3072,28×28×6=4704。我们构建一个神经网络,其中一层含有3072个单元,下一层含有4074个单元,两层中的每个神经元彼此相连,然后计算权重矩阵,它等于4074×3072≈1400万,所以 要训练的参数很多 。 虽然以现在的技术,我们可以用1400多万个参数来训练网络,因为这张32×32×3的图片非常小,训练这么多参数没有问题。如果这是一张1000×1000的图片,权重矩阵会变得非常大。我们看看这个卷积层的参数数量,每个过滤器都是5×5,一个过滤器有25个参数,再加上偏差参数,那么每个过滤器就有 26个参数 ,一共有6个过滤器,所以 参数共计156个,参数数量还是很少 。 卷积网络映射这么少参数有两个原因: 一是参数共享。 观察发现,特征检测如垂直边缘检测如果适用于图片的某个区域,那么它也可能适用于图片的其他区域。也就是说,如果你用一个3×3的过滤器检测垂直边缘

【33】卷积步长讲解(Strided convolutions)

本秂侑毒 提交于 2020-02-27 18:26:52
卷积步长(Strided convolutions) 卷积中的步幅是另一个构建卷积神经网络的基本操作,让我向你展示一个例子。 如果你想用3×3的过滤器卷积这个7×7的图像,和之前不同的是,我们把步幅设置成了2。你还和之前一样取左上方的3×3区域的元素的乘积,再加起来,最后结果为91。 只是之前我们移动蓝框的步长是1,现在移动的步长是2,我们让过滤器跳过2个步长,注意一下左上角,这个点移动到其后两格的点,跳过了一个位置。然后你还是将每个元素相乘并求和,你将会得到的结果是100。 现在我们继续,将蓝色框移动两个步长,你将会得到83的结果。当你移动到下一行的时候,你也是使用步长2而不是步长1,所以我们将蓝色框移动到这里: 注意到我们跳过了一个位置,得到69的结果,现在你继续移动两个步长,会得到91,127,最后一行分别是44,72,74。 所以在这个例子中,我们用3×3的矩阵卷积一个7×7的矩阵,得到一个3×3的输出。输入和输出的维度是由下面的公式决定的。如果你用一个f×f的过滤器卷积一个n×n的图像,你的padding为p,步幅为s,在这个例子中s=2,你会得到一个输出,因为现在你不是一次移动一个步子,而是一次移动s个步子,输出于是变为( (n+2p-f)/s+1) ×( (n+2p-f)/s+1) 在我们的这个例子里,n=7,p=0,f=3,s=2, (7+0-3)/2+1=3,即3

U-Net: Convolutional Networks for Biomedical Image Segmentation

一曲冷凌霜 提交于 2020-02-27 18:22:56
U-Net: Convolutional Networks for Biomedical Image Segmentation 引用:Ronneberger O , Fischer P , Brox T . U-Net: Convolutional Networks for Biomedical Image Segmentation[J]. 2015. U-Net:用于生物医学图像分割的卷积网络 论文地址: https://arxiv.org/pdf/1505.04597v1.pdf GitHub源码地址: https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/ https://github.com/zhixuhao/unet https://github.com/yihui-he/u-net http://blog.leanote.com/post/zongwei/Pa http://blog.csdn.net/hjimce/article/details/50268555 一、摘要 人们普遍认为,成功地训练深度网络需要 数千个带注释 的训练样本。在本文中,我们提出了一种网络和培训策略,该策略依赖于 数据增强 的强大使用来更有效地 使用可用的带注释的样本

零基础入门深度学习(三):卷积神经网络基础之初识卷积

北城余情 提交于 2020-02-27 09:27:19
课程名称 | 零基础入门深度学习 授课讲师 | 孙高峰 百度深度学习技术平台部资深研发工程师 授课时间 | 每周二、周四晚20:00-21:00 编辑整理 | 孙高峰 内容来源 | 百度飞桨深度学习集训营 出品平台 | 百度飞桨 01 导读 本课程是百度官方开设的零基础入门深度学习课程,主要面向没有深度学习技术基础或者基础薄弱的同学,帮助大家在深度学习领域实现从0到1+的跨越。从本课程中,你将学习到: 深度学习基础知识 numpy实现神经网络构建和梯度下降算法 计算机视觉领域主要方向的原理、实践 自然语言处理领域主要方向的原理、实践 个性化推荐算法的原理、实践 本周为开讲第三周,百度深度学习技术平台部资深研发工程师孙高峰,开始讲解深度学习在计算机视觉方向实践应用。今天为大家带来的是卷积神经网络基础之初识卷积。 02 计算机视觉概述 计算机视觉作为一门让机器学会如何去“看”的科学学科,具体的说,就是让机器去识别摄像机拍摄的图片或视频中的物体,检测出物体所在的位置,并对目标物体进行跟踪,从而理解并描述出图片或视频里的场景和故事,以此来模拟人脑视觉系统。因此,计算机视觉也通常被叫做机器视觉,其目的是建立能够从图像或者视频中“感知”信息的人工系统。 计算机视觉技术经过几十年的发展,已经在交通(车牌识别、道路违章抓拍)、安防(人脸闸机、小区监控)、金融(刷脸支付、柜台的自动票据识别)、医疗

Keras【Deep Learning With Python】更优模型探索Keras实现CNN

廉价感情. 提交于 2020-02-26 10:07:09
文章目录 CNN 1.CNN介绍 2.CNN基本原理 代码实现 手写数字复杂网络层抽特征可视化工具http://scs.ryerson.ca/~aharley/vis/conv/ CNN 1.CNN介绍 CNN是应用在图像识别领域较多的一种机器学习算法,它与普通的神经网络有点类似,通过输入层然后乘以权重加上偏置,并且通过一个非线性的激活函数,即可得到输出值。CNN要做的是给定一幅图,对该图像进行编码最终即可将该图进行分类,而此过程中参数相比普通神经网络的参数要少,并且更加高效。 CNN通常由三个部分组成,分别是Conv layer、Pooling layer、Full-connected layer,它们组成了一个完整的CNN结构。通常输入是一幅图片,whc,分别为图像的宽度高度以及频道数目(RGB),conv layer将计算输入层与权重矩阵的卷积,然后将该结果通过ReLU函数,Pooling layer用于对卷积后的矩阵进行抽样降维,例如按22矩形大小对原卷积矩阵分成若干个22大小的块,然后对于每个块只取其中的最大值,这样就可以使得维度降低为原来的1/4,而这就是max pooling方法,该方法的优点是减少了计算过程中参数的个数以及防止过拟合的产生。最后,经过的是MLP,方法类似,可以参考以前的博文(逻辑回归及感知器)。 总结一下,CNN就是将一幅图像经过一层又一层的编码过后

dilated convolutions:扩张卷积

隐身守侯 提交于 2020-02-25 01:55:43
最近在阅读《Context Encoding for Semantic Segmentation》中看到应用了dilated convolutions。 扩张卷积与普通的卷积相比,除了卷积核的大小以外,还有一个扩张率(dilation rate)参数,主要用来表示扩张的大小。扩张卷积与普通卷积的相同点在于,卷积核的大小是一样的,在神经网络中即参数数量不变,区别在于扩张卷积具有更大的感受野。感受野是卷积核在图像上看到的大小,例如 3 × 3 3×3卷积核的感受野大小为9。 (a) 普通卷积,1-dilated convolution,卷积核的感受野为 3 × 3 = 9 3×3=9。 (b) 扩张卷积,2-dilated convolution,卷积核的感受野为 7 × 7 = 49 7×7=49。 (c) 扩张卷积,4-dilated convolution,卷积核的感受野为 15 × 15 = 225 15×15=225。 扩展卷积在保持参数个数不变的情况下增大了卷积核的感受野,同时它可以保证输出的特征映射(feature map)的大小保持不变。一个扩张率为2的3×3卷积核,感受野与5×5的卷积核相同,但参数数量仅为9个,是5×5卷积参数数量的 36 %。 dilated的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息