深度学习入门系列13:卷积神经网络概述

大家好,我技术人Howzit,这是深度学习入门系列第十三篇,欢迎大家一起交流!

深度学习入门系列1:多层感知器概述
深度学习入门系列2:用TensorFlow构建你的第一个神经网络
深度学习入门系列3:深度学习模型的性能评价方法
深度学习入门系列4:用scikit-learn找到最好的模型
深度学习入门系列5项目实战:用深度学习识别鸢尾花种类
深度学习入门系列6项目实战:声纳回声识别
深度学习入门系列7项目实战:波士顿房屋价格回归
深度学习入门系列8:用序列化保存模型便于继续训练
深度学习入门系列9:用检查点保存训练期间最好的模型
深度学习入门系列10:从绘制记录中理解训练期间的模型行为
深度学习入门系列11:用Dropout正则减少过拟合
深度学习入门系列12:使用学习规划来提升性能
深度学习入门系列13:卷积神经网络概述
深度学习入门系列14:项目实战:基于CNN的手写数字识别
深度学习入门系列15:用图像增强改善模型性能
深度学习入门系列16:项目实战:图像中目标识别
深度学习入门系列17:项目实战:从电影评论预测情感
深度学习入门系列18:递归神经网络概述
深度学习入门系列19:基于窗口(window)的多层感知器解决时序问题
深度学习入门系列20:LSTM循环神经网络解决国际航空乘客预测问题
深度学习入门系列21:项目:用LSTM+CNN对电影评论分类
深度学习入门系列22:从猜字母游戏中理解有状态的LSTM递归神经网络
深度学习入门系列23:项目:用爱丽丝梦游仙境生成文本


卷积神经网络是一个强大的人工神经网络技术。这些网络保留了问题的空间结构,并被用于开发对象识别的任务,诸如手写数字识别。它的盛行是因为它在复杂的计算机视觉和自然语言处理任务上获得显著的效果。这节课你将学习卷积神经网络,又称ConvNets或者CNNs。完成这个速成课之后你将了解:
  • CNNs中使用的构建块,如卷积层和池化层
  • 如何让构建模块与一个简短的示例结合在一起。
  • 最好的实践就是在你自己对象检测任务上配置CNNs

让我们开始吧

13.1 卷积神经网络示例

给定每张标准大小为32×32像素的灰阶图像数据集,传统前向计算神经网络需要1024(32*32)的输入权重(加上一个常量 )。这很公平,但是把图片像素矩阵扁平化为一个长的像素向量破坏了图片的空间结构。除非所有的图像被完美重新设定大小,否则神经网络很难处理这个问题。

卷积神经网络通过输入小方块数据学习内部特征表示期望保存像素间空间关系。这些特征在整个图像中被学习和使用,允许图像中的对象在场景转移和移动,网络仍然可以检测到。正是由于这个原因,网络对于在照片中识别对象,挑选出具有不同方向的手指,面部,对象等非常有用。总之,下面是使用卷积神经网络的优点:

  • 要比全连接网络用更少的参数来学习。
  • 它们被设计为不会改变对象在场景中的位置和变形。
  • 他能够自动学习和泛化来自输入的特征

13.2 卷积网络构建块

在卷积神经网络中有三种类型层:

1.卷积层
2.pooling层。
3.全连接层。

13.3 卷积层

卷积层有过滤器和特征图组成。

13.3.1 过滤器(Filters)

过滤器本质上是该层的神经元。他像神经元一样的有权重的输入和输出值。它的输入大小是个固定大小正方形块称之为片或者感知区域。如果卷积层是一个输入层,那么输入片将是像素值。如果在网络结构更深处,卷积层的输入来自上一层的特征图。

13.3.2 特征图(Feature Maps)

特征图是在上一层应用过滤器得到的结果。给定过滤器会在上一层走一遍,每次一个像素。每个位置产生一个神经元激活,输出成特征图。你能看到,如果感知区域从激活函数到激活函数被移动一个像素,那么这个区域就会被闪一个输入值(区域宽度为-1)的激活函数覆盖。

每次激活时,过滤器在上一层的输入的移动距离称之为步长,如果上一层的大小不能被过滤器感知区域大小和步长大小整除,那么感知区域可能尝试读取输入特征图的边缘。在这种情况下,像零填充技术被用于对要读取的感知区域进行填充模拟输入值0。

13.4 池化层(Pooling)

池化层对上一层特征图进行下采样。池化层紧跟着一个或多个卷积层,目的是合并已学习和上一层特征图表示的特征。正因如此,池化被认为是压缩或者返回特征表示的一种技术,一般用于减少模型的训练数据过拟合。

