Hype:组合机器学习和超参数优化

Hype是一个深度学习库,利用嵌套自动微分实现复杂机器学习系统的优化。它提供了超参数的梯度,支持内部优化的组件,如学习率和动量调度。Hype还可以处理高阶导数,适用于多玩家游戏策略优化和自适应控制等场景。未来计划支持GPU、概率推理和卷积神经网络。
摘要由CSDN通过智能技术生成

原文: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许可下发布。


由CSDN重磅打造的2016中国云计算技术大会(CCTC 2016)将于5月13日-15日在北京举办,大会特设“中国Spark技术峰会”、“Container技术峰会”、“OpenStack技术峰会”、“大数据核心技术与应用实战峰会”等四大技术主题峰会,以及“云计算核心技术架构”、“云计算平台构建与实践”等专场技术论坛。80+位一线互联网公司的技术专家将到场分享他们在云计算、大数据领域的技术实践,目前大会剩票不多,欲购从速。详情请点击 CCTC 2016大会官网

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值