用反向传导思想求导

From Ufldl

Jump to: navigation, search
Line 10: Line 10:
在反向传播算法一节中,我们介绍了在稀疏自动编码器中用来求导的反向传播算法。事实证明这种手段同矩阵计算相结合可以提供计算复杂矩阵函数(从矩阵到实数的函数,或用符号表示,从<math>\mathbb{R}^{r \times c} \rightarrow \mathbb{R}</math>这样映射的函数)的强大方法与直觉。
在反向传播算法一节中,我们介绍了在稀疏自动编码器中用来求导的反向传播算法。事实证明这种手段同矩阵计算相结合可以提供计算复杂矩阵函数(从矩阵到实数的函数,或用符号表示,从<math>\mathbb{R}^{r \times c} \rightarrow \mathbb{R}</math>这样映射的函数)的强大方法与直觉。
 +
 +
[初译]
 +
 +
首先,回忆一下反向传播思想,这里我们用一种变形的形式逐渐逼近我们的目的:
 +
<ol>
 +
<li>对每一个第<math>n_l</math>层(最后一层)中的输出单元<math>i</math>,令
 +
:<math>
 +
\delta^{(n_l)}_i
 +
= \frac{\partial}{\partial z^{(n_l)}_i} \;\;
 +
        J(z^{(n_l)})
 +
</math>
 +
,其中<math>J(z)</math>是我们的“目标函数”(下面解释);
 +
<li>对<math>l = n_l-1, n_l-2, n_l-3, \ldots, 2</math>,
 +
对每个第<math>l</math>层中的节点<math>i</math>,令
 +
:<math>
 +
\delta^{(l)}_i = \left( \sum_{j=1}^{s_{l+1}} W^{(l)}_{ji} \delta^{(l+1)}_j \right) \bullet \frac{\partial}{\partial z^{(l)}_i} f^{(l)} (z^{(l)}_i)
 +
</math>                                     
 +
<li>计算所需偏导数
 +
:<math>
 +
\begin{align}
 +
\nabla_{W^{(l)}} J(W,b;x,y) &= \delta^{(l+1)} (a^{(l)})^T, \\
 +
\end{align}
 +
</math> 。
 +
</ol>
 +
 +
[一审]
 +
 +
首先,我们回顾一下反向传播的思想,为了更适合我们的目的稍作修改呈现于下:
 +
<ol>
 +
<li>对每一个第<math>nl</math>层(最后一层)中的输出单元<math>i</math>,令
 +
:<math>
 +
\delta^{(n_l)}_i
 +
= \frac{\partial}{\partial z^{(n_l)}_i} \;\;
 +
        J(z^{(n_l)})
 +
</math>
 +
,其中<math>J(z)</math>是我们的“目标函数”(下面解释)。
 +
<li>对<math>l = n_l-1, n_l-2, n_l-3, \ldots, 2</math>,                                               
 +
  对每个第<math>l</math>层中的节点<math>i</math>, 令
 +
:<math>
 +
\delta^{(l)}_i = \left( \sum_{j=1}^{s_{l+1}} W^{(l)}_{ji} \delta^{(l+1)}_j \right) \bullet \frac{\partial}{\partial z^{(l)}_i} f^{(l)} (z^{(l)}_i)
 +
</math>                                       
 +
<li>计算所需偏导数
 +
:<math>
 +
\begin{align}
 +
\nabla_{W^{(l)}} J(W,b;x,y) &= \delta^{(l+1)} (a^{(l)})^T, \\
 +
\end{align}
 +
</math> .
 +
</ol>

Revision as of 14:08, 7 March 2013

Personal tools