- 在实际的图像识别中,通常都是RGB三通道的彩色图,用常规的神经网络会出现待优化参数过多容易导致模型过拟合。
- 为了减少待优化参数,我们会先对图片进行特征提取,将提取的特征送入全连接网络进行识别
卷积(convolutional)计算可以认为是一种有效的图像特征提取的方法:
一般会用一个正方形的卷积核,按指定的步长,在输入特征图上滑动
遍历输入特征图中的每个点,每一个步长上,卷积核会与输入特征图出现重合区域
重合区域对应的元素相乘,求和,再加偏置项得到输出特征的一个像素点
特征图的深度:指图片的颜色通道数,一般有:
- 单通道的灰度图(深度为1)
- 三通道的RGB彩色图(深度为3)
- 用来遍历的卷积核的通道数需与特征图的通道数一致,即:卷积核与特征图的深度需一样
例如常见的卷积核有:5*5*3的卷积核表示像素的大小为5*5的正方形,深度为3层;3*3*3的卷积核表示像素的大小为3*3的正方形,深度为3层;3*3*1的卷积核表示像素的大小为3*3的正方形,深度为1层...
结论:
- 输入特征图的深度(channel数),决定了当前卷积核的深度;
- 当前卷积核的个数,决定了当前层输出特征图的深度(由于每个卷积核在卷积计算后,会得到一张输出特征图,因此当前层使用了几个卷积核,就会得到几张输出特征图)
卷积核可以长什么样?
用曹健老师形象的表示方法可以如下图:
卷积核上的每个小颗粒,都存储着一个待优化参数,如w111,w121...
再执行卷积计算式,这些带优化参数w都是固定的,再反向传播时,这些w会被梯度下降法进行更新。
在学习了这些基本概念后,来看看具体卷积的过程:
- 输入特征图是一个5*5*1的,5*5像素的灰度图
- 卷积核是3*3*1的,5*5像素的深度为1的卷积核
- 输出特征图是3*3*1的
- 卷积核会在输入特征图上滑动,每滑动一步,都可以求其输出特征图对应位置的卷积计算
- 如图显示,该位置卷积核与输入特征图对应位置像素点上的值相乘、相加再加偏置b,得到输出特征图对应位置像素的值,如箭头所指位置。
- 当遍历完成,即可以求出这个卷积核与整个输入特征图卷积计算得到的输出特征图
同理,当输入特征图为3通道图片时,卷积核也为3通道,依次遍历求得出输出特征图。
因此,卷积核的个数就是输出特征图的厚度
全零填充:输入特征图保持不变,在图的周围填充0,简单的理解:可以保证输出特征图的大小与输入特征图的大小一致
批标准化(Batch Normalization,BN):
- 标准化可以时数据符合0为均值,1为标准差的分布
- 批标准化:对一小片数据,做标准化处理
- 提高神经网路对数据的敏感程度(神经网络对0附近的数据更命该,但随着层数增加,特征数据会出现偏离0均值的情况)
池化(Pooling):
- 用于减少卷积神经网络中特征的数据量
- 主要方法有:最大池化(提取图片纹理),均值池化(保留背景特征)
舍弃(Dropout):
- 为了缓解神经网路过拟合
- 神经网路训练时,将一部分神经元按照一定概率从神经网路中暂时舍弃,神经网络使用时,被舍弃的神经元恢复
卷积神经网络:借助卷积核提取特征后,送入全连接网络。主要模块:
卷积是什么?
卷积就是特征提取器,CBAPD
经典的卷积神经网络结构有如下几个,感兴趣可以深入了解
学习来源:人工智能实践:Tensorflow笔记