卷积神经网络应用
CNNs用于图像分类
卷积层: 检测局部图片的局部特征
池化层: 降低维度
MLPs和CNNs都要求图片的尺寸经过处理
- 在做任何操作之前, 将所有图片的尺寸变为相同
- 将每一张图片变成方形
- 上面方形的空间维度(宽度和高度)应该为2的幂(如\(2^5\)等)
彩色图片的深度为3
黑白图片的深度为1
CNN的结构的设计目标:
- 增加深度(卷积层的作用)
- 减少宽度和高度(池化层的作用)
卷积层的设置:
- 卷积核通常是方形, 大小从(2, 2)到(5, 5)
- 步长通常设置成1
- 填充通常设为
same
(代表会使用0填充)- 卷积核的数目总是随着层数的增加缓慢增加(特征图深度逐渐增加)
最大池化层的设置:
- 最大池化层通常跟在一个或两个卷积层后面
- 池化尺寸通常设成2
- 步长通常设为2
- 使得池化后的特征图的空间维度(宽度和高度)是原来的一半
所有的空间信息最终会丢失
而最后一层可以回答: 图片里是否有轮子, 眼睛, 腿, 尾巴等等
图像增强
模型可以学习图像的不变表示
但是不想让模型的预测因为如下原因改变:
- 物体的大小 – 尺度不变性
- 物体的角度 – 旋转不变性
- 物体的平移 – 平移不变性
现有数据集的基础上, 增加多样性数据集:
- 在训练数据集中添加各种背景噪音
- 转换为其他图像: 改变颜色, 改变形状
- 反转: 左右反转, 上下反转
- 裁剪: 从图像中裁剪一块区域, 然后调整其大小
- 随机高宽比 (例如[3/4, 4/3])
- 随机区域大小 (例如[8%, 100%])
- 一个随机的位置
- 变色: 调整色调, 饱和度和亮度 (例如[0.5, 1.5])
迁移学习
迁移学习是一种机器学习的方法, 指的是一个预训练的模型被重新用在另一个任务中