可视化自编码器训练结果

From Ufldl

Jump to: navigation, search
(中英文对照)
 
Line 1: Line 1:
-
:【原文】:
 
-
:Having trained a (sparse) autoencoder, we would now like to visualize the function learned by the algorithm, to try to understand what it has learned. Consider the case of training an autoencoder on <math>\textstyle 10 \times 10</math> images, so that <math>\textstyle n = 100</math>. Each hidden unit <math>\textstyle i</math> computes a function of the input:
 
-
:【初译】:
 
-
得到了训练好的(稀疏)自编码器,我们就可以将通过算法习得的函数进行可视化,以便于了解学习的结果。我们以使用10×10的图像来训练自编码器为例,此时n=100。针对每个隐藏单元i,将输入值代入以下方程:
 
-
:【一校】:
 
-
在得到了已经训练好的(稀疏)自编码器之后,我们希望可以将通过学习算法得到的函数进行可视化处理,以便于了解学习的结果。对于可视化过程,我们以一个通过对10×10的图像进行训练而得到的自编码器为例来进行说明,此例中n=100。在该自编码器中,每个隐藏单元i将输入代入到以下函数进行计算:
 
-
:【二校】:
 
-
我们得到训练好的(稀疏)自编码器后,希望通过可视化学习算法习得的函数,理解学习结果。考虑在10×10的图像上训练自编码器的例子,n=100。在该自编码器中,每个隐藏单元i将输入代入到以下函数进行计算:
 
-
:【三校】:
 
训练完(稀疏)自编码器,我们还想把这自编码器学到的函数可视化出来,好弄明白它到底学到了什么。我们以在10×10图像(即n=100)上训练自编码器为例。在该自编码器中,每个隐藏单元i对如下关于输入的函数进行计算:
训练完(稀疏)自编码器,我们还想把这自编码器学到的函数可视化出来,好弄明白它到底学到了什么。我们以在10×10图像(即n=100)上训练自编码器为例。在该自编码器中,每个隐藏单元i对如下关于输入的函数进行计算:
:<math>\begin{align}
:<math>\begin{align}
Line 13: Line 4:
\end{align}</math>
\end{align}</math>
<!-- This is the activation function <math>\textstyle g(\cdot)</math> applied to an affine function of the input.!-->
<!-- This is the activation function <math>\textstyle g(\cdot)</math> applied to an affine function of the input.!-->
-
:【原文】:
+
 
