1.《数字图像处理 》(豆瓣) https://book.douban.com/subject/4285832/
理论方面。
2.《MATLAB图像处理实例详解》
3.网址:图像处理入门必看 - CSDN博客 https://blog.csdn.net/chensanwa/article/details/78650073
目录
笔记:深度学习—卷积神经网络从入门到精通
- 概述
1.1 概念
深度学习的概念起源于人工神经网络,本质上指的是一类对具有深度结构的神经网络进行有效训练的方法。
神经网络是一种由许多非线性单元(神经元、节点)组成的分层系统。
网络的深度就神经网络中不包括输入层的层数。
1.2 起源
1943年MP模型——1958年感知器模型——20世纪八九十年代Hopfield神经网络,玻耳兹曼机,多层感知器——神经认知机——卷积神经网络
1.3 关于卷积神经网络
卷积神经网络是一种特殊的多层感知器或前馈神经。
标准的卷积神经网络一般由输入层、交替的卷积层和池化层、全连接层、输出层构成。
卷积层也称检测层、池化层也称下采样层。卷积层和池化层可看做特殊的隐含层。
卷积层的权值也称卷积核。
1.4 神经网络的缺陷和图像
卷积神经网络可能错分对抗样本。
对抗样本是一种含有人类不可感知的微小扰动的非随机图像。
可视化技术,以某种可见视图方式来显示激活和特征,有逆变换、激活最大化和卡通化。
1.5 卷积神经网络的GPU实现和cuDNN库
GPU用于大规模数据集中训练卷积神经网络。
编写GPU代码可在CUDN环境下进行。
CUDN是一种用于GPU通用计算的并行计算平台和编程模型。
CUDN提供了一个深度神经网络的GPU加速库cuDNN,完成了对卷积、池化、归一化、激活函数层等标准操作的快速实现。
1.6 卷积神经网络的平台和工具
TensorFlow,Caffe2,MXNet
- 预备知识
1.激活函数:非线性的sigmoid函数、双曲正切函数tanh、硬限幅函数hardlim、斜面函数ramp、校正线性单元ReLU、渗漏校正线性单元LReLU、参数校正线性单元PReLU、指数线性单元ELU、软加函数softplus、最大输出函数maxout、软最大输出函数softmax.
2.矩阵运算:转置矩阵、180°旋转、两矩阵乘积、两矩阵加减、两矩阵阿达玛积(逐元素积)、克罗内克积、逐元函数
3.导数公式:sigmoid函数、双曲正切函数tanh、校正线性单元ReLU、逐元向量函数、逐元矩阵函数等
4.梯度下降算法:无约束条件下计算连续可微函数极小值,用负梯度方向作为下降方向。
5.反向传播算法(通用、逐层):前馈网络神经只有从编号较小的神经元才能连接到编号较大的神经元,没有反馈连接。(反传误差信号,灵敏度,期望值,样本的输出误差,激活函数、偏置值、权值,输入输出节点,隐含节点);多层感知器,各层神经元激活输出,权值矩阵。
6.通用逼近定理:在理论上,剁成感知器所表达的输入输出映射能够充分逼近任何一个定义在单位立方体上的连续函数。
7.内外卷积运算
8.膨胀卷积运算:膨胀卷积支持以倍数方式扩大感受野。
9.上下采样运算:平均下采样、最大下采样、平均池化、最大池化、平均上采样、最大上采样。
10.卷积面运算:一个卷积层可以包含很多个卷积面。
卷积面、卷积特征图、卷积图、特征图
每个卷积面都是根据输入(一幅或多幅图像)、卷积核(一个矩阵、卷积滤波器)、激活函数来计算。
10.池化面计算:下采样过程又称池化过程。池化面的输入可以是卷积面,则分别对每个面进行不重叠采样,相应地得到一组下采样面。也可以是池化面。
11.局部响应归一化:为了改善卷积神经网络的效果,有时需要对某一层的所有卷积面(或池化面)逐一进行归一化处理。
12.权值偏执初始化:在训练神经网络之前,必须对其权值和偏置进行初始化。高斯初始化(根据某个高斯分布进行初始化权值、均值选0,方差按经验人工选择)、Xavier初始化(保持信息在神经网络中流动过程中的方差不变)、MSRA初始化。
13.丢失输出:在训练神经网络时,若训练样本较少,一般考虑正则化技巧防止过拟合。丢失输出是一种正则化技巧,通过阻止特征检测器的共同作用来提高神经网络的泛化能力,随机让网络中的某些节点不工作。
14.丢失连接:对丢失输出的简单改进。随机让某些连接不工作。
丢失输出是用随机掩膜来限制某个层的输出。丢失连接用随机掩膜仙限制某个层的连接权值。
15.随机梯度下降算法:应用条件是目标函数能够表示成一组可微函数之和。对神经网络来说,随机梯度下降算法有两种基本模式,在线(先把所有样本随机洗牌,再逐一计算每个样本对梯度的贡献去更新权值)和迷你块(把所有样本随机洗牌后分为若干大为m的块,在更新权值)。
16.块归一化:把对输入数据的归一化扩展到对其他层的输入数据进行归一化,以减小内部数据分布偏移的影响。即提升训练速度,又减少人工干预。
17.动态规划算法:求解多阶段决策过程的最优化数学方法,核心是贝尔曼最优化原理,贝尔曼方程。
三、卷积神经网络的现代雏形——LeNet
1984年,神经认知机是被认为第一个实现的卷积神经网络。
1998年,将卷积层和下采样层结合,建立卷积神经网络的现代雏形——LeNet.
3.1 LeNet的原始模型
输入是一个矩阵或头像。大小为32X32.
不计输入层,模型共有7层,3个卷积层,2个下采样层,1个全连接层,1个输出层。
C1层-第1个卷积层(6个28X28卷积特征图,由5X5卷积核对输入图像进行内卷积得到,其中每个神经元与输入中相应的5X5区域相连)
S2层-第1个下采样层(6个14X14下采样特征图,每个下采样特征图由C1层相应的卷积特征图经过大小为2X2的窗口进行平均池化,再利用激活函数Sigmoid进行一次非线性变换处理得到。利用局部相关性减少后续数据处理量,同时保留有用信息)
C3层-第2个卷积层(6个10X10卷积特征图,由5X5卷积核对输入图像进行内卷积得到,其中每个神经元与输入中相应的5X5区域相连)
记住原始模型结构示意图。
3.2 LeNet的标准模型
记住标准模型示意图。
标准模型和原始模型主要区别在于把非线性变换从下采样层移到了卷积层,且把输出层的激活函数成欧几里得径向函数替换成了软最大函数。
结构上有输入层、卷积层、池化层、卷积层、池化层、全连接层、输出层。
3.3 LeNet的算法学习
作为一种特殊的多层感知器,LeNet可以用反向传播算法来学习其中的参数。
用梯度下降的思想给LeNet建立反向传播算法。
3.4 LeNet的Caffe代码实现及说明
LeNet的Caffe代码实现共3个文件,网络结构文件(定义网络的训练数据目录、测试数据)、求解器配置文件(为求解器训练和测试网络的有关超参数)、伪概率计算文件(模型训练好后对未知样本计算分类伪概率)。
3.5 LeNet的手写数字识别案例
3.6 LeNet的交通标志识别案例
3.7 LeNet的交通路网提取案例
四、卷积神经网络的突破模型AlexNet
4.1 AlexNet的模型结构
2012年AlexNet大规模图像分类,通过使用GPU显卡和校正线性单元ReLU,极大提高了卷积神经网络的学习训练速度。
结构:输入层、5个卷积层(其中3个卷积层做了最大池化)、3个全连接层。
和LeNet比较AlexNet的优点:使用ReLU激活函数、使用GPU函数、局部响应归一化、重叠池化、减少过拟合
4.2 AlexNet的Caffe代码实现及说明
4.3 AlexNet的Caffe的大规模图像分类案例及演示效果
4.4 AlexNet的TensorFlow大规模图像分类案例及演示效果
五、卷积神经网络的应变模型SPPNet
通常卷积神经网络要求输入图像具有固定的大小,这限制了输入图像的高宽比和大小。。SPPNet空间金字塔池化网络,在最后一个卷积层和第一个全连接层间插入了一个空间金字塔池化层,利用空间金子塔池化层,SPPNet无需对输入图像进行裁剪或变形,就可以处理输入图像的大小不同的情况。
5.1 SPPNet的模型结构
裁剪可能造成目标缺失,变形可能产生不必要的几何扭曲,进而导致识别率的降低。
传统卷积神经网络图像处理过程:
图像---裁剪/变换---卷积层---全连接层---输出
SPPNet图像处理过程:
图像---卷积层---空间金子塔池化---全连接层---输出
训练方法有单尺度训练和多尺度训练。
单尺度训练是多尺度训练的基础,主要是从图像中裁剪固定大小的输入来训练一个网络。目的是保证多级池化的特性。
多尺度训练的目的是处理任意大小的图像,需要考虑至少2中不同的预定大小。
SPPNet能提高卷积网络在图像分类方面的性能。
六、卷积神经网络的加深模型VGGNet
AlexNet的出色工作表现证明,通过增加网络的深度可以提升网络的性能。
VGGNet的核心思想是利用较小的卷积核来增加网络的深度,有两种基本类型:VGGNet-16,VGGNet-19
七、卷积神经结构的跨连接模型
标准卷积神经网络每层只能从相邻的前一层接收输入,并把输出传递给相邻的后一层。这种结构限制了卷积神经网络的多样性和灵活性,在结构加深时常常越来越难训练。一种有效的解决方案是引入跨层连接,建立卷积神经网络的跨连模型。跨连模型允许每层可以与非相邻层相连。其深度可达成百上千层。
7.1 快道网络Highway Net
随着网络结构的不断加深,梯度消失或爆炸的问题可能会越来越严重,可能导致神经网络的学习和训练变得越来越困难。通过初始化、丢失输出、丢失连接、块归一化等技巧,这种困难能够得到一定程度的缓解,另一种解决方法是在网络中增加信息传递的快速通路,建立快道网络。在快道网络中,信息可以无障碍的跨越多层直接传递到后面的层。
在普通的分层网络中,每层都是对输入进行非线性映射变换。
快道网络的基本思想是定义两个非线性映射变换,构造快道层。
7.2 残差网络ResNet
随着层数的增加,深度网络一般会越来越难训练。有些网络在开始收敛时,还开始出现退化的情况,导致准确率很快达到饱和,出现层次越深、错误率越高的现象。而这种退化并不是由于过拟合引起,而是因为增加了更多的层数。深度残差学习就是解决退化问题,以便能够训练百上千的残差网络。
与普通网络的区别在于,残差网络引入了跨层连接,简称捷径连接,构造了残差模块。
7.3密连网络DenseNet
残差网络一般只采用跨越2-3层的跨层连接形成残差模块。密连连接网络通过引入密连模块代替残差模块进一步扩展了残差模块的应用。其和残差模块的区别在于密连模块内部之间允许任意两个非相邻层之间进行跨层连接。
密连网络的优点有:缓和梯度消失、加强特征传播、促进特征重用、减少参数数量。
密连网络是指包括一个或多个密连模块的卷积神经网络。
7.4 拼接网络CatNet
拼接网络的优点是能够集成不同尺度的图像特征进行分类和识别。
拼接网络中包含r个交错的卷积层和池化层,再跟一个全连接层和输出层。
在拼接网络中,所有池化层都采用不重叠的2X2窗口池化。
全连接层是若干个卷积层和池化层的激活通过跨层连接产生的拼接向量。
八、卷积神经网络的区域模型
与图像分类任务不同,目标检测需要从图像中检测并定位特定的多个目标。
利用卷积网络进行目标检测的基本思路是先推荐候选区域,再利用卷积网络对候选区域分类。
8.1区域卷积网络R-CNN
R-CNN是一种目标检测模型,采用滑动窗口的策略定位,在“利用区域识别”的思想指导下,缺德了目标检测和语义分割的成功。
R-CNN包括3个关键模块:区域推荐、特征提取、区域分类。
九、卷积神经网络的分割模型
十、卷积神经网络的特殊模型
十一、卷积神经网络的强化模型
十二、AlphaGo