优化深层网络--激活函数、正则化以及权重初始化

优化深层网络–第一篇


目录
1.激活函数 (sigmoid、tanh、relu、relu变体)
2.正则化 (l1、l2、dropout)
3.权重初始化 (0、随机数、x、he)


参考文献
1、常用激活函数的比较
2、cs231n 课件_lecture6
3、ng优化深层网络
4、l1和l2正则化区别


1 激活函数

(1)sigmoid

优化深层网络--激活函数、正则化以及权重初始化_第1张图片

存在的问题:
1)Sigmoid函数饱和使梯度消失。当神经元的激活在接近0或1处时会饱和,在这些区域梯度几乎为0,这就会导致梯度消失,几乎就有没有信号通过神经传回上一层。
2)Sigmoid函数的输出不是零中心的。因为如果输入神经元的数据总是正数,那么关于w的梯度在反向传播的过程中,将会要么全部是正数,要么全部是负数,这将会导致梯度下降权重更新时出现z字型的下降。
3)exp()计算代价有一点高

(2)tanh

优化深层网络--激活函数、正则化以及权重初始化_第2张图片
存在的问题:
Tanh解决了Sigmoid的输出不是零中心的问题,但仍然存在饱和问题。

(3)relu

优化深层网络--激活函数、正则化以及权重初始化_第3张图片
优点:
1)不会饱和(右边一侧)
2)计算高效
3)收敛比sigmoid/tanh 快 6倍

存在的问题:
优化深层网络--激活函数、正则化以及权重初始化_第4张图片
ReLU单元比较脆弱并且可能“死掉”,而且是不可逆的,因此导致了数据多样化的丢失。
通过合理设置学习率,会降低神经元“死掉”的概率。

(4)leaky relu

优化深层网络--激活函数、正则化以及权重初始化_第5张图片


2 正则化

举个例子,如果只给几个特征(身高、体重、性别等)你可能确定一类人;如果你给了很多的特征,尤其是那些比较重要的特征(照片、省份证等),这样就可以确定一个人(情况比较极端)也就是会造成过拟合问题。
或者这样解释,如果你的训练数据不够,那么就得不到很多通有的特征,比如你的数据集给的全是白天鹅,那么白色可能成为判定天鹅的特征,当测试的时候有一只黑天鹅,可能就会判断错误,这也是过拟合的问题。

处理过拟合问题的方法:
1)减少特征的数量(简化模型)
2)如果你不想丢失掉任何一个信息,那么使用正则化。
3)数据增强

正则化原理:
通过惩罚(减小)所有的参数,降低每个特征对结果的重要性(contributes a bit),以此来起到减少特征数量的作用。

优化深层网络--激活函数、正则化以及权重初始化_第6张图片

(1)l2正则化(权重衰减)

注:||wi||² (下标为2): 计算wi的平方和

1)代价函数:
优化深层网络--激活函数、正则化以及权重初始化_第7张图片
2)反向传播:

dw = 前边一部分 + 正则化部分
优化深层网络--激活函数、正则化以及权重初始化_第8张图片
展开:
优化深层网络--激活函数、正则化以及权重初始化_第9张图片
优化深层网络--激活函数、正则化以及权重初始化_第10张图片
到这步,实现权重衰减。

(2)l1正则化

在这里插入图片描述
注:||wi|| (下标为1): 计算wi的绝对值和

(3)l1和l2对比

相同点:
都用于避免过拟合

不同点:
1)L1可以让一部分特征的系数缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。
2)L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况。

(4)dropout正则化

优化深层网络--激活函数、正则化以及权重初始化_第11张图片
设置一个keep_prob=0.8 表示每一层会随机保留80%的神经元,另外20%神经元被置为0,从而起到减小网络结构的效果。
优化深层网络--激活函数、正则化以及权重初始化_第12张图片
(1) d3:一个布尔型的矩阵,维度为(n,m)n为第三层的神经元个数,m为样本数。
小于0.8为true ,大于0.8 为 false
(2) a3 * d3 :把false(0)的位置置为0
(3)为了保证不影响下一层神经元随机失活,a3 /= 0.8

3 权重初始化

(0)梯度消失、梯度爆炸

从深层网络角度来讲,不同的层学习的速度差异很大,表现为网络中靠近输出的层学习的情况很好,靠近输入的层学习的很慢,有时甚至训练了很久,前几层的权值和刚开始随机初始化的值差不多。因此,梯度消失、爆炸,其根本原因在于反向传播训练法则。

(1)初始化为0

优化深层网络--激活函数、正则化以及权重初始化_第13张图片
由于对称性,神经元都在做同样的事情,不会有什么效果。

(2)初始化为很小的随机数

标准正态分布:0均值,1方差
再乘以 0.01
优化深层网络--激活函数、正则化以及权重初始化_第14张图片
存在的问题:
浅层网络还可以,深层网络会有梯度消失的问题。

(3)Xavier初始化

对于tanh好用,但relu会干掉一半。
优化深层网络--激活函数、正则化以及权重初始化_第15张图片

(4)He初始化

解决了relu的问题。
优化深层网络--激活函数、正则化以及权重初始化_第16张图片

你可能感兴趣的:(深度学习_计算机视觉)