深度之眼Pytorch打卡(十四):Pytorch卷积神经网络部件——卷积层与反卷积层(转置卷积层)

时间:2024-03-31 11:56:53

前言


  人每天处理的信号中,有超过70%的是视觉信号,所以视觉问题,包括分类,检测,分割、风格转换等等占了深度学习任务中的很大部分。而卷积神经网络是计算机视觉领域当之无愧的霸主。卷积神经网络是稀疏连接,并且权值共享的,参数比全连接要少非常多,所以完完全全可以用图像全像素作为输入,并且它比全连接网络更容易训练,且能做得更深。另外,卷积神经网络,浅层卷积提取简单特征,深层卷积提取复杂特征,还有感受野等设计都在一定程度上受大脑视觉皮层结构的启发1 ,所以它比较适合视觉任务。这篇笔记主要学习卷积神经网络的核心——卷积操作和Pytorch的卷积层,还有转置卷积操作和Pytorch转置卷积层。本笔记的知识框架主要来源于深度之眼,并依此作了内容的丰富拓展,拓展内容主要源自对torch文档的翻译,对孙玉林等著的PyTorch深度学习入门与实战的参考和自己的粗浅理解,所用数据来源于网络。发现有人在其他平台照搬笔者笔记,不仅不注明出处,有甚者更将其作为收费文章,因此笔者将在文中任意位置插入识别标志。

  全连接网络部件见:深度之眼Pytorch打卡(十三):Pytorch全连接神经网络部件——线性层、非线性**层与Dropout层(即全连接层、常用**函数与失活 )


卷进操作与卷积层


  • 卷积操作

  第一次接触到卷积是在信号与系统中,把一个信号送入一个系统,在时域内输出信号就是输入信号与系统函数的卷积。它其实那就是一个相乘和相加操作,即线性运算,那里的卷积有四个步骤:翻转,移位,相乘和相加。每一次的移位都会有一个相乘求和结果,它的大小可以衡量此位置翻转后的系统函数与输入信号的相似性,数值越大,在该位置信号与系统函数的相似性就越高。深度学习或者是图像处理里的卷积,类似于信号处理里相关,没有翻转的操作,只有移位和相乘相加,它的输出结果是卷积核或者滤波器与其覆盖区域的相似性,**值越大,代表覆盖区域与卷积核或者滤波器有越相近的特征。Pytorch的卷积操作,有一维卷积,二维卷积和三维卷积。其中二维卷积,尤其是二维卷积中的多通道卷积最为常用,因为图像本身就是二维多通道的

  示意图源自国外的一篇文章:Reading Minds with Deep Learning
深度之眼Pytorch打卡(十四):Pytorch卷积神经网络部件——卷积层与反卷积层(转置卷积层)

图1.一维卷积

  示意图源自国外的一篇文章:Convolutional Neural Networks - Basics
深度之眼Pytorch打卡(十四):Pytorch卷积神经网络部件——卷积层与反卷积层(转置卷积层)

图2.二维单通道卷积

  示意图源自斯坦福计算机视觉课程:CS231n: Convolutional Neural Networks for Visual Recognition.

深度之眼Pytorch打卡(十四):Pytorch卷积神经网络部件——卷积层与反卷积层(转置卷积层)

图3.二维三(多)通道卷积

  示意图源自国外的一篇博客:3D Convolutional Networks for Traffic Forecasting

深度之眼Pytorch打卡(十四):Pytorch卷积神经网络部件——卷积层与反卷积层(转置卷积层)

图4.三维卷积

  示意图源自国外的一篇博客:An Introduction to different Types of Convolutions in Deep Learning
深度之眼Pytorch打卡(十四):Pytorch卷积神经网络部件——卷积层与反卷积层(转置卷积层)

深度之眼Pytorch打卡(十四):Pytorch卷积神经网络部件——卷积层与反卷积层(转置卷积层)

图4.拓展边缘

深度之眼Pytorch打卡(十四):Pytorch卷积神经网络部件——卷积层与反卷积层(转置卷积层)

图4.空洞卷积
  • 卷积层


反卷积操作与反卷积层(transposed convolution)


  • 反卷积操作

  • 反卷积层


参考



  1. [16] Hubel DH, Wiesel TN. Receptive fields, binocular interaction and functional architecture in the cat’s visual cortex[J]. Journal of Physiology,1962,160(1): 106-154. ↩︎