他们也具有感知场,通常要比卷积层小。 同样,每次激活使接收场移动的步幅或输入数量通常等于接收场的大小,以避免任何重叠。池化层通常非常简单,去输入的平均值或者最大值,目的是创建自己的特征图。

13.5 全连接层

全连接层是正常的平面前馈神经网络层。这些层会有一个非线性几号函数或者softmax激活函数,为了输出类的预测概率。通过卷积神经网络和池化层进行特诊提取和融合之后,在网络末端使用全连接层。他们用于创建最终的非线性特征结合,通过神经网络做预测。

13.6 工作案例

你现在了解卷积层,池化层和全连接层。通过研究如何让这三层连接起来,让我们了解更多具体的实现。

13.6.1 图片输入数据

假定我们有灰度图片数据集,而且每张图片有相同的大小,且长宽为32×32。像素值在0-255之间。如32×32×1矩阵或者1024像素值。像素输入数据用一个三维矩阵表示,width×height ×channels。如果我们在例子中用彩色的图片,我们有三个通道分别为红,绿和蓝像素,如32×32×3。

13.6.2 卷积层

我们定义了一个卷积层,它有10个过滤器,有个长宽为5个像素的感知场以及步长设置为1。因为每层每次从5×5(25个值)中获得输入,我们能够计算每次输入需要25+1个输入权重(加上一个偏置常数)。在整个图片上以步长为1拖动5×5感知场产生28 ×28个输出值或者784个不同的激活值

我们有10个过滤器,因此是10个不同的28 × 28特征图或者7840个输出值创建一张图片。最后,我们知道每个过滤器有26个输出值,10个过滤器和每层要计算28×28个输出值,因此卷积层中我们总共有26×26×28×或者203840链接。我们想用传统的神经网络术语来表述它。卷积层还利用非线性传递函数作为激活函数的一部分,而整流器激活函数是常用的默认设置。

13.6.3 池化层

我们用一个宽度和高度为2的输入值感知场来定义池化层。我们也使用步长为2来确保没有重叠。这样产生的特征图大小为输入特征图的一半。从10个不同28×28个特征图输入到10个不同的14×14个特征图输出。我们对每个感知场将使用一个max()操作符,以至于激活函数的值是输入值的最大值。

13.6.4 全连接层

最后,我们方形的特征图平面化为一个传统的平面全连接层。我们定义了200个隐藏神经元全连接层,每个都有10 * 14 * 14输入连接,或者1960+1个权重。这层总共有392200连接和权重学习。我们直接使用sigmoid和softmax函数来输出类的概率。

13.7 卷积神经网络最佳实践

既然我们知道了卷积神经网络块的构建并如何将他们组合在一起,那么我们可以看看一些最佳做法,以在应用它们时加以考虑。

  • 感知场维度 图片默认的2D,如句子中的单词维度为1D,视频为3D,添加了时间维度。

  • 感知场大小 区域应尽可能的小,但是也要足够大到覆盖输入数据特征。通常,小图片使用3×3,大点图片使用5 * 5 和 7* 7。

  • 步长:默认使用1,它很容易理解并且你不需要填充就可以处理你图片边缘的感知场。对于大图片需要增加到2或者更大。

  • 过滤器个数: 过滤器是特征检测器。一般在输入层使用较少的过滤器,随着层数加深不断递增

  • 填充 设置为零并在读取非输入数据时称为零填充。当你不能或者不想标准化输入图片大小或者当你想使用不能整除的感知场和步长大小时是有用的。

  • 池化 池化是一个解构和泛化的过程,用于减少过拟合。感知场几乎总是设置2×2 且步长为2,丢弃来自上一层输出的75%。(设置DropOut(0.25))

  • 数据预处理 考虑到标准化输入数据,如图片和像素值得维度

  • 模式结构 在你的神经网络结构中模式化层是常事。在池化层之后有可能一个,或者两个甚至更多个卷积层,这些结构被重复一次或者更多次。最后,全连接层在输出层经常使用,可以堆一层,两层或者更多层。

  • Dropout CNNs甚至使用了池化层也有可能过拟合。在全连接层和池化层后使用Dropout

13.8 总结

在这节课,你已经学习了卷积神经网络,已经学到:

  • 为什么CNN能够保存输入数据的空间结构以及他们的优点。
  • CNN构建块包括卷积层,池化层和全连接层。
  • 将CNN应用于您自己的问题时的最佳做法。

13.8.1 接下来

你现在了解关于卷积神经网络。在接下来的部分,你将要学习如何用keras开始自己的第一个卷积神经网络,解决数字识别问题。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术人Howzit

钱不钱的无所谓,这是一种鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值