Dive into deep learning with pytorch task 07 : 优化算法进阶;word2vec;词嵌入进阶

4 优化进阶:

 

ill-conditioned

 

condition number = lambda_max/lambda_min

 

Ill-conditioned 对优化的影响是需要选择合适的学习率。

ita=(希腊字母)

 

最大学习率 ita <1/L

L = max_x d^2 f(x) f(x)的最大二阶导数。

 

为了保证收敛, 学习率ita < 2/L

 

ill-conditioned 的解决办法

 

  • preconditon, 用hessian 矩阵的逆乘梯度,得到新的一个类单位阵的方阵。

 

 

  • 平均历史 梯度,如 momentum 动量法。、

 

momentum 算法:

用这种方法可以用更大的learning rate,从而更快收敛。

 

 

precondition 算法:

 

  • AdaGrad: 学习率由越来越低,由累加变量St 来控制。 (*) 表示按位乘, gt 为t时刻随机梯度。

St <- St-1 + gt (*) gt

 

Xt <- Xt-1 - (ita / (St +e)) (*) gt

 

问题:随着时间的增进, St会很大,从而导致最后的学习率太小而停滞不前。

增大ita(学习率)可以改善,但是太大的ita会容易发散(特别是在非凸优化问题中)

AdaGrad算法没有使用 指数加权移动平均法

 

  • RMSProp 将小批量梯度按元素平方作指数加权移动平均 Exponential moving average

 

RMSprop 解决AdaGrad的学习率变得接近0的问题。

 

  • AdaDelta 不需要设定学习率 ita, 由算法自动计算。

 

St 类似RMPprop的指数加权移动平均。

delta Xt 为自变量的增量

gt <- 根号(( deltaX<t-1> + e )/(St +e)) (*) gt

 

Adm 算法,集合了动量法和RMSprop的优点。 并对动量变量和累加变量作了偏差纠正。

 

 

5. Word2vec

 

 

skipgram 跳字模型 : 通过中心字预测背景词

 

CBOW 连续字袋模型: 通过背景词预测中心词。

 

二次采样, 当p >0 时,省略,否则 取样。

p = max(1- 根号( t/f(x)), 0),

t 为预设词频阀值 , f(x) 为x的词频。 当f(x) >t 时, 根号(t / f(x))小于1, 从而p >0, 词被跳过(不取样)

当 f(x) < t 时, 根号(t/f(x) 大于1, 则 1-根号(t/f(x)) 小于0, p=0, 从而该词得到保留。

 

 

负采样技巧,用来近似模拟 softmax函数。由于字典比较大,如果直接用softmax函数,将导致计算量过大。

 

损失函数: 采用最大似然会计的对数等价形式定义损失函数。

 

 

6. 词向量进阶

Glove = global vector, 具有全局信息的词向量

可以直接从torchtext中加载, 可以用于搜索相似词,与类比词.

搜索类比词与相似词的方法是类似的, 相似词是直接从库中计算与该词的余弦相似值 ,选择top k 下。

计算类比关系时,比如 a ->b , 要找 c->d 中的d, 只需要 用 a+b-c的值 去库查询余弦相似度,找出最相似的那个即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值