卷积神经网络

CNN网络结构的发展:从LeNet到EfficientNet

若如初见. 提交于 2020-01-20 01:18:16
CNN基本部件介绍 1. 局部感受野 在图像中局部像素之间的联系较为紧密,而距离较远的像素联系相对较弱。因此,其实每个神经元没必要对图像全局进行感知,只需要感知局部信息,然后在更高层局部信息综合起来即可得到全局信息。卷积操作即是局部感受野的实现,并且卷积操作因为能够权值共享,所以也减少了参数量。 2. 池化 池化是将输入图像进行缩小,减少像素信息,只保留重要信息,主要是为了减少计算量。主要包括最大池化和均值池化。 3. 激活函数 激活函数的用是用来加入非线性。常见的激活函数有sigmod, tanh, relu,前两者常用在全连接层,relu常见于卷积层 4. 全连接层 全连接层在整个卷积神经网络中起分类器的作用。在全连接层之前需要将之前的输出展平 经典网络结构 1. LeNet5 由两个卷积层,两个池化层,两个全连接层组成。卷积核都是5×5,stride=1,池化层使用maxpooling 2. AlexNet 模型共八层(不算input层),包含五个卷积层、三个全连接层。最后一层使用softmax做分类输出 AlexNet使用了ReLU做激活函数;防止过拟合使用dropout和数据增强;双GPU实现;使用LRN 3. VGG 全部使用3×3卷积核的堆叠,来模拟更大的感受野,并且网络层数更深。VGG有五段卷积,每段卷积后接一层最大池化。卷积核数目逐渐增加。 总结:LRN作用不大

论文笔记 - 《Deep Learning》(Yann LeCun Yoshua Bengio & Geoffrey Hinton)经典

别等时光非礼了梦想. 提交于 2020-01-19 15:42:10
论文: LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. “Deep learning.” Nature 521.7553 (2015): 436-444. [pdf] (Three Giants’ Survey) 监督学习 机器学习最常见的形式,不管是否深入都是监督学习。 我们计算一个目标函数,它度量输出分数与期望的分数模式之间的误差(距离)。然后,机器修改其内部可调参数,以减少这种误差。这些可调参数通常称为权重,它们是实数,可以看做是定义机器输入输出函数的按钮。在一个典型的深度学习系统中,可能有数亿个这样的可调权重,以及数亿个用于训练机器的带标签的例子。 在实践中,大多数从业者使用一种称为随机梯度下降(SGD)的程序。这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度,并相应地调整权重。从训练集到目标函数的平均值停止下降,对许多小样本重复这个过程,它们之所以被称为随机,是因为每个小样本集都给出了所有样本平均梯度的这里会有的噪声的估计。 传统方法是手工设计良好的特征提取器,这需要大量的工程技术和专业领域知识。但是如果通过使用通过学习过程而得到的良好的特征,那么这些都是可以避免的了。这就是深度学习的关键优势。 深度学习的体系结构是简单模块的多层栈,所有(或大部分)模块的目标是学习,还有许多计算机非线性输入输出的映射

卷积神经网络CNN在序列处理中的应用

坚强是说给别人听的谎言 提交于 2020-01-19 02:22:59
众所周知,CNN在机器视觉问题上表现出色,因为它能够进行卷积运算,从局部输入图块中提取特征,并能够将表示模块化,同时可以高效利用数据。 这些性质让卷积神经网络在计算机视觉领域表现优异,同样也让他对序列处理特别有效。时间可以被看做一个空间维度,就像二维图像的高度或宽度。 对于某些序列处理问题,这种一维卷积神经网络的效果可以媲美RNN,而且计算代价通常要小很多。最近,一维卷积神经网络【通常与空洞卷积核(dilated kernel)一起食用】已经在音频生成和机器翻译领域取得了巨大成功。对于文本分类和时间序列预测等简单任务,小型的一维卷积神经网络可以代替RNN,而且速度更快。 序列数据的一维池化 CNN中提到了二维池化运算,比如二维平均池化和二维最大池化,在卷积神经网络中用于对图像张量进行空间下采样。一维也可以做相同的池化运算:从输入中提取一维序列短(即子序列),然后输出其最大值(最大池化)或平均值(平均池化)。与二维卷积神经网络一样,该运算也是用于降低一维输入的长度(子采样)。 结合CNN和RNN来处理长序列 一维卷积神经网络分别处理每个输入序列段,所以它对时间步的顺序不敏感(此处说的顺序范围要大于局部尺度,即大于卷积窗口的大小),这一点与RNN不同。 为了识别更长期的模式,可以将许多卷积层和池化层堆叠在一起,这样上面的层能够观察到原始输入中更长序列段

