卷积的含义
- 局部不变性:尺度缩放、平移、旋转不改变语义信息;
- 自然图像中的物体大多数都有局部不变性,但是前馈神经网络很难提取到局部不变特性,所以提出来卷积神经网络;
CNN基本原理
卷积神经网络的基本结构大致包括:卷积层、激活函数、池化层、全连接层、输出层等
其他卷积模型
转置卷积 (低维特征映射到高维特征)
空洞卷积
- 为了增加输出单元的感受野,通过给“卷积核”插入空洞变相增加其大小
- 扩张卷积与普通卷积的相同点在于,卷积核的大小是一样的,在神经网络中即参数数量不变,区别在于扩张卷积具有更大的感受野
- 第一幅图中卷积核是33,第二幅图采用插入空洞的方式使33的卷积核变为5*5,其中dilation rate(扩张率) = 1,第三幅图中dilation rate(扩张率)=2;
感受野分析
- 上面是普通卷积操作
- 上面是插入空洞的卷积操作
上采样与下采样
上采样(放大图像/图像插值)
- 常用方法:双线性插值(bilinear),反卷积(Transposed Convolution),反池化(Unpooling)
- 原理:图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。除此之外,插值算法还包括了传统插值,基于边缘图像的插值,还有基于区域的图像插值。
下采样(降采样/缩小图像)
- 原理:池化
- 分为最大池化和均值池化
- 池化层不包含需要训练学习的参数,仅需指定池化操作的核大小、操作步幅以及池化类型
卷积层作用
卷积的模式
激活函数
- 在卷积神经网络中,最常用的是RELU,不太常用sigmod函数
优缺点
特征图
浅层卷积层:提取图像基本特征:比如纹理、方向
深层卷积层:提取的是图像高阶特征,出现了高层语义模式,如“车轮”、“人脸”等特征
全连接层
- 对卷积层和池化层输出的特征图(二维)进行降维
- 将学到的特征表示映射到样本标记空间的作用
输出层
卷积神经网络的训练
- Step 1:用随机数初始化所有的卷积核和参数/权重
- Step 2:将训练图片作为输入,执行前向步骤(卷积, ReLU,池化以及全连接层的前向传播)并计算每个类别的对应输出概率。
- Step 3:计算输出层的总误差
- Step 4:反向传播算法计算误差相对于所有权重的梯度,并用梯度下降法更新所有的卷积核和参数/权重的值,以使输出误差最小化
经典的卷积神经网络结构
1. LeNet-5
2. AlexNet
- 首次成功应用ReLU作为CNN的激活函数
- 使用Dropout丢弃部分神元,避免了过拟合
- 使用重叠MaxPooling(让池化层的步长小于池化核的大小), 一定程度上提升了特征的丰富性
- 使用CUDA加速训练过程
- 进行数据增强,原始图像大小为256×256的原始图像中重 复截取224×224大小的区域,大幅增加了数据量,大大减轻了过拟合,提升了模型的泛化能力
3. VGGNet
- 比较常用的是VGG-16,结构规整,具有很强的拓展性
- 相较于AlexNet,VGG-16网络模型中的卷积层均使用 333∗3 的 卷积核,且均为步长为1的same卷积,池化层均使用 222∗2 的 池化核,步长为2
4. Inception Net
5. ResNet
6. Densenet
- DenseNet中,两个层之间都有直接的连接,因此该网络的直接连接个数为L(L+1)/2。
- 对于每一层,使用前面所有层的特征映射作为输入,并且使用其自身的特征映射作为所有后续层的输入
CNN应用
图像方面
- 图像分类(物体识别):整幅图像的分类或识别
- 物体检测:检测图像中物体的位置进而识别物体
- 图像分割:对图像中的特定物体按边缘进行分割
- 图像回归:预测图像中物体组成部分的坐标
语音识别
自然语言处理
- 比如情感分析