深度学习总结(二)
1、多层感知机
(1) 激活函数:
(2) Sigmoid和Tanh激活函数导致梯度消失的原因:
如图所示:
Sigmoid激活函数,将输入z映射到区间(0,1),当z很大时,f(z)趋近于1;当z很小时,f(z)趋近于0,。其导数
在z很大或很小时都会趋近于0,造成梯度消失。
Tanh激活函数,当z很大时,f(z)趋近于1;当z很小时,f(z)趋近于-1,其导数
在z很大或很小时都会趋近于0,同样会出现梯度消失。
(3)ReLU的优点,局限性和改进
优点:
a、从计算角度,Sigmoid和Tanh激活函数均需要指数,复杂度高,而ReLU只需要一个阈值即可得到激活值。
b、ReLU的非饱和性可以有效解决梯度消失问题,提供相对较宽的激活边界
c、ReLU的单侧抑制提供了网络的稀疏表达能力。
局限性:
ReLU的局限性在于其训练过程中会导致神经元死亡的问题。这是因为函数f(z)=max(0,z)导致负梯度在经过该ReLU单元是被置为0,且在之后也不被任何数据激活,即流经该神元的梯度永远为0,不对任何数据产生影响。在实际训练过程中,如果学习率设置较大,会导致超过一定比例的神经元不可逆死亡,进而参数梯度无法更新,整个训练过程失败。
解决办法:
Leaky ReLU(LReLU)
(4)、交叉熵或代价函数:
第一项是平方误差项,第二项是L2正则化项,功能上称为权重衰减项(目的是为减少权重的幅度),防止过拟合。该项之前的系数λ为权重衰减参数,用于控制损失函数中两项的相对权重。
二分类场景中,交叉熵损失函数定义为:
2、卷积神经网络
(1)稀疏交互和参数共享及其作用
稀疏交互:
在传统神经网络中,网络层之间输入与输出的连接关系可以由一个权值参数矩阵类表示,其中每个单独的参数值都表示了前后层某两个神经元节点之间的交互。对于全连接网络,任意一对输入与输出神经元之间都产生交互,形成稠密的连接结构,如图所示:
而在卷积神经网络中,卷积核尺度远小于输入的维度,这样每个输出神经元仅与前一层特定局部区域内的神经元存在连接权重(即产生交互),我们称这种特性为稀疏交互,如下图。可以看出神经元si仅与前一层中的的xi−1、xi和xi+1相连。具体来讲,假设网络中相邻两层分别具有m个输入和n个输出,全连接层中的权值参数将包含m*n个参数,对于稀疏交互的卷积神经网络,如果限定每个输出与前一层神经元的连接数为k,那么该层的参数总量为k * n。在实际应用中,一般k值远小于m就可以取得较为可观的效果;而此时优化过程的时间复杂度将会减小几个数量级,过拟合情况也会得到较好的改进。
参数共享:
参数共享是指在同一个模型的不同模块中使用相同的参数,它是卷积运算的固有属性。全连接网络中,计算每层的输出时,权值参数矩阵中的每一个元素只作用于某个输入元素一次;而在卷积神经网络中,卷积核中的每一个元素将作用于每一次局部输入的特定位置上。根据参数共享的思想,我们只需要学习一组参数集合,而不需要针对每个位置的每个参数都进行优化,从而大大降低了模型的存储需求。
(2)、池化层及其作用
池化层有:均值池化、最大池化
作用:均值池化通过对邻域内特征数值求平均来实现,能够抑制由于邻域受限造成估计方差增大的现象,特点对背景的保留效果更好;最大池化则通过取邻域内特征的最大值来实现,能够抑制网络参数误差造成估计均值偏移的现象,特点是更好的提取纹理信息。
减少图像尺寸,降低参数数量,缓解过拟合,保持对平移、伸缩、旋转的不变性。
3、LeNet网络
LeNet-5主要是针对灰度设计的,所以其输出较小,为32 * 32 * 1,其结构如下
随着网络的深度增加,图像的大小在缩小,与此同时,通道的数量也再增加。每一个卷积层后面接一个池化层。
4、AlexNet网络
对彩色图像进行处理,其结构如下:
特点:使用了ReLU、多个GPU等
5、VGG-16网络
VGG卷积层和池化层具有相同的卷积核大小,都使用了3*3,stride=1,SAME 的卷积和2 * 2,stride = 2的池化。其结构如下:
6、Resnet网络
从上面结果我们可以看出,对于残差块来学习上面这个恒等函数是很容易的。所以在增加了残差块后更深,但是不会影响网络的性能。同时如果增加的网络结构能学习一些有用的信息,那么就会提升网络的性能。
下面是普通神经网络和ResNet的误差曲线:
由图可知:
(1)在没有残差的普通神经网络中,训练的误差实际上是随着网络层数的加深,先减少再增加的;
(2)在由残差的ResNet中,即使网络加深,训练误差都会随着网络层次的加深逐渐减少。
ResNet对于中间的激活函数来说,有助于能够达到更深的网络,解决梯度消失和梯度爆炸的问题。
7、1*1卷积
在二维上的卷积相当于图片的每个元素和一个卷积核数字相乘。
在三维上,与1 * 1 * n卷积核进行卷积,相当于三维图像上的1 * 1 * n的切片,也就是n个点乘以卷积数值权重,通过ReLU函数,输出对应的结果,而不同的卷积核则相当于不同的隐含层神经元与切片的点一一连接。所以根本上1 * 1卷积核相当于一个切片上的n个单元用了一个全连接的神经网络。
8、Inception Network
Inception Network通过使用 1 * 1卷积核,能够降低计算成本,也就是参数量。以下图中5 * 5卷积核为例
普通神经网络中:
(1)filter:5 * 5 * 192
(2)32个filter
(3)总的计算成本 = 28 * 28 * 32 * 5 * 5 * 192 = 120M
对于1 * 1大小卷积核用作过渡的计算成本,也将下面的中间层叫做“bottleneck layer”:
(1)1 * 1卷积层计算成本:28 * 28 * 16 * 1 * 1 * 192 =2.4M
(2)5 * 5卷积层计算成本:28 * 28 * 32 * 5 * 5 *16 = 10.0M
(3)总的计算成本:12.4M