详细通俗易懂理解卷积神经网络CNN(上)

Outline
什么是卷积
卷积怎么工作
什么是卷积神经网络
卷积神经网络怎么工作(经典网络)
迁移学习(概要)
数据增强方法(概要)

1 卷积的定义

首先,卷积是一种运算法则,就像乘法加法,它规定了数据之间的运算规则。它是一种怎样的运算规则呢?定义如下:
连续的定义:
在这里插入图片描述
直白地说,是连续函数f和g的一种积分运算,其中,一个明显的特征就是两函数自变量之和为n,,tao是一个变量,将其记为x,n-tao 记为y,符合x + y = n。如果n为常数,那么y随x变化而变化,符合线性关系x+y = n。

离散的定义:
在这里插入图片描述

离散的定义看起来更为直观。

为何用两函数的乘积来表示,为什么不是加法或者减法呢?乘法的含义有很多,需放在具体的应用中去,如在概率论问题“两骰子点数加起来为4的概率”:P = f(1)*g(3) + f(2)*g(2) + f(3)*g(1);

2 卷积在图像处理中的工作原理

这个图太清晰了,说明了卷积的工作过程。卷积的过程也是提取图像特征的过程。不同的卷积提取图像不同维度的特征。
在这里插入图片描述

2.1 卷积核的种类

(1) 1X1的卷积核

这张图片很清晰地描述了输入为WHD的数据,D可以看做其特征维度,一个11D的卷积核对输入数据做卷积操作,其实这可以看做每个维度的特征的线性组合,每维的系数是卷积核的数值。得到一个WH1的特征图,再应用非线性。11D的卷积核具备明显的降维功能,充当特征池,如average pooling(如果卷积核参数皆为1/D)

(2)2D卷积核 W*H

2D卷积核只有w和h,同样地它只对2D输入起作用,移动卷积核以线性求和卷积核滑动的数值,输出大小的计算公式:i是输入的长或者宽,p是周围填充的行数,k是卷积核大小,s是步长。这个公式可以这样理解:移动了多少步 (一步一输出)+ 1(最开始的卷积输出);总共有i+2p个格子,移动的格子数为i+2p-k,一步跳s格,那么需要(i+2p-k)/s步才能全部卷积到,这容易理解扒!
根据padding的行数不同,可以分成不同的padding模式:I :mean 使输出和输入的尺寸一样 ;II:None 不padding ;III full就是把图像的每个像素都作为卷积的遍历对象,让图像最左上角的元素被卷积到,所以要padding = k -1

在这里插入图片描述
(3)离散卷积
在这里插入图片描述
以2D离散卷积为例,这个卷积公式只是将变量n - tao缩小了而已,如果l= 1 ,就是标准卷积,l>1,那就是t = (p - s)/l,也就是说
在这里插入图片描述
为什么还要用离散卷积呢?因为它一次卷积涉及到的图像的空间变大了,换句话说,就是感受野变大了,之前一次卷积只对人像的头发做运算,现在可以提取头发+脸部的特征了,空间更大了,感受野扩大了。如果用多个不同L 的离散卷积核提取特征,可想而知,每维的特征差异随感受野增大而增大,那么这些特征也就越重要,这种手段非常有效。

(4)转置卷积(Transposed Convolution)
在计算机中,卷积操作用矩阵的乘法来计算以节省时间。为了模拟卷积核在输入数据上的滑动,用填充零的方式表示,零所对应位置的数据相当于不参与到某次卷积中,下图表示了计算机中普通卷积的过程。公式如下:
在这里插入图片描述

反过来,用16*4的矩阵乘以4*1的矩阵,那么就可还原16*1的输入数据,公式如下(注意,这两个操作不是可逆的,对于同一个卷积核C,**经过转置卷积操作之后并不能恢复原始的数值,只保留原始的形状**。在数值上,其效果相当于经过**线性变换后**的结果): ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200429090724766.png)

在这里插入图片描述

(5)Depthwise Separable Convolution
在这里插入图片描述

后面的128个1*1的卷积核就成为各个卷积核互相分散的深度分散卷积核,有多少个这样的卷积核,最终输出就有多少的深度。这是pytorch中默认的卷积核模式。

reference:

https://www.jiqizhixin.com/articles/2019-02-28-3
https://www.zhihu.com/question/22298352
https://blog.csdn.net/tsyccnh/article/details/87357447
侵删,图是copy的,文字纯属个人理解,请多指教


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值