写点什么

实用机器学习笔记十五:卷积神经网络

作者:打工人!
  • 2021 年 12 月 16 日
  • 本文字数:1317 字

    阅读完需:约 4 分钟

实用机器学习笔记十五:卷积神经网络

前言:

本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。

从全连接层到卷积层:


  • 如果用一层隐藏层的 MLP 来对 ImageNet(每个图片 300x300,有 1000 个类别)做分类处理。且隐藏层的神经元个数为 10000。

  • 在全连接层中,输入数据与隐藏层的每一个神经元都有一个连接通路。那么隐藏层这一层权重参数个数就有 300x300x10000=个参数,太大了吧也。

  • 在全连接层中,每一个输出都会对所有的输入做权重和处理。


因此如果纯用 MLP 对图片进行分类的话,数据量太大,计算和存储也是需要很高的成本。因此在对图片进行分类时,有哪些先验信息可以使用到,当在设计神经网络时,可以把这些先验信息放进去。


  • 在对图片进行识别时,有两个原则可以使用:

  • Translation invariance(平移不变性): 即物体经过变换之后,不会发生改变。不管这个物体是在哪,总会得到相似的结果。是不是有点懵逼呢?


如下图,任务是要找到左上角这个带红帽子的人,如果这个人从左上角移动到了右下角,只要是同一个模型,不管这个人在哪,这个模型都可以找到这个人,这就是平移不变性。

  • 本地性:通常找一个东西,不需要看特别远的像素,像素和其周围的像素相关性是比较高的,因为图片中物体都是连续的,是在一小块区域中。

卷积层:

卷积层正是用了以上介绍的两个原则。根据下图进行介绍。前方高能,李沐老师讲的真是太好了。


前提:假设下图像素为 400,全连接层和卷积层的输出都是 2


  • 利用本地性:卷积层的每一个输出都是通过一个窗口来计算的。这个窗口就是卷积核的取值可以使 2,3,5 等值。看下图的左边全连接的列子:每一个输出需要对图片所有像素做就加权和黄色的是一组可以学习的权重,蓝色的也是一组可以学习的权重。再看右边的卷积层的例子:黄色的输出对应的是图片左下角的东西,而且选择的是 2x2 的窗口,那么黄色输出如何得出:是左下角 2x2 像素块输入和权重做加权和,其他的就不再进行计算,不再关心。那么这个黄色输出对应的参数就从 nxn(图片的宽 x 高)个变成了 2x2 个参数。不管图片都多大,只要 k 定好,这个权重参数就确定了。

  • 变换不变性:还是看下图的右边,黄色的权重学习好了,把左下角的东西移动到右上角,这个权重依然可以识别到这个东西。也就是说在计算蓝色输出的值时,不用再次学习一套新的权重,直接使用黄色的这套权重就行,这就是权值共享

  • 一个卷积核学习图片的一个特征(比如纹理,颜色等等),多个卷积核就可以学习到多种特征,而且通常做多个通道的卷积(红绿蓝三通道)。


因此,卷积层可学习的参数和输入大小和输出大小无关了,只和 k 有关。


卷积介绍


卷积的问题:


卷积层对位置特别敏感,因为卷积层的每一个输出都是与对应的输入位置后面一块区域有关,一个物体不会总是出现在同一个位置,因此需要有对未知移动的鲁棒性。


pooling layer:

  • 卷积的问题可以使用池化层来解决,现在叫它汇聚层更加合适一点。

  • 汇聚层的也是使用一个的窗口对输入数据进行求平均或者取最大值


卷积神经网络:


卷积层同样需要激活函数进行非线性化,如果没有激活函数的话同样是一个线性模型,和全连接层没什么区别,只是关注的区域更小,参数更少,权值共享。卷积神经网络(CNN)的结构如下:


卷积神经网络结构


发布于: 1 小时前阅读数: 7
用户头像

打工人!

关注

打工人! 2019.11.10 加入

InfoQ年度最佳内容获得者。 InfoQ签约作者 本人打工人一枚,自动化和控制专业入坑人一枚。目前在研究深度强化学习(DRL)技术。准备入坑互联网小白一枚。喜欢了解科技前沿技术,喜欢拍照。

评论

发布
暂无评论
实用机器学习笔记十五:卷积神经网络