keras学习(1)

∥☆過路亽.° 提交于 2020-01-18 20:26:17
Keras是Python中以CNTK、Tensorflow或者Theano为计算后台的一个深度学习建模环境。相对于其他深度学习的计算软件,如:Tensorflow、Theano、Caffe等,Keras在实际应用中有一些显著的优点,其中最主要的优点就是Keras已经高度模块化了,支持现有的常见模型(CNN、RNN等),更重要的是建模过程相当方便快速,加快了开发速度。 笔者使用的是基于Tensorflow为计算后台。接下来将介绍一些建模过程的常用层、搭建模型和训练过程,而Keras中的文字、序列和图像数据预处理,我们将在相应的实践项目中进行讲解。 1.核心层(各层函数只介绍一些常用参数,详细参数介绍可查阅Keras文档) 1.1全连接层:神经网络中最常用到的,实现对神经网络里的神经元激活。 Dense(units, activation=’relu’, use_bias=True) 参数说明: units: 全连接层输出的维度,即下一层神经元的个数。 activation:激活函数,默认使用Relu。 use_bias:是否使用bias偏置项。 1.2激活层:对上一层的输出应用激活函数。 Activation(activation) 参数说明: Activation:想要使用的激活函数,如:’relu’、’tanh’、‘sigmoid’等。 1.3Dropout层

卷积神经网络CNNs 为什么要用relu作为激活函数?

时间秒杀一切 提交于 2020-01-18 17:30:52
relu激活函数的优势: (1)反向传播时,可以避免梯度消失。 (2)Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生(以及一些人的生物解释balabala)。 (3)相对于sigmoid激活函数,tanh激活函数,求导简单。采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。 缺点: (1)左侧神经元为0,导致神经元死亡,不再更新。 (2)输出非负,仍然存在zigzag现象。 参考文章1:【深度学习】为什么使用ReLU作为激活函数,ReLU比sigmoid优秀在哪里 参考文章2:卷积神经网络之relu激活函数的理解 参考文章3:神经网络为什么要使用激活函数,为什么relu要比sigmoid要好 来源: CSDN 作者: Dontla 链接: https://blog.csdn.net/Dontla/article/details/104030712

AlexNet 网络详解及Tensorflow实现源码

社会主义新天地 提交于 2020-01-18 02:26:51
版权声明:本文为博主原创文章,未经博主允许不得转载。 1. 图片数据处理 2. 卷积神经网络 2.1. 卷积层 2.2. 池化层 2.3. 全链层 3. AlexNet 4. 用Tensorflow搭建完整的AlexNet 5. 用AlexNet识别猫狗图片 5.1. 定义分类 5.2. 训练网络 5.3. 验证 1. 图片数据处理 一张图片是由一个个像素组成,每个像素的颜色常常用RGB、HSB、CYMK、RGBA等颜色值来表示,每个颜色值的取值范围不一样,但都代表了一个像素点数据信息。对图片的数据处理过程中,RGB使用得最多,RGB表示红绿蓝三通道色,取值范围为0~255,所以一个像素点可以把它看作是一个三维数组,即: array([[[0, 255, 255]]]) ,三个数值分布表示R、G、B(红、绿、蓝)的颜色值。比如下图一张3*3大小的jpg格式的图片: 它的图片经过Tensorflow解码后,数据值输出为 image_path = 'images/image.jpg' filename_queue = tf.train.string_input_producer(tf.train.match_filenames_once(image_path)) image_reader = tf.WholeFileReader() _,image_file = image

算法工程师耗尽心血终成TensorFlow深度学习应用实践,值得一学!

a 夏天 提交于 2020-01-17 14:28:40
本篇总的指导思想是在掌握深度学习的基本知识和特性的基础上,培养使用TensorFlow进行实际编程以解决图像处理相关问题的能力。全篇力求深入浅出,通过通俗易懂的语言和详细的程序分析,介绍TensorFlow的基本用法、高级模型设计和对应的程序编写。 本篇强调理论联系实际,重点介绍TensorFlow编程解决图像识别的应用,提供了大量数据集,并以代码的形式实现了深度学习模型,以供读者参考。 本篇可作为学习人工神经网络、深度学习TensorFlow 程序设计以及图像处理等相关内容的程序设计人员学习。 **本篇共22章,内容包括Python类库的安装和使用、TensorFlow 基本数据结构和使用、TensorFlow 数据集的创建与读取、人工神经网络、反馈神经网络、全卷积神经网络的理论基础、深度学习模型的创建、模型的特性、算法、ResNet、 Slim、 GAN等。 由于细节内容实在是太多了,所以小编只把部分知识点截图出来粗略的介绍,每个小节都有更加细化的内容,希望大家能够从中得到真谛!** 第1章介绍深度学习的基本内容,初步介绍深度学习应用于计算机视觉和发展方向,介绍使用深度学习解决计算机视觉问题的应用前景,旨在说明使用深度学习和人工智能实现计算机视觉是未来的发展方向,也是必然趋势。 第2章介绍Python的安装和最常用的类库。Python语言是易用性非常强的语言

