可微编程:让计算机程序实现自动微分的革命性技术
创作时间:
作者:
@小白创作中心
可微编程:让计算机程序实现自动微分的革命性技术
引用
1
来源
1.
https://vibaike.com/126323/
可微编程是一种新兴的编程范式,它允许计算机程序通过自动微分进行求导,从而实现基于梯度的优化。这种技术在科学计算和人工智能领域有着广泛的应用前景。
可微编程
可微编程为编程范例,其中一数字计算机程序可以区分整个经由自动分化。这允许对程序中的参数进行基于梯度的优化,通常通过梯度下降。可微分编程已在广泛的领域中得到应用,尤其是科学计算和人工智能。
可微编程方法
大多数可微编程框架通过构建一个包含程序中的控制流和数据结构的图来工作。早期的尝试通常分为两类:
基于静态、编译图的方法,例如TensorFlow、Theano和MXNet。它们倾向于允许良好的编译器优化和更容易扩展到大型系统,但它们的静态特性限制了交互性和可以轻松创建的程序类型(例如那些涉及循环或递归的程序),并且使用户更难推理有效地了解他们的计划。
运算符重载、基于动态图的方法,例如PyTorch和AutoGrad。它们的动态和交互性质使大多数程序的编写和推理更加容易。但是,它们会导致解释器开销(尤其是在组合许多小操作时)、较差的可扩展性,并且难以从编译器优化中获益。
这两种早期方法都只能区分以适合框架的方式编写的代码,限制了它们与其他程序的互操作性。
Julia编程语言的一个更新包——Zygote——通过将语言的语法视为图形来解决早期尝试面临的问题。然后可以直接区分、优化和编译任意代码的中间表示。
一种名为Myia的编程语言“目前正在开发中,尚未准备好使用”,它允许使用编译为Myia的Python子集来定义模型。
可微编程的应用
可微编程已经在领域得到了应用,例如结合深度学习与物理引擎中的机器人,解决与可微电子结构问题密度泛函理论,可微光线跟踪,图像处理,以及概率性编程。
热门推荐
什么是再生纤维素纤维?
干热灭菌器和湿热灭菌器之间的区别
户外儿童区如何创造安全的游玩环境
吉安市吉州区:樱花绽放 美景如画
清洗蔬菜的正确方法
有机蔬菜怎么做溯源追溯?
中医祛痘饮食调理及小妙招分别有哪些?
一文读懂什么是宽基指数?如何投资宽基指数?
父母的这些教育习惯,正在"偷走"孩子未来的自律能力!
实时监控和定期监控如何优化BMS中的电池性能?
一文搞懂北交所开户条件
日语中的常用语desu是什么意思?
三氯蔗糖对人体有害吗?分析三氯蔗糖的安全性
文言文实词:领略古韵文华,解析语言玄机
揭秘数学中的秘密:被减数与减数的奇妙关系
如何寻找相似图形的股票
近期食用海虹需谨慎!专家解读来了→
日常足部护理小方法
淄博不只有烧烤!这8样小吃,拿的出,吃的住,错过那就真可惜了
你不知道的100个淄博 ⑫ | 鲁菜发源地
EA拒绝了《死亡空间4》的开发计划
河南省十大小吃,哪个是你的味蕾之选?
如果发生腹泻体检应该做哪些项目?日常腹泻医院体检项目大全
个人业绩报告考评怎么写?
漆树过敏怎么治疗
便检取样保存指南:2小时内送检,最长不超过24小时冷藏
病虫害的防治案例与实践
鲁班:工匠精神与发明对后世的深远影响与启示
手机壁纸制作全攻略:从主题选定到分享展示的步骤解析
如何正确安装和使用防滑链以确保冬季行车安全?这些方法的实用性和效果如何?