CNN学习简要总结
今天学习了一下卷积神经网络(CNN)的基础知识,简要总结一下学习到的内容
CNN网络架构一般是通过卷积层不断抽取特征,然后接全连接层
那么如何得到卷积层,是通过层与卷积核(Filter)进行卷积计算。卷积类似于向量内积,将卷积核的每一维与该层内对应维数据相乘相加,步长(stride)决定每次卷积计算完毕后,卷积核移动多少个数据单位,也决定卷积得到的下一个特征层的大小,如果想让特征图与原始输入的大小一致,就要在卷积之前在原始输入的四周填充数据,常见填充0
举一个简单的例子,方便理解原始输入——卷积核卷积——特征图大小的关系
5 * 5图片经过3 * 3卷积核(步长stride为2)得到2 * 2特征图(feature map)
因为原始输入可能有多个channel,所以卷积核也可以有多个channel
卷积核(Filter,也称为Convolution kernels),可以具体自己设计,不同的卷积核具有不同的作用,典型两种:
- vertical line filter中间列为1,周围列为0,用来寻找原始图片在垂直方向变化的规律
- Horizontal line filter中间行为1,周围行为0,用来寻找原始图片在水平方向变化的规律
使用不同的卷积核去对原始输入进行卷积,得到不同的特征图,相当于从不同的视角去审视图片,得到不同的结果
CNN是很经典也很重要的神经网络,在图像、视频处理等领域使用的很多,可以说是深度学习业人士必须要学习的,关于CNN的知识以后还要更深入地研究学习。