-
We will visualize the function computed by hidden unit  ---which depends on the parameters  (ignoring the bias term for now)---using a 2D image. In particular, we think of  as some non-linear feature of the input  . We ask: What input image  would cause    to be maximally activated? (Less formally, what is the feature that hidden unit  is looking for?) For this question to have a non-trivial answer, we must impose some constraints on  . If we suppose that the input is norm constrained by  , then one can show (try doing this yourself) that the input which maximally activates hidden unit  is given by setting pixel  (for all 100 pixels,  ) to
+
我们将要可视化的函数,就是上面这个以2D图像为输入、并由隐藏单元i计算出来的函数。它是依赖于参数<math>\textstyle W^{(1)}_{ij}</math>的(暂时忽略偏置项<math>b_i</math>)。需要注意的是,<math>\textstyle a^{(2)}_i</math>可看作输入<math>\textstyle x</math>的非线性特征。不过还有个问题:什么样的输入图像<math>\textstyle x</math>可让<math>\textstyle a^{(2)}_i</math>得到最大程度的激励?(通俗一点说,隐藏单元<math>\textstyle i</math>要找个什么样的特征?)。这里我们必须给<math>\textstyle x</math>加约束,否则会得到平凡解。若假设输入有范数约束<math>\textstyle ||x||^2 = \sum_{i=1}^{100} x_i^2 \leq 1</math>,则可证(请读者自行推导)令隐藏单元<math>\textstyle i</math>得到最大激励的输入应由下面公式计算的像素<math>\textstyle x_j</math>给出(共需计算100个像素,j=1,…,100):
-
【初译】:
+
:<math>\begin{align}
-
我们将用2D图像对这个由隐藏单元i计算出的函数进行可视化,这个函数依赖于参数 (忽略掉偏置项b_i)。此时,如果我们将 理解为输入向量 的某个非线性特征值,我们需要思考:什么样的输入图像 会使得激励 取得最大值?(也就是说,隐藏单元i找到的是一个什么样的特征值?)。因为这个问题需要有一个有实际意义的解,所以我们必须对 加以限制。我们采用输入向量长度的平方 进行归一化限制,于是可以得到(请读者尝试自行推导。),当输入对隐藏单元产生最大的激励时,其输入像素 (对所有100个输入像素,j=1,…,100)所取的值应为:
+
x_j = \frac{W^{(1)}_{ij}}{\sqrt{\sum_{j=1}^{100} (W^{(1)}_{ij})^2}}.
-
【一校】:
+
\end{align}</math>
-
接着我们将使用一个2D图像对这个由隐藏单元i负责计算的函数进行可视化,注意该函数依赖于参数集 (暂时忽略偏差项b_i)。如果再具体一些,我们可以将 理解为输入向量 的某个非线性特征。然后我们便想问:什么样的输入图像 会最大程度上激励 ?(通俗一点的说法是隐藏单元i需要找到的是一个什么样的特征?)。为了使这个问题有一个有实际意义的解释,我们必须对 加以限制。如果假设输入向量符合 的范式限制,那么我们可以知道(请读者尝试自行推导。),当输入向量 对隐藏单元产生最大程度的激励时, 在2D图像中所对应的像素(对应的像素总共有100个,j=1,…,100)所取的值应为:
+
 
-
【二校】:
+
当我们用上式算出各像素的值、把它们组成一幅图像、并将图像呈现在我们面前之时,隐藏单元<math>\textstyle i</math>所追寻特征的真正含义也渐渐明朗起来。
-
接着我们使用一个2D图像对这个由隐藏单元i负责计算的函数进行可视化,该函数依赖于参数集 (暂时忽略偏差项b_i)。更具体些,我们可以将 理解为输入向量 的某个非线性特征。然后我们便想问:什么样的输入图像 会使 得到最大程度的激励?(说通俗点,隐藏单元i需要找到的是一个什么样的特征?)。为了使这个问题有一个有实际意义的解释,我们必须对 加以限制。如果假设输入向量符合 的范式限制,那么我们可以知道(请读者尝试自行推导。),当输入向量 对隐藏单元产生最大程度的激励时, 在2D图像中所对应的像素(对应的像素总共有100个,j=1,…,100)所取的值应为:
+
 
-
【三校】:
+
-
我们将要可视化的函数,就是上面这个以2D图像为输入、并由隐藏单元i计算出来的函数。它是依赖于参数  的(暂时忽略偏置项b_i)。需要注意的是, 可看作输入 的非线性特征。不过还有个问题:什么样的输入图像 可让 得到最大程度的激励?(通俗一点说,隐藏单元i要找个什么样的特征?)。这里我们必须给 加约束,否则会得到平凡解。若假设输入有范数约束 ,则可证(请读者自行推导)令隐藏单元i得到最大激励的输入应由下面公式计算的像素给出(共需计算100个像素,j=1,…,100):
+
-
【三校说明】:
+
-
原文第一句有“using a 2D image”,我这里译为“以2D图像为输入”,一则表达意思相同,二则与上一段最后一句呼应。
+
-
原文中的“in particular”,应为强调之意。
+
-
原文“as some non-linear feature”中的“some”,似不译为好。非线性特征当然可以有很多,而这里计算出来的当然也只是其中一种,其意不言自明。
+
-
 
