梯度与初始化:反向传播算法详解
反向传播算法基础
在神经网络计算中,当我们反向遍历网络时,会发现很多所需的项在上一步已经计算过,无需重新计算。这种反向遍历网络来计算导数的过程被称为反向传播。
反向传播背后的思想相对容易理解,但由于偏置和权重项分别是向量和矩阵,其推导需要用到矩阵微积分。为了更好地理解其底层机制,我们先从一个简单的标量参数玩具模型开始推导反向传播,然后将同样的方法应用到深度神经网络中。
玩具示例
考虑一个具有八个标量参数 $\phi = {\beta_0, \omega_0, \beta_1, \omega_1, \beta_2, \omega_2, \beta_3, \omega_3}$ 的模型 $f[x, \phi]$,它由 $\sin[\cdot]$、$\exp[\cdot]$ 和 $\cos[\cdot]$ 函数组成:
[f[x, \phi] = \beta_3 + \omega_3 \cdot \cos\left[\beta_2 + \omega_2 \cdot \exp\left[\beta_1 + \omega_1 \cdot \sin[\beta_0 + \omega_0 \cdot x]\right]\right]]
同时,定义一个最小二乘损失函数 $L[\phi] = \sum_{i} \ell_i$,其中:
[\ell_i = (f[x_i, \phi] - y_i)^2]
这里,$x_i$ 是第 $i$ 个训练输入,$y_i$ 是第 $i$ 个训练输出。可以将其看作一个简单的神经网络,每层有一个输入、一个输出和一个隐藏单元,且每层之间使用不同的激活函数 $\sin[\cdot]$
超级会员免费看
订阅专栏 解锁全文
2820

被折叠的 条评论
为什么被折叠?



