本文主要记录了卷积和池化的计算,卷积的反向传播
卷积神经网络只有几种基本模块,conv,batch normal,dropout,pooling
自动特征提取
掌握卷积的计算,掌握池化的计算,掌握卷积和池化在模型中组合的效果
概念:用一个小的权重矩阵去覆盖输入数据,对应位置元素加权相乘,其和作为结果的一个像素点。这个权重在输入数据上滑动,形成一张新的矩阵。
这个权重矩阵称为卷积核(convolution kernel/filter)
其覆盖的位置称为感受野(receptive field)
生成的新的矩阵叫做特征图(feature map)
滑动的像素数量叫做歩长(stride)
以卷积核的边还是中心点作为开始/结束的依据,决定了卷积的补齐(padding)方式
- 边对边,valid方式,不需要用0补齐
- 中心对边,same方式,需要在图像边缘用0补齐
卷积特性:
- 局部相关性
- 参数共享
- 平移宽容:在任何位置都可以激活神经元
- 缩放宽容:一定程度内的图像缩放(通常认为25%以内)不会产生太大干扰
- 少许降维:
在神经网络中,depth和channel是一回事。
图片表示方式:
- 浮点数表示:0-1.0
- 整数表示:0-255
池化:又称为降采样,降采样率=filter,一般在宽高上做,不会改变channel数
最大池化(max pooling)
平均池化(average pooling)
用途:
- 形成特征竞争条件,选择特征
- 降低特征冗余,减少计算量
- 用在最后一层, 使模型在一定程序内适应任意尺度的输入
缺点:丢掉了数据
这是卷积神经网络和全连接神经网络唯一的区别,因为全连接神经网络处理图像的问题在于全连接层的参数太多。参数增多除了导致计算速度减慢,还很容易导致过拟合问题,而卷积神经网络可以有效减少神经网络中的参数个数。
一般卷积神经网络主要包含5种结构:
- 输入层:整个神经网络的输入,一般代表一张图片的像素矩阵,一般为三维矩阵,长和宽代表了图像的大小,第三维是图像深度,灰度图像时为1,RGB图像为3。
- 卷积层:卷积层中每一个节点的输入只是上一层神经网络的一小块,这个小块常用的大小为3X3或者5X5,卷积层试图对每一小块进行更加深度分析从而得到抽象程度更高的特征。经过卷积层的节点矩阵的深度会增加。
- 池化层:也叫采样层。可以认为该操作是将一张分辨率较高的图片转化为分辨率较低的图片。池化层不会改变三维矩阵的深度,但它可以缩小矩阵的大小,从而达到减少整个神经网络中参数的目的。
- 全连接层:卷积神经网络最后一般会是1到2个全连接层来给出最后的分类结果,即经过卷积和池化层后的图像已经完成了特征提取,但仍然需要使用全连接来完成分类任务。
- Softmax层:主要用于分类,得到当前样例属于不同种类概率分布情况。
卷积的反向传播算法
很多框架都会帮我们完成反向传播,caffe,tensorflow
有自动求导的过程。只要会前向计算就可以。
tensorflow四种卷积的写法
- 原生写法
- slim写法
- layer写法
- keras写法
经典卷积神经网络
- LeNet5
- AlexNet
- VGG
- GoogleLeNet
- Inception
- ReseNet
- DenseNet
- NasNet
掌握residual,dense block,nasblock
VGG是牛津大学的一个研究小组
GoogLeNet
Inception
ResNet
DenseNet
NasNet
SE-Net
卷积网络中通常采用ReLU来充当激活函数(还包括tanh和sigmoid等)
全连接层(Full Connected Layer)负责对卷积神经网络学习提取到的特征进行汇总,将多维的特征输入映射为二维的特征输出,高维表示样本批次,低位常常对应任务目标。
本文暂时没有评论,来添加一个吧(●'◡'●)