NLP深度学习 —— CS224学习笔记7

2、神经网络技巧和贴士

2.1 梯度检查

我们讨论了用微分来计算神经网络模型中参数的误差梯度,这里讨论另一种近似技巧,不需要误差反向传播。

其中

这种方法计算成本极其高,要使用两次前向传播,但是一种验证反向传播的好方法。

一个简单的梯度检查可以用以下方法实现

2.2 正则

我们使用L2正则防止过拟合

是Frobenius范数。

使用这样的约束可以解释为先验贝叶斯信任,优化的权重接近0。

2.3 神经单元

常用的激活函数有以下几种

Sigmoid

梯度为

Tanh

梯度为

Hard tanh

计算代价更小,但对于z级数大于1时饱和

导数可表达为



Soft sign

导数可表达为

sgn是signum函数,返回1或-1,依赖于z的符号。

ReLU

导数为

Leaky ReLU

导数为

2.4 Xavier参数初始化

Xavier等发现,对于sigmoid和tanh激活单元,更低的误差率和更快的聚合可以通过将矩阵权重W随机初始化为下列范围内的均匀分布

n_(l)是输入单元,n_(l+1)是输出单元

这里bias单元初始化为0

这种方法试图在层之间保持激活振动和反向传播梯度振动,否则梯度振动(信息的代理)一般会随着层间反向传播递减。

2.5 学习速率


我们碰到的大多数模型是non-convex模型,大的学习速率难以预测因为很大机会损失函数会发散。

Ronan等提出了,其中a0是初始速率,t是何时速率开始递减。

2.6使用AdaGrad

与标准随机梯度下降的区别在于学习速率可对每个参数不同。每个参数的学习速率依赖于这个参数的梯度更新历史,对于此前更新少的参数使用更大的学习速率以使它更快更新。

如果梯度的历史RMS非常低,则学习速率会非常高,简单实现如下


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值