其他分享
首页 > 其他分享> > 【李宏毅2020 ML/DL】补充:Meta Learning - Gradient Descent as LSTM

【李宏毅2020 ML/DL】补充:Meta Learning - Gradient Descent as LSTM

作者:互联网

我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

本次笔记补充视频 BV1JE411g7XF 的缺失部分。上节课李老师讲了元学习中的参数初始化方法:MAML 与 Reptile 。本节课内容为 Gradient Descent as LSTM 。在 B 站搜索 metalstm 即可找到视频。本节内容 30 分钟左右。

注意:本节讨论的是“元学习”,我们将讨论用 LSTM 做优化器的方法。我们所指的训练,是指训练优化器 LSTM 的参数。

本节内容综述
  1. 我们可以把元学习的过程,当然 RNN 来看。首先复习 RNN 。多数时候,我们说 RNN ,其实就是在用 LSTM 。
  2. 比较 LSTM 中的运算与 meta-learning 中的更新式,会发现有一些相似之处。
  3. 在实际操作中,我们做了非常大的简化。
  4. 此外,我们很久以前介绍过一些优化方法,如 RMSPropMomentum ,是需要过去的梯度来确定现在的梯度的。因此,可以根据这个为 LSTM 做些改进。

文章目录

小细节

引入 RNN


如上,我们的训练过程像 RNN 计算过程。主要源自两篇文章。

Recurrent Neural Network


如上,RNN的输入输出过程。

多数时候,我们说 RNN ,其实就是在用 LSTM 。



LSTM的运算如上。

Similar to gradient descent based algorithm


如上,我们何不把 c t c^t ct 当作 θ t \theta^t θt 来看呢?

此外,为了使两个式子更相像,我们把 LSTM 的 input 从 h t + 1 , x t h^{t+1}, x^t ht+1,xt 变成 − ∇ θ l -\nabla_\theta l −∇θ​l 。

我们发现,梯度下降其实是 LSTM 的简化版。

此外,我们还看做些调整,如上。这样,机器就会自动地调整 learning rate ,并且进行了些正则。

LSTM for Gradient Descent


如上,我们使用“简化版LSTM”,更新参数。我们的目标 loss 即为最终算出的 l ( θ i ) l(\theta^i) l(θi) 。

有几个要注意的地方:

Real Implementation


如上,实际操作中, LSTM 只有一个 cell ,并且被用于所有的参数上。

好处是:

Experimental Results


如上,我们发现 Forget gate 一般保持在 1 左右;并且,其学习率是动态变化的。

About Previous Gradients

我们在架构中加入“过去的梯度”,让过去的梯度也参与现在梯度的决定,类似优化器 Momentum

如上,我们再加一层绿色的 LSTM ,希望 m 存储过去的梯度。但是,李老师对原论文做了些“幻想”,原论文中,只使用了 LSTM 做 m 的存储,上面的蓝色 LSTM 是没有的;而另外一篇论文是有上面,没有下面的 LSTM 。

Experimental Results


如上,LSTM 作为优化器,得到了很惊人的效果。而这个 LSTM 中的参数在 1 * 20 的小神经网络中训练好了;拿到测试任务中,也训练得起来。

但是如最后一张图,训练时与测试时使用不同的激活函数,会坏掉。

标签:DL,RNN,李宏毅,梯度,theta,LSTM,我们,Experimental,Descent
来源: https://blog.51cto.com/u_15279775/2936222