002卷积神经网络基础知识
卷积神经网络基础知识
卷积神经网的基本定义
- 以卷积结构为主(主干层,还包括池化层等),搭建起来的深度网络(主要解决图片问题,如图像的目标检测)
- 将图片作为网络的输入(输入数据结构,n * w * h * c ),自动提取特征(参数优化的过程),并且对图片的变形(如平移、比例缩放、倾斜)等具有高度不变形。(在进行变形后仍能识别出为人脸)
卷积神经网的基本网络结构单元
- 卷积
- 池化
- **
- BN(Batchnorm)
- LOSS(优化)
- 其他层
卷积
- 定义
对图像和滤波矩阵做内积(逐个元素相乘再求和)的操作
-
滤波器(将卷积理解成滤波器)
均值滤波器去图像噪声:[1/3,1/3,1/3],对图像从左到右,从上到下扫描,取同滤波器一样的窗口(1*3),当前窗口同滤波器进行内积操作,(x1+x2+x3)/3
-
边缘提取:每一种卷积对应一种特征
差异越大边缘越明显,梯度幅值越大
-
Im2col实现卷积运算
每一种卷积核对应一种图像特征,卷积的结果是小窗口中心点的值,继续滑动,得到后续值,最后无法计算的部分用0填充。
https://blog.****.net/weixin_43430243/article/details/89512069
-重要参数
-
卷积核
-
图像处理中最常用的是2D卷积核(k_w*k_h)(也有1D卷积,3D卷积)
线性计算:1 * 1=(1 * n)*(n * 1)
-
权重和偏置项:y=w*x+b, b为偏置项
-
常用卷积核:1x1,3x3,5x5
- 保护位置信息,找到卷积之后的点同原始图像的点的对应情况
- padding时对称,填充的时候,奇数卷积核使用padding保证对称性
-
-
卷积------权值共享与局部连接(局部感受野/局部感知)
-
卷积运算作用在局部,如3x3的卷积核,选择3x3的局部范围得到卷积点,整幅图提取不同的范围进行卷积得到最终的卷积图,卷积的3x3的区域对应的就是3x3的感受野
-
Feature map使用同一个卷积核运算后得到一种特征
- 使用同一个卷积核,即在对图像的局部区域进行卷积的时候,我们实际上是通过同一个卷积核进行操作,每一个局部区域对应的卷积核的参数对应的权值是相同的
- 如果当前卷积核用于边缘提取,对图像卷积运算之后,得到的新的特征图就是一种边缘特征
- 如果卷积核完成均值运算,拿到的特征图就是图像均匀或降噪之后的进行均值滤波处理的特征
- 一个卷积核对应一种特征,一种特征就是我们输出的一个Feature map
-
多种特征采用多个卷积核(channel),numout输出的就是需要的卷积核数量
-
权值共享:一个卷积在进行运算的时候对应一个局部区域,对于一幅图像,在进行卷积运算的时候,所有的局部区域对应的卷积核的参数是相同的,将其定义为这些局部区域权值共享
-
局部连接:将卷积网络层和层的关系来看,输入层和输出层就是局部连接
-
-
卷积核与感受野
-
卷积的3x3的区域对应的就是3x3的感受野,卷积核越大,感受野越大,感知到的区域信息越多,能学习到的信息越多,但卷积核越大,参数量越大,模型更复杂,计算量大
5x5卷积运算后输出3x3,再对3x3区域再次卷积,得到1x1,即两个3x3=一个5x5
卷积输出:3x3: nxn——>(n-2)x(n-2)
5x5:nxn——>(n-4)x(n-4)
7x7:nxn——>(n-6)x(n-6)
1x1
-
卷积核
参数量越大,模型越复杂,占用的资源越多,要尽可能减少参数量
计算量决定了算法效率和平台功耗
参数量和计算量的计算:
参数量:w 和 b
- w:卷积的大小,k_w * k_h,一个2D的卷积对应输入层的一个feature map上,会对原始图像的多个feature map进行卷积,卷积核的大小乘上输入的feature map的数量channel,对所有的feature map进行完一次卷积运算之后,加上偏置项。进行卷积时,是对输入层的特征图的feature map运算时是连通道一起进行卷积的,最后要乘以通道数量In_channel,得到一个feature map,要得到所有feature map需要乘以输出的Out_channel
计算量:
需要对整幅图像进行运算,乘以ln_w和ln_h,即输入图像的大小
-
步长(stride)
卷积时对图像从左到右从上到下运算,步长就是运算时上下左右移动取的间隔
stride=1:正常的卷积
stride=2:移动两步,原始图像设置不同的stride(2)就会下采样两倍,图像就是padding之后的两倍
stride>1,进行卷积的次数减少,feature map大小变小,减少计算量,弊端是采样时会损失信息,要考虑代价和收益,如果平衡则可以增加步长
feature map计算公式:
改变stride会影响输出特征图的大小,计算量发生变化,输入的不是原始图像的w和h,而是输出图的w和h
改变stride对参数量量没有影响
-
Pad:确保feature map整数倍变化,对尺度相关的任务尤为重要
如8x8通过3x3的卷积核最终得到6x6的feature map,8x8到6x6的变化不是整数倍的变化,导致点与点之间对应关系模糊,对尺度相关的任务如目标检测,如果不是整数倍变化,计算会存在误差,因为图像上的坐标都是整数,所以要对坐标取整,使用Pad填充,保证整数倍变化
3x3的卷积核:中心点的四周边缘pad 1
5x5的卷积核:pad 2区域
7x7的卷积核:pad 3区域
Pad之后参数量不会变化,但计算量会变化,因为输出特征图的大小变化,计算量不是整数倍变化