卷积神经网络

论文笔记:ZFNet

故事扮演 提交于 2019-11-28 08:14:47
ZFNet 1、四个问题 要解决什么问题? 卷积神经网络具有很好的效果,在ImageNet上取得了开创性的成果,但是我们对其却没有一个直观的认识,以及它为何效果这么好,全当成黑盒子来用。 用了什么方法解决? 提出了一个新的卷积神经网络可视化技术,来辅助观察中间层以及最后的分类层的输出特征图。 提出了ZFNet,并应用了反卷积技术来做可视化。 效果如何? ZFNet的效果在ImageNet上超过了AlexNet,这篇论文是14年的,放到现在效果不算最好。 中间层可视化,不同层注重的部分可以较明显地看出来。 还存在什么问题? 这篇文章主要是帮助理解CNN内部工作机制的,了解思路就足够了。 2、论文概述 2.1、实现方法 实验主要使用AlexNet和LeNet。 使用反卷积(deconvnet)网络来进行可视化操作。提出了一种将激活值映射回输入时的像素空间的方法,从结果可以看出输入特征图的哪些部分造成了特征图的激活。 网络的每一层都使用一个反卷积得到像素级的输出,输入是feature map,输出是图像像素,如下图所示。右图是正常卷积过程,左图是反卷积过程。 过程分为三部分:unpooling --> rectification -->filtering。 unpooling(反池化):卷积神经网络中的max_pooling操作是不可逆的,但是可以用一组switch变量来记录它激活的位置

卷积神经网络cnn的实现

走远了吗. 提交于 2019-11-28 06:17:26
卷积神经网络 代码: https://github.com/TimVerion/cat 卷积层 卷积层:通过在原始图像上平移来提取特征,每一个特征就是一个特征映射 原理:基于人脑的图片识别过程,我们可以认为图像的空间联系也是局部的像素联系比较紧密,而较远的像素相关性比较弱,所以每个神经元没有必要对全局图像进行感知,只要对局部进行感知,而在更高层次对局部的信息进行综合操作得出全局信息;即局部感知。 卷积分的知识 过程: 作用: 局部感知:在进行计算的时候,将图片划分为一个个的区域进行计算/考虑; 参数共享机制:假设每个神经元连接数据窗的权重是固定的 滑动窗口重叠:降低窗口与窗口之间的边缘不平滑的特性。 不同的过滤器产生不同的效果: 真实做了什么? 一步有一步的浓缩,产生更加靠谱更加准确的特征 一张图片卷积后高和宽如何变化? # 卷积函数def conv_fun(cache): x, w, b = cache["a"], cache["w"], cache["b"] pad, stride = cache["pad"], cache["stride"] N, C, H, W = x.shape F, C, HH, WW = w.shape # numpy提供的可以填充0的api,constant代表用一样的值填充前两维不填,后两维各自填充pad行 x_padded = np.pad(x

[学习笔记]深度学习-卷积神经网络从入门到精通

只愿长相守 提交于 2019-11-28 05:37:23
第二章 预备知识 2.1激活函数 激活函数也就是人工神经网络的神经元上运行的函数。 理论上可以是非线性的,但一般选非线性的。如sigmod函数,双曲正切函数,硬限幅函数,斜面函数等等 2.2矩阵运算 包括转置,旋转,乘积,加减法,阿达马积,克罗内克积,逐元函数。 2.3导数函数 包括sigmoid函数等的导数 2.4梯度下降算法 在无约束条件下计算出可微函数极小值的基本方法。负梯度方向就是函数此时下降最快的方向。 梯度下降算法一般线性收敛,速度通常较慢。 2.5反向传播算法 深度神经网络的基本学习训练方法是反向传播算法。 本质上是具有递归结构的梯度下降算法,往往需要给出足够多的训练样本才能获得满意的效果。 理解方向传播算法的基础是:任意前馈神经网络的通用反向传播算法和深层神经网络的逐层反向传播算法。 2.5.1通用反向传播算法https://yq.aliyun.com/articles/89551 来源: https://www.cnblogs.com/cyber-shady/p/11394107.html

深度学习_调参经验

