卷积神经网络

1*1卷积核用法与权值共享

时光毁灭记忆、已成空白 提交于 2019-12-11 05:55:21
# **权值共享方法** 在同一特征图和不同通道特征图都使用共享权值,这样的卷积参数是最少的,例如上一层为30*30*40,当使用3*3*120的卷积核进行卷积时,卷积参数为:3*3*120个.(卷积跟mlp有区别也有联系一个神经元是平面排列,一个是线性排列) 第二种只在同一特征图上使用共享权值,根据上面的例子,则卷积参数为:3*3*40*120. 权值共享 CNN中权值共享理解 借用前人的介绍: (1) 针对一个神经元,例如一幅640*360图像,一个神经元要对应640*360个像素点,即一个神经元对应全局图像,全连接的话一个神经元就有640*360个参数; (2) 图像的空间联系是局部的,就像人是通过一个局部的感受野去感受外界图像一样,每一个神经元都不需要对全局图像做感受,每个神经元只感受局部的图像区域,然后在更高层,将这些不同局部的神经元综合起来就可以得到全局信息。假如每个局部感受野10 10,每个局部感受野只需要和10 10的局部图像连接,这样一个神经元就只需要10*10个参数; (3) 全局图像是640 360,但局部图像只有10 10大小,10 10个参数只针对局部图像,如果全局图像中各个局部图像之间权值共享的话,即10 10个参数在不同局部图像上参数应用相同的话,则在全局图像上通过全局共享则只需要10*10个参数; (4) 10 10个参数只针对一个神经元

信息抽取——关系抽取(一)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-11 00:40:41
目录 简介 关于关系抽取 Pipline模型 Model 1: Relation Classification via Convolutional Deep Neural Network Model 2: Relation Extraction: Perspective from Convolutional Neural Networks Model 3: Classifying Relations by Ranking with Convolutional Neural Networks Model 4: Bidirectional Long Short-Term Memory Networks for Relation Classification Model 5: Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification Model 6: Relation Classification via Multi-Level Attention CNNs Model 7: Bidirectional Recurrent Convolutional Neural Network for Relation Classification 简介 信息抽取

VGG16学习

我们两清 提交于 2019-12-10 19:43:35
引自:https://www.cnblogs.com/lfri/p/10493408.html 摘要 本文对图片分类任务中经典的深度学习模型VGG16进行了简要介绍,分析了其结构,并讨论了其优缺点。调用Keras中已有的VGG16模型测试其分类性能,结果表明VGG16对三幅测试图片均能正确分类。 前言 VGG是由Simonyan 和Zisserman在文献《 Very Deep Convolutional Networks for Large Scale Image Recognition 》中提出卷积神经网络模型,其名称来源于作者所在的牛津大学视觉几何组(Visual Geometry Group)的缩写。 该模型参加2014年的 ImageNet图像分类与定位挑战赛,取得了优异成绩:在分类任务上排名第二,在定位任务上排名第一。 结构 VGG中根据 卷积核大小 和 卷积层数目 的不同,可分为 A , A-LRN , B , C , D , E 共6个配置(ConvNet Configuration),其中以 D , E 两种配置较为常用,分别称为 VGG16 和 VGG19 。 下图给出了VGG的六种结构配置: 上图中,每一列对应一种结构配置。例如,图中绿色部分即指明了VGG16所采用的结构。 我们针对VGG16进行具体分析发现, VGG16 共包含: 13个卷积层

tensorflow学习笔记——AlexNet

