原文:https://blog.csdn.net/aimreant/article/details/53145063

思考卷积神经网络(CNN)中各种意义

只是知道CNN是不够,我们需要对其进行解剖,继而分析不同部件存在的意义

CNN的目的

简单来说,CNN的目的是以一定的模型对事物进行特征提取,而后根据特征对该事物进行分类、识别、预测或决策等。在这个过程里,最重要的步骤在于特征提取,即如何提取到能最大程度区分事物的特征。如果提取的特征无法将不同的事物进行划分,那么该特征提取步骤将毫无意义。而实现这个伟大的模型的,是对CNN进行迭代训练。

特征

在图像中(举个例子),目标事物的特征主要体现在像素与像素之间的关系。比如说,我们能区分一张图片中有一条直线,是因为直线上的像素与直线外邻像素的区别足够大(或直线两边的像素区别足够大),以至于这“直线”能被识别出来:

除了直线外,其他特征也同理。在CNN中,大部分特征提取依赖于卷积运算。

卷积与特征提取

卷积在此其实就是内积,步骤很简单,就是根据多个一定的权重(即卷积核),对一个块的像素进行内积运算,其输出就是提取的特征之一:

选用卷积的原因

局部感知

简单来说,卷积核的大小一般小于输入图像的大小(如果等于则是全连接),因此卷积提取出的特征会更多地关注局部 —— 这很符合日常我们接触到的图像处理。而每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。

参数共享

参数共享最大的作用莫过于很大限度地减少运算量了。

多核

一般我们都不会只用一个卷积核对输入图像进行过滤,因为一个核的参数是固定的,其提取的特征也会单一化。这就有点像是我们平时如何客观看待事物,必须要从多个角度分析事物,这样才能尽可能地避免对该事物产生偏见。我们也需要多个卷积核对输入图像进行卷积。

Down-Pooling

卷积后再接上一个池化层(Pooling)简直就是绝配,能很好的聚合特征、降维来减少运算量。

多层卷积

层数越高,提取到的特征就越全局化。

池化

池化,即对一块数据进行抽样或聚合,例如选择该区域的最大值(或平均值)取代该区域:

上图的池化例子,将10 * 10的区域池化层1 * 1的区域,这样使数据的敏感度大大降低,同时也在保留数据信息的基础上降低了数据的计算复杂度。

激活函数的意义

在数学上,激活函数的作用就是将输入数据映射到0到1上(tanh是映射-1到+1上)。至于映射的原因,除了对数据进行正则化外,大概是控制数据,使其只在一定的范围内。当然也有另外细节作用,例如Sigmoid(tanh)中,能在激活的时候,更关注数据在零(或中心点)前后的细小变化,而忽略数据在极端时的变化,例如ReLU还有避免梯度消失的作用。通常,Sigmoid(tanh)多用于全连接层,而ReLU多用于卷积层。

或者我们换一个卷积核(换一种角度)来看待这个激活函数,如果我们把每一次激活动作当成一次分类,即对输入数据分成两类(0或1),那么激活函数得到的输出是在0到1的值,它可以代表着这次“分类”的归属度。如果我们把0规定为未激活,1表示激活,那么输出0.44就表示激活了44%。

而激活函数的使用却有可能带来一定的负面影响(对于训练的负面影响),激活函数可能会使我们得输入数据都激活了大半,对此我们有另外的对策 —— LRN。

LRN的催化与抑制

LRN,局部响应归一化。在神经学科中,有一个叫横向抑制(lateral inhibition)的概念,这种抑制的作用就是阻止兴奋神经元向邻近神经元传播其动作趋势,从而减少兴奋神经元的邻近神经元的激活程度。借鉴了这一生物现象(其实我们全部东西都是借鉴生物的,不是?),我们使用LRN层来对激活函数的输出数据进行横向抑制,在为激活函数收拾残局的同时,LRN还凸显了该区域的一个峰值 —— 这个峰值特征就是我们想要的特征。

特别是ReLU,它无限制的激活使得我们更需要LRN来到数据进行归一化。在大规模的数据中,我们大多情况下更看重被凸显的高频特征。因此,用LRN对数据的峰值进行催化而对其周围进行抑制,何乐不为。

IP层

