谈谈自动微分(Automatic Differentiation)
机器学习与生成对抗网络
共 2465字,需浏览 5分钟
· 2022-01-13
©作者 | JermyLu 编辑 paperweekly
学校 | 中国科学院大学
研究方向 | 自然语言处理与芯片验证
引言
数值微分
数值微分方法简单,但计算量巨大,而且会造成截断误差(Truncation Error)和舍入误差(Round-off Error)。
符号微分
使用符号微分方法时,必须将目标函数转为一个完整的数学表达式,这个过程中会出现表达式膨胀(Expression Swell)的问题,大大增加系统存储和处理表达式的负担。
自动微分
首先,我们了解一下链式法则。
单变量函数链式法则:
多变量函数链式法则:
接下来,我们以三层全连接层神经网络为例,解释自动微分机制。
; ; 梯度 需要继续向前一层传递,用于计算其他变量的梯度;梯度 会作为参数 的梯度计算结果,用于模型参数的更新。
; ; 梯度 需要继续向前一层传递,用于计算其他变量的梯度;梯度 会作为参数 的梯度计算结果,用于模型参数的更新。
综合输出层和隐藏层的反向传播方法,再根据神经网络有向计算图的拓扑结构,逆向访问每一个节点执行上述梯度计算过程即可得到神经网络中任意位置和任意参数的梯度信息。
总结
链式法则+反向传播+有向图拓扑结构,构成了自动微分机制的基础。
猜您喜欢:
附下载 |《TensorFlow 2.0 深度学习算法实战》
评论