zl程序教程

您现在的位置是:首页 >  工具

当前栏目

06 卷积神经网络CNN-学习笔记-李宏毅深度学习2021年度

笔记学习神经网络 深度 2021 卷积 06 CNN
2023-09-27 14:19:57 时间

上一篇:05 Classification-学习笔记-李宏毅深度学习2021年度

下一篇:07 Self Attention-学习笔记-李宏毅深度学习2021年度

本节内容及相关链接

CNN的相关概念

课程笔记

卷积神经网络(Convolutional Neural Network,CNN)是专门为图片识别设计的,当然也可以用在其他的任务上


卷积层:将图片各区域依次与多个Filter进行内积(inner product)操作,最终获取一个新的图片

Filter: 一个( h × w × channels h\times w \times \text{channels} h×w×channels )的Tensor,通常宽高一致,且不宜过大,取 3 × 3 × channels 3\times 3 \times \text{channels} 3×3×channels 即可,其中channel要和图片的channel保持一致

Filter是用来提取图片的特征的

例如,对一张彩色图片做卷积,则Filter的维度可以设置为: 3 × 3 × 3 3\times 3 \times 3 3×3×3
在这里插入图片描述

Filter也是有bias的,一个Filter有一个Bias,只不过通常不

stride:步长,只卷积过程中,Filter每次往后移动多少步;stride通常不会太大,1或2即可

卷积后生成的图片矩阵称为Feature Map


卷积的过程,可以使用神经网络完成

在这里插入图片描述

  • Filter中的数对应神经网络的权重
  • 图片中的数对应神经网络的输入
  • 多个Filter相当于有多个神经元

Subsample(下采样): 将图片缩小,减小参数个数。在CNN中,称为Pooling

最常见的Pooling策略

  • Max-Pooling:在某区域的像素中,采取像素值最大,其他的都丢弃

整个CNN过程如下:

  1. 将图片转为Tensor
  2. 使用多个Filter对图片Tensor进行卷积
  3. 对卷积后的Feature Map进行Pooling也可以不进行Pooling,视情况而定
  4. 可以对(2),(3)步进行多次
  5. 将Tensor转为Vector,即将图片拉平,该动作称为Flatten
  6. 将第5步生成的Vector输入到Fully Connected Neural Network,进行接下来的事情

在这里插入图片描述


CNN的局限:泛化能力差,例如对图片进行放大后,可能就识别不出来了
在这里插入图片描述

假设都是使用第一种类型的图片进行训练,那么CNN对第二种就无法识别