在许多CNN的后部分,都存在着一个IP(Inner Product)层/内积层/fc(full connect)层/全连接层。这个全连接网络的代表性层级,其存在于CNN的意义我不得而知。在许多论文中,它替代了softmax来特征负责最终的提取,而有人也指出CNN最后可以不用IP层。

Dropout的舍弃

舍弃一直是一个伟大的哲学,生物的进化上例子比比皆是。Dropout的任务就是在训练时,通过设置阈值并与某些隐含层节点的权重对比,让特定的权重不工作 —— 在该层舍弃这些权重。Dropout的作用也很明显,除了加速运算外,就是防止过拟合了。

思考卷积神经网络(CNN)中各种意义的更多相关文章

  1. 【深度学习系列】手写数字识别卷积神经--卷积神经网络CNN原理详解(一)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  2. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  3. 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 关于卷积神经网络CNN,网络和文献中 ...

  4. 深度学习之卷积神经网络CNN及tensorflow代码实例

    深度学习之卷积神经网络CNN及tensorflow代码实例 什么是卷积? 卷积的定义 从数学上讲,卷积就是一种运算,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分.级数,所以看起来觉得很复杂 ...

  5. 卷积神经网络(CNN)前向传播算法

    在卷积神经网络(CNN)模型结构中,我们对CNN的模型结构做了总结,这里我们就在CNN的模型基础上,看看CNN的前向传播算法是什么样子的.重点会和传统的DNN比较讨论. 1. 回顾CNN的结构 在上一 ...

  6. 卷积神经网络(CNN)反向传播算法

    在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结.在阅读本文前,建议先研究DNN的反向传播算法:深度 ...

  7. 卷积神经网络CNN总结

    从神经网络到卷积神经网络(CNN)我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图 ...

  8. 深度学习之卷积神经网络(CNN)详解与代码实现(二)

    用Tensorflow实现卷积神经网络(CNN) 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10737065. ...

  9. 深度学习之卷积神经网络(CNN)详解与代码实现(一)

    卷积神经网络(CNN)详解与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10430073.html 目 ...

随机推荐

  1. docker and ssh issues

    docker run -i -t qcdatainc/centos-jdkyum update yum install openssh-server ssh -vvv -p 222 jenkins@1 ...

  2. SecTools.Org--bp

    Burp Suite使用介绍(一) | WooYun知识库  http://drops.wooyun.org/tips/2227     我的渗透利器 | EVILCOS             fr ...

  3. vue中给请求到的数据对象加属性问题

    今天发现了个很奇怪的问题,我在做一个:点击列表  使点中的列表项变色的功能,而且是多个大列表项,在每个大列表项里点击切换列表项的时候不影响其他大列表项的选项. 解决思路,因为这些大列表项是请求到的数据 ...

  4. django时间的时区问题

    在用django1.8版本做项目的时候遇到时间的存储与读取不一致的问题,网上找了很多帖子,但都没有讲明白.本文将在项目中遇到的问题及如何解决的尽可能详细的记录下来,当然本文参考了网上大量相关文章. 在 ...

  5. mysql 权限管理 grant 命令

    只有root账号可以授权,其他账号不能用grant 授权 mysql> select user(); +----------------+ | user() | +--------------- ...

  6. Android应用之——百度地图最新SDK3.0应用,实现最经常使用的标注覆盖物以及弹出窗覆盖物

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/yanglfree/article/details/33333413 一.概述 最新版的百度地图SDK ...

  7. 十天精通CSS3(3)

    颜色之RGBA RGB是一种色彩标准,是由红(R).绿(G).蓝(B)的变化以及相互叠加来得到各式各样的颜色.RGBA是在RGB的基础上增加了控制alpha透明度的参数. 语法: color:rgba ...

  8. BFS广搜题目(转载)

    BFS广搜题目有时间一个个做下来 2009-12-29 15:09 1574人阅读 评论(1) 收藏 举报 图形graphc优化存储游戏 有时间要去做做这些题目,所以从他人空间copy过来了,谢谢那位 ...

  9. R实现的最小二乘lsfit函数学习

    1.源码 function (x, y, wt = NULL, intercept = TRUE, tolerance = 1e-, yname = NULL) { x <- as.matrix ...

  10. Apache下设置网站目录的访问权限

    禁止用户对某一个目录及目录下文件的访问,仅允许本地访问 <Directory "/wwwroot/cert/"> Require local </Director ...