时间:2019/4/1
内容:激活函数
课时14:激活函数
以上步骤:
- 对数据进行连续批量抽样
- 通过使用计算图或神经网络将数据进行正向传播,最终得到损失值
- 通过整个网络的反向传播来计算梯度
- 然后使用这个梯度来更新网络中的参数或权重
下面几节课将讨论网络训练过程中的细节。包括,在开始时要如何建立起神经网络、选择怎样的激活函数、怎样做数据预处理、权重初始化、正则化和梯度检查、训练中的动态变化、监控学习过程、参数选择、超参数选择、模型评估、模型集成。
激活函数
Sigmoid
存在以下几个问题:
- saturated neurons饱和神经元将使得梯度消失:横坐标x过大或过小是曲线处于平滑处,几乎没有梯度,无法得到梯度流的反馈
- sigmoid是一个非零中心的函数。这会使得梯度更新的效率非常低
- 指数的计算代价比较大
tanh
Relu及其变种
优势:
在输入空间的一半都不会出现饱和现象;计算成本较低;收敛速度比sigmoid和tannh快
问题:
非零中心;负半轴会出现饱和(梯度消失)
不会出现饱和
它的作用是泛化Relu
数据预处理
零中心化:就像之前讲到的,若所有输入数据都是正的,我们得到的所有梯度也就全是正的。这样得到的基本是次最优的优化。实际上,任意的偏差都会导致这类问题。
归一化数据:所有特征都在相同值域内,并且这些特征贡献相同
注意:
- 图像应用领域,我们会做零中心化处理,但不会归一化数据。因为对于图像,我们不会真的想要所有的输入
- 在训练阶段会决定均值,然后我们会将一样的均值应用到测试及数据中
- 对于图像我们只做零均值化的预处理,可以减去张均值(就是总数据的平均值;不分批处理)图像的值;实际上,对一些网络,我们也通过减去单通道(RGB)的均值代替用一整张均值图像来将图像集零中心化。两种效果区别不大,且后者更容易传送和处理。
- 注意:这里的零均值化只是解决了第一层网络的问题,并不能完全解决sigmoid的问题
初始化权重
- 权重太小,网络会崩溃(all activations become 0)
- 权重太大,会出现饱和(Almost all neurons completely saturated, either -1 and 1. Gradients will be all zero.)
- 初始化权重较好的方式:Xavier初始化(要求输入的方差和输出的方差相等,进而推导出权重)
参考论文
还需参照课程讲义补充知识
https://zhuanlan.zhihu.com/p/22038289?refer=intelligentunit