Fast and Accurate Recognition of Chinese Clinical Named Entities with Residual Dilated Convolutions

為{幸葍}努か 提交于 2020-01-17 04:20:54
The left part has two residual blocks with different dilation factors. The right part is a standard convolutional layer with batch normalization [30]. The final output of the convolutional layers is the sum of the separate output of the two parts. 扩张卷积与普通的卷积相比,除了卷积核的大小以外,还有一个扩张率(dilation rate)参数,主要用来表示扩张的大小。扩张卷积与普通卷积的相同点在于,卷积核的大小是一样的,在神经网络中即参数数量不变,区别在于扩张卷积具有更大的感受野。感受野是卷积核在图像上看到的大小,例如3×3卷积核的感受野大小为9。 (a) 普通卷积,1-dilated convolution,卷积核的感受野为3×3=9。 (b) 扩张卷积,2-dilated convolution,卷积核的感受野为7×7=49。 (c) 扩张卷积,4-dilated convolution,卷积核的感受野为15×15=225。 扩展卷积在保持参数个数不变的情况下增大了卷积核的感受野,同时它可以保证输出的特征映射(feature map

将不同类别的CNN方法进行总结(只选取部分经典模型)

大兔子大兔子 提交于 2020-01-16 16:51:14
#写在查找文献之前。因为自己实在是太小白了,无论对深度学习还是生医图像,要在短短时间内解决问题可真不容易啊。简直是,两眼一抹黑Orz 无可奈何,只好慢慢来呗......此算我第一篇在CSDN上的笔记,如果有总结的不对的地方不知道会不会有路过的大神捞起+提示啊QAQ。。。好,话不多说,从此开始写日记↓# 第一个总结:来自公众号的科普 https://www.jiqizhixin.com/articles/2019-01-25-6 根据架构修改的类型,CNN 可以大致分为 7 类:基于空间利用、深度、多路径、宽度、通道提升、特征图利用和注意力的 CNN。 下面,我对其中几种相对知名的架构进行总结。 其中有对此篇总结的参考的摘录: https://www.cnblogs.com/skyfsm/p/8451834.html 1.1 基于空间利用的 CNN(spatial exploitation based CNNs) 此类CNN 考虑输入像素的邻域(局部性),可以使用不同大小的滤波器来探索不同级别的相关性。 LeNet:LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。 这张想必就是搜索CNN最常得到的图啦(我在最初学习时也看到了它)。其中,

卷积神经网络(1)

你。 提交于 2020-01-16 15:15:59
之前学了多层感知机(即全连接网络),现在来看看卷积神经网络。 在说卷积神经网络之前,先来说一个故事,盲人摸象 “从前,有四个盲人,从来没有见过大象,不知道大象长什么样,他们决定去摸摸大象。每个人摸的大象都不是同一个部位,且没有摸完大象的全部。他们争吵不休,都说自己摸到的才是大象真正的样子。”盲人摸象告诉大家的道理是看问题一定要全面。 好的废话少说,我们来看看卷积神经网络cnn。 卷积神经网络和全连接神经网络一样是前馈神经网络,它的神经元可以覆盖源物体的一部分区域。 (全连接) (卷积网络) 由上图可以看出,全连接网络的是将每两层所有神经元相互连接构成的网络,全连接由输入层、隐藏层、输出层的神经元相互连接构成的网络。 而卷积网络是由输入层、卷积层、池化层、全连接层构成的网络。 1、卷积层 在卷积网络中卷积层的主要功能是提取图像特征。 那么它是如何提取出现特征呢? 例如我们将一个5 * 5的图像输入到卷积网络,卷积网络用一个叫卷积核的东西按照一定的步长对图像进行移步扫描并且计算,最终形成特征图的过程。 用图像来表示可能会更加清楚. 上图中一个5 * 5个图片,被一个3 * 3的卷积核 按照1的步长进行扫描,最终得到了一个3 * 3的特征图。 可以清楚的看到 特征图第一个方格的数值 等于原图片 第一个3*3区域的值按位乘以 卷积中的参数值后再相加的过程。我们暂且将原图的值用x代替