+
-
【原文】:
+
-
By displaying the image formed by these pixel intensity values, we can begin to understand what feature hidden unit  is looking for.
+
-
【初译】:
+
-
用求得的输入像素的值作为图像的亮度进行显示,我们就可以了解到隐藏单元i要寻找的特征值是什么样子了。
+
-
【一校】:
+
-
当我们用上式所得到的像素值构成我们所需要的2D图像,就可以了解到隐藏单元i要寻找的特征是什么样子了。
+
-
【二校】:
+
-
当我们用上式所得到的像素值构成我们所需要的2D图像,就可以了解到隐藏单元i要寻找的特征是什么样子了。
+
-
【三校】:
+
-
当我们用上式算出各像素的值、把它们组成一幅图像、并将图像呈现在我们面前之时,隐藏单元i所追寻特征的真正含义也渐渐明朗起来。
+
-
【原文】:
+
-
If we have an autoencoder with 100 hidden units (say), then we our visualization will have 100 such images---one per hidden unit. By examining these 100 images, we can try to understand what the ensemble of hidden units is learning.
+
-
【初译】:
+
-
假设我们训练了一个拥有100个隐藏单元的自编码器,那么我们的可视化结果应该包含100幅这样的图像——每个隐藏单元对应一幅。通过观察这100幅图像,我们可以了解到隐藏单元学习的总体效果。
+
-
【一校】:
+
-
假设我们训练了一个拥有100个隐藏单元的自编码器,那么我们的可视化结果应该包含100幅这样的图像——每个隐藏单元对应一幅图像。通过观察这100幅图像,我们可以了解到隐藏单元学习的总体效果。
+
-
【二校】:
+
-
假设我们训练了一个拥有100个隐藏单元的自编码器,那么我们的可视化结果应该包含100幅这样的图像——每个隐藏单元对应一幅。通过观察这100幅图像,我们可以了解到隐藏单元学习的总体效果。
+
-
【三校】:
+
假如我们训练的自编码器有100个隐藏单元,可视化结果就会包含100幅这样的图像——每个隐藏单元都对应一幅图像。审视这100幅图像,我们可以试着体会这些隐藏单元学出来的整体效果是什么样的。
假如我们训练的自编码器有100个隐藏单元,可视化结果就会包含100幅这样的图像——每个隐藏单元都对应一幅图像。审视这100幅图像,我们可以试着体会这些隐藏单元学出来的整体效果是什么样的。
-
【原文】:
+
 
