CNN入门知识-转载

CNN入门学习

CNN —— Convolutional Neural Network —— 卷积神经网络

在2012年的ImageNet(类似计算机视觉的奥林匹克比赛),CNN崭露头角,大幅度降低了图片分类的误差。从此之后,各个科技巨头公司开始使用深度学习作为技术战略部署,体现在自己的公司文化上。比如:

  • Facebook 运用神经网络用于自动标注算法
  • 谷歌 使用 神经网络图片搜索
  • 亚马逊使用商品推荐
  • Pinterest用于个性化推送
  • Instagram 用于搜索框架

当然最经典的还是使用CNN进行图像处理

CNN整体结构

CNN流程

其中:输出信息包括:单独分类的结果或者分类类别的概率,下面会一一介绍CNN的整体流程

Input ——> Conv ——>Relu ——> Conv ——> ReLu ——> Conv ——>ReLu…——>Pool ——>Fully Connected

CNN来源

CNN(卷积神经网络),这一听不就是数学与生物的结合体吗?卷积(数学)神经网络(生物学)?

事实上,还真是这样的。来源于神经科学/生物学,视觉皮层有小部分视觉区域敏感,且该部分功能一起工作时,特定部分特定任务产生反应。

CNN实际上是模仿人的识别方式,人开始像婴儿一样,对物体没有辨别力,经常把鸡屎当糖吃(哈哈哈),随着不断接触这个世界,慢慢对物体有了辨别力。其中,CNN也是这样的一个过程,不过我们需要人为输入信息即图片。输入信息(像素变化)—— >计算根据信息进行分类,比如图片像素差异的变化 。

CNN输入信息与卷积

输入信息主要是图片的像素关系,以 32 x 32 x 3为例子,第一个32代表row,第二个32代表column,3代表RGB,即#000—#FFF.

  1. 我们简化思考,假设没有RGB,只有一种黑白,即32 x 32 x 1。我们在黑板上想想32 x 32的格子,我们使用3 x 3的笔刷进行粉刷。这个笔刷我们称之为filter(神经元/核),笔刷此时点击的领域我们称之为receptive field。

    注:filter与输入图片信息深度必须一致

  2. 计算filter矩阵与receptive filed的点乘,进行存储

  3. 不断滑动filter,计算图片其他领域的信息,进行存储

  4. 最终会得到28 x 28的数组,我们称这个数组为 激活映射/特征映射

    高层次角度中,每一个filter看作feature identifiers(特征标识符)

    filter与该领域像素值的点积,如果匹配的话,值会比较大;如果不匹配或者匹配度比较低的话,值会比较小。

FAQ:

  • 滑动filter,这里的是指滑动一步(部分会重叠),还是滑动全部(没有重叠部分)?

    这个文章后面会进行讲解,主要看个人设置,称之为stride

  • filter只有一个吗?

    不是,filter可以有多个,并且个数越多,从输入信息学到越多,即spatial dimensions保留越好,激活映射的深度越大,对输入内容越了解。当输入内容中寻找特定特征时,第一层filter在输入图像上进行卷积运算和激活

关于stride、padding

stride 主要是filter与输入信息的匹配过程的步伐大小,步伐较大的话,部分重叠计算的就越小,可以减少一定的时间复杂度,但是也会丢失一些spatial dimensions 信息

padding主要是用于进行输入信息处理过程中保持固定大小,比如之前的32 x 32 x 3 第一次卷积之后就是 28 x 28 x 3。这样的话,空间变小,不方便运算,可以选择进行zero padding.

非线性层

卷积之后——>ReLu 这个过程中,Relu相当于对卷积点乘之后线性运算进行非线性层(激活层)的处理。这样不但不会影响卷积层的receptive filed ,同时会增加模型乃整个网络的非线性特征

池化

池化(下采样)—— down sampling层,不过当前最受欢迎的还是max-pooling,即常用一个filter和同等大小的stride(之后会介绍),应用在输入内容,输出filter卷积计算的每一个子区域最大figure

当然,池化层还有其他选择,比如平均池层、L2-norm层池

Dropout层

这用于训练,不用于测试,缓解过拟合过程

完全连接层

经过之前的卷积、非线性层处理,池化之后,进入完全连接层。检测高级特征之后,处理输入内容会输出一个N维向量,N一定为程序选择分类数量

filter的训练

filter开始的时候,几乎就是很沙雕的一个东西。什么都不知道,所以我们需要通过内容标记——>反向传播

反向传播主要分为以下步骤:

  1. 前向传导
  2. loss function(用于纠正filter)
  3. 后向传导
  4. 权重的update

数据增强

在处理图像信息过程中,有时对图形翻转、图片的某部分增加一些像素的修饰,可以极大程度改变处理的效果,恰当的数据增强对于信息处理起到极大的效果

色图

CNN发展

以上介绍了卷积神经网络的基本概念。 以下是几个比较有名的卷积神经网络结构,详细的请看CS231n

  • LeNet:第一个成功的卷积神经网络应用
  • AlexNet:类似LeNet,但更深更大。使用了层叠的卷积层来抓取特征(通常是一个卷积层马上一个max pooling层)
  • ZF Net:增加了中间卷积层的尺寸,让第一层的stride和filter size更小。
  • GoogLeNet:减少parameters数量,最后一层用max pooling层代替了全连接层,更重要的是Inception-v4模块的使用。
  • VGGNet:只使用3x3 卷积层和2x2 pooling层从头到尾堆叠。
  • ResNet:引入了跨层连接和batch normalization。
  • DenseNet:将跨层连接从头进行到尾。

CNN知乎入门回答

CNN知乎文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值