时光怂恿深爱的人放手 提交于 2019-11-28 05:17:27
面对一个图像分类问题,可以有以下步骤: 1.建立一个简单的CNN模型,一方面能够快速地run一个模型,以了解这个任务的难度 卷积层1 :卷积核大小3*3,卷积核移动步长1,卷积核个数64,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。 卷积层2 :卷积核大小3*3,卷积核移动步长1,卷积核个数128,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。 卷积层3 :卷积核大小3*3,卷积核移动步长1,卷积核个数256,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。 全连接层 :隐藏层单元数1024,激活函数ReLU。 分类层 :隐藏层单元数10,激活函数softmax。 参数初始化,所有权重矩阵使用random_normal(0.0, 0.001),所有偏置向量使用constant(0.0)。使用cross entropy作为目标函数,使用Adam梯度下降法进行参数更新,学习率设为固定值0.001。 该网络是一个有三层卷积层的神经网络,能够快速地完成图像地特征提取。全连接层用于将图像特征整合成分类特征,分类层用于分类。cross entropy也是最常用的目标函数之一,分类任务使用cross entropy作为目标函数非常适合。Adam梯度下降法也是现在非常流行的梯度下降法的改进方法之一,学习率过大会导致模型难以找到较优解

[学习笔记]深度学习-卷积神经网络从入门到精通-第一章概述

半城伤御伤魂 提交于 2019-11-28 03:35:35
本章介绍神经网络的起源和发展,说明形成和演变,分析应用和影响,讨论缺陷和视图,总结平台和工具,概括内容结构和案例数据。 1.1起源和发展 起源:人工神经网络(本质上是)一类对神经网络(具有深层结构)有效的训练方法 神经网络也就是一个由神经元组成的分层系统,而其深度就是不包括输入层的层数。其组成部分:输入层x,隐含层h,输出层y。 发展历程:1943MP模型->1949提出有关学习的思想->1958感知模型及其学习算法       ->20世纪八九十年代研究高峰(hopfield神经网络,玻尔兹曼机,多层感知器【最早的深度学习】)       ->1991提出深层网络存在梯度消失或爆炸问题(深度学习里程碑)       ->2006深度学习正式发端 关键词:     1‘MP模型:n个输入,n个权值,1个偏b,一个输出y     2’第一个具有深度的神经网络:fukushima神经认知机     3‘反向传播是最常用最著名的算法。有监督学习算法,需要教师指导信号即需要提供训练样本,对给定输入指明相应输出。     4’浅层网络:具有一个隐含层的网络。      深层网络:具有两个或以上隐含层的网络。     5‘单隐含层感知器逼近定理:只要单隐含层包含的隐含神经元足够多,就能在闭区间上以任意的精度逼近任何的一个多变量连续函数。     6'梯度消失或爆炸问题:累积反向传播误差信号

CNN原理

萝らか妹 提交于 2019-11-28 01:07:34
卷积神经网络(Convolutional Neural Network)的结构类似于神经网络,可以看做是对其的改进。它利用 局部连接 、 权值共享 、 多核卷积 、 池化 四个手段大大降低了参数的数目,使得网络的层数可以变得更深,并且能够合理的隐式的提取特征。CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于其特征检测层通过训练数据进行学习,隐式地从训练数据中进行学习, 避免了显式的特征抽取 ;再者由于同一特征映射面上的神经元权值相同,所以 网络可以并行学习 ,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是 多维输入向量的图像 可以直接输入网络 这一特点避免了特征提取和分类过程中数据重建的复杂度它可以直接处理灰度图片,能够直接用于处理基于图像的分类。 卷积神经网络是一种带有卷积结构的深度神经网络,卷积结构可以减少深层网络占用的内存量。卷积神经网络的结构组成如下图: 其中包含有: 输入层、 卷积层 (Convolutional Layer)、 激励层 (ReLU layer) 池化层 (下采样层Pooling Layer)、 全连接层 (Fully Connected Network) 输出层 卷积神经网络层、池化层

卷积神经网络理解

