可微编程:让计算机程序实现自动微分的革命性技术
创作时间:
作者:
@小白创作中心
可微编程:让计算机程序实现自动微分的革命性技术
引用
1
来源
1.
https://vibaike.com/126323/
可微编程是一种新兴的编程范式,它允许计算机程序通过自动微分进行求导,从而实现基于梯度的优化。这种技术在科学计算和人工智能领域有着广泛的应用前景。
可微编程
可微编程为编程范例,其中一数字计算机程序可以区分整个经由自动分化。这允许对程序中的参数进行基于梯度的优化,通常通过梯度下降。可微分编程已在广泛的领域中得到应用,尤其是科学计算和人工智能。
可微编程方法
大多数可微编程框架通过构建一个包含程序中的控制流和数据结构的图来工作。早期的尝试通常分为两类:
基于静态、编译图的方法,例如TensorFlow、Theano和MXNet。它们倾向于允许良好的编译器优化和更容易扩展到大型系统,但它们的静态特性限制了交互性和可以轻松创建的程序类型(例如那些涉及循环或递归的程序),并且使用户更难推理有效地了解他们的计划。
运算符重载、基于动态图的方法,例如PyTorch和AutoGrad。它们的动态和交互性质使大多数程序的编写和推理更加容易。但是,它们会导致解释器开销(尤其是在组合许多小操作时)、较差的可扩展性,并且难以从编译器优化中获益。
这两种早期方法都只能区分以适合框架的方式编写的代码,限制了它们与其他程序的互操作性。
Julia编程语言的一个更新包——Zygote——通过将语言的语法视为图形来解决早期尝试面临的问题。然后可以直接区分、优化和编译任意代码的中间表示。
一种名为Myia的编程语言“目前正在开发中,尚未准备好使用”,它允许使用编译为Myia的Python子集来定义模型。
可微编程的应用
可微编程已经在领域得到了应用,例如结合深度学习与物理引擎中的机器人,解决与可微电子结构问题密度泛函理论,可微光线跟踪,图像处理,以及概率性编程。
热门推荐
如何通过API获取显卡信息?
尿酸高可以喝紫菜汤吗
张红甫教你做地三鲜:家常菜简单又美味
图书情报学的可持续发展
个人遗嘱模板:一份合法有效的自书遗嘱指南
如何正确设置A股止损单?这种设置对风险控制有哪些作用?
固定资产入账标准及管理方法详解
如何申请社会福利住房?这种申请过程有哪些具体要求?
探秘阿里秘境:自驾游终极指南与路线攻略
成吉思汗Y染色体有多强?科学家发现今天全球1600万男性和他有关
如何写出真实且建设性的学生评语,激励他们不断进步
登封法院:联动汇聚解纷合力 多元化解矛盾纠纷
40天小狗如何训练(从吃饭到排便)
物业公司对外拓展攻略
一步步拆解案例:什么是逐步分析法?
内向的人该如何交朋友
肠系膜血管CTA检查是什么?原理、步骤及注意事项全解析
抗精神病药为什么会导致猝死(下)?
水培花卉的光照管理
“水培”蝴蝶兰,也能养活,长得还很快,摆在桌子上正合适!
产品如何挖掘需求场景
减肥期间是否可以食用凉皮凉面?医生的专业解答来了
车主死亡后违章罚款和扣分如何处理?
一年质保是什么意思?
如何用 Redis 做实时订阅推送
怎么查找excel更新的内容
清华大学邓志东:人工智能的研究前沿、迭代演进与发展路径
项目公司管理转岗指南:从目标设定到职业发展
结直肠癌免疫逃逸机制研究新突破:单细胞分析揭示患者分层新视角
给娃刷牙刷了个寂寞!不同年龄段如何有效刷牙?