微调多层自编码算法

From Ufldl

Jump to: navigation, search
 
Line 1: Line 1:
-
初译:@太二真人
+
==介绍==
 +
微调是深度学习中的常用策略,可以大幅提升一个栈式自编码神经网络的性能表现。从更高的视角来讲,微调将栈式自编码神经网络的所有层视为一个模型,这样在每次迭代中,网络中所有的权重值都可以被优化。
-
一审:@余凯_西二旗民工
+
==一般策略==
-
二审:
+
幸运的是,实施微调栈式自编码神经网络所需的工具都已齐备!为了在每次迭代中计算所有层的梯度,我们需要使用稀疏自动编码一节中讨论的[[反向传播算法]]。因为反向传播算法可以延伸应用到任意多层,所以事实上,该算法对任意多层的栈式自编码神经网络都适用。
-
录入:@太二真人
+
==使用反向传播法进行微调==
-
=== Introduction ===
+
为方便读者,以下我们简要描述如何实施反向传播算法:
-
【原文】:
 
-
Fine tuning is a strategy that is commonly found in deep learning. As such, it can also be used to greatly improve the performance of a stacked autoencoder. From a high level perspective, fine tuning treats all layers of a stacked autoencoder as a single model, so that in one iteration, we are improving upon all the weights in the stacked autoencoder.
+
: 1. 进行一次前馈传递,对 <math>\textstyle L_2</math> 层、<math>\textstyle L_3</math> 层直到输出层 <math>\textstyle L_{n_l}</math>,使用前向传播步骤中定义的公式计算各层上的激活值(激励响应)。
-
【初译】:简介
 
-
 
-
微调是深度学习中的常用策略,可以大幅提升多层自动编码机的性能表现。从更高视角来说,微调将多层自动编码机的所有层视为一个模型,这样在每次迭代中,它所有权重值都可以被充分利用。
 
-
 
-
【一审】:简介
 
-
 
-
微调是深度学习中的常用策略,可以大幅提升多层自动编码机的性能表现。从更高级视角来说,微调将多层自动编码机的所有层视为一个模型,这样在每次迭代中,它所有权重值都可以被优化。
 
-
 
-
 
-
=== General Strategy ===
 
-
 
-
【原文】:
 
-
 
-
Fortunately, we already have all the tools necessary to implement fine tuning for stacked autoencoders! In order to compute the gradients for all the layers of the stacked autoencoder in each iteration, we use the [[Backpropagation Algorithm]], as discussed in the sparse autoencoder section. As the backpropagation algorithm can be extended to apply for an arbitrary number of layers, we can actually use this algorithm on a stacked autoencoder of arbitrary depth.
 
-
 
-
【初译】:一般策略
 
-
 
-
幸运的是,实现微调多层自动编码机的所有工具齐备。为了在每次迭代中对所有的层计算梯度,需要使用稀疏自编码一节讨论的[[反向传导算法]]。因为反向传导算法可以延伸应用到任意多层,所以事实上它对任意多层的自动编码机都适用。
 
-
 
-
【一审】:一般策略
 
-
 
-
幸运的是,实现微调多层自动编码机的所有工具都已齐备。为了在每次迭代中对所有的层计算梯度,需要使用稀疏自动编码一节讨论的[[反向传导算法]]。因为反向传导算法可以延伸应用到任意多层,所以事实上它对任意多层的自动编码机都适用。
 
-
 
-
 
-
=== Finetuning with Backpropagation ===
 
-
 
-
【原文】:
 
-
 
-
For your convenience, the summary of the backpropagation algorithm using element wise notation is below:
 
-
 
-
【初译】:使用反向传导微调
 
-
 
-
为方便使用,以下简要描述了反向传导算法的使用:
 
-
 
-
【一审】:使用反向传导微调
 
-
 
-
为方便读者,以下我们简要描述如何实施反向传导算法:
 
-
 
-
 
-
【原文】:
 
-
 
-
: 1. Perform a feedforward pass, computing the activations for layers <math>\textstyle L_2</math>, <math>\textstyle L_3</math>, up to the output layer <math>\textstyle L_{n_l}</math>, using the equations defining the forward propagation steps.
 
-
 
-
【初译】:
 
-
 
-
: 1. 进行一次前馈传递,对 <math>\textstyle L_2</math> 层、 <math>\textstyle L_3</math> 层直到输出层 <math>\textstyle L_{n_l}</math>,使用正向传导步骤中定义的公式计算各层上的激励。
 
-
 
-
【一审】:
 
-
 
-
: 1. 进行一次前馈传递,对 <math>\textstyle L_2</math> 层、 <math>\textstyle L_3</math> 层直到输出层 <math>\textstyle L_{n_l}</math>,使用正向传导步骤中定义的公式计算各层上的激励响应。
 
-
 
-
 
