第四周、梯度,损失函数和优化器
一、梯度消失与爆炸
1.1 梯度
从上图可知,每一网络层输出不能太大或太小,否则会导致梯度爆炸或者梯度消失
对权重W进行处理,使其方差为1/n,则隐藏输出的方差也为1,这样使得经过累乘,依然保持到一个很小的数
1.2 Xavier方法
方差一致性: 保持数据尺度维持在恰当范围,通常方差为1
**函数: 饱和函数, 如Sigmoid, Tanh
1.3 Kaiming方法
方差一致性:保持数据尺度维持在恰当范围,通常方差为1
**函数: ReLU及其变种
1.4 常用初始化方法
二、损失函数
1.1 基本概念
1.2 交叉熵损失函数–nn.CrossEntropyLoss
三、优化器
3.1 基本概念
3.2 optimizer的属性
3.3 optimizer的方法
zero_grad()
说明:
- 在优化器中保存的是参数的地址,根据地址寻找参数,减少内存消耗
- 通过zero_grad()方法后,就实现了参数梯度的清零
3.4 十种优化器
- optim.SGD:随机梯度下降法
- optim.Adagrad:自适应学习率梯度下降法
- optim.RMSprop: Adagrad的改进
- optim.Adadelta : Adagrad的改进
- optim.Adam : RMSprop结合Momentum
- optim.Adamax: Adam增加学习率上限
- optim.SparseAdam:稀疏版的Adam
- optim.ASGD:随机平均梯度下降
- optim.Rprop :弹性反向传播
- optim.LBFGS: BFGS的改进