断了今生、忘了曾经 提交于 2019-12-10 16:19:04
  2012年,Alex Krizhevsky、Ilya Sutskever在多伦多大学Geoff Hinton的实验室设计出了一个深层的卷积神经网络AlexNet,夺得了2012年ImageNet LSVRC的冠军,且准确率远超第二名(top5错误率为15.3%,第二名为26.2%),引起了很大的轰动。AlexNet可以说是具有历史意义的一个网络结构,在此之前,深度学习已经沉寂了很长时间,自2012年AlexNet诞生之后,后面的ImageNet冠军都是用卷积神经网络(CNN)来做的,并且层次越来越深,使得CNN成为在图像识别分类的核心算法模型,带来了深度学习的大爆发。   下面首先学习AlexNet网络的创新点,然后在学习AlexNet的网络结构,最后在用代码实现AlexNet。 1,AlexNet网络的创新点   AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中。AlexNet主要使用到的新技术点如下:    (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题。虽然ReLU激活函数在很久之前就被提出了,但直到AlexNet的出现才将其发扬光大。   在最初的感知机模型中,输入和输出的关系如下:   虽然只是单纯的线性关系,这样的网络结构有很大的局限性

tensorflow学习笔记——AlexNet

帅比萌擦擦* 提交于 2019-12-10 10:51:54
1,AlexNet网络的创新点   AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中。AlexNet主要使用到的新技术点如下:    (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题。虽然ReLU激活函数在很久之前就被提出了,但直到AlexNet的出现才将其发扬光大。   在最初的感知机模型中,输入和输出的关系如下:   虽然只是单纯的线性关系,这样的网络结构有很大的局限性:即使用很多这样结构的网络层叠加,其输出和输入仍然是线性关系,无法处理有非线性关系的输入输出。因此,对每个神经元的输出做个非线性的转换也就是,将上面的加权求和的结果输入到一个非线性函数,也就是激活函数中。这样,由于激活函数的引入,多个网络层的叠加就不再是单纯的线性变换,而是具有更强的表现能力。   在网络层较少时,Sigmoid函数的特性能够很好的满足激活函数的作用:它把一个实数压缩至0到1之间,当输入的数字非常大的时候,结果会接近1,;当输入非常大的负数时,则会得到接近0的结果。这种特性,能够很好的模拟神经元在受刺激后,是否被激活向后传递信息(输出为0,几乎不被激活;输出为1,完全被激活)。Sigmoid函数一个很大的问题就是梯度饱和。观察Sigmoid函数的曲线,当输入的数字较大

DCNN论文解析(half done

眉间皱痕 提交于 2019-12-10 09:44:19
Densely Connected Convolutional Networks 文章目录 Densely Connected Convolutional Networks 引言 相关工作 ​ 最近的研究表明,如果卷积网络在靠近输入层与输出层之间的地方有 更短的连接 (shorter connections),就可以训练更深、更准确、更有效的卷积网络。本文中,我们拥抱这个观点,介绍了稠密卷积网络(DenseNet),该网络在前馈时将每一层都与其他的任一层进行了连接。传统的 L L L 层卷积网络有 L L L 个连接——每一层与后一层有一个连接——我们的网络有 L ( L + 1 ) / 2 L(L+1)/2 L ( L + 1 ) / 2 个连接。每一层都将之前的所有层的特征图作为输入,而它自己的特征图是之后所有层的输入。DenseNets有一些显著优点:缓解梯度消失问题,加强特征传播,鼓励特征的重复利用,还大大减少参数量。我们在四个目标识别任务(CIFAR-10,CIFAR-100,SVHN和ImageNet)中评估了我们提出了结构。DenseNets在大部分数据集上相对state-of-the-art有明显提高,而且使用更少的计算量就可以获得高性能。代码和预训练模型可以https://github.com/liuzhuang13/DenseNet上获得。 论文地址:

卷积神经网络

馋奶兔 提交于 2019-12-10 04:18:56
卷积神经网络的网络结构 卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。 图:卷积神经网络的概念示范:输入图像通过 和三个可训练的滤波器和可加偏置 进行卷积,滤波过程如上图,卷积后在C1层产生 三个特征映射图 ,然后特征映射 图中每组的四个像素再进行求和,加权值,加偏置,通过一个Sigmoid函数 得到 三个S2层的特征映射图 。这些映射图再进行滤波得到C3层。这个层级结构再和S2一样产生S4。最终,这些像素被 光栅化 ,并连接成一个向量输入到传统的神经网络,得到输出。 一般地,C层为 特征提取层 ,每个神经元的输入与前一层的 局部感受野 相连,并提取该局部的特征,一旦该局部特征被提取之后,它与其他特征之间的位置关系也随之确定下来;S层是 特征映射层 , 网 络的每个计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有特征的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。 此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数,降低了网络参数选择的复杂度。卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的计算层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。 3)关于参数减少和权值共享

batch normalize、relu、dropout 等的相对顺序

佐手、 提交于 2019-12-09 12:50:57
1.https://blog.csdn.net/B08370108/article/details/83783008 batch norm、relu、dropout 等的相对顺序 Ordering of batch normalization and dropout in TensorFlow? 在 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 一文中,作者指出,“we would like to ensure that for any parameter values, the network always produces activations with the desired distribution”(produces activations with the desired distribution,为激活层提供期望的分布)。 因此 Batch Normalization 层恰恰插入在 Conv 层或全连接层之后,而在 ReLU等激活层之前。而对于 dropout 则应当置于 activation layer 之后。 2.BN和Dropout共同使用时会出现的问题 BN和Dropout单独使用都能减少过拟合并加速训练速度

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

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

Pytorch实现CNN卷积神经网络

时光总嘲笑我的痴心妄想 提交于 2019-12-08 14:56:43
前言 Pytorch实现CNN卷积神将网络,以MNIST数据集为例 环境 Mac OS Python 3 代码 import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import torchvision import matplotlib.pyplot as plt torch.manual_seed(1) # reproducible # Hyper Parameters EPOCH = 1 # train the training data n times, to save time, we just train 1 epoch BATCH_SIZE = 50 LR = 0.001 # learning rate DOWNLOAD_MNIST = True # set to False if you have downloaded # Mnist digits dataset train_data = torchvision.datasets.MNIST( root='./mnist/', train=True, # this is training data transform=torchvision.transforms