卷积神经网络入门教程

这把我C 2021-04-15 15:51:43 5028
文章目录
【深度学习】卷积神经网络速成
1 概述
2 组成
2.1 卷积层
2.2 池化层
2.3 全连接层
3 一个案例
4 详细分析

1 概述

前馈神经网络(feedforward neural network,FNN),简称前馈网络,是人工神经网络的一种。前馈神经网络采用一种单向多层结构。其中每一层包含若干个神经元。在此种神经网络中,各神经元可以接收前一层神经元的信号,并产生输出到下一层。第0层叫输入层,最后一层叫输出层,其他中间层叫做隐含层(或隐藏层、隐层)。隐层可以是一层。也可以是多层 。
整个网络中无反馈,信号从输入层向输出层单向传播,可用一个有向无环图表示 。
一个典型的多层前馈神经网络如图所示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2 组成

2.1 卷积层

在图像处理中,往往把图像表示为像素的向量,比如一一个1000x 1000的图像,可以表示为一个000000的向量。假如神经网络中的隐藏层数目与输入层一样,即也是1000000时,那么输入层到隐藏层的参数数据为1000000 X 1000000=1012,数据量非常巨大,基本无法训练。所以使用神经网络处理图像,必须先减少参数,加快训练速度。卷积层就用来局部感知提取特征,降低输入参数的层。

滤波器( Filter)本质上是该层的神经元,具有加权输入并产生输出值,输入是固定大小的图像样本(如5x5)。如果卷积层是输入层,则输入将是像素值。如果它们在网络架构中较深,则卷积层将从前一-层的特征图获取输入。
简单的局部感知,参数仍然过多,需要进-步降低参数的数量,其中的一个方法就是权值共享。在上面的例子中,每个神经元都对应100个参数,-共有000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100了。怎么理解权值共享呢?在这里可以把100个参数(也就是卷积操作)看成提取特征的方
式,该方式与位置无关。其中隐含的原理则是:图像的一部分统计特性与其他部分是一样的。这也意味着,在这一部分学习的特征也能用在另一部分上,所以可以在图像,上的所有位置,使用同样的学习特征。更直观地说,当从一个大尺寸图像中随机选取一小块,比如以8x8作为样本,并且从这个小块样本中学习到了一些特征,我们就可以把从这个样本中学习到的特征作为探测器,并应用到这个图像的任意地方。而且,可以用从8x8样本中学习到的特征和原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任- -位置获得一个不同特征的激活值。每个卷积都是-种特征提取方式,就像一-个筛子, 将图像中符合条件(激活值越大越符合条件)的部分筛选出来。
在卷积神经网络的设定里,特征图( Feature Map )是卷积核卷出来的,而不同的特征提取(核)会提取出不同的特征,模型想要达成的目的是,找到一组最佳的能解释现象的卷积核。
特征图对应各层神经云的输出,可以这样理解。

2.2 池化层

在卷积神经网络中,池化层对输入的特征图进行压缩,-方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征。采用池化层可以忽略目标的倾斜、旋转之类的相对位置的变化,以提高精度,同时降低了特征图的维度,并且在- -定程度上可以避免过拟合。池化层通常非常简单,取平均值或最大值来创建自己的特征图。

2.3 全连接层

全连接层在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层等操作是将原始数据映射到隐藏层的特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。全连接层通常具有非线性激活函数或softmax激活函数,预测输出类的概率。在卷积层和池化层执行特征抽取和合并之后,在网络末端使用全连接层用于创建特征的最终非线性组合,并用于预测。

3 一个案例

在这里插入图片描述

●输入: 224x224大小的图片,3通道。
●第一层卷积: 5X5大小的卷积核96个,每个GPU上48个。
●第一层Max Pooling: 2x2大小的核。
●第二层卷积: 3X3大小的卷积核256个,每个GPU上128个。
●第二层Max Pooling: 2X2大小的核。
●第三层卷积:与上一层全连接, 3x3的卷积核384个,分到两个GPU上192个。
第四层卷积: 3x3大小的卷积核384个,每个GPU上192个。该层与上一层连
接,没有经过池化层。
●
第五层卷积: 3x3大小的卷积核256个,每个GPU.上128个。
●第五层Max Pooling: 2x2大小的核。
●第一层全连接: 4096维,将第五层Max Pooling的输出连接成-一个- -维向量,作
为该层的输入。
第二层全连接: 4096 维,Softmax 激活函数输出为1000,输出的每一-维都是图片
属于该类别的概率。

4 详细分析

在这里插入图片描述

卷积神经网络(Convolutional Neural Networks / CNNs / ConvNets)与普通神经网络非常相似,它们都由具有可学习的权重和偏置常量(biases)的神经元组成。每个神经元都接收一些输入,并做一些点积计算,输出是每个分类的分数,普通神经网络里的一些计算技巧到这里依旧适用。
具有三维体积的神经元(3D volumes of neurons)
卷积神经网络利用输入是图片的特点,把神经元设计成三个维度 : width, height, depth(注意这个depth不是神经网络的深度,而是用来描述神经元的) 。比如输入的图片大小是 32 × 32 × 3 (rgb),那么输入神经元就也具有 32×32×3 的维度。
在这里插入图片描述

总的来说就是卷积层增大图片高度同时改变图片大小,但是在卷积的过程中会丢失一些信息,所以我们引入池化层。
也就是说,在卷积层不改变图片大小,在池化层改变图片大小。
在这里插入图片描述

卷积层由一组滤波器组成,滤波器可以视为二维数字矩阵。这是一个示例3x3滤波器:
在这里插入图片描述

在图像的某个位置上覆盖滤波器;将滤波器中的值与图像中的对应像素的值相乘;把上面的乘积加起来,得到的和是输出图像中目标像素的值;对图像的所有位置重复此操作。这个4步描述有点抽象,所以让我们举个例子吧。看下面的4x4灰度图像和3x3滤波器:
在这里插入图片描述
图像中的数字表示像素亮度,0是黑色,255是白色。我们将对输入图像和滤波器进行卷积,生成2x2输出图像。

首先,让我们将滤镜覆盖在图片的左上角:

接下来,我们在重叠的图像和滤波器元素之间逐个进行乘法运算,按照从左向右、从上到下的顺序。

在这里插入图片描述
把最右列的乘积结果全部相加,得到:
在这里插入图片描述
由于滤波器覆盖在输入图像的左上角,因此目标像素是输出图像的左上角像素:
在这里插入图片描述
用同样的方式处理图像剩下的区域:
2 填充
在上面的处理过程中,我们用3x3滤波器对4x4输入图像执行卷积,输出了一个2x2图像。

通常,我们希望输出图像与输入图像的大小相同。因此需要在图像周围添加零,让我们可以在更多位置叠加过滤器。3x3滤波器需要在边缘多填充1个像素。

在这里插入图片描述

池化
在CNN网络中卷积池之后会跟上一个池化层,池化层的作用是提取局部均值与最大值,根据计算出来的值不一样就分为均值池化层与最大值池化层,一般常见的多为最大值池化层。池化的时候同样需要提供filter的大小、步长、下面就是3x3步长为1的filter在5x5的输入图像上均值池化计算过程与输出结果

在这里插入图片描述
改用最大值做池化的过程与结果如下:
在这里插入图片描述

注意
conv、padding、pooling都有好多种不同的方式哦。!
总结一下,CNN就是将一幅图像经过一层又一层的编码过后,可以得到一个结论值,该值是对该图像的分类或描述。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 97 7 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
这把我C
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区