自动微分(Automatic Differentiation)简介

本文探讨了自动微分技术在神经网络训练中的应用,对比了前向自动微分与后向自动微分(如backprop)在计算效率上的差异。指出在多输入单输出场景中,后向自动微分更高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载地址:https://blog.csdn.net/aws3217150/article/details/70214422

上面的文章写的非常好,不多做介绍,只说下自己对于两种自动微分的理解。

1. 首先不认同后向自动微分就是backprop这种说法,只能说两者都依赖于chain rule,形式上类似。且NN的backprop的情况是,输入x确定,结构不确定;反观后向微分,是x不确定,而结构确定的。

2. 再说下计算效率问题

    前向算法:假设有n维度输入,我们观察算法,发现用1个输出对n个输入做微分需要计算n轮。因为中间任意个节点对于每个维 度的输入都需要求导,而每一轮计算做的事情都是节点对单一维度的输入求导。但如果是1维输入,n个输出,仍然只需要计算1轮(只要明白计算上的依赖性,这点很容易理解)。

    后向算法:后向算法和前向算法刚好反过来,不做赘述

如此,对于多输入单输出,后向算法是比较省时间的。

今年的华为开发者大会 HDC 2020 上,除了**昇腾、鲲鹏等自研芯片硬件平台**之外,最令人期待的就是**深度学习框架 MindSpore 的开源**了。今天上午,华为 MindSpore **首席科学家陈雷**在活动中宣布这款产品正式开源,我们终于可以在开放平台上一睹它的真面目。 本文是根据机器之心报道的MindSpore 的开源介绍而整理的.md笔记 作为一款支持**端、边、云独立/协同的统一训练和推理框架,华为希望通过这款完整的软件堆栈,实现**一次性算子开发、一致的开发和调试体验**,以此帮助开发者实现**一次开发,应用在所有设备上平滑迁移**的能力。 三大创新能力:新编程范式,执行模式和协作方式 由**自动微分自动并行、数据处理**等功能构成 开发算法即代码、运行高效、部署态灵活**的**特点**, 三层核心:从下往上分别是**后端运行时、计算图引擎及前端表示层**。 最大特点:采用了业界最新的 **Source-to-Source 自动微分**,它能**利用编译器及编程语言的底层技术**,进一步**优化以支持更好的微分表达**。主流深度学习框架中主要有**三种自动微分技术,才用的不是静态计算图、动态计算图,而是基于**源码**转换:该技术源以**函数式编程框架**为基础,以**即时编译(JIT)**的方式**在中间表达(编译过程中程序的表达形式)上做自动微分变换**,支持**复杂控制流场景、高阶函数和闭包**。 MindSpore 主要概念就是张量、算子、单元和模型 其代码有两个比较突出的亮点:计算图的调整,动态图与静态图可以一行代码切换;自动并行特性,我们写的串行代码,只需要多加一行就能完成自动并行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值