【动手学深度学习】6.2 图像卷积(个人向笔记)

1. 互相关运算

  • 严格来说,卷积层是一个错误的叫法,因为它本质上是互相关运算而不是卷积运算。
  • 我们暂时忽略通道看看二维图像数据和隐藏表示。那么输出大小可以表示为
  • 我们自己实现一个二维互相关运算

2. 卷积层

  • 卷积层中有两个参数:卷积核权重和标量偏置
  • 和之前全连接层一样,在训练基于卷积层的模型时,我们也随机初始化卷积核权重
  • __init__构造函数中,将weightbias声明为两个模型参数,前向传播函数调用corr2d函数并添加偏置

3. 图像中的目标边缘检测

  • 如下是卷积层的一个简单应用:通过找到像素变化的位置,来检测图像中不同颜色的边缘
  • 首先构造一个 6 × 8 6×8 6×8 像素的黑白图像,中间四列为黑色,其余像素为白色
  • 接下来构造一个高度为1,宽度为2的卷积核K。当进行互相关运算时,如果水平相邻的两元素相同,则输出为零,否则输出为非零
  • 现在,我们对参数X(输入)和K(卷积核)执行互相关运算。 如下所示,输出Y中的1代表从白色到黑色的边缘,-1代表从黑色到白色的边缘,其他情况的输出为0

4. 学习卷积核

  • 让我们有更加复杂的需求的时候,那么我们就不可能手动设计滤波器了,那么我们是否可以学习有 X 生成 Y 的卷积核呢?
  • 现在让我们看看是否可以通过仅查看"输入-输出"对来学习由X生成Y的卷积核。 我们先构造一个卷积层,并将其卷积核初始化为随机张量。接下来,在每次迭代中,我们比较Y与卷积层输出的平方误差,然后计算梯度来更新卷积核。为了简单起见,我们在此使用内置的二维卷积层,并忽略偏置
  • 10次迭代后,误差降得已经足够低了,现在再看看我们所学的卷积核的权重张量:可以看到非常接近我们之前定义的卷积核 K

5. 互相关和卷积


6. 特征映射和感受野

  • 下图输出的卷积层有时被称为特征映射,因为它可以被视为一个输入映射到下一层的空间维度的转换器
  • 在卷积神经网络中,对于某一层的任意元素 x,其感受野是指在前向传播期间可能影响 x 计算的所有元素(来自所有先前层)
  • 以下面的输出的第一个元素19为例,其感受野就是输入矩阵的蓝色部分
  • 假设当前的输出为 Y,其大小为 2 × 2 2×2 2×2,我们再在其后面附加一个卷积层,该卷积层以 Y 为输入,输出单个元素 z。那么此时 z 的感受野就是 Y 中的四个元素。而 Y 的感受野就是输入矩阵中的九个元素。
相关推荐
一个平凡而乐于分享的小比特7 小时前
UCOSIII内核 VS FreeRTOS内核
笔记·freertos·ucosiii
星轨初途7 小时前
C++入门(算法竞赛类)
c++·经验分享·笔记·算法
shayudiandian7 小时前
用PyTorch训练一个猫狗分类器
人工智能·pytorch·深度学习
子午8 小时前
【蘑菇识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·python·深度学习
prog_61038 小时前
【笔记】和各大AI语言模型写项目——手搓SDN后得到的经验
人工智能·笔记·语言模型
星轨初途9 小时前
C++的输入输出(上)(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
再睡一夏就好10 小时前
string.h头文件中strcpy、memset等常见函数的使用介绍与模拟实现
c语言·c++·笔记·string·内存函数·strcpy
饭饭大王66610 小时前
深度学习在计算机视觉中的最新进展
人工智能·深度学习·计算机视觉
小喵要摸鱼10 小时前
【卷积神经网络】卷积层、池化层、全连接层
人工智能·深度学习·cnn
('-')10 小时前
《从根上理解MySQL是怎样运行的》第十三章笔记
数据库·笔记·mysql