43、非结构化数据的神经网络:自动微分、训练问题与解决方案

非结构化数据的神经网络:自动微分、训练问题与解决方案

1. 自动微分与反向传播

自动微分是神经网络训练中的关键技术,它可以高效地计算梯度。在计算图中,我们可以通过反向拓扑顺序进行反向模式微分,也可以使用前向模式微分。

1.1 反向模式微分

在计算图中,我们从输出节点开始,先计算子节点的梯度,然后反向计算父节点的梯度。例如,对于节点 $j$,其梯度计算公式为:
[
\frac{\partial o}{\partial x_j} = \sum_{k \in children(j)} \frac{\partial o}{\partial x_k} \frac{\partial x_k}{\partial x_j}
]
其中,$\frac{\partial o}{\partial x_k}$ 是子节点 $k$ 的梯度,也称为伴随梯度,$\frac{\partial x_k}{\partial x_j}$ 是子节点 $k$ 相对于父节点 $j$ 的雅可比矩阵。

计算图可以提前使用 API 定义静态图(如 TensorFlow 1),也可以在运行时通过跟踪函数执行来动态计算(如 TensorFlow 动态图模式、JAX 和 PyTorch)。后者更适合处理动态图,其形状可以根据函数计算的值而变化。

1.2 前向与反向模式微分对比

考虑映射 $o = f(x)$,其中 $x \in \mathbb{R}^n$,$o \in \mathbb{R}^m$,且 $f$ 由多个函数复合而成:$f = f_4 \circ f_3 \circ f_2 \circ f_1$。我们可以使用链式法则计算雅

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值