卷积神经网络

卷积神经网络(CNN)学习笔记

喜你入骨 提交于 2020-02-07 00:42:34
为什么需要卷积神经网络? 全连接神经网络主要存在参数过多不便处理高维数据这两大问题,卷积神经网络是通过 参数共享(卷积核共享),池化降维 来解决上述两个问题。 这个公式很重要,特征图经过卷积之后会是什么维度的数据,全靠它。 最大池化对于纹理特征敏感,均值池化对背景特征敏感。 卷积函数代码跟踪视频理解: 针对不同的输入图片使用不同的卷积核进行卷积并演示其进行卷积后的输出是什么形状,从而把卷积输出公式落实到代码。 池化函数演示跟踪其实也类似,最关键的其实是对tf.reshape(tf.transpose(img), [-1, 16]) 这行代码的理解花费了我一些时间查找其相关API的用法。 另外特别要说明的一点是矩阵数据在TensorFlow中存储和我们正常思维是有区别的如下图所示: 正常思维我们会认为[[1,5],[1,5]]是个特征图,但其实[[1,1],[3,3]]才是特征图,而前面有多少[[[[就表示他是多少维度的数据,如图就是个四维数据。 Cifar图片集分类示例视频 Cifar图片集分类代码的逻辑其实和Mnist多层分类的逻辑是一样的还是哪四步,准备数据,搭建模型,训练模型,使用模型,代码其实就是把卷积函数和池化函数加到了搭建模型中,把原来的全连接层改成了卷积层,学到此处我突然明白 WX+B这个公式为什是深度学习中的通用公式了。 看懂这些代码花了我半天的时间

【深度学习】更大规模的完整视频理解

僤鯓⒐⒋嵵緔 提交于 2020-02-06 10:36:00
译者:蓝燕子 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 摘要 近年来,视频识别技术在具有丰富注释的基准中得到了发展。然而研究仍然主要限于人类的行动或运动的认识-集中在高度具体的。视频理解任务,从而在描述视频的整体内容方面留下了很大的差距。我们通过展示一个大规模的“整体视频理解数据集”(HV)来填补这一空白U).在语义分类中,HVU是分层组织的,它侧重于多标签和多任务视频理解,作为一个综合问题,包括对多个符号的识别动态场景中的IC方面。HVU包含大约。总共有572k个视频,900万个注释用于培训、验证和测试集,跨越3457个标签。HVU包含语义方面定义在场景、对象、动作、事件、属性和概念的类别上,这些类别自然地捕捉到了现实世界的场景。 此外,我们还引入了一种新的时空深层神经网络体系结构,称为“整体外观与时间网络”(HATNet),它通过组合将2D和3D体系结构融合到一起。宁的外观和时间线索的中间表示。HATNet的重点是多标签和多任务学习问题,并以端到端的方式进行训练。实验表明H在HVU上训练的ATNet在挑战人类行动数据集方面优于目前最先进的方法:HMDB51、UCF101和动力学。数据集和代码将公开提供,地址:https://github.com/holistic-video-understanding 1. 引言 视频理解是一个包含多个语义方面的综合问题

卷积神经网络

柔情痞子 提交于 2020-02-06 04:13:43
卷积神经网络 能很好地适用于图像处理、语音识别等复杂感知任务。 卷积神经网络的强大之处在于它的多层网络结构能自动学习输入数据的深层特征,不同层次的网络可以学习到不同层次的特征。 浅层网络层感知区域 较小,可以学习到输入数据的局部域特征(如图像的颜色、几何形状等); 深层网络层 具有较大的感知域,能够学到输入数据中更加抽象的一些特征(如图像物体的属性、轮廓特点、位置信息等高维性质)。深层次的抽象特征对图像中物体的大小、位置和方向等敏感度较低,从而大大提高了物体的识别率,因此卷积神经网络常用于图像处理领域。 卷积神经网络可以用来识别位移、缩放及物体形态扭曲的二维图形。由于网络模型中的特征是通过训练数据集进行图像特征学习,从而避免了显示地特征抽取。由于图像上同一特征映射面上的神经元权值相同,所以卷积神经网络模型可以并行训练,极大地提高神经网络的训练时长。 传统的图像检测方法 :边缘检测、轮廓检测、局部二值检测、方向梯度直方图、Haar特征检测。 卷积神经网络的结构: 卷积神经网络主要由卷积层、下采样层、全连接层3中网络层构成(这里没有包括输入层和输出层) 卷积神经网络参数设计规律 1.输入层矩阵的大小应该可以被2整除多次 2.卷积层尽量使用小尺寸卷积核 3.卷积步长尽量不要过大(如设置步长为1可以让空间维度的下采样操作由Pooling层负责,卷积层只负责对输入数据进行特征提取) 4

图神经网络论文阅读(五) Structure-Aware Convolutional Neural Networks,INPS2018

人走茶凉 提交于 2020-02-05 23:51:11
本文的作者来自中科院自动化所以及中科院大学人工智能学院。 为了拓展卷积操作到非欧图结构,本文提出了 structure-aware convolution (结构感知卷积)将非欧式图与欧式图结构之间的差别抹平。从技术上讲,结构感知卷积中的滤波器被推广到单变量函数,该单变量函数能够聚合具有不同拓扑结构的局部输入。由于单变量函数需要确定无数个参数,所以使用函数逼近理论近似代替单变量函数,最终建立起模型Structure-Aware Convolutional Neural Networks(SACNNs)。在11个数据集上的大量实验有力地证明,SACNNs在各种机器学习任务上表现优于现有模型,包括图像分类和聚类、文本分类、基于骨架的动作识别、分子活动检测和出租车流量预测。 Model Structure-aware convolution 卷积本质上是一个局部输入和滤波器之间的聚合运算。在实际应用中,局部输入不仅涉及输入值,还涉及拓扑结构(狭义的卷积只能聚合网格结构的拓扑图),因此需要泛化filter到一个单变量函数来聚合不同的拓扑结构。首先,用一维数据来阐释这种泛化。 其中, 表示结点i的本地输入,i-m<j<i+m表示了i的所有邻居结点。w与x_j的乘机表示对所有邻居结点的聚合。将w替换成单变量函数f(·),卷积操作就转化为如下的公式: 其中,f(·)也叫做functional

CNN:LeNet-5

牧云@^-^@ 提交于 2020-02-05 10:14:44
LeNet-5共包含8层 ![在这里插入图片描述](https://img- C1层是一个卷积层,由6个特征图Feature Map构成。特征图中每个神经元与输入为55的邻域相连。特征图的大小为2828,这样能防止输入的连接掉到边界之外(32-5+1=28)。C1有156个可训练参数(每个滤波器55=25个unit参数和一个bias参数,一共6个滤波器,共(55+1)6=156个参数),共156(28*28)=122,304个连接。 S2层是一个下采样层,有6个1414的特征图。特征图中的每个单元与C1中相对应特征图的22邻域相连接。S2层每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。每个单元的22感受野并不重叠,因此S2中每个特征图的大小是C1中特征图大小的1/4(行和列各1/2)。S2层有12(6(1+1)=12)个可训练参数和5880(1414(2*2+1)*6=5880)个连接。 C3层也是一个卷积层,它同样通过5x5的卷积核去卷积层S2,然后得到的特征map就只有10x10个神经元,但是它有16种不同的卷积核,所以就存在16个特征map了。 C3中每个特征图由S2中所有6个或者几个特征map组合而成。为什么不把S2中的每个特征图连接到每个C3的特征图呢?原因有2点。第一,不完全的连接机制将连接的数量保持在合理的范围内。第二,也是最重要的

译文:FishNet

好久不见. 提交于 2020-02-05 04:31:05
FishNet: 用于图像、区域和像素级的多功能主干网络 摘要 对于预测不同层级的目标对象(如图像级、区域级和像素级),设计卷积神经网络( CNN )结构的基本原则具有多样性。一般来讲,专门为图像分类任务所设计的网络结构,会默认作为其他任务(包括检查和分割)的主干网络结构。但是,多数网络的主干设计并没有考虑统一网络的优势,而为像素级或区域级的预测任务设计主干网络,原因可能是需要更高分辨率的深层特征。为了实现这一目标,本文设计了一个类似鱼形的主干网络,我们称为 FishNet 。在 FishNet 中,所有的解决方案信息都会被保留,并在最后的任务进行精炼。除此之外,我们观察到,现存的工作并不能直接将梯度信息从深层网络传递给浅层网络,而本文的设计可以更好地处理该问题。为了验证 FishNet 的性能表现,我们进行了大量实验。特别地,在 ImageNet-1k 数据集上,在参数较少的情况下, FishNet 的性能可以完全超过 DenseNet 和 ResNet 。 FishNet 已经被应用在赢得 2018 年 COCO 检测挑战赛的一个模块中。代码被公开在: https://github.com/kevin-ssy/FishNet 。 1 简介 在计算机视觉领域中,卷积神经网络( CNN , Convolutional Neural Network

keras_实例化一个小型的卷积神经网络

会有一股神秘感。 提交于 2020-02-03 03:17:46
keras_深度学习用于计算机视觉 参考: https://blog.csdn.net/xiewenrui1996/article/details/104009618 import keras keras . __version__ from keras import layers from keras import models model = models . Sequential ( ) model . add ( layers . Conv2D ( 32 , ( 3 , 3 ) , activation = 'relu' , input_shape = ( 28 , 28 , 1 ) ) ) model . add ( layers . MaxPooling2D ( ( 2 , 2 ) ) ) model . add ( layers . Conv2D ( 64 , ( 3 , 3 ) , activation = 'relu' ) ) model . add ( layers . MaxPooling2D ( ( 2 , 2 ) ) ) model . add ( layers . Conv2D ( 64 , ( 3 , 3 ) , activation = 'relu' ) ) # 重要的是,卷积神经网络接收形状为 (image_height, image_width,

非对称卷积增强CNN特征拟合

大城市里の小女人 提交于 2020-02-03 02:20:20
作者:Tom Hardy Date:2020-01-14 来源: 非对称卷积增强CNN特征拟合 原创作者来自清华大学和国家信息技术研究中心~ 论文链接:https://arxiv.org/pdf/1905.10089.pdf 代码链接:https://github.com/anheidelonghu/ACNet 提出原因 1、在指定的应用环境中设计合适的卷积神经网络(CNN)结构需要大量的人工工作或大量的GPU资源消耗 2、设计出和网络结构无关的CNN模块非常必要,这种模块可以很容易地插入到多个成熟的体系结构中,将会大幅度提高实际应用的性能 3、修改整体的CNN架构是一件很困难的事情,使用一些与架构无关的结构来增强现有的模型非常具有吸引力,而且这种方法很大程度上对任何网络都是有效的。 主要贡献 使用非对称卷积来显式地增强标准正方形的卷积核的表征能力,非对称卷积可以融合到正方形卷积核中,而不需要额外的推理时间计算。 将ACB作为一个新颖的CNN结构构建模块。可以通过简单地用ACB替换成熟架构中每一个正方形卷积核的卷积层来构建ACNet,而不需要引入任何超参数,这样它可以与CNN架构设计文献中的众多进展相结合。 来源: CSDN 作者: 3D视觉工坊 链接: https://blog.csdn.net/Yong_Qi2015/article/details/104147114

深度学习福利入门到精通第四讲——GoogleNet模型

萝らか妹 提交于 2020-02-03 00:45:55
2014年ILSVRC大赛中分类第一名就是GoogleNet模型,网络深度22层,而且在网络中加入Inception单元, 证明通过使用Inception单元构造的深层卷积神经网络能进一步提升模型整体的性能。结构如下 下面就是googlenet中用的inception结构, 最常用的卷积核是3*3和5*5,那么这里的1*1其实用途是特征图通道的增加和减少。 假设有50*50*100的特征图,三参数分别宽、高、深度,输入到1*1卷积层,卷积核1*1*100,想输出深度为90的特征图,在90次卷积操作之后维度50*50*100的特征图就变成了50*50*90的特征图,如果需要105的深度,就进行105次卷积,所以用1*1卷积控制深度,从而影响卷积参数数量,提升模型性能。 在googlenet中使用Inception实现了卷积神经网络搭建的模块化,如果想增加或减少模型深度,只需增加或减少相应inception单元就可以。 来源: CSDN 作者: cold星辰 链接: https://blog.csdn.net/qq_32146369/article/details/104147675

CNN网络的基本介绍(二)

强颜欢笑 提交于 2020-02-02 20:22:02
四、激活函数 激活函数又称 非线性映射 ,顾名思义,激活函数的引入是 为了增加整个网络的表达能力(即非线性) 。若干线性操作层的堆叠仍然只能起到线性映射的作用,无法形成复杂的函数。常用的函数有sigmoid、双曲正切、线性修正单元函数等等。 使用一个神经网络时,需要决定使用哪种激活函数用隐藏层上,哪种用在输出节点上。   比如,在神经网路的前向传播中, 这两步会使用到 sigmoid 函数。 sigmoid 函数在这里被称为激活函数。 sigmoid 函数   之前在线性回归中,我们用过这个函数,使我们的输出值平滑地处于0~1之间。      观察图形我们发现,当大于5或者小于-5的值无论多大或多小都会被压缩到1或0。如此便带来一个严重问题,即梯度的“饱和效应”。 大于5或者小于-5部分的梯度接近0,这回导致在误差反向传播过程中导数处于该区域的误差就很难甚至根本无法传递至前层,进而导致整个网络无法训练 (导数为0将无法跟新网络参数)。   此外,在参数初始化的时候还需要特别注意,要避免初始化参数直接将输出值带入这一区域,比如初始化参数过大,将直接引发梯度饱和效应而无法训练。 说明: 除非输出层是一个二分类问题否则基本不会用它。 双曲正切函数    tanh 函数是 sigmoid 的向下平移和伸缩后的结果。对它进行了变形后,穿过了原 点,并且值域介于+1和-1之间。