阅读更多

0顶
0踩

开源软件
引用

原文:Hype: Compositional Machine Learning and Hyperparameter Optimization
译者:刘翔宇 审校:赵屹华、刘帝伟
责编:周建丁(zhoujd@csdn.net)

Hype是一个概念验证的深度学习库,你可以使用它对拥有许多模块的组合机器学习系统进行优化,即使这些模块本身就能进行优化。

这通过嵌套自动微分(AD)实现,它可以让你得到代码中任一浮点值的自动精确导数。底层的计算由BLAS/LAPACK实现(默认OpenBLAS)。

自动求导
你不必费心在模型中计算梯度(或Hessians矩阵),这些都会被AD准确、有效地计算出来。AD底层的功能由DiffSharp提供。

“反向模式”(Reverse mode)AD是“反向传播”的一般形式,与数字或符号微分不同。

除了反向AD之外,Hype使用了前馈AD,并嵌套组合前馈和反向AD。核心微分API提供了梯度函数、Hessians矩阵、Jacobian矩阵、方向导数及Hessian与Jacobian向量的乘积。

超梯度
你可以通过超参数得到训练和验证损失的梯度。这些超参数可以让你对基于梯度的优化进行梯度优化,这意味着你可以优化学习率,动量调度,权重初始化参数,步长以及哈密顿蒙特卡罗模型( Hamiltonian Monte Carlo models)中的质量矩阵。(最近有一篇文章使用了Python来实现:Maclaurin, Dougal, David Duvenaud, and Ryan P. Adams. “Gradient-based Hyperparameter Optimization through Reversible Learning.” arXiv preprint arXiv:1502.03492 (2015).)
open Hype
open Hype.Neural

// Train a network with stochastic gradient descent and a learning rate schedule
let train (x:DV) = 
    let n = FeedForward()
    n.Add(Linear(784, 300))
    n.Add(tanh)
    n.Add(Linear(300, 10))
    let loss, _ = Layer.Train(n, data, {Params.Default with 
                                        LearningRate = Schedule x
                                        Momentum = Momentum.DefaultNesterov
                                        Batch = Minibatch 100
                                        Loss = CrossEntropyOnLinear})
    loss // Return the loss at the end of training

// Train the training, i.e., optimize the learning schedule vector by using its hypergradient
let hypertrain = 
    Optimize.Minimize(train, DV.create 200 (D 1.f), {Params.Default with Epochs = 50})

你同样可以使用导数来训练数据,分析训练的敏感性。

组合性
嵌套AD可以处理任何高阶导数,包括下面这种复杂的导数:
min(x↦f(x)+min(y↦g(x,y)))

其中min函数使用了基于梯度的优化。(注意,内部函数对外部函数参数进行了引用。)这可以让你创建复杂的系统,许多成分可以进行内部优化。

比如,你可以优化多玩家游戏的规则,玩家们使用一个简单的对手模型来优化自己的策略,具体来说就是通过观察对手的行为进行优化。

你也可以对使用了微分达到特定目标而不是优化的程序进行优化,比如自适应控制或仿真。

复杂目标函数
你可以在目标函数的定义中使用导数进行模型训练。例如,你的目标函数考虑了输入敏感因素,对训练模型来说,在一系列输入转换之后那都是不变的。

路线图
目前版本:
  • 默认OpenBLAS
  • 回归,前馈神经网络
  • 递归神经网络,LSTM,GRU
  • 哈密顿蒙特卡罗模型

将来的特性:
  • GPU/CUDA
  • 概率推理
  • 卷积神经网络

Hype由爱尔兰国立梅努斯大学哈密顿研究所大脑与计算机实验室Atılım Güneş BaydinBarak A. Pearlmutter开发。Hype在MIT许可下发布。
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics