微调多层自编码算法

From Ufldl

Jump to: navigation, search
(Finetuning with Backpropagation)
Line 17: Line 17:
微调是深度学习中的常用策略,可以大幅提升多层自动编码机的性能表现。从更高视角来说,微调将多层自动编码机的所有层视为一个模型,这样在每次迭代中,它所有权重值都可以被充分利用。
微调是深度学习中的常用策略,可以大幅提升多层自动编码机的性能表现。从更高视角来说,微调将多层自动编码机的所有层视为一个模型,这样在每次迭代中,它所有权重值都可以被充分利用。
-
【一审】:
+
【一审】:简介
 +
 
 +
微调是深度学习中的常用策略,可以大幅提升多层自动编码机的性能表现。从更高级视角来说,微调将多层自动编码机的所有层视为一个模型,这样在每次迭代中,它所有权重值都可以被优化。
Line 30: Line 32:
幸运的是,实现微调多层自动编码机的所有工具齐备。为了在每次迭代中对所有的层计算梯度,需要使用稀疏自编码一节讨论的[[反向传导算法]]。因为反向传导算法可以延伸应用到任意多层,所以事实上它对任意多层的自动编码机都适用。
幸运的是,实现微调多层自动编码机的所有工具齐备。为了在每次迭代中对所有的层计算梯度,需要使用稀疏自编码一节讨论的[[反向传导算法]]。因为反向传导算法可以延伸应用到任意多层,所以事实上它对任意多层的自动编码机都适用。
-
【一审】:
+
【一审】:一般策略
 +
 
 +
幸运的是,实现微调多层自动编码机的所有工具都已齐备。为了在每次迭代中对所有的层计算梯度,需要使用稀疏自动编码一节讨论的[[反向传导算法]]。因为反向传导算法可以延伸应用到任意多层,所以事实上它对任意多层的自动编码机都适用。
 +
 
=== Finetuning with Backpropagation ===
=== Finetuning with Backpropagation ===
Line 42: Line 47:
为方便使用,以下简要描述了反向传导算法的使用:
为方便使用,以下简要描述了反向传导算法的使用:
-
【一审】:
+
【一审】:使用反向传导微调
 +
为方便读者,以下我们简要描述如何实施反向传导算法:
Line 55: Line 61:
【一审】:
【一审】:
 +
 +
: 1. 进行一次前馈传递,对 <math>\textstyle L_2</math> 层、 <math>\textstyle L_3</math> 层直到输出层 <math>\textstyle L_{n_l}</math>,使用正向传导步骤中定义的公式计算各层上的激励响应。
Line 76: Line 84:
【一审】:
【一审】:
 +
 +
: 2. 对输出层(<math>\textstyle n_l</math> 层),令
 +
::<math>\begin{align}
 +
\delta^{(n_l)}
 +
= - (\nabla_{a^{n_l}}J) \bullet f'(z^{(n_l)})
 +
\end{align}</math>
 +
::(当使用softmax分类器时,softmax层满足:<math>\nabla J = \theta^T(I-P)</math>,其中 <math>I</math> 为输入数据对应的类别标签,<math>P</math> 为条件概率向量。)
Line 95: Line 110:
【一审】:
【一审】:
 +
 +
: 3. 对 <math>\textstyle l = n_l-1, n_l-2, n_l-3, \ldots, 2</math>
 +
::令
 +
:::<math>\begin{align}
 +
                \delta^{(l)} = \left((W^{(l)})^T \delta^{(l+1)}\right) \bullet f'(z^{(l)})
 +
                \end{align}</math>
Line 124: Line 145:
【一审】:
【一审】:
 +
 +
: 4. 计算所需的偏导数:
 +
::<math>\begin{align}
 +
\nabla_{W^{(l)}} J(W,b;x,y) &= \delta^{(l+1)} (a^{(l)})^T, \\
 +
\nabla_{b^{(l)}} J(W,b;x,y) &= \delta^{(l+1)}.
 +
\end{align}</math>
 +
 +
:<math>\begin{align}
 +
J(W,b)
 +
&= \left[ \frac{1}{m} \sum_{i=1}^m J(W,b;x^{(i)},y^{(i)}) \right]
 +
\end{align}</math>
Line 135: Line 167:
{{Quote|
{{Quote|
-
注:softmax分类器可以被认为是附加的一层,但是以上推导中并非如此。具体地说,网络“最后一层”地特征会进入softmax分类器。所以,第二步中的导数由 <math>\delta^{(n_l)} = - (\nabla_{a^{n_l}}J) \bullet f'(z^{(n_l)})</math> 计算,其中 <math>\nabla J = \theta^T(I-P)</math>。
+
注:softmax分类器可以被认为是附加的一层,但是以上推导中并非如此。具体地说,网络“最后一层”的特征会进入softmax分类器。所以,第二步中的导数由 <math>\delta^{(n_l)} = - (\nabla_{a^{n_l}}J) \bullet f'(z^{(n_l)})</math> 计算,其中 <math>\nabla J = \theta^T(I-P)</math>。
}}
}}
【一审】:
【一审】:
 +
 +
 +
{{Quote|
 +
注:输出层softmax分类器可以被认为是附加的一层,但是其推导需要分别处理。具体地说,网络“最后一层”的特征会进入softmax分类器。所以,第二步中的导数由 <math>\delta^{(n_l)} = - (\nabla_{a^{n_l}}J) \bullet f'(z^{(n_l)})</math> 计算,其中 <math>\nabla J = \theta^T(I-P)</math>。
 +
}}

Revision as of 18:54, 9 March 2013

Personal tools