Gradient-based Hyperparameter Op
@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消耗).
主要内容
假设第次训练的损失函数为, 其中是网络的权重, 是指超参数.
进行一次meta-iteration(即T次训练之后), 我们利用验证集对其验证, 设其损失为, 我们知道, 因为实际上是的函数, 我们求关于的梯度, 并更新.
但是如果只是单纯地反向转递梯度,我们需要构建一个包含的图, 这是十分消耗memory的. 本文的贡献便是提出一种算法来解决此问题.
下图为利用SGD(带momentum)训练权重的过程:
算法
假设meta-iteration后的权重为, 我们利用此来一步一步地恢复前面的信息, 并且逐步计算有关超参数的导数.
在这里插入图片描述算法中, 6, 7, 8实际上是SGD的一个逆行, 用以恢复, 注意到, 9, 10计算了俩次, 实际上第一次作为中间变量以计算超参数的导数, 后一次是为下一次进行准备(算法中的公式都是容易推出的).
需要注意的是, 我们在恢复的过程中用到了甚至, 个人认为这些是在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
如何优化网络结构, 因为网络结构是一种离散化的超参数, 所以...