霸气de小男生 提交于 2019-11-27 22:58:31
卷积神经网络 (Convolutional Neural Network,CNN或ConvNet)是一种 具有局部连接、权重共享等特性的深层前馈神经网络。我们通俗的印象在于卷积神经网络有利于图像处理。 一:在图像处理上卷积神经网络比全连接网络有什么优势 如果用 全连接前馈网络 来处理图像时,会存在以下两个问题:    1) 参数太多: 如果你是一个100*100(RGB)图片,那么你的输入数目(输入神经元)就会有(30000),问题在于许多图片远远比这个大,如果是1000*1000(RGB)图片,那么输入层就会需要(3000000)个连接(神经元),这无疑是一个很庞大的数字。每个连接都对应一个重参数。随着隐藏层神经元数量的增多,参数的规模也会急剧增加。这会导致整个神经网络的训练效率会非常低,也很容易出现过拟合。   2) 局部不变形特征: 自然图像中的物体都具有局部不变性特征,比如尺度缩放、平移、旋转等操作不影响其语义信息。而全连接前馈网络很难提取这些局 部不变特征,一般需要进行数据增强来提高性能。 这种全连接的方法用在图像识别上面就显得太"笨"了,因为图像识别首先得找到图片中各个部分的"边缘"和"轮廓",而"边缘"和"轮廓"只与相邻近的像素们有关。 卷积神经网络(CNN)就派上用场了,卷积神经网络可以简单地理解为,用滤波器(Filter)将相邻像素之间的"轮廓"过滤出来。 二

tensorflow识别MNIST数据集

只谈情不闲聊 提交于 2019-11-27 21:51:48
目录 数据准备 1、引入MNIST数据集 2、保存前30条数据的原始图片 一、softmax实现单神经元模型 1、初始化变量 2、向前传播以及损失函数 3、向后传播以及优化参数 4、开始训练 5、评估模型 补充 二、两层卷积网络分类 1、初始化变量 2、预定义函数 3、卷积层 4、全连接层 5、定义交叉熵损失以及测试的准确率 6、开始训练 总结 数据准备 简单的说,MNIST就是一组最基础的数据集,M代表Modified,NIST代表国家标准和技术研究所,包括从0~9的训练数字的图片,这个分类问题是机器学习最简单和最广泛使用的测试之一。 1、引入MNIST数据集 from tensorflow.examples.tutorials.mnist import input_data # 从MNIST_data/中读取MNIST数据。这条语句在数据不存在时,会自动执行下载 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # 查看训练数据的大小 print(mnist.train.images.shape) # (55000, 784) print(mnist.train.labels.shape) # (55000, 10) # 查看验证数据的大小 print(mnist.validation.images

深度学习基础(CNN详解以及训练过程1)

别等时光非礼了梦想. 提交于 2019-11-27 21:03:18
深度学习是一个框架,包含多个重要算法: Convolutional Neural Networks(CNN)卷积神经网络 AutoEncoder自动编码器 Sparse Coding稀疏编码 Restricted Boltzmann Machine(RBM)限制波尔兹曼机 Deep Belief Networks(DBN)深信度网络 Recurrent neural Network(RNN)多层反馈循环神经网络神经网络 对于不同问题(图像,语音,文本),需要选用不同网络模型比如CNN RESNET等才能达到更好效果。 今天来讲最基础的CNN网络。 可以不可以模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。 CNN网络介绍 卷积神经网络是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题。 卷积网络通过一系列方法,成功将数据量庞大的图像识别问题不断降维,最终使其能够被训练。CNN最早由Yann LeCun提出并应用在手写字体识别上(MINST)。LeCun提出的网络称为LeNet,其网络结构如下: 这是一个最典型的卷积网络,由卷积层、池化层、全连接层组成。其中卷积层与池化层配合,组成多个卷积组,逐层提取特征

完全基于卷积神经网络的seq2seq

半城伤御伤魂 提交于 2019-11-27 18:54:54
本文参考文献: Gehring J, Auli M, Grangier D, et al. Convolutional Sequence to Sequence Learning[J]. arXiv preprint arXiv:1705.03122, 2017. 被引次数:13 Dauphin Y N, Fan A, Auli M, et al. Language modeling with gated convolutional networks[J]. arXiv preprint arXiv:1612.08083, 2016. 被引次数:24 今天要讲的一个模型是由Facebook 人工智能 研究院提出来的完全基于卷积 神经网络 的seq2seq框架,seq2seq我在之前的推送中已经讲过好多次了,传统的seq2seq模型是基于RNN来实现的,特别是LSTM,这就带来了计算量复杂的问题。Facebook作出大胆改变,将编码器、解码器、注意力机制甚至是记忆单元全部替换成卷积神经网络,想法是不是简单粗暴?虽然单层CNN只能看到固定范围的上下文,但是将多个CNN叠加起来就可以很容易将有效的上下文范围放大。Facebook将此模型成功地应用到了英语-法语机器翻译、英语-德语机器翻译,不仅刷新了二者前期的记录,而且还将训练速度提高了一个数量级,无论是GPU还是CPU上。