-
【原文】:
 
-
 
-
: 2. For the output layer (layer <math>\textstyle n_l</math>), set
 
-
::<math>\begin{align}
 
-
\delta^{(n_l)}
 
-
= - (\nabla_{a^{n_l}}J) \bullet f'(z^{(n_l)})
 
-
\end{align}</math>
 
-
::(When using softmax regression, the softmax layer has <math>\nabla J = \theta^T(I-P)</math> where <math>I</math> is the input labels and <math>P</math> is the vector of conditional probabilities.)
 
-
 
-
【初译】:
 
: 2. 对输出层(<math>\textstyle n_l</math> 层),令
: 2. 对输出层(<math>\textstyle n_l</math> 层),令
Line 81: Line 19:
= - (\nabla_{a^{n_l}}J) \bullet f'(z^{(n_l)})
= - (\nabla_{a^{n_l}}J) \bullet f'(z^{(n_l)})
\end{align}</math>
\end{align}</math>
-
::(当使用softmax回归时,softmax层满足:<math>\nabla J = \theta^T(I-P)</math>,其中 <math>I</math> 为输入标签,<math>P</math> 为条件概率向量。)
 
-
【一审】:
+
::(当使用softmax分类器时,softmax层满足:<math>\nabla J = \theta^T(I-P)</math>,其中 <math>\textstyle I</math> 为输入数据对应的类别标签,<math>\textstyle P</math> 为条件概率向量。)
-
: 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> 为条件概率向量。)
 
-
 
-
 
-
【原文】:
 
-
 
-
: 3. For <math>\textstyle l = n_l-1, n_l-2, n_l-3, \ldots, 2</math>
 
-
::Set
 
-
:::<math>\begin{align}
 
-
                \delta^{(l)} = \left((W^{(l)})^T \delta^{(l+1)}\right) \bullet f'(z^{(l)})
 
-
                \end{align}</math>
 
-
 
-
【初译】:
 
: 3. 对 <math>\textstyle l = n_l-1, n_l-2, n_l-3, \ldots, 2</math>  
: 3. 对 <math>\textstyle l = n_l-1, n_l-2, n_l-3, \ldots, 2</math>  
Line 109: Line 29:
                 \end{align}</math>
                 \end{align}</math>
-
【一审】:
 
-
: 3. 对 <math>\textstyle l = n_l-1, n_l-2, n_l-3, \ldots, 2</math>
+
: 4. 计算所需的偏导数:
-
::令
+
-
:::<math>\begin{align}
+
-
                \delta^{(l)} = \left((W^{(l)})^T \delta^{(l+1)}\right) \bullet f'(z^{(l)})
+
-
                \end{align}</math>
+
-
 
+
-
 
+
-
【原文】:
+
-
 
+
-
: 4. Compute the desired partial derivatives:
+
::<math>\begin{align}
::<math>\begin{align}
\nabla_{W^{(l)}} J(W,b;x,y) &= \delta^{(l+1)} (a^{(l)})^T, \\
\nabla_{W^{(l)}} J(W,b;x,y) &= \delta^{(l+1)} (a^{(l)})^T, \\
Line 131: Line 41:
\end{align}</math>
\end{align}</math>
-
【初译】:
 
-
: 4. 计算所需的偏导数:
+
{{Quote|
-
::<math>\begin{align}
+
注:我们可以认为输出层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>
-
\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>
 
-
【一审】:
+
==中英文对照==
-
: 4. 计算所需的偏导数:
+
:栈式自编码神经网络(可以考虑翻译为“多层自动编码机”或“多层自动编码神经网络”)    Stacked autoencoder
-
::<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}
+
:微调    Fine tuning
-
J(W,b)
+
-
&= \left[ \frac{1}{m} \sum_{i=1}^m J(W,b;x^{(i)},y^{(i)}) \right]
+
-
\end{align}</math>
+
 +
:反向传播算法    Backpropagation Algorithm
-
【原文】:
+
:前馈传递    feedforward pass
-
{{Quote|
+
:激活值 (可以考虑翻译为“激励响应”或“响应”)    activation
-
Note: While one could consider the softmax classifier as an additional layer, the derivation above does not. Specifically, we consider the "last layer" of the network to be the features that goes into the softmax classifier. Therefore, the derivatives (in Step 2) are computed using <math>\delta^{(n_l)} = - (\nabla_{a^{n_l}}J) \bullet f'(z^{(n_l)})</math>, where  <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>。
+
-
}}
+
-
【一审】:
+
崔巍(watsoncui@gmail.com), 余凯(kai.yu.cool@gmail.com), 许利杰(csxulijie@gmail.com)
-
{{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>。
+
 
-
}}
+
 
 +
{{Languages|Fine-tuning_Stacked_AEs|English}}

Latest revision as of 05:16, 8 April 2013

Personal tools