阅读更多

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 条 请登录后发表评论

发表评论

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

相关推荐

  • 交叉验证和超参数调整:如何优化您的机器学习模型

    与模型参数是在模型训练期间学习的并且不能任意设置的模型参数不同,超参数是用户在训练机器学习模型之前可以设置的参数。 随机森林中超参数的示例包括森林中决策树的数量,每次拆分时要考虑的要素的最大数量或树的...

  • soap rest_这是我对REST的后续工作,是新的SOAP:让我们谈谈原始REST

    并尝试以针对CRUD进行优化的思维方式来执行类似操作的请求。 我们浪费了多少时间来弄清楚仅进行REST API登录API调用的“标准”方法。 On the opposite side, Phil Sturgeon, one of the main advocates of REST, ...

  • 【今日CV 计算机视觉论文速览 第93期】Wed, 3 Apr 2019

    像素方式映射被参数化为多层感知器,其权重通过最小化源图像和下采样目标图像之间的差异来学习。重要的是,我们的公式可以仅规范映射函数,同时避免输出的正规化,从而产生清晰,自然的图像。所提出的方法是无监督的...

  • 高负载高并发网站架构分析

    由于自己正在做一个高性能大用户量的论坛程序,对高性能高并发服务器架构比较感兴趣,于是在网上收集了不少这方面的资料和大家分享。... 谈谈大型高负载网站服务器的优化心得! 8  Lighttpd+S

  • 全栈开发自学路线

    这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程. 个人学习方法分享 本文目录&更新说明 目录 1.学习方法 2.学习态度 ...

  • [转]高负载并发网站架构分析

    由于自己正在做一个高性能大用户量的论坛程序,对高性能高并发服务器架构比较感兴趣,于是在网上收集了不少这方面的资料和大家分享。... 谈谈大型高负载网站服务器的优化心得! 8 ? Lighttpd+Squid+Apach

  • 让我们来探讨原本的REST

    数据散落在动词、链接、查询参数、消息头、载荷上。每个人都认为其他人没有得到REST的精髓。如果你想建议REST之外的技术,你会成为政治迫害的对象。它事实上是无意义的狂热崇拜。 My co-workers have spent sooo ...

  • 埃森哲制药企业数字化转型项目顶层规划方案glq.pptx

    埃森哲制药企业数字化转型项目顶层规划方案glq.pptx

  • 华为OD机试D卷 - 机场航班调度程序 - 免费看解析和代码.html

    私信博主免费获取真题解析以及代码

  • 基于FPGA读取设计的心电图代码源码+全部资料齐全.zip

    【资源说明】 基于FPGA读取设计的心电图代码源码+全部资料齐全.zip基于FPGA读取设计的心电图代码源码+全部资料齐全.zip 【备注】 1、该项目是高分课程设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11/linux测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 基于Hadoop平台的分布式搜索引擎的设计与实现+部署文档+全部资料 高分项目.zip

    【资源说明】 基于Hadoop平台的分布式搜索引擎的设计与实现+部署文档+全部资料 高分项目.zip基于Hadoop平台的分布式搜索引擎的设计与实现+部署文档+全部资料 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 华为OD机试D卷 - 数的分解 - 免费看解析和代码.html

    私信博主免费获取真题解析以及代码

  • 基于Hadoop的智能购书系统的设计与实现+部署文档+全部资料 高分项目.zip

    【资源说明】 基于Hadoop的智能购书系统的设计与实现+部署文档+全部资料 高分项目.zip基于Hadoop的智能购书系统的设计与实现+部署文档+全部资料 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • setuptools-27.2.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • 基于 python 在树莓派上面实现摄像头视频人脸识别

    【作品名称】:基于 python 在树莓派上面实现摄像头视频人脸识别 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:基于 python 在树莓派上面实现摄像头视频人脸识别

  • setuptools-28.4.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • setuptools-16.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • setuptools-68.2.0-py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • 基于MQTT的校园新闻APP原生Android源码.zip

    基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip

Global site tag (gtag.js) - Google Analytics