卷积神经网络简介
- CNN--卷积神经网络,是一种前馈神经网络;
- 不同于传统的只有线性连接的神经网络;
- CNN具有卷积(convolution)操作、池化(pooling)和非线性激活函数映射等;
- 经典CNN网络有Alex-Net,VGG-Nets,Resnet等;
- 卷积神经网络对计算机图像识别的应用非常成功;
- 同以往的网络不同,卷积神经网络可以接受多维向量;
3通道卷积图示
卷积
- 把一张大图片分解成好多小部分,依次对小部分进行识别;
- 通常将一张图片分解成多个3*3或5*5的小片,分别识别,将结果集合一起输出给下层网络;
- 该方法对图像识别很有效,对不同区域识别,把识别结果综合给出最后的结果;
最大池化
池化的作用
- 卷积操作产生太多的数据;
- 网络的运算量会非常巨大;
- 数据参数冗余易导致过度拟合;
- 池化层对这些数据进行压缩;
卷积神经网络的内部操作
- 黑白图片的厚度为1;
- 彩色图片的厚度为3;
- 图片输入到神经网络;
- 卷积神经网络将图片的长和宽进行压缩;
- 图片的厚度显著增加;
- 最后图片的形状变为一个长宽很小,厚度很高的像素块;
- 将上述结果放入全连接神经网络中处理;
- 最后链接一个分类器(softmax)
- 给出图片的分类结果;
卷积核
- 图片采样器也可称为共享权值;
- 在图片上采集信息;
- 卷积核有自己的长宽;
- 也可以定义自己的步长stride;
- 表示为每跨多少步进行一次信息抽离;
- 步长越大越容易丢失图片信息;
- 对抽取的信息进行像素的加权求和得到feature Map;
- 增加了采集结果的厚度;
- 卷积用来不断地提取特征;
- 每提取一个特征,增加一个feature Map;
- 采集后的图片厚度不断增加;
卷积神经网络的思想
- 高斯滤波、sobel滤波的卷积核都是事先设定好的;
- 从一个随机滤波器开始;
- 根据目标,用某种方法不断调整卷积核;
- 直到卷积核的值能够满足我们的目标要求;
- 这就是卷积神经网络(Convulutional Neural Network,CNN)的思想;
- 可调整的滤波器是CNN的卷积部分;
- 如何调整滤波器是CNN的神经网络的训练部分;
卷积神经网络的操作细节
- 卷积滤波器和神经网络两个思想相结合;
- 卷积滤波器就是一套权值参数;
- 神经网络(除了全连接外)可有其他拓扑结构;
- 左边平面含有nxn个格子;
- 每个格子中是一个【0,255】的整数值;
- 左边的平面就是输入图像,也是神经网络的输入;
- 右边的平面也是nxn个格子;
- 每个格子是一个神经元;
- 每个神经元根据位值连接着左侧平面上的相应位值的3x3范围内的值;
- 每个连接具有一个权值;
- 所有神经元的连接都一样,边界上的需要Padding操作;
- 右边神经元的输出就是神经网络的输出;
卷积神经网络与全连接神经网络的区别
- 不是全连接的;
- 右侧的神经元不是连接上全部输入;
- 只是连接了卷积核尺寸范围内的像素;
- CNN能够把我局部图像特征;
- AlphaGo从棋局局部状态提取信息;
- 就是基于上述局部连接特性;
- 同时卷积核的权值少了很多;
- 右侧平面上的神经元共享9个权值;
- 神经网络只有9个参数需要调整;
- 本质上卷积神经网络就是一个卷积滤波器;
- 卷积核的参数需要经过训练确定;
- 这是一个拓扑结构特别简单的CNN;
卷积神经网络分类器的实现图示
图像增强
- 深度学习对数据集的大小有一定要求;
- 若原始的数据集较小,无法满足网络模型的训练要求;
- 图像增强对原始图像进行处理以扩充数据集;
- 能够在一定程度上提升模型性能;
- 图像增强在原始图像的基础上对数据进行一定的改变;
- 增加了样本的数量;
- 数据的标签值不改变
图像增强的种类
- 自我增强;
- 通过一定手段增强图像中的感兴趣区域;
- 直至从图像中脱颖而出;
- 正常思维下常用方法;
- 削弱别人;
- 增强自我的反方法;
- 通过一定手段将不感兴趣的区域削弱;
- 直至感兴趣的区域脱颖而出;
图像增强常用方法
- 翻转、平移、旋转、缩放
- 分离单个r,g,b三个颜色通道;
- 添加噪声;
- 直方图均衡化;
- Gamma变换;
- 反转图像的灰度;
- 增加图像的对比度;
- 缩放图像的灰度;
- 均值滤波;
- 中值滤波;
- 高斯滤波;
常见的卷积神经网络
AlexNet
- 2012年ImageNet冠军获得者Hinton和其学生Alex Krizhevsky设计;
- 2012年之后,更多的神经网络被提出
AlexNet网络结构
- 一张原始图片被resize到(224,224,3);
- 使用步长为4,大小为11的卷积核,卷积图像,输出的特征层为96层,输出形状为(55,55,96);
- 使用步长为2,大小为3的卷积核,最大池化图像,输出的形状为(27,27,96);
- 使用步长为1,大小为5的卷积核,卷积图像,输出的特征层为256层,形状为(27,27,256);
- 使用步长为2,大小为3的卷积核,最大池化图像,输出的形状为(13,13,256);
- 使用步长为1,大小为3的卷积核,卷积图像,输出层特征为384层,形状为:(13,13,384);
- 使用步长为1,大小为3的卷积核,卷积图像,输出层特征为384层,形状为:(13,13,384);
- 使用步长为1,大小为3的卷积核,卷积图像,输出层特征为256层,形状为:(13,13,256);
- 使用步长为2,大小为3的卷积核,卷积图像,输出层特征为256层,形状为:(6,6,256);
- 最后两个全链接层,最后输出为1000类;