-
When we do this for a sparse autoencoder (trained with 100 hidden units on 10x10 pixel inputs1 we get the following result:
+
 
-
【初译】:
+
-
当我们对一个稀疏自编码器(使用10×10的像素输入对100个隐藏单元进行训练,注1)进行以上的可视化处理后,得到了如下的结果:
+
-
【一校】:
+
-
当我们对一个稀疏自编码器(使用100个隐藏单元对像素分辨率为10X10的输入进行训练,注1)进行以上的可视化处理后,得到了如下的结果:
+
-
【二校】:
+
-
当我们对一个稀疏自编码器(使用100个隐藏单元对像素分辨率为10X10的输入进行训练,注1)进行以上的可视化处理后,得到了如下的结果:
+
-
【三校】:
+
当我们对稀疏自编码器(100个隐藏单元,在10X10像素的输入上训练 )进行上述可视化处理之后,结果如下所示:
当我们对稀疏自编码器(100个隐藏单元,在10X10像素的输入上训练 )进行上述可视化处理之后,结果如下所示:
-
【三校说明】:
+
 
-
“一个稀疏自编码器”中的“一个”不必译出来。当然是一个,还能是几个?
+
[[Image:ExampleSparseAutoencoderWeights.png|thumb|400px|center]]
-
+
 
-
【原文】:
+
上图的每个小方块都给出了一个(带有有界范数 的)输入图像<math>\textstyle x</math>,它可使这100个隐藏单元中的某一个获得最大激励。我们可以看到,不同的隐藏单元学会了在图像的不同位置和方向进行边缘检测。
-
Each square in the figure above shows the (norm bounded) input image  that maximally actives one of 100 hidden units. We see that the different hidden units have learned to detect edges at different positions and orientations in the image.
+
 
-
【初译】:
+
-
上图中每一个方格表示使这个方格对应的隐藏单元得到最大激励的输入图像x(经过归一化)。我们可以看到,不同的隐藏单元学会了在图像的不同位置和方向想进行边缘检测。
+
-
【一校】:
+
-
上图中每一个方格表示使这个方格对应的隐藏单元得到最大激励的输入图像x(图像均符合我们之前的规范假设)。我们可以看到,不同的隐藏单元学会了如何在图像的不同位置和方向进行边缘检测。
+
-
【二校】:
+
-
上图中每一个方格表示使这个方格对应的隐藏单元得到最大激励的输入图像x(规范假设)。我们可以看到,不同的隐藏单元学会了如何在图像的不同位置和方向进行边缘检测。
+
-
【三校】:
+
-
上图的每个小方块都给出了一个(带有有界范数 的)输入图像x,它可使这100个隐藏单元中的某一个获得最大激励。我们可以看到,不同的隐藏单元学会了在图像的不同位置和方向进行边缘检测。
+
-
【三校说明】:
+
-
我想这里不宜用“对应”,因为图中小方块是10x10方阵排列的,但隐藏单元不是。怎么对应?逐行对应还是逐列?这都是未知的。因此为严谨起见,还是改为“某一个”较好。
+
-
【原文】:
+
-
These features are, not surprisingly, useful for such tasks as object recognition and other vision tasks. When applied to other input domains (such as audio), this algorithm also learns useful representations/features for those domains too.
+
-
【初译】:
+
-
我们理所当然的可以想到,这些特性对于如同物体识别或其他计算机视觉任务是十分有用的。当将其用于其他输入域(例如音频),这个算法也可以学习到针对这个输入域有用的特征值。
+
-
【一校】:
+
-
我们理所当然的可以想到,这些特性对于诸如对象识别或其他计算机视觉方面的任务是十分有用的。当将其应用于其他输入域(例如音频),这个算法也可以学习到针对这个输入域有用的特征。
+
-
【二校】:
+
-
我们理所当然的可以想到,这些特性对于诸如对象识别或其他计算机视觉任务是有用的。当将其应用于其他输入域(例如音频),这个算法也可以学习到针对这个输入域有用的特征。
+
-
【三校】:
+
显而易见,这些特征对物体识别等计算机视觉任务是十分有用的。若将其用于其他输入域(如音频),该算法也可学到对这些输入域有用的表示或特征。
显而易见,这些特征对物体识别等计算机视觉任务是十分有用的。若将其用于其他输入域(如音频),该算法也可学到对这些输入域有用的表示或特征。
-
【专业术语对照表】:
+
 
-
为了在后期校对时,使前后章节专业术语翻译统一,在此将本章中专业术语翻译的中英文对照总结到下表,以便统一修改,或用于后期专业名词附录。以下专业术语在文章中以蓝色标出。
+
==中英文对照==
-
(稀疏)自编码器 (sparse) autoencoder
+
 
-
隐藏单元 hidden unit
+
:可视化 Visualizing
-
偏置项 bias term
+
:自编码器 Autoencoder
-
激励 activate
+
:隐藏单元 hidden unit
-
范数约束 norm constrained
+
:非线性特征 non-linear feature
-
白化 whitening
+
:激励 activate
-
【三校说明】:
+
:平凡解 trivial answer
-
这里的“偏置项”和“范数约束”,我想都应是习惯用法吧。“白化”的译法是和系列中同名教程相统一的。
+
:范数约束 norm constrained
 +
:稀疏自编码器 sparse autoencoder
 +
:有界范数 norm bounded
 +
:输入域 input domains
 +
 
 +
==中文译者==
 +
 
 +
王方(fangkey@gmail.com),胡伦(hulun499@gmail.com),谢宇(msforbus@sina.com),@小琳爱肉肉(新浪微博账号), 余凯(kai.yu.cool@gmail.com)
 +
 
 +
 
 +
{{稀疏自编码器}}
 +
 
 +
 
 +
 
 +
{{Languages|Visualizing_a_Trained_Autoencoder|English}}

Latest revision as of 15:50, 7 May 2013

Personal tools