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 Optimization through Reversible Learning的更多相关文章

  1. [CS231n-CNN] Training Neural Networks Part 1 : activation functions, weight initialization, gradient flow, batch normalization | babysitting the learning process, hyperparameter optimization

    课程主页:http://cs231n.stanford.edu/   Introduction to neural networks -Training Neural Network ________ ...

  2. DAGs with NO TEARS: Continuous Optimization for Structure Learning

    DAGs with NO TEARS: Continuous Optimization for Structure Learning 目录 DAGs with NO TEARS: Continuous ...

  3. 论文笔记系列-Speeding Up Automatic Hyperparameter Optimization of Deep Neural Networks by Extrapolation of Learning Curves

    I. 背景介绍 1. 学习曲线(Learning Curve) 我们都知道在手工调试模型的参数的时候,我们并不会每次都等到模型迭代完后再修改超参数,而是待模型训练了一定的epoch次数后,通过观察学习 ...

  4. Federated Optimization: Distributed Machine Learning for On-Device Intelligence

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1610.02527v1 [cs.LG] 8 Oct 2016 坐标下降法:https://blog.csdn.net/qq_ ...

  5. 斯坦福大学公开课机器学习:梯度下降运算的学习率a(gradient descent in practice 2:learning rate alpha)

    本章节主要讲怎么确定梯度下降的工作是正确的,第二是怎么选择学习率α,如下图所示: 上图显示的是梯度下降算法迭代过程中的代价函数j(θ)的值,横轴是迭代步数,纵轴是j(θ)的值 如果梯度算法正常工作,那 ...

  6. A novel multi-swarm particle swarm optimization with dynamic learning strategy(一种新颖的具有动态学习策略的多种群粒子群优化算法)

    1.核心 在每个子种群的粒子被划分为普通粒子(ordinary particles)和交流粒子(communication particles),在每次迭代过程中,不同的粒子执行不同的进化操作.普通粒 ...

  7. How to Evaluate Machine Learning Models, Part 4: Hyperparameter Tuning

    How to Evaluate Machine Learning Models, Part 4: Hyperparameter Tuning In the realm of machine learn ...

  8. arXiv 2015深度学习年度十大论文

    由康奈尔大学运营维护着的arXiv网站,是一个在学术论文还未被出版时就将之向所有人开放的地方.这里汇聚了无数科学领域中最前沿的研究,机器学习也包括在内.它反映了学术界当前的整体趋势,我们看到,近来发布 ...

  9. 机器学习超参数优化算法-Hyperband

    参考文献:Hyperband: Bandit-Based Configuration Evaluation for Hyperparameter Optimization I. 传统优化算法 机器学习 ...

随机推荐

  1. A Child's History of England.51

    CHAPTER 14 ENGLAND UNDER KING JOHN, CALLED LACKLAND At two-and-thirty years of age, John became King ...

  2. A Child's History of England.13

    Then came the boy-king, Edgar, called the Peaceful, fifteen years old. Dunstan, being still the real ...

  3. ORACLE 本session产生的redo

    select * from v$statname a ,v$mystat bwhere a.STATISTIC# = b.STATISTIC# and a.name = 'redo size';

  4. Linux学习 - 环境变量配置文件

    一.环境变量配置文件的作用 /etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.bashrc /etc/bashrc 1 /etc/profile的 ...

  5. Mockito 入门详解

    一个测试方法主要包括三部分: setup 执行操作 验证结果 public class CalculatorTest { Calculator mCalculator; @Before // setu ...

  6. Python 3 字典(Dictionary)

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d ...

  7. C#深入理解多态

    1.里氏替换原则 1.里氏替换原则:在一个软件系统中,如果子类出现在父类出现的位置,而整个软件功能又没有影响,那么咱们称为里氏替换. 2. 考试题:父类变量指向子类对象!! 3.里氏替换  是     ...

  8. pipeline 结构设计

    目录 一.pipeline步骤 二.案例 pipeline详解 只生成一次制品 不同环境部署 系统集成测试 指定版本部署 一.pipeline步骤 当团队开始设计第一个pipeline时,该如何下手呢 ...

  9. 逻辑判断(Power Query 之 M 语言)

    逻辑真:true 逻辑假:false 与函数:and true and true,结果为TRUE true and false,结果为FALSE false and false,结果为FALSE 或函 ...

  10. Google earth engine 中的投影、重采样、尺度

    本文主要翻译自下述GEE官方帮助 https://developers.google.com/earth-engine/guides/scale https://developers.google.c ...