美文网首页
Gradient-based Hyperparameter Op

Gradient-based Hyperparameter Op

作者: 馒头and花卷 | 来源:发表于2020-04-08 16:56 被阅读0次

    Maclaurin D, Duvenaud D, Adams R P, et al. Gradient-based Hyperparameter Optimization through Reversible Learning[J]. arXiv: Machine Learning, 2015.

    @article{maclaurin2015gradient-based,
    title={Gradient-based Hyperparameter Optimization through Reversible Learning},
    author={Maclaurin, Dougal and Duvenaud, David and Adams, Ryan P},
    journal={arXiv: Machine Learning},
    year={2015}}

    本文给出了利用梯度更新超参数的方法(低memory消耗).

    主要内容

    假设第t=1,\ldots, T次训练的损失函数为L(\mathbf{w}, \mathbf{\theta}, t), 其中\mathbf{w}是网络的权重, \mathbf{\theta}是指超参数.

    进行一次meta-iteration(即T次训练之后), 我们利用验证集对其验证, 设其损失为f(\mathbf{w}), 我们知道, 因为\mathbf{w}实际上是\mathbf{\theta}的函数, 我们求f(\mathbf{w})关于\mathbf{\theta}的梯度, 并更新\mathbf{\theta}.

    但是如果只是单纯地反向转递梯度,我们需要构建一个包含t=1,\ldots,T的图, 这是十分消耗memory的. 本文的贡献便是提出一种算法来解决此问题.

    下图为利用SGD(带momentum)训练权重\mathbf{w}的过程:

    在这里插入图片描述

    算法

    假设meta-iteration后的权重为\mathbf{w}_T, 我们利用此来一步一步地恢复前面的信息, 并且逐步计算有关超参数的导数.

    在这里插入图片描述

    算法中, 6, 7, 8实际上是SGD的一个逆行, 用以恢复\mathbf{w}_{t-1}, \mathbf{g}_t,\mathbf{v}_{t-1}, 注意到, 9, 10计算了俩次d\mathbf{v}, 实际上第一次作为中间变量以计算超参数的导数, 后一次是为下一次进行准备(算法中的公式都是容易推出的).

    需要注意的是, 我们在恢复的过程中用到了\nabla甚至\nabla \nabla, 个人认为这些是在SGD训练的时候保存下来的.

    finite precision arithmic

    实验

    3.1

    Meta-optimization strategies: 将学习率作为超参数;
    How smooth are hypergradients?: 探究损失关于超参数是否光滑(即导数是否连续).
    Optimizing weight initialization scales: 将初始化超参数的scale作为超参数.

    3.2

    将正则化参数作为超参数.

    3.3
    将训练样本作为超参数.

    3.4
    ...

    3.5

    如何优化网络结构, 因为网络结构是一种离散化的超参数, 所以...

    相关文章

      网友评论

          本文标题:Gradient-based Hyperparameter Op

          本文链接:https://www.haomeiwen.com/subject/qiatmhtx.html