本文是 Julia 自动微分系列文章的第一部分,概述了自动微分并定义了显式链式法则。文章首先介绍了自动微分在机器学习框架中的重要性,然后详细解释了 Julia 自动微分生态系统,包括 Flux.jl、ChainRules.jl 和 Zygote.jl 等关键软件包及其工作原理。文章重点介绍了 ChainRules.jl 的 rrule 函数,并通过多个例子演示了如何使用链式法则计算各种数学运算(如加减乘除、三角函数、多项式求值和矩阵乘法)的导数。文章最后通过多项式曲线拟合的例子,展示了如何使用链式法则进行梯度下降优化。