七、卷积神经网络

上一章:六、计算机视觉介绍、OpenCV

下一章:八、(一)预训练网络(Pre-trained Networks)与迁移学习(Transfer Learning)

更多章节:人工智能入门课程


目录

课前练习

CNN背后的主要思想

✍️ 练习:卷积神经网络

金字塔结构

最著盛名的CNN架构

VGG-16

残差网络(ResNet)

Google Inception

移动网络(MobileNet)

总结

挑战

课后练习

复习和自学

作业


我们前面已经看到神经网络非常擅长于处理图像甚至单层感知器就能以精度识别MNIST数据集中的手写数字然而MNIST数据集非常特殊所有的数字都在图像的中间这使得任务更简单

现实生活中我们希望能够识别物体不管它在图像中具体哪个位置计算机视觉于普通的分类不同因为当我们试图在图片中找一个特定的物体时我们通过某个特定的模式或者它们的组合来扫描图像例如当寻找一只猫我们可能首先会寻找平行线这些平行线可以形成胡须然后一些特定的胡须组合可以告诉我们它实际是一张猫的图片特定的模式的存在和相对位置非常重要而不是它们在图像中的确切位置

为了提取模式我们将使用卷积滤波器的概念正如你所知图像使用2D矩阵或者带颜色深度的3D张量表示应用一个滤波器意味着,我们采用相对较小的滤波器核filter kernel)矩阵,并针对原始图像中的每一个像素点我们计算与相邻点的加权平均值我们可以将这视为一个小窗口在整个图像上滑动并根据滤波核矩阵中的权重对所有像素进行平均

图像由Dmitry Soshnikov提供

例如我们对MNIST数字应用3*3的垂直边缘和水平边缘滤波器我们可以在原始图像中有垂直边缘和水平边源的地方得到一个高亮例如高值)。因此这两个滤波器可以用来寻找边缘同样我们可以设计不同的滤波器来寻找其他低级的模式

图像由Leung-Malik Filter Bank提供

然而我们可以手动设计滤波器来提取某些模式但同时我们也可以设计网络使其自动学习模式这是CNN背后主要的思想之一

CNN背后的主要思想

CNN的工作方式基于以下重要思想

  • 卷积滤波器能够提取模式
  • 我们能够设计网络以自动训练滤波器
  • 我们可以使用相同的方法在高级特征中寻找模式不仅仅局限于原始图像中所以CNN特征提取在特征层级结构上工作从低级的像素组合开始逐步到高级的图片部分组合

图像来自 a paper by Hislop-Lynch, 基于 他们的研究

✍️ 练习:卷积神经网络

让我们通过相应的代码笔记继续探索卷积神经网络的工作原理我们如何实现可训练的滤波器

金字塔结构

大部分的处理图像的CNN遵循所谓的金字塔架构第一个应用于原始图片分类的卷积层具有相对较少数量的滤波器(8-16)。对应于不同的像素组合例如水平/垂直的笔画线条在下一个层级我们减少网络的空间纬度并增加滤波器数量这对应于更多可能的简单特征组合在每一层当我们向最终的分类器靠近图像的空间纬度会降低而滤波器数量会增加

例如让我们看看VGG-16的架构该网络在2014ImageNet的前5名分类中实现了92.7%的精准度:

图像由 Researchgate提供

最著盛名的CNN架构

VGG-16

VGG-162014年在ImageNet top-5分类中准确度达到92.7%的网络它具有以下层次结构

如您所见VGG 遵循传统的金字塔架构这是一系列卷积池层序列

图像由 Researchgate提供

残差网络(ResNet)

残差网络是由微软研究院于2015年提出的一系列模型残差网络的思想是使用残差块

图像出自 这篇文章

使用身份传递的原因是让我们的“层”预测前一层的结果与残差块输出之间的差异因此得名残差residual)。这些块更容易训练人们可以构建具有数百个这些块的网络。(最常见的变体是ResNet-52, ResNet-101 and ResNet-152

你也可以认为这些网络可以针对数据集调整复杂度最初当你才开始训练网络权重值很小大部分信号能够通过透传身份层随着训练进行权重变得越来越大网络参数的重要性随之增加网络调节以适应正确分类训练图像所需的表达力

Google Inception

Google Inception 架构将这种想法更进一步将每层网络构建成几种不同路径的组合

图像由 Researchgate提供

这里我们要提到1*1卷积的作用因为起初他们看起来并没有意义为什么我们需要用1*1的滤波器对图像进行处理然而您要记住卷积滤波器可以处理多个深度通道最初是RGB颜色在后续层中是不同的滤波器的通道),而1*1卷积的用于将这些输入通道使用不同的可训练权重混合在一起。这可以视为在通道维度上降采样池化

这是一个关于该主题的优秀博客帖子以及原始文章

移动网络(MobileNet)

移动网络是一系列减小了大小适合移动设备的模型如果您缺少资源同时可以牺牲一点准确度那么使用它们它们背后的主要思想是所谓的深度可分离卷积它允许通过空间卷积和深度通道上1*1的组合来表示卷积滤波器这显著的减少了参数的数量使得网络的大小更小同时更容易在较少数据上进行训练

这是 一篇关于 MobileNet的优秀的帖子.

总结

在这个单元用,你学习了计算机视觉神经网络背后的主要概念-卷积网络现实生活中支持图像分类物体检测甚至图像生成的网络都是基于CNN架构只是具有更多层或者使了额外的训练技巧。

挑战

在随附的笔记本中在底部有关于如何获得更高准确率的说明做一些实验看看您是否能取得更高准确率

复习和自学

虽然CNN最常用于计算机视觉任务它们通常也适用于提取固定大小的模式例如如果我们正在处理声音我们可能也像使用CNN来寻找音频信号中的某些特殊模式-在这种情况下滤波器将是1维的这种CNN被称作1D-CNN)。此外有时某些3D-CNN被用于在多维空间中提取特征比如视频中发生的特定的事件-CNN能够捕获特征随时间变化的特定的模式进行一些关于CNN可以完成的其他任务的回顾和自学

作业

在这个实验中您的任务是对不同的猫和狗的品种进行分类这些图像集比MINIST数据集更复杂及维度更高并且有超过10个类型


 上一章:六、计算机视觉介绍、OpenCV

下一章:八、(一)预训练网络(Pre-trained Networks)与迁移学习(Transfer Learning)

 更多章节:人工智能入门课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值