优化算法进阶 & word2vec & 词嵌入进阶

问答学习,自问自答~

目录

一 优化算法进阶

什么是ill-condition?如何判断出现了ill-condition?有什么危害?

如何应对ill-condition?

什么是Momentum方法(SGD Momentum),其数学原理是什么?(hint:指数加权移动平均)

有哪些自适应学习率方法?

二 word2vec

相比于使用 one-hot 向量表示词语,embedding的优点和缺点是什么?

三 词嵌入进阶

子词嵌入(fastText)

全局向量的词嵌入(GloVe)


一 优化算法进阶

  • 什么是ill-condition(病态条件)?如何判断出现了ill-condition?有什么危害?

在凸优化中,病态条件指的是Hessian矩阵H的病态。在聊病态条件之前,需要了解下矩阵条件数

病态条件是指矩阵H的条件数(最大特征值/最小特征值)很大。

举个例子,特征是X=[x_1,x_2]^T,目标值是f(x)=0.1x_1^2+2x_2^2,则Hessian矩阵为

                                                   H=\bigl(\begin{smallmatrix} \frac{\partial ^2f}{\partial x_1^2} & \frac{\partial ^2f}{\partial x_1 x_2} \\\ \frac{\partial ^2f}{\partial x_2 x_1} & \frac{\partial ^2f}{\partial x_2^2} \end{smallmatrix}\bigr) =\bigl(\begin{smallmatrix} 0.2 & 0\\\ 0 &4 \end{smallmatrix}\bigr)

其条件数是4/0.2=20,所以H的病态的。

病态条件会有什么危害呢?可以看到,在x1轴和x2轴上的梯度不在一个量级,学习率决定了学习的快慢,过大会越过最优点,过小则会收敛很慢,因此,如果我们在两个轴采用相同的学习率,会出现问题,若是采用较小的学习率,x2轴可以正常收敛,但x1轴会收敛很慢;若是采用较大的学习率,x1轴可以正常速度收敛,但x2轴会越过最优点。

  • 如何应对ill-condition?

1 动量法,当历史梯度方向与当前梯度方向一致时,那么趋势会增强,加快收敛,否则,趋势被减弱。该方法可以提供一个好的更新方向,因此可以使用较大学习率来加快收敛。

2 自适应学习率,即在不同的轴上采用不同的学习率。

  • 什么是Momentum方法(SGD Momentum),其数学原理是什么?(hint:指数加权移动平均)

动量一词来源于物理学,动量法指的是维持惯性,即梯度不止是包括当前步的梯度,还会考虑以往步的梯度。其数学原理就是指数加权移动平均。

                                   

【类似于但不同于Momentum方法,Nesterov accelerated gradient (NAG)算法先在历史梯度方向上走一步,按照前面一小步的“超前梯度”来与历史梯度合并,使得小球具有“超前眼光”,更加“聪明”。】

  • 有哪些自适应学习率方法?

自适应学习率的思想是特别关注更新少的变量,如果一个变量在历史中梯度和很小,那么会给予这个变量更大的学习率。

AdaGrad:大的梯度处,小的学习率,即让最终的步长差不多大。

此算法的缺点是,st随更新次数累加到一定程度会梯度为0,不再更新,小的学习率容易收敛到非极值点,大的学习率又是非常危险的,因为无法确定实际问题中的优化曲面长啥样。

RMSProp:对AdaGrad做了修改,并没有对历史梯度一直累加,而是用了指数加权移动平均,过早的梯度会被遗忘掉,解决了AdaGrad梯度消失的问题。

AdaDelta:与RMSProp不同的是,无需使用者指定全局学习率,而是算法计算出来的,此方法只有一个超参数

Adam:Momentum和RMSProp的结合体,并对EMA权重进行了无偏操作。良好性质是adam有很强的rescale性质,可以使得模型以一个很正的方向来更新参数,但也带来一些可能不收敛的问题,有的论文专门剖析了Adam的优缺点《On the Convergence of Adam and Beyond》.

            Adam对大小相差很大数量级的梯度都可以rescale到相近的大小(Adam算法中的 mt​ 和 vt​ (原文符号)分别是梯度的一阶矩和二阶矩估计,二者相除,可以使更新量rescale到1的附近。)

             mt​ 和 vt​ 均使用了EMA(指数移动平均Exponential Moving Average),但是二者的衰减参数并不相同

 

二 word2vec

  • 相比于使用 one-hot 向量表示词语,embedding的优点和缺点是什么?

优点:训练好的词向量中能够包含更多语义信息,词向量的维度是可以自由设定的(本质上说,词嵌入是一个降维操作)

缺点:词嵌入模型首先需要在大规模语料库上进行训练,才能得到更有意义的词向量,其次在后续模型的训练过程中,可能还需要进行进一步的模型参数优化,所以在实现和使用上,都是比 one-hot 向量更复杂的

 

词嵌入模型的训练本质上是在优化模型预测各词语同时出现的概率,其他word2vec的相关总结可移步Word2Vec原理

三 词嵌入进阶

一些对word2vec的改进算法

  • 子词嵌入(fastText)

  • 全局向量的词嵌入(GloVe)

GloVe 使用了非概率分布的变量,并添加了中心词和背景词的偏差项,这样做是在松弛概率的规范性,即各个概率事件的概率和加起来等于1

GloVe 使用了一个单调递增的权重函数来加权各个损失项

在有些情况下,交叉熵损失函数有劣势,GloVe 使用了平方损失函数

GloVe 的损失函数计算公式中用到了语料库上的全局统计信息

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值