From 33a455e7c65b978ad620d0c4031ed992009b82c9 Mon Sep 17 00:00:00 2001 From: futianfan Date: Thu, 5 Jan 2017 18:57:07 +0800 Subject: [PATCH 1/3] adjust 19.2 19.3 Former-commit-id: ef72e61f626580817f52397a3ff5cbd010098fc6 --- Chapter19/approximate_inference.tex | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Chapter19/approximate_inference.tex b/Chapter19/approximate_inference.tex index c40a045..f811610 100644 --- a/Chapter19/approximate_inference.tex +++ b/Chapter19/approximate_inference.tex @@ -165,7 +165,7 @@ \section{\glsentrytext{EM}} 这种解释并不仅仅适用于\glssymbol{EM}算法。 比如说,使用\gls{GD}来最大化似然函数的对数这种方法也利用了相同的性质。 计算对数似然函数的梯度需要对隐含节点的后验分布来求期望。 -\glssymbol{EM}算法的另一个关键的性质是当我们移动到另一个$\Vtheta$时候,我们仍然可以使用旧的$q$。 +\glssymbol{EM}算法另一个关键的性质是当我们移动到另一个$\Vtheta$时候,我们仍然可以使用旧的$q$。 在传统\gls{ML}中,这种特有的性质在推导M步更新时候得到了广泛的应用。 在\gls{DL}中,大多数模型太过于复杂以致于在M步中很难得到一个最优解。 所以\glssymbol{EM}算法的第二个特质较少被使用。 @@ -207,7 +207,7 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}} q(\Vh\mid\Vv) = \delta(\Vh - {\Vmu}). \end{align} 这也意味着我们可以通过$\Vmu$来完全控制$q$。 -通过将$\CalL$中不随$\Vmu$变化的项丢弃,剩下的我们遇到的是一个优化问题: +通过将$\CalL$中不随$\Vmu$变化的项丢弃,剩下的我们遇到的是一个优化问题: \begin{align} \Vmu^* = \underset{\Vmu}{\arg\max}\ \log p(\Vh = \Vmu,\Vv). \end{align} @@ -221,8 +221,8 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}} 因此我们能够解释一种类似于\glssymbol{EM}算法的学习算法,其中我们轮流迭代两步,一步是用\gls{MAP}推断估计出$\Vh^*$,另一步是更新$\Vtheta$来增大$\log p(\Vh^*,\Vv)$。 -从\glssymbol{EM}算法角度看,这也是一种形式的对$\CalL$的坐标上升,\glssymbol{EM}算法的坐标上升中,交替迭代的时候通过推断来优化$\CalL$关于$q$以及通过参数更新来优化$\CalL$关于$\Vtheta$。 -整体上说,这个算法的正确性可以被保证因为$\CalL$是$\log p(\Vv)$的下界。 +从\glssymbol{EM}算法角度看,这也是一种形式的对$\CalL$的\gls{coordinate_ascent},\glssymbol{EM}算法的\gls{coordinate_ascent}中,交替迭代的时候通过推断来优化$\CalL$关于$q$以及通过参数更新来优化$\CalL$关于$\Vtheta$。 +整体上说,这个算法的正确性可以得到保证,因为$\CalL$是$\log p(\Vv)$的下界。 在\gls{MAP}推断中,这个保证是无效的,因为这个界会无限的松,由于\gls{dirac_distribution}的熵的微分趋近于负无穷。 然而,人为加入一些$\Vmu$的噪声会使得这个界又有了意义。 % 628 @@ -237,7 +237,7 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}} 我们回过头来看\secref{sec:sparse_coding}中的\gls{sparse_coding},\gls{sparse_coding}是一种在隐含节点上加上了鼓励稀疏的先验知识的\gls{linear_factor}。 一个常用的选择是可分解的拉普拉斯先验,表示为 \begin{align} - p(h_i) = \frac{\lambda}{2} \exp(-\lambda\mid h_i\mid). + p(h_i) = \frac{\lambda}{2} \exp(-\lambda \vert h_i \vert). \end{align} 可见的节点是由一个线性变化加上噪音生成的\footnote{此处似乎有笔误,$\Vx$应为$\Vv$}: \begin{align} @@ -252,7 +252,7 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}} 每一对$h_i$, $h_j$变量都是$\Vv$的母节点。 这也意味着当$\Vv$是可观察时,\gls{graphical_models}包含了连接$h_i$和$h_j$的路径。 因此在$p(\Vh \mid\Vv)$中所有的隐含节点都包含在了一个巨大的\gls{clique}中。 -如果模型是高斯的,那么这些关系可以通过协方差矩阵来高效的建模。 +如果模型是高斯,那么这些关系可以通过协方差矩阵来高效地建模。 然而稀疏型先验使得模型并不是高斯。 % 629 head @@ -264,11 +264,11 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}} % 629 -如果我们将训练集中的所有的$\Vh$向量拼在一起并且记为$\MH$,并将所有的$\Vv$向量拼起来组成矩阵$\MV$,那么\gls{sparse_coding}问题意味着最小化 +如果我们将训练集中所有的$\Vh$向量拼在一起并且记为$\MH$,并将所有的$\Vv$向量拼起来组成矩阵$\MV$,那么\gls{sparse_coding}问题意味着最小化 \begin{align} J(\MH,\MW) = \sum_{i,j}^{}\vert H_{i,j}\vert + \sum_{i,j}^{}\Big(\MV - \MH \MW^{\top}\Big)^2_{i,j}. \end{align} -为了避免如极端小的$\MH$和极端大的$\MW$这样的病态的解,许多\gls{sparse_coding}的应用包含了权值衰减或者$\MH$的列的范数的限制。 +为了避免如极端小的$\MH$和极端大的$\MW$这样的病态的解,许多\gls{sparse_coding}的应用包含了权值衰减或者对$\MH$列的范数的限制。 % 629 @@ -288,7 +288,7 @@ \section{变分推断和学习} % 629 -我们已经说明过了为什么\glssymbol{ELBO}是$\log p(\Vv;\Vtheta)$的一个下界, 如何将推断看做是 关于$q$分布最大化$\CalL$ 的过程以及如何将学习看做是关于参数$\Vtheta$最大化$\CalL$的过程。 +我们已经说明过了为什么\gls{ELBO}是$\log p(\Vv;\Vtheta)$的一个下界, 如何将推断看做是 关于$q$分布最大化$\CalL$ 的过程以及如何将学习看做是关于参数$\Vtheta$最大化$\CalL$的过程。 我们也讲到了\glssymbol{EM}算法在给定了$q$分布的条件下进行学习,而\glssymbol{MAP}推断的算法则是学习一个$p(\Vh \mid \Vv)$的点估计而非推断整个完整的分布。 在这里我们介绍一些变分学习中更加通用的算法。 % 629 @@ -445,7 +445,7 @@ \subsection{离散\gls{latent_variable}} % 633 end -\glssymbol{ELBO}可以表示为 +\gls{ELBO}可以表示为 \begin{align} \label{eqn:1936} & \CalL(\Vv,\Vtheta,q)\\ @@ -462,7 +462,7 @@ \subsection{离散\gls{latent_variable}} 尽管从美学观点这些方程有些不尽如人意。 他们展示了$\CalL$可以被表示为少数的简单的代数运算。 -因此\glssymbol{ELBO}是易于处理的。 +因此\gls{ELBO}是易于处理的。 我们可以把$\CalL$看作是难以处理的似然函数的对数。 % 634 head From 2befafdb7b415e128b2a2a4591b7e8d7efb5ebae Mon Sep 17 00:00:00 2001 From: liber145 Date: Thu, 5 Jan 2017 17:01:54 -0500 Subject: [PATCH 2/3] fix sentence Former-commit-id: 70e924cfe3bf6b3790dbfb31ec299aaab35039ec --- Chapter15/representation_learning.tex | 239 +++++++++--------- .../confronting_the_partition_function.tex | 188 +++++++------- Chapter2/linear_algebra.tex | 6 +- .../optimization_for_training_deep_models.tex | 8 +- acknowledgments_github.md | 4 + terminology.tex | 10 +- 6 files changed, 230 insertions(+), 225 deletions(-) diff --git a/Chapter15/representation_learning.tex b/Chapter15/representation_learning.tex index d1f604e..5a15145 100644 --- a/Chapter15/representation_learning.tex +++ b/Chapter15/representation_learning.tex @@ -373,21 +373,21 @@ \section{\glsentrytext{transfer_learning}和\glsentrytext{domain_adaption}} \section{\glsentrytext{semi_supervised}解释因果关系} \label{sec:semi_supervised_disentangling_of_causal_factors} -关于\gls{representation_learning}的一个重要问题是``什么使一个表示比另一个更好?'' -一种假设是,理想表示中的特征对应到观测数据的根本原因,特征空间中不同的特征或方向对应着不同的原因,从而表示能够将这些原因区分开。 -这个假设激励我们去寻找比较好地表示$p(\Vx)$的方法。 -如果$\Vy$是产生$\Vx$的重要原因之一,那么这种表示也可能是计算$p(\Vy \mid \Vx)$的一种良好表示。 +\gls{representation_learning}的一个重要问题是``什么原因能够使一个表示比另一个表示更好?'' +一种假设是,理想表示中的特征对应到观测数据的根本成因,特征空间中不同的特征或方向对应着不同的原因,从而表示能够区分这些原因。 +这个假设激励我们去寻找表示$p(\Vx)$的更好方法。 +如果$\Vy$是$\Vx$的重要成因之一,那么这种表示也可能是计算$p(\Vy \mid \Vx)$的一种良好表示。 至少从20世纪90年代以来,这个想法已经指导了大量的\gls{DL}研究工作\citep{Becker92,hinton1999unsupervised}。 -关于\gls{semi_supervised_learning}可以超过纯\gls{supervised_learning}的其他论点,请读者\cite{Chapelle-2006}的\secref{sec:historical_trends_in_deep_learning}。 +关于\gls{semi_supervised_learning}可以超过纯\gls{supervised_learning}的其他论点,请读者参考\cite{Chapelle-2006}的\secref{sec:historical_trends_in_deep_learning}。 -在\gls{representation_learning}的其他方法中,我们经常关注易于建模的表示——例如,数据稀疏或是各项独立的情况。 -能够清楚地分离出潜在因果因素的表示可能并不易于建模。 -然而,该假设的一个更深层的激励\gls{semi_supervised_learning}使用无监督\gls{representation_learning}的原因是,对于很多人工智能任务而言,有两个相随的特点:一旦我们能够获得对观察的基本解释,将个体属性分离出来通常很容易。 -具体来说,如果表示$\Vh$表示观察值$\Vx$的很多根本因素,输出$\Vy$是最为重要的原因之一,那么从$\Vh$预测$\Vy$会很容易。 +在\gls{representation_learning}的其他方法中,我们大多关注易于建模的表示——例如,数据稀疏或是各项独立的情况。 +能够清楚地分离出潜在因素的表示可能并不易于建模。 +然而,该假设的激励\gls{semi_supervised_learning}使用无监督\gls{representation_learning}的一个更深层原因是,对于很多人工智能任务而言,有两个相随的特点:一旦我们能够获得观察结果基本成因的解释,那么将会很容易分离出个体属性。 +具体来说,如果表示向量$\Vh$表示观察值$\Vx$的很多根本因素,输出向量$\Vy$是最为重要的原因之一,那么从$\Vh$预测$\Vy$会很容易。 -首先,让我们看看$p(\RVx)$的\gls{unsupervised_learning}无助于学习$p(\RVy\mid\RVx)$时,\gls{semi_supervised_learning}是如何失败的。 +首先,让我们看看$p(\RVx)$的\gls{unsupervised_learning}无助于学习$p(\RVy\mid\RVx)$时,\gls{semi_supervised_learning}为何失败。 考虑一种情况,$p(\RVx)$是均匀分布的,我们希望学习$f(\Vx) = \SetE[\RVy \mid \Vx]$。 显然,仅仅观察训练集的值$\Vx$不能给我们关于$p(\RVy \mid \RVx)$的任何信息。 @@ -395,7 +395,7 @@ \section{\glsentrytext{semi_supervised}解释因果关系} 接下来,让我们看看\gls{semi_supervised_learning}成功的一个简单例子。 考虑这样的情况,$\RVx$来自一个混合分布,每个$\RVy$值具有一个混合分量,如\figref{fig:chap15_mixture_model}所示。 如果混合分量很好地分出来了,那么建模$p(\RVx)$可以精确地指出每个分量的方向,每个类一个标记样本的训练集足以精确学习$p(\RVy \mid \RVx)$。 -但是更一般地,什么能使$p(\RVy \mid \RVx)$和$p(\RVx)$关联在一起呢? +但是更一般地,什么能将$p(\RVy \mid \RVx)$和$p(\RVx)$关联在一起呢? \begin{figure}[!htb] \ifOpenSource @@ -407,11 +407,11 @@ \section{\glsentrytext{semi_supervised}解释因果关系} \label{fig:chap15_mixture_model} \end{figure} -如果$\RVy$与$\RVx$的因果因素之一非常相关,那么$p(\RVx)$和$p(\RVy \mid \RVx)$也会紧密关联,试图找到变化根本因素的无监督\gls{representation_learning}可能会有助于\gls{semi_supervised_learning}。 +如果$\RVy$与$\RVx$的成因之一非常相关,那么$p(\RVx)$和$p(\RVy \mid \RVx)$也会紧密关联,试图找到变化根本因素的无监督\gls{representation_learning}可能会有助于\gls{semi_supervised_learning}。 % -- 532 -- -假设$\RVy$是$\RVx$的因果因素之一,让$\RVh$代表所有的这些因素。 +假设$\RVy$是$\RVx$的成因之一,让$\RVh$代表所有这些成因。 真实的生成过程可以被认为是根据这个\gls{directed_graphical_model}结构化出来的,其中$\RVh$是$\RVx$的因素: \begin{equation} p(\RVh, \RVx) = p(\RVx \mid \RVh) p(\RVh). @@ -420,10 +420,10 @@ \section{\glsentrytext{semi_supervised}解释因果关系} \begin{equation} p(\Vx) = \SetE_{\RVh} p(\Vx \mid \Vh), \end{equation} -从这个直观的观察,我们得出结论,$\RVx$最好可能的模型(从广义的观点)是会表示上述``真实''结构的,其中$\Vh$作为隐变量解释$\Vx$中观察到的变动。 +从这个直观的观察,我们得出结论,$\RVx$最好可能的模型(从广义的观点)是会表示上述``真实''结构的,其中$\Vh$作为\gls{latent_variable}解释$\Vx$代表的观察变动。 上文讨论的``理想''的\gls{representation_learning}应该能够反映出这些隐变量。 如果$\RVy$是其中之一(或是紧密关联于其中之一),那么将很容易从这种表示中预测$\RVy$。 -我们也看到给定$\RVx$下$\RVy$的条件分布通过\gls{bayes_rule}关联到上式中的分量: +我们会看到给定$\RVx$下$\RVy$的条件分布通过\gls{bayes_rule}关联到上式中的分量: \begin{equation} p(\RVy \mid \RVx) = \frac{ p(\RVx \mid \RVy) p(\RVy) }{p(\RVx)}. \end{equation} @@ -431,26 +431,26 @@ \section{\glsentrytext{semi_supervised}解释因果关系} 因此,在这些假设情况下,\gls{semi_supervised_learning}应该能提高性能。 -一个重要的研究问题是,大多数观察是由极其大量的潜在原因形成的。 -假设$\RVy = \RSh_i$,但是\gls{unsupervised_learning}并不知道是哪一个$\RSh_i$。 -\gls{unsupervised_learning}的暴力解是学习一种表示,捕获\emph{所有}合理的重要生成因子$\RSh_j$,并将它们彼此区分开来,因此不管$\RSh_i$是否关联于$\RVy$,从$\RVh$预测$\RVy$都是容易的。 +一个重要的研究问题是,大多数观察是由极其大量的潜在成因形成的。 +假设$\RVy = \RSh_i$,但是\gls{unsupervised_learning}并不知道哪一个是$\RSh_i$。 +暴力求解\gls{unsupervised_learning}是学习一种表示,捕获\emph{所有}合理的重要生成因子$\RSh_j$,并将它们彼此区分开来,因此不管$\RSh_i$是否关联于$\RVy$,从$\RVh$预测$\RVy$都是容易的。 % -- 533 -- -在实践中,暴力解是不可行的,因为不可能捕获影响观察的所有或大多数变化。 -例如,在视觉场景中,表示应该一直对背景中的所有最小对象进行编码么? -有一个有据可查的心理学现象,人们不会察觉到环境中和他们所在进行的任务并不紧紧相关的变化——具体例子可参考\citep{simons1998failure}。 +在实践中,暴力求解是不可行的,因为不可能捕获影响观察的所有或大多数变化。 +例如,在视觉场景中,表示是否应该对背景中的所有最小对象进行编码? +一个有据可查的心理学现象是,人们不会察觉到环境中和他们所在进行的任务并不紧紧相关的变化——具体例子可参考\cite{simons1998failure}。 \gls{semi_supervised_learning}的一个重要研究前沿是确定每种情况下要编码的对象。 -目前,处理大量潜在原因的两个主要策略是,使用\gls{unsupervised_learning}信号的同时使用\gls{supervised_learning}信号,从而使模型捕获最相关的变动因素,或是在使用纯\gls{unsupervised_learning}的情况下学习更大的表示。 +目前,处理大量潜在原因的两个主要策略是,同时使用\gls{unsupervised_learning}和\gls{supervised_learning},使模型捕获最相关的变动因素,或是使用纯\gls{unsupervised_learning}学习更大规模的表示。 \gls{unsupervised_learning}的一个新兴策略是修改确定哪些潜在因素最为关键的定义。 之前,\gls{AE}和\gls{generative_model}被训练来优化类似于\gls{mean_squared_error}的固定标准。 -这些固定标准确定了哪些原因是突出的。 -例如,应用于图像像素的\gls{mean_squared_error}隐式地指定,一个潜在因素只有在其显著地改变大量像素的亮度时,它才是重要的影响因素。 -如果我们希望解决的问题涉及到小对象的交互,那么这可能是有问题的。 -如\figref{fig:chap15_pingpong},在机器人任务中,\gls{AE}未能学习到编码小乒乓球。 -同样是这个机器人,它可以成功地与更大的对象进行交互(例如棒球,这种情况根据\gls{mean_squared_error}是很突出的)。 +这些固定标准确定了哪些因素是突出的。 +例如,图像像素的\gls{mean_squared_error}隐式地指定,一个潜在因素只有在其显著地改变大量像素的亮度时,才是重要影响因素。 +如果我们希望解决的问题涉及到小对象的交互,那么这将有可能遇到问题。 +如\figref{fig:chap15_pingpong}所示,在机器人任务中,\gls{AE}未能学习到编码小乒乓球。 +同样是这个机器人,它可以成功地与更大的对象进行交互(例如棒球,\gls{mean_squared_error}在这种情况下很突出)。 \begin{figure}[!htb] \ifOpenSource @@ -466,18 +466,18 @@ \section{\glsentrytext{semi_supervised}解释因果关系} \label{fig:chap15_pingpong} \end{figure} -也有一些其他的关于突出性的定义。 -例如,如果一组像素具有高度可识别的模式,那么即使该模式不涉及到极端的亮度或暗度,该模式还是被认为非常突出的。 -实现这样一种突出性定义的方法是使用最近开发的\firstgls{generative_adversarial_networks}\citep{Goodfellow-et-al-NIPS2014-small}。 +还有一些其他的突出性的定义。 +例如,如果一组像素具有高度可识别的模式,那么即使该模式不涉及到极端的亮度或暗度,该模式还是会被认为非常突出。 +实现这样一种定义突出的方法是使用最近开发的\firstgls{generative_adversarial_networks}\citep{Goodfellow-et-al-NIPS2014-small}。 在这种方法中,\gls{generative_model}被训练来愚弄\gls{feedforward_classifier}。 \gls{feedforward_classifier}尝试将来自生成模型的所有样本识别为假的,并将来自训练集合的所有样本识别为真的。 在这个框架中,\gls{feedforward_network}能够识别出的任何结构化模式都是非常突出的。 -\gls{generative_adversarial_networks}会在第20.10.4节中被更详细地介绍。 -就现在的讨论而言,知道它能学习出确定什么是突出的就可以了。 -\cite{lotter2015unsupervised}表明,训练生成人类头部头像的模型在训练时使用\gls{mean_squared_error}往往会忽视耳朵,但是对抗式框架学习能够成功地产生耳朵。 -因为耳朵与周围的皮肤相比不是非常明亮或黑暗,所以根据\gls{mean_squared_error}它们不是特别突出,但是它们高度可识别的形状和一致的位置意味着前向网络能够轻易地学习检测它们,从而使得它们在生成式对抗框架下是高度突出的。 -如\figref{fig:chap15_manface}请看图片示例。 -\gls{generative_adversarial_networks}只是确定应该表示哪些因素的一步。 +\gls{generative_adversarial_networks}会在第20.10.4节中更详细地介绍。 +就现在的讨论而言,知道它能学习出什么是突出就可以了。 +\cite{lotter2015unsupervised}表明,生成人类头部头像的模型在训练时使用\gls{mean_squared_error}往往会忽视耳朵,但是对抗式框架学习能够成功地生成耳朵。 +因为耳朵与周围的皮肤相比不是非常明亮或黑暗,所以根据\gls{mean_squared_error}它们不是特别突出,但是它们高度可识别的形状和一致的位置意味着前向网络能够轻易地学习出如何检测它们,从而使得它们在生成式对抗框架下是高度突出的。 +如\figref{fig:chap15_manface}所示。 +\gls{generative_adversarial_networks}只是确定应该表示哪些因素的一小步。 我们期望未来的研究能够发现更好的方式来确定表示哪些因素,并且根据任务来发展表示不同因素的机制。 % -- 534 -- @@ -499,8 +499,8 @@ \section{\glsentrytext{semi_supervised}解释因果关系} 正如\cite{Janzing-et-al-ICML2012}指出,学习潜在因素的好处是,如果真实的生成过程中$\RVx$是结果,$\RVy$是原因,那么建模$p(\RVx \mid \RVy)$对于$p(\RVy)$的变化是鲁棒的。 如果因果关系被逆转,这是不对的,因为根据\gls{bayes_rule},$p(\RVx \mid \RVy)$将会对$p(\RVy)$的变化十分敏感。 -很多时候,我们考虑不同领域(例如时间不稳定性或是任务性质的变化)上分布的变化时,\emph{因果机制是保持不变的}(``宇宙定律不变''),而潜在原因的边缘分布是会变化的。 -因此,通过学习试图恢复因果因素$\RVh$和$p(\RVx \mid \RVh)$的\gls{generative_model},可以期望对所有种类的变化有更好的泛化和鲁棒性。 +很多时候,我们考虑不同领域(例如时间不稳定性或任务性质的变化)上分布的变化时,\emph{因果机制是保持不变的}(``宇宙定律不变''),而潜在因素的边缘分布是会变化的。 +因此,通过学习试图恢复成因向量$\RVh$和$p(\RVx \mid \RVh)$的\gls{generative_model},可以期望最后的模型对所有种类的变化有更好的泛化和鲁棒性。 % -- 535 -- @@ -509,18 +509,18 @@ \section{\glsentrytext{distributed_representation}} \gls{distributed_representation}的概念——由很多因素组合而成的表示,彼此可以分开设置——是\gls{representation_learning}最重要的工具之一。 \gls{distributed_representation}非常强大,因为他们能用具有$k$个值的$n$个特征去描述$k^n$个不同的概念。 正如我们在本书中看到的,具有多个\gls{hidden_unit}的\gls{NN}和具有多个\gls{latent_variable}的概率模型都利用了\gls{distributed_representation}的策略。 -我们现在再介绍一个观察。 +我们现在再介绍一个观察结果。 许多\gls{DL}算法基于的假设是,\gls{hidden_unit}能够学习出解释数据的潜在因果因素,见\secref{sec:semi_supervised_disentangling_of_causal_factors}中的讨论。 -\gls{distributed_representation}对于这种方法是自然的,因为表示空间中的每个方向都对应着不同底层配置变量的值。 +这种方法在\gls{distributed_representation}上是自然的,因为表示空间中的每个方向都对应着不同底层配置变量的值。 % -- 536 -- -一个\gls{distributed_representation}的示例是$n$维二元向量,可以有$2^n$种配置,每一种都对应于输入空间中的一个不同区域,如\figref{fig:chap15_distributed}所示。 +$n$维二元向量是一个\gls{distributed_representation}的示例,有$2^n$种配置,每一种都对应输入空间中的一个不同区域,如\figref{fig:chap15_distributed}所示。 这可以与\emph{符号表示}相比较,其中输入关联到单一符号或类别。 -如果字典中有$n$个符号,那么可以想象有$n$个特征监测器,每个对应地监测相关类别的存在。 +如果字典中有$n$个符号,那么可以想象有$n$个特征监测器,分别监测相关类别的存在。 在这种情况下,只有表示空间中$n$个不同配置才有可能在输入空间中刻画$n$个不同的区域,如\figref{fig:chap15_nondistributed}所示。 -这样的符号表示也被称为\gls{one_hot}表示,因为它可以表示成互相排斥的$n$维二元向量(其中只有一位是激活的)。 -符号表示是更广泛的非\gls{distributed_representation}中的一个具体示例,可以包含很多条目,但是每个条目是没有显著意义的单独控制。 +这样的符号表示也被称为\gls{one_hot}表示,因为它可以表示成各位排斥的$n$维二元向量(其中只有一位是激活的)。 +符号表示是更广泛的非\gls{distributed_representation}中的一个具体示例,可以包含很多条目,但是每个条目没有显著意义的单独控制作用。 \begin{figure}[!htb] \ifOpenSource @@ -546,7 +546,7 @@ \section{\glsentrytext{distributed_representation}} \begin{itemize} \item 聚类算法,包含$k$-均值算法:每个输入点恰好分配到一个类别。 - \item $k$-最近邻算法:给定一个输入,一个或几个模板或原型示例与之关联。 + \item $k$-最近邻算法:给定一个输入,一个或几个模板或原型样本与之关联。 在$k > 1$的情况下,多个值被用来描述每个输入,但是它们不能彼此分开控制,因此这不能算真正的\gls{distributed_representation}。 \item 决策树:给定输入时,只有叶节点(和从根到叶节点的路径上的点)是被激活的。 @@ -554,61 +554,63 @@ \section{\glsentrytext{distributed_representation}} \item 高斯混合和专家混合:模板(聚类中心)或专家关联一个激活的\emph{程度}。 和$k$-最近邻算法一样,每个输入用多个值表示,但是这些值不能轻易地彼此分开控制。 - \item 具有高斯核(或其他相似局部核)的核机器:尽管每个``\gls{support_vectors}''或模板样本的激活程度现在是连续值,但仍然会出现和高斯混合相同的问题。 + \item 具有高斯核(或其他相似局部核)的\gls{kernel_machines}:尽管每个``\gls{support_vectors}''或模板样本的激活程度是连续值,但仍然会出现和高斯混合相同的问题。 \item 基于\gls{n_gram}的语言或翻译模型:根据后缀的树结构划分上下文集合(符号序列)。 - 例如,叶节点可能对应于最好两个单词$w_1$和$w_2$。 + 例如,叶节点可能对应于最后两个单词$w_1$和$w_2$。 树上的每个叶节点分别估计单独的参数(有些共享也是可能的)。 \end{itemize} % -- 537 -- -对于这些非分布式算法中的某些而言,输出有部分并非是恒定的,而是在相邻区域之间内插。 -参数(或样本)的数量和它们可定义区域的数量之间的关系保持线性。 +对于这些非分布式算法中的部分而言,有些输出并非是恒定的,而是在相邻区域之间内插。 +参数(或样本)的数量和可定义区域的数量之间保持线性关系。 -将\gls{distributed_representation}和符号表示区分开来的一个重要相关概念是由不同概念之间的\emph{共享属性而产生的泛化}。 -作为纯符号,``猫''和``狗''之间的距离和任意其他两种符号一样。 +将\gls{distributed_representation}和符号表示区分开来的一个重要概念是,由不同概念之间的\emph{共享属性而产生的泛化}。 +作为纯符号,``猫''和``狗''之间的距离和任意其他两种符号的距离一样。 然而,如果将它们与有意义的\gls{distributed_representation}相关联,那么关于猫的很多特点可以推广到狗,反之亦然。 -例如,我们的\gls{distributed_representation}可能会包含诸如``是否具有皮毛''或是``腿的数目''这类用于``猫''和``狗''的嵌入具有相同值的项。 +例如,我们的\gls{distributed_representation}可能会包含诸如``是否具有皮毛''或``腿的数目''这类在``猫''和``狗''的嵌入上具有相同值的项。 正如\secref{sec:neural_language_models}所讨论的,作用于单词\gls{distributed_representation}的神经语言模型比其他直接对单词\gls{one_hot}表示进行操作的模型泛化得更好。 -\gls{distributed_representation}具有丰富的\emph{相似性空间},语义上相近的概念(或输入)在距离上接近,这是纯粹的符号表示所缺少的属性。 +\gls{distributed_representation}具有丰富的\emph{相似性空间},语义上相近的概念(或输入)在距离上接近,这是纯粹的符号表示所缺少的特点。 % -- 539 -- -何时以及为什么使用\gls{distributed_representation}作为学习算法的一部分会具有统计优势? +何时使用\gls{distributed_representation}能够具有统计优势,以及为什么具有统计优势? 当一个明显复杂的结构可以用较少参数紧致地表示时,\gls{distributed_representation}具有统计上的优点。 一些传统的非分布式学习算法仅仅在平滑假设的情况下泛化能力比较好,也就是说如果$u\approx v$,那么学习到的目标函数$f$通常具有$f(u) \approx f(v)$的性质。 有许多方法来形式化这样一个假设,其结果是如果我们有一个样本$(x,y)$,并且我们知道$f(x) \approx y$,那么我们可以选取一个估计器$\hat{f}$近似地满足这些限制,并且当我们移动到附近的输入$x + \epsilon$,尽可能少地发生改变。 -这个假设是非常有用的,但是它会承受\gls{curse_of_dimensionality}:为了学习出一个在很多不同区域上增加或减少很多次的目标函数,我们可能需要至少和可区分区域数量一样多的样本。 -可以将这些区域中的每一个视为类别或符号:通过对每个符号(或区域)具有单独的自由度,我们可以学习出从符号映射到值的任意解码器。 +这个假设是非常有用的,但是它会承受\gls{curse_of_dimensionality}: +在很多不同区域上增加或减少很多次学习出一个目标函数\footnote{我们可能会想要学习一个能够区分指数级数量区域的函数:在$d$-维空间中,每维至少有两个不同的值。我们想要函数$f$区分这$2^d$个不同的区域,需要$O(2^d)$个训练样本},我们可能需要至少和可区分区域数量一样多的样本。 +可以将每一个区域视为类别或符号:通过让每个符号(或区域)具有单独的自由度,我们可以学习出从符号映射到值的任意解码器。 然而,这不能推广到新区域的新符号上。 如果我们幸运的话,除了平滑之外,目标函数可能还有一些其他规律。 -例如,具有\gls{max_pooling}的\gls{convolutional_network}可以识别出对象,而不考虑其在图像中的位置,即使对象的空间变换不对应输入空间的平滑变换。 +例如,具有\gls{max_pooling}的\gls{convolutional_network} +可以不考虑对象在图像中的位置(即使对象的空间变换不对应输入空间的平滑变换),而识别出对象。 让我们检查\gls{distributed_representation}学习算法的一个特殊情况,它通过对输入的线性函数进行阀值处理来提取二元特征。 该表示中的每个二元特征将$\SetR^d$分成一对半空间,如\figref{fig:chap15_distributed}所示。 $n$个半空间的指数级数量的交集确定了该\gls{distributed_representation}学习能够区分多少区域。 空间$\SetR^d$中的$n$个超平面的排列组合能够生成多少区间? -通过应用关于超平面交集的一般结果\citep{Zaslavsky-1975},我们可以展示\citep{Pascanu+et+al-ICLR2014b}这个二元特征表示能够区分的空间是 +通过应用关于超平面交集的一般结果\citep{Zaslavsky-1975},我们可以展示\citep{Pascanu+et+al-ICLR2014b}这个二元特征表示能够区分的空间数量是 \begin{equation} \sum_{j=0}^d \binom{n}{j} = O(n^d)。 \end{equation} -因此,我们会看到输入大小呈指数级增长,\gls{hidden_unit}的数量呈多项式级增长。 +因此,我们会发现输入大小呈指数级增长,\gls{hidden_unit}的数量呈多项式级增长。 % -- 540 -- -这提供了一个几何说法来解释\gls{distributed_representation}的泛化能力:$O(nd)$个参数(空间$\SetR^d$中的$n$个线性阀值特征)能够明确的表示输入空间中$O(n^d)$个区域。 -如果我们没有对数据做任何假设,并且每个区域具有唯一的符号表示,每个符号使用单独的参数去识别其对应的$\SetR^d$中的区域,那么指定$O(n^d)$个区域需要$O(n^d)$个样本。 -更一般地,有利于\gls{distributed_representation}的说法可以扩展到这样的情况,对\gls{distributed_representation}中的每个特征我们使用非线性的,可能连续的特征提取器,代替线性阀值单元。 -在这种情况下,如果$k$个参数的参数变换可以学习输入空间中的$r$个区域($k\ll r$),如果学习这样的表示有助于感兴趣的任务,那么我们可以以这种方式潜在地推广到比非分布式设定更好的表示,我们只需要$O(r)$个样本来获得相同的特征,并将输入空间相关联地划分成$r$个区域。 -使用较少的参数来表示模型意味着我们会拟合较少的参数,因此只需要更少的训练样本去获得良好的泛化。 +这提供了一个几何说法来解释\gls{distributed_representation}的泛化能力:$O(nd)$个参数(空间$\SetR^d$中的$n$个线性阀值特征)能够明确表示输入空间中$O(n^d)$个区域。 +如果我们没有对数据做任何假设,并且每个区域具有唯一的符号表示,每个符号使用单独的参数去识别$\SetR^d$中的对应区域,那么指定$O(n^d)$个区域需要$O(n^d)$个样本。 +更一般地,我们对\gls{distributed_representation}中的每个特征使用非线性的可能连续的特征提取器,代替线性阀值单元,更加有利于体现\gls{distributed_representation}的优势。 +在这种情况下,如果$k$个参数的参数变换可以学习输入空间中的$r$个区域($k\ll r$),如果学习这样的表示有助于感兴趣的任务,那么我们可以将这种方式潜在地推广到比非分布式设定更好的表示,我们只需要$O(r)$个样本来获得相同的特征,并将输入空间相关联地划分成$r$个区域。 +使用较少的参数来表示模型意味着我们只需拟合较少的参数,因此只需要更少的训练样本去获得良好的泛化。 -对于为什么基于\gls{distributed_representation}的模型泛化能力更好的另一个说法是,尽管能够明确地编码这么多不同的区域,但它们的容量仍然是很有限的。 +另一个解释基于\gls{distributed_representation}的模型泛化能力更好的说法是,尽管能够明确地编码这么多不同的区域,但它们的容量仍然是很有限的。 例如,线性阀值单位的\gls{NN}的\glssymbol{VC}维仅为$O(w\log w)$,其中$w$是权重的数目\citep{sontag1998vc}。 这种限制出现的原因是,虽然我们可以为表示空间分配非常多的唯一码,但是我们不能完全使用所有的码空间,也不能使用\gls{linear_classifier}学习出从表示空间$\Vh$到输出$\Vy$的任意函数映射。 因此使用与\gls{linear_classifier}相结合的\gls{distributed_representation}传达了一种先验信念,待识别的类在$\Vh$代表的潜在因素的函数下是线性可分的。 @@ -618,15 +620,15 @@ \section{\glsentrytext{distributed_representation}} % -- 541 -- 到目前为止讨论的想法都是抽象的,但是它们可以通过实验验证。 -\cite{Zhou-et-al-ICLR2015}发现,在ImageNet和Places基准数据集上训练的深度\gls{convolutional_network}中的\gls{hidden_unit}学习到的特征通常是可以解释的,对应于人类自然分配的标签。 -在实践中,\gls{hidden_unit}并不能总是学习出具有简单语言名称的事物,但有趣的是,这些会在最好的计算机视觉深度网络的顶层附近出现。 +\cite{Zhou-et-al-ICLR2015}发现,在ImageNet和Places基准数据集上训练的深度\gls{convolutional_network}中的\gls{hidden_unit}学习到的特征通常是可以解释的,对应人类自然分配的标签。 +在实践中,\gls{hidden_unit}并不能总是学习出具有简单名称的事物,但有趣的是,这些会在计算机视觉深度网络的顶层附近出现。 这些特征的共同之处在于,我们可以想象\emph{学习其中的每个特征不需要知道所有其他特征的所有配置}。 \cite{radford2015unsupervised}展示生成模型可以学习人脸图像的表示,在表示空间中的不同方向捕获不同的潜在变化因素。 \figref{fig:chap15_generative_glasses}展示表示空间中的一个方向对应着该人是男性还是女性,而另一个方向对应着该人是否戴着眼镜。 -这些特征都是自动发现的,而并非先验固定的。 +这些特征都是自动发现的,而非先验固定的。 没有必要为\gls{hidden_unit}分类器提供标签:只要该任务需要这样的特征,\gls{GD}就能在感兴趣的目标函数上自然地学习出语义上有趣的特征。 我们可以学习出男性和女性之间的区别,或者是眼镜的存在与否,而不必通过涵盖所有这些值组合的样本来表征其他$n-1$个特征的所有配置。 -这种形式的统计可分离性能够推广到训练期间从未见过的人的特征的新配置。 +这种形式的统计可分离性质能够泛化到训练期间从未见过的人。 \begin{figure}[!htb] \ifOpenSource @@ -651,22 +653,23 @@ \section{\glsentrytext{distributed_representation}} \section{得益于深度的指数增益} \label{sec:exponential_gains_from_depth} 我们已经在\secref{sec:universal_approximation_properties_and_depth}中看到,\gls{MLP}是通用的近似器,一些函数能够用指数级小的\gls{deep_network}(相比于浅层网络)表示。 -模型大小的减小能够提高统计效率。 -在本节中,我们描述了如何将类似结果更一般地应用于其他种类的具有分布式隐藏表示的模型。 +缩小模型规模能够提高统计效率。 +在本节中,我们描述如何将类似结果更一般地应用于其他具有分布式隐藏表示的模型。 -在\secref{sec:distributed_representation}中,我们看到了一个\gls{generative_model}的例子,能够学习脸部图像的解释性因素,包括人的性别以及他们是否佩戴眼镜。 -完成这个任务的\gls{generative_model}是基于一个\gls{DNN}的。 -浅层网络(例如线性网络)是不能学习出这些抽象解释因素和图像像素之间的复杂关系的。 -在这个以及其他\glssymbol{AI}任务中,几乎彼此独立但仍然对应有意义输入的因素很有可能是非常高度抽象的,并且以高度非线性的方式和输入相关。 -我们认为这需要\emph{深度}\gls{distributed_representation},需要通过组合许多非线性来获得较高级的特征(被视为输入的函数)或因素(被视为生成原因)。 +在\secref{sec:distributed_representation}中,我们看到了一个\gls{generative_model}的示例,能够学习人脸图像的解释性因素,包括性别以及是否佩戴眼镜。 +完成这个任务的\gls{generative_model}基于一个\gls{DNN}。 +浅层网络(例如线性网络)不能学习出这些抽象解释因素和图像像素之间的复杂关系。 +在这个任务和其他\glssymbol{AI}任务中,彼此几乎独立,但仍然对应到有意义输入的因素,很有可能是高度抽象的,并且和输入呈高度非线性的关系。 +我们认为这需要\emph{深度}\gls{distributed_representation},需要许多非线性组合来获得较高级的特征(被视为输入的函数)或因素(被视为生成原因)。 -许多不同的设置已经证明,通过许多非线性和重用特征的层次组合来组织计算可以在\gls{distributed_representation}获得的指数级加速之上,获得统计效率的指数级提升。 -许多只有一个\gls{hidden_layer}的网络(例如,具有饱和非线性,布尔门,和/积,或\glssymbol{RBF}单元)都可以被示为通用近似器。 -在给定足够多\gls{hidden_unit}的情况下,通用近似器可以逼近一大类函数(包括所有连续函数)直到任意非零容许级别。 -然而,所需的\gls{hidden_unit}的数量可能非常大。 -关于深层架构的表达能力的理论结果表明,有些函数族可以有效地通过深度$k$层的网络架构表示,但是深度不够(深度为2或$k-1$)时会需要指数级的\gls{hidden_unit}(相对于输入大小而言)。 +许多不同设置已经证明, +非线性和重用特征层次结构的组合来组织计算,可以使\gls{distributed_representation}获得指数级加速之外,还可以获得统计效率的指数级提升。 +许多只有一个\gls{hidden_layer}的网络(例如,具有饱和非线性,布尔门,和/积,或\glssymbol{RBF}单元的网络)都可以被视为通用近似器。 +在给定足够多\gls{hidden_unit}的情况下,通用近似器可以在任意非零允错级别近似一大类函数(包括所有连续函数)。 +然而,\gls{hidden_unit}所需的数量可能会非常大。 +关于深层架构的表达能力的理论结果表明,有些函数族可以有效地通过深度$k$层的网络架构表示,但是深度不够(深度为2或$k-1$)时会需要指数级(相对于输入大小而言)的\gls{hidden_unit}。 % -- 543 -- @@ -674,96 +677,96 @@ \section{得益于深度的指数增益} 许多具有\gls{latent_variable}的单个\gls{hidden_layer}的\gls{structured_probabilistic_models}(包括\gls{RBM},\gls{DBN})是概率分布的\gls{universal_approximator}\citep{LeRoux-Bengio-2007-TR,Montufar-2011,Montufar-et-al-NIPS2014,Krause-et-al-ICML2013}。 -在\secref{sec:universal_approximation_properties_and_depth}中,我们看到足够深的\gls{feedforward_network}能比太浅的网络具有指数级优势。 +在\secref{sec:universal_approximation_properties_and_depth}中,我们看到足够深的\gls{feedforward_network}会比深度不够的网络具有指数级优势。 这样的结果也能从诸如概率模型的其他模型中获得。 -一种这样的概率模型是\firstgls{sum_product_network},或\glssymbol{sum_product_network}\citep{Poon+Domingos-2011}。 +\firstgls{sum_product_network},或\glssymbol{sum_product_network}\citep{Poon+Domingos-2011}是这样的一种概率模型。 这些模型使用多项式电路来计算一组\gls{RV}的\gls{PD}。 -\cite{Delalleau+Bengio-2011-small}表明存在一种\gls{PD},对\glssymbol{sum_product_network}的最小深度有要求,以避免模型规模呈指数级大小。 -后来,\cite{Martens+Medabalimi-arxiv2014}表明,每两个有限深度的\glssymbol{sum_product_network}之间都会存在显著差异,并且用于让\glssymbol{sum_product_network}易于处理的一些约束可能会限制其表示能力。 +\cite{Delalleau+Bengio-2011-small}表明存在一种\gls{PD},对\glssymbol{sum_product_network}的最小深度有要求,以避免模型规模呈指数级增长。 +后来,\cite{Martens+Medabalimi-arxiv2014}表明,任意两个有限深度的\glssymbol{sum_product_network}之间都会存在显著差异,并且一些使\glssymbol{sum_product_network}易于处理的约束可能会限制其表示能力。 -另一个有趣的结果是一套和卷积网络相关的\gls{deep_circuit}族的表达能力的理论结果,即使让\gls{shadow_circuit}只去近似\gls{deep_circuit}计算的函数,也能突出反映\gls{deep_circuit}的指数级优势\citep{Cohen-et-al-arXiv2015}。 -相比之下,以前的理论工作只研究了\gls{shadow_circuit}必须精确复制特定函数的这种情况。 +另一个有趣的进展是,一套和卷积网络相关的\gls{deep_circuit}族的表达能力的理论结果,即使让\gls{shadow_circuit}只去近似\gls{deep_circuit}计算的函数,也能突出反映\gls{deep_circuit}的指数级优势\citep{Cohen-et-al-arXiv2015}。 +相比之下,以前的理论工作只研究了\gls{shadow_circuit}必须精确复制特定函数的情况。 \section{提供发现潜在原因的线索} \label{sec:providing_clues_to_discover_underlying_causes} -我们回到我们最初的问题之一来结束本章:什么使得一个表示比另一个更好? -首先在\secref{sec:semi_supervised_disentangling_of_causal_factors}中介绍的一个答案是,一个理想的表示能够区分出生成数据的变化的潜在因果因素,特别是那些与我们的应用相关的因素。 -\gls{representation_learning}的大多数策略都是基于引入有助于学出找到这些潜在变动因素的线索。 -线索可以帮助\gls{learner}将这些观察到的因素与其他因素分开。 -\gls{supervised_learning}提供了非常强的线索:伴随着每个观察$\Vx$的标签$\Vy$通常直接指定了至少一个变化因素。 +我们回到最初的问题之一来结束本章:什么原因能够使一个表示比另一个表示更好? +首先在\secref{sec:semi_supervised_disentangling_of_causal_factors}中介绍的一个答案是,一个理想的表示能够区分生成数据的变化的潜在因果因素,特别是那些与我们的应用相关的因素。 +\gls{representation_learning}的大多数策略都会引入一些有助于学习潜在变动因素的线索。 +这些线索可以帮助\gls{learner}将这些观察到的因素与其他因素分开。 +\gls{supervised_learning}提供了非常强的线索:每个观察向量$\Vx$的标签向量$\Vy$通常直接指定了至少一个变化因素。 更一般地,为了利用丰富的未标记数据,\gls{representation_learning}会使用关于潜在因素的其他不太直接的提示。 -这些提示使用了我们(学习算法的设计者)为了引导\gls{learner}而强加的隐式先验信念。 -诸如\gls{no_free_lunch_theorem}的这些结果表明,正则化策略对于获得良好的泛化是很有必要的。 -当不可能找到一个普遍良好的\gls{regularization}策略时,\gls{DL}的一个目标是找到一套相当通用的\gls{regularization}策略,能够适用于各种各样的\glssymbol{AI}任务,类似于人和动物能够解决的任务。 +这些提示包含一些我们(学习算法的设计者)为了引导\gls{learner}而强加的隐式先验信念。 +诸如\gls{no_free_lunch_theorem}的这些结果表明,正则化策略对于获得良好泛化是很有必要的。 +当不可能找到一个普遍良好的\gls{regularization}策略时,\gls{DL}的一个目标是找到一套相当通用的\gls{regularization}策略,能够适用于各种各样的\glssymbol{AI}任务(类似于人和动物能够解决的任务)。 % -- 544 -- 在此,我们提供了一些通用\gls{regularization}策略的列表。 -该列表显然是不详尽的,但是给出了学习算法是如何受激励发现对应潜在因素的一些具体示例。 -该列表由\cite{Bengio-Courville-Vincent-TPAMI-2012}中\secref{sec:why_probability}介绍,这里进行了部分拓展。 +该列表显然是不详尽的,但是给出了一些学习算法是如何发现潜在因素特征的具体示例。 +该列表由\cite{Bengio-Courville-Vincent-TPAMI-2012}中\secref{sec:why_probability}提出,这里进行了部分拓展。 \begin{itemize} \item \emph{平滑}:假设对于单位$\Vd$和小量$\epsilon$有$f(\Vx + \epsilon \Vd) \approx f(\Vx)$。 这个假设允许\gls{learner}从训练样本泛化到输入空间中附近的点。 - 很多\gls{ML}算法都利用了这个想法,但它不能克服\gls{curse_of_dimensionality}难题。 + 许多\gls{ML}算法都利用了这个想法,但它不能克服\gls{curse_of_dimensionality}难题。 \item \emph{线性}:很多学习算法假定一些变量之间的关系是线性的。 这使得算法能够预测远离观测数据的点,但有时可能会导致一些极端的预测。 大多数简单的学习算法不会做平滑假设,而会做线性假设。 - 这些实际上是不同的假设——具有很大权重的线性函数在高维空间中可能不是非常平滑。 + 这些假设实际上是不同的——具有很大权重的线性函数在高维空间中可能不是非常平滑的。 参看\cite{Goodfellow-2015-adversarial}了解关于线性假设局限性的进一步讨论。 - \item \emph{多个解释因素}:许多\gls{representation_learning}算法受激励于这样的假设,数据是由多个潜在解释性因素生成的,并且给定这些因素每一个的状态,大多数任务都能轻易解决。 + \item \emph{多个解释因素}:许多\gls{representation_learning}算法受激励于这样的假设,数据是由多个潜在解释性因素生成的,并且给定每一个因素的状态,大多数任务都能轻易解决。 \secref{sec:semi_supervised_disentangling_of_causal_factors}描述了这种观点如何通过\gls{representation_learning}促进\gls{semi_supervised_learning}的。 学习$p(\Vx)$的结构要求学习出一些对建模$p(\Vy\mid\Vx)$同样有用的特征,因为它们都涉及到相同的潜在解释因素。 - \secref{sec:distributed_representation}介绍了这种观点是如何激发\gls{distributed_representation}的使用的,表示空间中不同的方向对应着不同的变化因素。 + \secref{sec:distributed_representation}介绍了这种观点如何激发\gls{distributed_representation}的使用,表示空间中不同的方向对应着不同的变化因素。 - \item \emph{因果因素}:该模型认为学习到的表示所描述的变量是观察数据$\Vx$的原因,而并非反过来的。 - 正如\secref{sec:semi_supervised_disentangling_of_causal_factors}中讨论的,这对于\gls{semi_supervised_learning}是有利的,使得在潜在原因上的分布发生改变或是我们应用模型到一个新的任务上时,学习到的模型都更加鲁棒。 + \item \emph{因果因素}:该模型认为学习到的表示所描述的变量是观察数据$\Vx$的成因,而并非反过来。 + 正如\secref{sec:semi_supervised_disentangling_of_causal_factors}中讨论的,这对于\gls{semi_supervised_learning}是有利的,当潜在成因上的分布发生改变,或者我们应用模型到一个新的任务上时,学习到的模型都会更加鲁棒。 % -- 545 -- - \item \emph{深度,或者解释因素的层次组织}:高级抽象概念能用形成层次结构的简单概念来定义。 - 从另一个角度来看,使用深层架构表达了我们认为任务应该由多个程序步骤完成的观念,每一个步骤回溯到先前步骤完成处理的输出。 + \item \emph{深度,或者解释因素的层次组织}:层次结构的简单概念能够定义高级抽象概念。 + 从另一个角度来看,深层架构表达了我们认为任务应该由多个程序步骤完成的观念,每一个步骤回溯到先前步骤完成处理的输出。 - \item \emph{任务间共享的因素}: - 当多个对应到不同变量$\RSy_i$的任务共享相同的输入$\RVx$时,或者当每个任务关联到全局输入$\RVx$的子集或是函数$f^{(i)}(\RVx)$时,我们会假设每个变量$\RSy_i$关联到来自相关因素$\RVh$公共池的不同子集。 - 因为这些子集有重叠,所以通过共享的中间表示$ P(\RVh \mid \RVx)$来学习所有的$P(\RSy_i \mid \RVx)$能够让任务间共享统计强度。 + \item \emph{任务间共享因素}: + 当多个对应到不同变量$\RSy_i$的任务共享相同的输入$\RVx$时,或者当每个任务关联到全局输入$\RVx$的子集或者函数$f^{(i)}(\RVx)$时,我们会假设每个变量$\RSy_i$关联到来自相关因素$\RVh$公共池的不同子集。 + 因为这些子集有重叠,所以通过共享的中间表示$ P(\RVh \mid \RVx)$来学习所有的$P(\RSy_i \mid \RVx)$能够使任务间共享统计信息。 - \item \emph{\gls{manifold}}:概率质量集中,并且其集中的区域是局部连通的,且占据很小的体积。 + \item \emph{\gls{manifold}}:概率质量集中,并且集中区域是局部连通的,且占据很小的体积。 在连续情况下,这些区域可以用比数据所在原始空间低很多维的低维\gls{manifold}来近似。 很多\gls{ML}算法只在这些\gls{manifold}上有效\citep{Goodfellow-2015-adversarial}。 - 一些\gls{ML}算法,特别是\gls{AE},会试图明确地学习\gls{manifold}的结构。 + 一些\gls{ML}算法,特别是\gls{AE},会试图学习\gls{manifold}的结构。 \item \emph{自然聚类}:很多\gls{ML}算法假设输入空间中的每个连通\gls{manifold}都是一个单独的类。 - 数据可以在很多不连通的\gls{manifold}上,但是类别在每个上面保持恒定。 + 数据分布在许多个不连通的\gls{manifold}上,但相同\gls{manifold}上数据的类别是相同的。 这个假设激励了各种学习算法,包括\gls{tangent_propagation},\gls{double_backprop},\gls{manifold_tangent_classifier}和\gls{adversarial_training}。 - \item \emph{时间和空间相干性}:慢特征分析和相关的算法假设最重要的解释因素随时间变化很缓慢,或者至少认为预测真实的解释因素比预测诸如像素值的原始观察会更容易些。 + \item \emph{时间和空间相干性}:慢特征分析和相关的算法假设,最重要的解释因素随时间变化很缓慢,或者至少假设预测真实的解释因素比预测诸如像素值这类原始观察会更容易些。 参考\secref{sec:slow_feature_analysis},进一步了解这个方法。 - \item \emph{稀疏性}:大多数特征应该假定与描述的大多数输入不相关——在表示猫的图像时,没有必要使用检测大象的特征。 - 因此,应该强加一个先验,任何可以解释为``存在''或``不存在''的特征在大多数时间都应该是不存在的。 + \item \emph{稀疏性}:假设大部分特征和大部分输入不相关——在表示猫的图像时,没有必要使用大象的特征。 + 因此,我们可以强加一个先验,任何可以解释为``存在''或``不存在''的特征在大多数样本中都是不需要的。 % -- 546 -- - \item \emph{因素依赖性的简化}:在良好的高级表示中,因素会通过简单的依赖相互关联。 - 最简单的可能是边缘独立,$P(\RVh) = \prod_i P(\RVh_i)$,但是线性依赖或浅层\gls{AE}捕获的那些依赖也是合理的假设。 - 这可以在许多物理定律中看出来,在学习到的表示顶部插入线性预测器或分解的先验时使用该假设。 + \item \emph{简化因素依赖性}:在良好的高级表示中,因素会通过简单的依赖相互关联。 + 边缘独立可能是最简单的,$P(\RVh) = \prod_i P(\RVh_i)$。线性依赖或浅层\gls{AE}也是合理的假设。 + 这可以在许多物理定律中看出来,在学习到的表示上使用线性预测器或分解先验。 \end{itemize} \gls{representation_learning}的概念将所有的\gls{DL}形式联系到了一起。 \gls{feedforward_network}和\gls{recurrent_network},\gls{AE}和深度概率模型都在学习和使用表示。 -学习最好的表示仍然是一个令人兴奋的研究方向。 +学习最佳表示仍然是一个令人兴奋的研究方向。 % -- 547 -- diff --git a/Chapter18/confronting_the_partition_function.tex b/Chapter18/confronting_the_partition_function.tex index 984f0df..7ba2835 100644 --- a/Chapter18/confronting_the_partition_function.tex +++ b/Chapter18/confronting_the_partition_function.tex @@ -7,7 +7,7 @@ \chapter{面对\glsentrytext{partition_function}} \begin{equation} p(\RVx; \Vtheta) = \frac{1}{Z(\Vtheta)} \tilde{p}(\RVx; \Vtheta). \end{equation} -\gls{partition_function}是所有状态的未归一化概率的积分(对于连续变量)或求和(对于离散变量): +\gls{partition_function}是未归一化概率的积分(对于连续变量)或求和(对于离散变量): \begin{equation} \int \tilde{p}(\Vx) \mathrm{d} \Vx \end{equation} @@ -17,10 +17,10 @@ \chapter{面对\glsentrytext{partition_function}} \end{equation} -对于很多有趣的模型而言,这个计算是难处理的。 +对于很多有趣的模型而言,以上计算难以处理。 -正如我们将在\chapref{chap:deep_generative_models}看到的,有些\gls{DL}模型设计成具有易于处理的归一化常数,或是设计成能够在不涉及计算$p(\RVx)$的情况下使用。 +正如我们将在\chapref{chap:deep_generative_models}看到的,有些\gls{DL}模型设计成具有易于处理的归一化常数,或设计成能够在不涉及计算$p(\RVx)$的情况下使用。 然而,其他模型会直接面对难处理的\gls{partition_function}的挑战。 在本章中,我们会介绍用于训练和估计具有难以处理\gls{partition_function}的模型的技术。 @@ -29,7 +29,7 @@ \chapter{面对\glsentrytext{partition_function}} \section{对数似然梯度} \label{sec:the_log_likelihood_gradient} 通过最大似然学习无向模型特别困难的原因在于\gls{partition_function}取决于参数。 -对数似然相对于参数的梯度对应于\gls{partition_function}的梯度: +对数似然相对于参数的梯度具有一项对应于\gls{partition_function}的梯度: \begin{equation} \nabla_{\Vtheta} \log p(\RVx; \Vtheta) = \nabla_{\Vtheta} \log \tilde{p}(\RVx; \Vtheta) - \nabla_{\Vtheta} \log Z(\Vtheta). @@ -38,9 +38,9 @@ \section{对数似然梯度} 这是非常著名的学习的\firstgls{positive_phase}和\firstgls{negative_phase}的分解。 对于大多数感兴趣的\gls{undirected_model}而言,\gls{negative_phase}是困难的。 -没有\gls{latent_variable}或是\gls{latent_variable}之间很少相互作用的模型通常会有一个可解的\gls{positive_phase}。 -具有简单\gls{positive_phase}和困难\gls{negative_phase}的典型模型是\glssymbol{RBM},其具有在给定可见单位的情况下彼此条件独立的\gls{hidden_unit}。 -讨论\gls{latent_variable}之间具有复杂相互作用的困难\gls{positive_phase}主要在\chapref{chap:approximate_inference}中。 +没有\gls{latent_variable}或\gls{latent_variable}之间很少相互作用的模型通常会有一个可解的\gls{positive_phase}。 +\glssymbol{RBM}是一个具有简单\gls{positive_phase}和困难\gls{negative_phase}的典型模型,具有在给定可见单位的情况下彼此条件独立的\gls{hidden_unit}。 +\gls{latent_variable}之间具有复杂相互作用的困难\gls{positive_phase}将主要在\chapref{chap:approximate_inference}中讨论。 本章主要探讨\gls{negative_phase}困难的情况。 @@ -78,7 +78,7 @@ \section{对数似然梯度} % -- 598 -- -这个推导对离散$\Vx$进行了求和,对连续$\Vx$进行积分也会出现类似结果。 +这个推导对离散$\Vx$进行求和,对连续$\Vx$进行积分也会出现类似结果。 面对连续版本的推导过程中,我们使用在积分符号下微分的\gls{leibniz_rule},得到等式 \begin{equation} \nabla_{\Vtheta} \int \tilde{p} (\RVx) \mathrm{d} \Vx = \int \nabla_{\Vtheta} @@ -97,7 +97,7 @@ \section{对数似然梯度} \label{eq:18.15} \nabla_{\Vtheta} \log Z = \SetE_{\RVx \sim p(\RVx)} \nabla_{\Vtheta} \log \tilde{p}(\RVx) \end{equation} -是使用各种\gls{monte_carlo}方法近似最大化具有不可解\gls{partition_function}模型的似然的基础。 +是使用各种\gls{monte_carlo}方法近似最大化,具有难求解\gls{partition_function}模型的似然的基础。 \gls{monte_carlo}方法为学习\gls{undirected_model}提供了直观的框架,我们能够在其中考虑\gls{positive_phase}和\gls{negative_phase}。 @@ -105,17 +105,17 @@ \section{对数似然梯度} 在\gls{negative_phase}中,我们通过减少从模型分布中采样的$\log \tilde{p}(\RVx)$来降低\gls{partition_function}。 -在\gls{DL}文献中,通常会看到用\gls{energy_function}(\eqnref{eqn:167})来参数化$\log \tilde{p}$。 -在这种情况下,\gls{positive_phase}可以被解释为推动训练从模型抽取出的样本能量下降,\gls{negative_phase}可以被解释为推动从模型抽取出的样本能量上升,如\figref{fig:chap18_pos_and_neg_phase}所示。 +在\gls{DL}文献中,经常会看到用\gls{energy_function}(\eqnref{eqn:167})来参数化$\log \tilde{p}$。 +在这种情况下,\gls{positive_phase}可以解释为压低训练样本的能量,\gls{negative_phase}可以解释为提高模型采样的能量,如\figref{fig:chap18_pos_and_neg_phase}所示。 \section{随机最大似然和\glsentrytext{contrastive_divergence}} \label{sec:stochastic_maximum_likelihood_and_contrastive_divergence} 实现\eqnref{eq:18.15}最简单的方法是,每次需要计算梯度时,\gls{burn_in}随机初始化的一组\gls{markov_chain}。 -当使用\gls{SGD}进行学习时,这意味着\gls{markov_chain}必须在每次梯度步骤中被\gls{burn_in}。 +当使用\gls{SGD}进行学习时,这意味着\gls{markov_chain}必须在每次梯度步骤中\gls{burn_in}。 这种方法引导下的训练过程如\algref{alg:naive_cd}所示。 -内循环中\gls{burn_in}\gls{markov_chain}的计算成果过高,导致这个过程在计算上是不可行的, -但是该过程是其他更实际的近似算法的起点。 +内循环中\gls{burn_in}\gls{markov_chain}的计算代价过高,导致这个过程在实际中是不可行的, +不过该过程启发了其他计算代价较低的近似算法。 % -- 599 -- \begin{algorithm}[ht] @@ -140,11 +140,11 @@ \section{随机最大似然和\glsentrytext{contrastive_divergence}} \end{algorithm} -我们可以将\glssymbol{mcmc}方法视为在两种力之间平衡最大似然,一种力增大数据发生的模型分布,另一种力减小模型样本发生的模型分布。 +我们可以将\glssymbol{mcmc}方法视为在两种力之间平衡最大似然,一种力增大数据发生概率的模型分布,另一种力减小模型样本发生概率的模型分布。 \figref{fig:chap18_pos_and_neg_phase}展示了这个过程。 -这两种力对应于最大化$\log \tilde{p}$和最小化$\log Z$。 -对\gls{negative_phase}的几个近似也是可能的。 -这些近似中的每一个可以被理解为使得\gls{negative_phase}更容易计算,但是也会将其推向错误的位置。 +这两种力分别对应最大化$\log \tilde{p}$和最小化$\log Z$。 +还有一些对\gls{negative_phase}的近似。 +这些近似都可以理解为使\gls{negative_phase}更容易计算,但是也可能将其推向错误的位置。 \begin{figure}[!htb] \ifOpenSource @@ -158,19 +158,19 @@ \section{随机最大似然和\glsentrytext{contrastive_divergence}} % -- 600 -- -因为\gls{negative_phase}涉及到从模型分布中抽取样本,所以我们可以认为它在找模型信任度很高的点。 -因为\gls{negative_phase}减少了这些点的概率,它们一般被认为是代表了模型不正确的信念。 +因为\gls{negative_phase}涉及到从模型分布中采样,所以我们可以认为它在找模型信任度很高的点。 +因为\gls{negative_phase}减少了这些点的概率,它们一般被认为代表了模型不正确的信念。 在文献中,它们经常被称为``幻觉''或``幻想粒子''。 事实上,\gls{negative_phase}已经被作为人类和其他动物做梦的一种可能解释\citep{CrickMitchison83}。 这个想法是说,大脑维持着世界的概率模型,并且在醒着经历真实事件时会遵循$\log \tilde{p}$的梯度,在睡觉时会遵循$\log \tilde{p}$的梯度最小化$\log Z$,其经历的样本采样自当前的模型。 -这个视角解释了用于描述具有\gls{positive_phase}和\gls{negative_phase}的算法的大多数语言,但是它没有被神经科学实验证明是正确的。 +这个视角解释了具有\gls{positive_phase}和\gls{negative_phase}的大多数算法,但是它还没有被神经科学实验证明是正确的。 在\gls{ML}模型中,通常有必要同时使用\gls{positive_phase}和\gls{negative_phase},而不是分为清醒和REM睡眠时期。 -正如我们将在\secref{sec:learned_approximate_inference}中看到的,其他\gls{ML}由于其他原因从模型分布中抽取样本,这些算法也能提供睡觉做梦的解释。 +正如我们将在\secref{sec:learned_approximate_inference}中看到的,一些其他\gls{ML}算法出于其他原因从模型分布中采样,这些算法也能提供睡觉做梦的解释。 -在这种理解学习\gls{positive_phase}和\gls{negative_phase}的作用之后,我们尝试设计一个比\algref{alg:naive_cd}计算代价更低的替代算法。 -简单的\glssymbol{mcmc}算法的主要计算成本是每一步的随机初始化\gls{burn_in}\gls{markov_chain}的成本。 -一个自然的解决方法是初始化\gls{markov_chain}为一个非常接近模型分布的分布,从而操作中的\gls{burn_in}步骤不会很多。 +这样理解学习\gls{positive_phase}和\gls{negative_phase}的作用之后,我们设计了一个比\algref{alg:naive_cd}计算代价更低的替代算法。 +简单的\glssymbol{mcmc}算法的计算成本主要来自每一步的随机初始化\gls{burn_in}\gls{markov_chain}。 +一个自然的解决方法是初始化\gls{markov_chain}为一个非常接近模型分布的分布,从而大大减少\gls{burn_in}步骤。 % -- 601 -- \begin{algorithm}[ht] @@ -197,19 +197,18 @@ \section{随机最大似然和\glsentrytext{contrastive_divergence}} \end{algorithm} -\textbf{\gls{contrastive_divergence}}(\glssymbol{contrastive_divergence},或者是具有$k$个Gibbs步的\glssymbol{contrastive_divergence}-$k$)算法在每个步骤中初始化\gls{markov_chain}为抽取自数据分布中的样本\citep{Hinton-PoE-2000,Hinton-RBMguide-small}。 -这个算法展示在\algref{alg:cd}中。 +\textbf{\gls{contrastive_divergence}}(\glssymbol{contrastive_divergence},或者是具有$k$个Gibbs步骤的\glssymbol{contrastive_divergence}-$k$)算法在每个步骤中初始化\gls{markov_chain}为采样自数据分布中的样本\citep{Hinton-PoE-2000,Hinton-RBMguide-small},如\algref{alg:cd}所示。 从数据分布中获取样本是计算代价最小的,因为它们已经在数据集中了。 初始时,数据分布并不接近模型分布,因此\gls{negative_phase}不是非常准确。 幸运的是,\gls{positive_phase}仍然可以准确地增加数据的模型概率。 -在采取了一段时间\gls{positive_phase}后,模型分布会更接近于数据分布,并且\gls{negative_phase}开始变得准确。 +进行\gls{positive_phase}阶段一段时间之后,模型分布会更接近于数据分布,并且\gls{negative_phase}开始变得准确。 -当然,\glssymbol{contrastive_divergence}仍然是正确\gls{negative_phase}的一个近似。 -\glssymbol{contrastive_divergence}定性地未能实现正确\gls{negative_phase}的主要原因是,它不能抑制远离真实训练样本的高概率区域。 -这些在模型上具有高概率,但是在数据生成区域上具有低概率的区域被称为\firstgls{spurious_modes}。 -\figref{fig:chap18_spurious_mode}解释了为什么这种现象会发生。 -基本上,除非$k$非常大,否则远离数据分布的模型分布中的模式不会被\gls{markov_chain}在初始化的训练点中访问。 +当然,\glssymbol{contrastive_divergence}仍然是\gls{negative_phase}的一个近似。 +\glssymbol{contrastive_divergence}未能定性地实现真实\gls{negative_phase}的主要原因是,它不能抑制远离真实训练样本的高概率区域。 +这些区域在模型上具有高概率,但是在数据生成区域上具有低概率,被称为\firstgls{spurious_modes}。 +\figref{fig:chap18_spurious_mode}解释了这种现象发生的原因。 +基本上,除非$k$非常大,否则远离数据分布的模型分布中的模态不会被\gls{markov_chain}在初始化的训练点中探索。 % -- 602 -- @@ -220,29 +219,29 @@ \section{随机最大似然和\glsentrytext{contrastive_divergence}} \else \centerline{\includegraphics{Chapter18/figures/spurious_mode_color}} \fi -\caption{一个\gls{spurious_modes}。说明\gls{contrastive_divergence}(\algref{alg:cd})的\gls{negative_phase}为何无法压缩\gls{spurious_modes}的例子。一个\gls{spurious_modes}指的是一个在模型分布中出现数据分布中却不存在的模式。由于\gls{contrastive_divergence}从数据点中初始化它的\gls{markov_chain}然后运行\gls{markov_chain}了仅仅几步,不太可能到达模型中离数据点较远的模式。这意味着从模型中采样时,我们有时候会得到一些与数据并不相似的样本。这也意味着由于在这些模式上浪费了一些概率质量,模型很难把较高的概率质量集中与正确的模式上。出于可视化的目的,这个图使用了某种程度上说更加简单的距离的概念---在$\SetR$的数轴上\gls{spurious_modes}与正确的模式有很大的距离。这对应着基于局部移动$\SetR$上的单个变量$x$的\gls{markov_chain}。对于大部分深度概率模型来说,\gls{markov_chain}是基于\gls{gibbs_sampling}的,并且对于单个变量产生非局部的移动但是无法同时移动所有的变量。对于这些问题来说,考虑edit距离比欧式距离通常更好。然而,高维空间的edit距离很难在二维空间作图展示。} +\caption{一个\gls{spurious_modes}。说明\gls{contrastive_divergence}(\algref{alg:cd})的\gls{negative_phase}为何无法压缩\gls{spurious_modes}的例子。一个\gls{spurious_modes}指的是一个在模型分布中出现数据分布中却不存在的模式。由于\gls{contrastive_divergence}从数据点中初始化它的\gls{markov_chain}然后运行\gls{markov_chain}了仅仅几步,不太可能到达模型中离数据点较远的模式。这意味着从模型中采样时,我们有时候会得到一些与数据并不相似的样本。这也意味着由于在这些模式上浪费了一些概率质量,模型很难把较高的概率质量集中于正确的模式上。出于可视化的目的,这个图使用了某种程度上说更加简单的距离的概念——在$\SetR$的数轴上\gls{spurious_modes}与正确的模式有很大的距离。这对应着基于局部移动$\SetR$上的单个变量$x$的\gls{markov_chain}。对于大部分深度概率模型来说,\gls{markov_chain}是基于\gls{gibbs_sampling}的,并且对于单个变量产生非局部的移动但是无法同时移动所有的变量。对于这些问题来说,考虑edit距离比欧式距离通常更好。然而,高维空间的edit距离很难在二维空间作图展示。} \label{fig:chap18_spurious_mode} \end{figure} \cite{Perpinan+Hinton-2005-small}实验上证明\glssymbol{contrastive_divergence}\gls{estimator}偏向于\glssymbol{RBM}和完全可见的\gls{BM},因为它会收敛到与\gls{MLE}不同的点。 -他们认为,由于偏差很小,\glssymbol{contrastive_divergence}可以被用作一种计算代价低的方式来初始化一个模型,之后可以通过计算代价高的\glssymbol{mcmc}方法进行\gls{fine_tune}。 -\cite{Bengio+Delalleau-2009}表明,\glssymbol{contrastive_divergence}可以被认为是去掉了正确\glssymbol{mcmc}梯度更新中的最小项,这解释了偏差的由来。 +他们认为,由于偏差较小,\glssymbol{contrastive_divergence}可以作为一种计算代价低的方式来初始化模型,之后可以通过计算代价高的\glssymbol{mcmc}方法进行\gls{fine_tune}。 +\cite{Bengio+Delalleau-2009}表明,\glssymbol{contrastive_divergence}可以被理解为去掉了正确\glssymbol{mcmc}梯度更新中的最小项,这解释了偏差的由来。 -在训练诸如\glssymbol{RBM}的浅层网络时\glssymbol{contrastive_divergence}是有用的。 -反过来,这些可以堆叠起来以初始化更深的模型,如\glssymbol{DBN}或\glssymbol{DBM}。 +在训练诸如\glssymbol{RBM}的浅层网络时\glssymbol{contrastive_divergence}估计是很有用的。 +反过来,这些可以堆叠起来初始化更深的模型,如\glssymbol{DBN}或\glssymbol{DBM}。 但是\glssymbol{contrastive_divergence}并不直接有助于训练更深的模型。 -这是因为在给定可见单元样本的情况下,很难获取\gls{hidden_unit}的样本。 -由于\gls{hidden_unit}不包括在数据中,因此从训练点初始化无法解决问题。 -即使我们从数据初始化可见单元,我们仍然需要\gls{burn_in}在给定这些可见单元的\gls{hidden_unit}条件分布上采样的\gls{markov_chain}。 +这是因为在给定可见单元样本的情况下,很难采样\gls{hidden_unit}。 +由于\gls{hidden_unit}不包括在数据中,所以使用训练点初始化无法解决这个问题。 +即使我们使用数据初始化可见单元,我们仍然需要\gls{burn_in}在给定这些可见单元的\gls{hidden_unit}条件分布上采样的\gls{markov_chain}。 % -- 603 -- -\glssymbol{contrastive_divergence}算法可以被认为是惩罚具有\gls{markov_chain}的模型,当输入来自数据时,\gls{markov_chain}会迅速改变。 -这意味着使用\glssymbol{contrastive_divergence}训练有点类似于训练\gls{AE}。 -即使\glssymbol{contrastive_divergence}比一些其他训练方法具有更大偏差,但是它有助于\gls{pretraining}之后会堆叠起来的浅层模型。 -这是因为堆栈中最早的模型鼓励将更多的信息复制到其\gls{latent_variable},从而使其可用于随后的模型。 +\glssymbol{contrastive_divergence}算法可以被理解为惩罚具有\gls{markov_chain}的模型,当输入来自数据时,\gls{markov_chain}会迅速改变。 +这意味着使用\glssymbol{contrastive_divergence}估计训练有点类似于训练\gls{AE}。 +即使\glssymbol{contrastive_divergence}估计比一些其他训练方法具有更大偏差,但是它有助于\gls{pretraining}之后会堆叠起来的浅层模型。 +这是因为堆栈中最早的模型会受激励复制更多的信息到其\gls{latent_variable},使其可用于随后的模型。 这应该更多地被认为是\glssymbol{contrastive_divergence}训练中经常可利用的副作用,而不是原本的设计优势。 @@ -250,19 +249,19 @@ \section{随机最大似然和\glsentrytext{contrastive_divergence}} 这使得\glssymbol{contrastive_divergence}可能存在永久循环的情况,但在实践中这并不是一个严重的问题。 -解决\glssymbol{contrastive_divergence}许多问题的一个不同策略是,在每个梯度步骤中初始化\gls{markov_chain}为先前梯度步骤的状态值。 -这个方法首先在应用数学和统计学社群被发现命名为\textbf{\gls{SML}}(\glssymbol{SML})\citep{Younes98onthe},后来又在\gls{DL}社区中以名称\textbf{\gls{persistent_contrastive_divergence}}(\glssymbol{persistent_contrastive_divergence},或者每个更新中具有$k$个Gibbs步骤的\glssymbol{persistent_contrastive_divergence}-k)独立地被重新发现\citep{Tieleman08-small}。 +另一个解决\glssymbol{contrastive_divergence}中许多问题的不同策略是,在每个梯度步骤中初始化\gls{markov_chain}为先前梯度步骤的状态值。 +这个方法首先被应用数学和统计学社群发现,命名为\textbf{\gls{SML}}(\glssymbol{SML})\citep{Younes98onthe},后来又在\gls{DL}社区中以名称\textbf{\gls{persistent_contrastive_divergence}}(\glssymbol{persistent_contrastive_divergence},或者每个更新中具有$k$个Gibbs步骤的\glssymbol{persistent_contrastive_divergence}-k)独立地被重新发现\citep{Tieleman08-small}。 具体请看\algref{alg:sml}。 -这种方法的基本思想是,只要随机梯度算法得到的步长很小,那么前一步骤的模型将相似于当前步骤的模型。 -因此,来自先前模型分布的样本将非常接近于来自当前模型分布的样本,因此用这些样本初始化的\gls{markov_chain}将不需要花费很多时间来混合。 +这种方法的基本思想是,只要随机梯度算法得到的步长很小,那么前一步骤的模型将类似于当前步骤的模型。 +因此,来自先前模型分布的样本将非常接近于来自当前模型分布的样本,因此用这些样本初始化的\gls{markov_chain}将不需要花费很多时间来完成混合。 -因为每个\gls{markov_chain}在整个学习过程中不断更新,而不是在每个梯度步骤中重新开始,\gls{markov_chain}可以自由探索很远,以找到所有模型的模式。 -因此,对于形成具有\gls{spurious_modes}的模型,\glssymbol{SML}比\glssymbol{contrastive_divergence}具有更大的抵抗力。 +因为每个\gls{markov_chain}在整个学习过程中不断更新,而不是在每个梯度步骤中重新开始,\gls{markov_chain}可以自由探索很远,以找到所有模型的模态。 +因此,\glssymbol{SML}比\glssymbol{contrastive_divergence}具有更强的鲁棒性,以免形成具有\gls{spurious_modes}的模型。 此外,因为有可能存储所有采样变量的状态,无论是可见的还是潜在的,\glssymbol{SML}为\gls{hidden_unit}和可见单元都提供了初始值。 -\glssymbol{contrastive_divergence}只能为可见单元提供初始化,因此需要\gls{deep_model}中进行\gls{burn_in}操作。 +\glssymbol{contrastive_divergence}只能为可见单元提供初始化,因此\gls{deep_model}需要进行\gls{burn_in}步骤。 \glssymbol{SML}能够有效地训练\gls{deep_model}。 -\cite{Marlin10Inductive-small}将\glssymbol{SML}与本章中提出的许多其他标准进行比较。 +\cite{Marlin10Inductive-small}将\glssymbol{SML}与本章中提出的许多其他标准方法进行比较。 他们发现,\glssymbol{SML}在\glssymbol{RBM}上得到了最佳的测试集对数似然,并且如果\glssymbol{RBM}的\gls{hidden_unit}被用作\glssymbol{SVM}分类器的特征,那么\glssymbol{SML}会得到最好的分类精度。 % -- 604 -- @@ -289,18 +288,19 @@ \section{随机最大似然和\glsentrytext{contrastive_divergence}} \end{algorithm} -如果随机梯度算法移动模型可以比\gls{markov_chain}在迭代步中混合更快,那么\glssymbol{SML}容易变得不准确。 -如果$k$太小或$\epsilon$太大的时候,这有可能发生。 +如果随机梯度算法移动模型的速率可以比\gls{markov_chain}在迭代步中混合更快,那么\glssymbol{SML}容易变得不准确。 +如果$k$太小或$\epsilon$太大,那么这有可能发生。 不幸的是,这些值的容许范围与问题有很大关联。 现在还没有方法能够正式地测试\gls{markov_chain}是否能够在迭代步骤之间成功混合。 -主观地,如果学习速率对于\gls{gibbs_steps}而言太大的话,那么我们能够在梯度步骤中观察到比不同\gls{markov_chain}中更多的方差。 -例如,在MNIST上训练的模型在一个步骤上要单独采样$7$秒。 -然后,学习过程将会强烈地推到对应于$7$秒的模式,并且模型可能会在下一步骤单独采样$9$秒。 +主观地,如果学习速率对于Gibbs步骤数目而言太大的话,那么 +梯度步骤中\gls{negative_phase}采样的方差会比不同\gls{markov_chain}中\gls{negative_phase}采样的方差更大。 +例如,MNIST上训练的模型在一个步骤中采样$7$秒; +那么,学习过程将会强烈地让模型学习对应于$7$秒的模态,并且模型可能会在下一步骤中采样$9$秒。 从使用\glssymbol{SML}训练的模型中评估采样必须非常小心。 在模型训练完之后,有必要从一个随机起点初始化的新\gls{markov_chain}抽取样本。 -用于训练的持续负链中的样本已经受到了几个最近版本模型的影响,从而会使得模型看起来具有比其实际更大的容量。 +用于训练的连续负相链中的样本受到了模型最近几个版本的影响,会使模型看起来具有比其实际更大的容量。 % -- 605 -- @@ -308,11 +308,11 @@ \section{随机最大似然和\glsentrytext{contrastive_divergence}} \cite{BerglundR13}进行了实验来检验由\glssymbol{contrastive_divergence}和\glssymbol{SML}进行梯度估计带来的偏差和方差。 结果证明\glssymbol{contrastive_divergence}比基于精确采样的\gls{estimator}具有更低的方差。 而\glssymbol{SML}有更高的方差。 -\glssymbol{contrastive_divergence}方差底的原因是,其在\gls{positive_phase}和\gls{negative_phase}中使用了相同的训练点。 -如果从不同的训练点来初始化\gls{negative_phase},那么方差将会上升到基于精确采样的\gls{estimator}的方差之上。 +\glssymbol{contrastive_divergence}方差低的原因是,其在\gls{positive_phase}和\gls{negative_phase}中使用了相同的训练点。 +如果从不同的训练点来初始化\gls{negative_phase},那么方差会比基于精确采样的\gls{estimator}的方差更大。 -所有这些基于\glssymbol{mcmc}从模型中抽取样本的方法在原则上几乎可以与\glssymbol{mcmc}的任何变体一起使用。 +所有基于\glssymbol{mcmc}从模型中抽取样本的方法在原则上几乎可以与\glssymbol{mcmc}的任何变体一起使用。 这意味着诸如\glssymbol{SML}这样的技术可以使用\chapref{chap:monte_carlo_methods}中描述的任何增强\glssymbol{mcmc}的技术(例如并行回火)来加以改进\citep{desjardins2010tempered,Cho10IJCNN-small}。 @@ -322,24 +322,24 @@ \section{随机最大似然和\glsentrytext{contrastive_divergence}} \begin{equation} \Vtheta = \Vtheta^{\text{(slow)}} + \Vtheta^{\text{(fast)}}. \end{equation} -现在的参数是以前的两倍多,它们被逐个相加以提供用于原始模型定义的参数。 -参数的快速复制用更大的学习速率来训练,从而使其快速响应学习的\gls{negative_phase},并将\gls{markov_chain}推到新的值域。 +现在的参数是以前的两倍多,逐位相加定义原始模型的参数。 +参数的快速复制用更大的学习速率来训练,从而使其快速响应学习的\gls{negative_phase},并使\gls{markov_chain}探索新的值域。 这能够使\gls{markov_chain}快速混合,尽管这种效应只会发生在学习期间快速权重可以自由改变的时候。 -通常,在瞬间将快速权重设为大值足够长时间,使\gls{markov_chain}改变模式之后,我们会对快速权重使用显著的权重衰减,促使它们收敛到小值。 +通常,在短时间地将快速权重设为大值并保持足够长时间,使\gls{markov_chain}改变模式之后,我们会对快速权重使用显著的权重衰减,促使它们收敛到小值。 -本节中描述基于\glssymbol{mcmc}的方法的一个关键优点是它们提供了$\log Z$梯度的估计,因此我们可以从本质上将问题分解为$\log \tilde{p}$和$\log Z$两块。 -然后我们可以使用任何其他的方法来处理$\log \tilde{p}(\RVx)$,并且只需将我们的\gls{negative_phase}梯度加入到其他方法的梯度中。 -特别地,这意味着\gls{positive_phase}可以利用在$\tilde{p}$上仅提供下限的方法。 -本章介绍处理$\log Z$的大多数其他方法都和基于边界的\gls{positive_phase}方法是不兼容的。 +本节介绍的基于\glssymbol{mcmc}的方法的一个关键优点是它们提供了$\log Z$梯度的估计,因此我们可以从本质上将问题分解为$\log \tilde{p}$和$\log Z$两块。 +然后我们可以使用任何其他的方法来处理$\log \tilde{p}(\RVx)$,只需将我们的\gls{negative_phase}梯度加到其他方法的梯度中。 +特别地,这意味着\gls{positive_phase}可以使用在$\tilde{p}$上仅有下限的方法。 +然而,本章介绍处理$\log Z$的大多数其他方法都和基于边界的\gls{positive_phase}方法是不兼容的。 % -- 606 -- \section{\glsentrytext{pseudolikelihood}} \label{sec:pseudolikelihood} -\gls{monte_carlo}近似\gls{partition_function}及其梯度需要直接面对\gls{partition_function}。 -有些其他方法通过训练不需要计算\gls{partition_function}的模型来解决这个问题。 -大多数这些方法基于以下观察:无向概率模型中概率的比率是很容易计算的。 +\gls{monte_carlo}近似\gls{partition_function}及其梯度需要直接处理\gls{partition_function}。 +有些其他方法通过训练不需要计算\gls{partition_function}的模型来绕开这个问题。 +这些方法大多数都基于以下观察:无向概率模型中很容易计算概率的比率。 这是因为\gls{partition_function}同时出现在比率的分子和分母中,互相抵消: \begin{equation} \frac{p(\RVx)}{ p(\RVy) } = \frac{ \frac{1}{Z} \tilde{p}(\RVx) }{ \frac{1}{Z} \tilde{p}(\RVy) } = @@ -348,12 +348,12 @@ \section{\glsentrytext{pseudolikelihood}} \gls{pseudolikelihood}正是基于\gls{conditional_probability}可以采用这种基于比率的形式,因此可以在没有\gls{partition_function}的情况下进行计算。 -假设我们将$\RVx$分为$\RVa$,$\RVb$和$\RVc$,其中$\RVa$包含我们想要找到的条件分布的变量,$\RVb$包含我们想要条件化的变量,$\RVc$包含不涉及的一部分变量: +假设我们将$\RVx$分为$\RVa$,$\RVb$和$\RVc$,其中$\RVa$包含我们想要的条件分布的变量,$\RVb$包含我们想要条件化的变量,$\RVc$包含除此之外的变量: \begin{equation} p(\RVa \mid \RVb) = \frac{ p(\RVa, \RVb) }{ p(\RVb) } = \frac{p(\RVa, \RVb)}{ \sum_{\RVa, \RVc} p(\RVa, \RVb, \RVc) } = \frac{ \tilde{p}(\RVa, \RVb) }{ \sum_{\RVa, \RVc} \tilde{p}(\RVa, \RVb, \RVc) }. \end{equation} -这个量需要边缘化$\RVa$,假设$\RVa$和$\RVc$包含的变量并不多,那么这将是非常高效的操作。 -在极端情况下,$\RVa$可以是单个变量,$\RVc$可以为空,使得该操作仅需要估计与单个\gls{RV}值一样多的$\tilde{p}$。 +以上计算需要边缘化$\RVa$,假设$\RVa$和$\RVc$包含的变量并不多,那么这将是非常高效的操作。 +在极端情况下,$\RVa$可以是单个变量,$\RVc$可以为空,那么该计算仅需要估计与单个\gls{RV}值一样多的$\tilde{p}$。 不幸的是,为了计算对数似然,我们需要边缘化很多变量。 @@ -363,23 +363,23 @@ \section{\glsentrytext{pseudolikelihood}} \log p(\RVx) = \log p(x_1) + \log p(x_2 \mid x_1) + \dots + \log p(x_n \mid \RVx_{1:n−1}). \end{equation} 在这种情况下,我们已经使$\RVa$尽可能小,但是$\RVc$可以大到$\RVx_{2:n}$。 -如果我们简单地将$\RVc$移到$\RVb$中以减少计算代价,会怎么样呢? -这便产生了\firstgls{pseudolikelihood}\citep{Besag75pseudolikelihood}目标函数,基于给定所有其他特征$\Vx_{-i}$,预测特征$x_i$的值: +如果我们简单地将$\RVc$移到$\RVb$中以减少计算代价,那么会发生什么呢? +这便产生了\firstgls{pseudolikelihood}\citep{Besag75pseudolikelihood}目标函数,给定所有其他特征$\Vx_{-i}$,预测特征$x_i$的值: \begin{equation} \sum_{i=1}^n \log p(x_i \mid \Vx_{-i}). \end{equation} -如果每个\gls{RV}具有$k$个不同的值,那么计算\gls{partition_function}需要$k\times n$次估计$\tilde{p}$去计算,而计算\gls{partition_function}需要$k^n$次估计。 +如果每个\gls{RV}有$k$个不同的值,那么计算$\tilde{p}$需要$k\times n$次估计,而计算\gls{partition_function}需要$k^n$次估计。 % -- 607 -- -这可能看起来像是一个没有道理的技巧,但可以证明最大化伪似然的估计是渐近一致的\citep{Mase1995}。 -当然,在数据集不接近大采样极限的情况下,伪可能性可以表现出与最大似然估计不同的结果。 +这看起来似乎是一个没有道理的技巧,但可以证明最大化伪似然的估计是渐近一致的\citep{Mase1995}。 +当然,在数据集不接近大采样极限的情况下,伪可能性可能表现出与最大似然估计不同的结果。 -可以用\firstgls{generalized_pseudolikelihood_estimator}来以计算复杂度换取最大似然的偏离\citep{Huang02}。 -\gls{generalized_pseudolikelihood_estimator}使用$m$个不同的集合$\SetS^{(i)}$,$i=1, \dots, m$作为变量的指标都出现在条件棒的左侧。 +可以用\firstgls{generalized_pseudolikelihood_estimator}以计算复杂度的增加换取最大似然偏离的下降\citep{Huang02}。 +\gls{generalized_pseudolikelihood_estimator}使用$m$个不同的集合$\SetS^{(i)}$,$i=1, \dots, m$作为变量的指标出现在条件棒的左侧。 在$m = 1$和$\SetS^{(1)}= 1, \dots, n$的极端情况下\gls{generalized_pseudolikelihood_estimator}会变为对数似然。 在$m = n$和$\SetS^{(i)} = \{i\}$的极端情况下,广义伪似然会变为伪随机。 \gls{generalized_pseudolikelihood_estimator}目标函数如下所示 @@ -389,28 +389,28 @@ \section{\glsentrytext{pseudolikelihood}} 基于\gls{pseudolikelihood}的方法的性能在很大程度上取决于模型是如何使用的。 -\gls{pseudolikelihood}容易在需要完全联合分布$p(\RVx)$的良好模型的任务上效果不好,例如密度估计和采样。 -对于在训练期间只需要使用条件分布的任务而言,它可以比最大似然性能更好,例如填充少量的缺失值。 -如果数据具有规则结构,使得$\SetS$索引集可以被设计为表现最重要的相关,同时略去相关性可忽略的变量组,那么广义伪似然技巧会是特别强大的。 -例如,在自然图像中,在空间中相隔很远的像素也具有弱相关性,因此广义伪似然可以应用于每个$\SetS$集是小的空间定位窗口的情况。 +对于完全联合分布$p(\RVx)$模型的任务(例如密度估计和采样),\gls{pseudolikelihood}通常效果不好。 +对于在训练期间只需要使用条件分布的任务而言,它的效果比最大似然更好,例如填充少量的缺失值。 +如果数据具有规则结构,使得$\SetS$索引集可以被设计为表现最重要的相关性质,同时略去相关性可忽略的变量,那么广义伪似然技巧将会非常有效。 +例如,在自然图像中,空间中相隔很远的像素也具有弱相关性,因此广义伪似然可以应用于每个$\SetS$集是小的空间定位窗口的情况。 -伪似然估计的一个弱点是它不能与仅在$\tilde{p}(\RVx)$上提供下界的其他近似一起使用,例如\chapref{chap:approximate_inference}中讨论的变分推断。这是因为$\tilde{p}$出现在了分母中。 -分母的下限只提供了整个表达式的上界,然而我们并不关心最大化上界。 +伪似然估计的一个弱点是它不能与仅在$\tilde{p}(\RVx)$上提供下界的其他近似一起使用,例如\chapref{chap:approximate_inference}中介绍的\gls{variational_inference}。这是因为$\tilde{p}$出现在了分母中。 +分母的下界仅提供了整个表达式的上界,然而我们并不关心最大化上界。 这使得难以将\gls{pseudolikelihood}方法应用于诸如\gls{DBM}的\gls{deep_model},因为变分方法是近似边缘化互相作用的多层\gls{hidden_variable}的主要方法之一。 -尽管如此,\gls{pseudolikelihood}仍然对\gls{DL}有用,因为它可以用于单层模型或是使用不基于下限的近似推断方法的\gls{deep_model}。 +尽管如此,\gls{pseudolikelihood}仍然可以用在\gls{DL}中,它可以用于单层模型,或使用不基于下限的近似推断方法的\gls{deep_model}。 % -- 608 -- -\gls{pseudolikelihood}比\glssymbol{SML}在每个梯度步骤的成本要大得多,这是由于其对所有条件进行显式计算。 -但是,如果每个样本只计算一个随机选择的条件,那么广义伪似然和类似标准仍然可以很好地运行,从而使计算代价降低到与\glssymbol{SML}匹配的程度\citep{Goodfellow-et-al-NIPS2013}。 +\gls{pseudolikelihood}比\glssymbol{SML}在每个梯度步骤中的计算代价要大得多,这是由于其对所有条件进行显式计算。 +但是,如果每个样本只计算一个随机选择的条件,那么广义伪似然和类似标准仍然可以很好地运行,从而使计算代价降低到和\glssymbol{SML}差不多的程度\citep{Goodfellow-et-al-NIPS2013}。 -虽然\gls{pseudolikelihood}估计没有显式地最小化$\log Z$,但是它仍然可以被认为具有类似于\gls{negative_phase}的东西。 -每个条件分布的分母会使得学习算法抑制所有的仅具有一个变量区别于训练样本的状态的概率。 +虽然\gls{pseudolikelihood}估计没有显式地最小化$\log Z$,但是它可以被认为具有类似于\gls{negative_phase}的东西。 +每个条件分布的分母会使得学习算法降低,所有仅具有一个变量不同于训练样本的状态的概率。 -了解\gls{pseudolikelihood}渐近效率的理论分析,请参看\cite{Marlin11-small}。 +了解\gls{pseudolikelihood}的渐近效率理论分析,请参看\cite{Marlin11-small}。 \section{\glsentrytext{score_matching}和\glsentrytext{ratio_matching}} diff --git a/Chapter2/linear_algebra.tex b/Chapter2/linear_algebra.tex index 91cf9d3..7f02346 100644 --- a/Chapter2/linear_algebra.tex +++ b/Chapter2/linear_algebra.tex @@ -78,7 +78,7 @@ \section{标量,向量,矩阵和张量} \item \firstgls{tensor}:在某些情况下,我们会讨论不只两维坐标的数组。 一般地,一组数组中的元素分布在若干维坐标的规则网格中,我们将其称之为张量。 我们使用这种字体$\TSA$来表示张量``A''。 - 张量$\TSA$中坐标为$(i,j,k)$的元素记作$\textsf{\emph{A}}_{i,j,k}$。 + 张量$\TSA$中坐标为$(i,j,k)$的元素记作$\TEA_{i,j,k}$。 \end{itemize} @@ -531,7 +531,7 @@ \section{\glsentrytext{eigendecomposition}} 从这个表示中我们可以获得一些有用的信息,比如$12$不能被$5$整除,或者$12$的倍数可以被$3$整除。 -正如我们可以通过分解质因数来发现一些关于整数的真实性质,我们也可以通过分解矩阵来获取矩阵表示成数组元素时不明显的函数性质。 +正如我们可以通过分解质因数来发现整数的一些内在性质,我们也可以通过分解矩阵来发现矩阵表示成数组元素时不明显的函数性质。 \firstgls{eigendecomposition}是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值。 @@ -555,7 +555,7 @@ \section{\glsentrytext{eigendecomposition}} 类似地,我们也可以将特征值连接成一个向量$\Vlambda = [\lambda_1, \dots , \lambda_n]^\top$。 因此$\MA$的\firstgls{eigendecomposition}可以记作 \begin{equation} - \MA = \MV \text{diag}(\mathbf{\Vlambda}) \MV^{-1}. + \MA = \MV \text{diag}(\Vlambda) \MV^{-1}. \end{equation} diff --git a/Chapter8/optimization_for_training_deep_models.tex b/Chapter8/optimization_for_training_deep_models.tex index 1d0b2b9..ec52b9d 100644 --- a/Chapter8/optimization_for_training_deep_models.tex +++ b/Chapter8/optimization_for_training_deep_models.tex @@ -98,11 +98,9 @@ \subsection{替代损失函数和\glsentrytext{early_stopping}} 这是因为即使$0-1$损失期望是零时,我们还能拉开不同类别的距离以改进分类器的鲁棒性,获得一个更强壮的,值得信赖的分类器。 因而,相较于简单地最小化训练集上的平均$0-1$损失,从训练数据中抽取了更多信息。 -一般的优化和我们用于训练算法的优化的一个重要不同之处在于,训练算法通常不会停在一个局部最小处。 -反之,机器学习通常会优化一个替代损失函数,并停止在基于\gls{early_stopping}(\secref{sec:early_stopping})的收敛条件满足的情况。 -通常,\gls{early_stopping}是基于真实损失函数,如验证集上的$0-1$损失,并被设计用于将算法终止于过拟合发生之前。 -训练过程通常终止于替代损失函数仍有较大的导数时,这和纯优化非常不同。 -纯优化通常会考虑算法收敛到梯度很小的时候。 +一般的优化和我们用于训练算法的优化的一个重要不同:训练算法通常不收敛在局部极小。 +反之,机器学习通常优化替代损失函数,并可能基于\secref{sec:early_stopping}的收敛条件\gls{early_stopping}。 +通常,\gls{early_stopping}使用真实损失函数,如验证集上的$0-1$损失函数,并在过拟合发生之前终止;与纯优化不同的是,\gls{early_stopping}时替代损失函数仍然有较大的导数,而纯优化终止时导数较小。 \subsection{批算法和\gls{minibatch}算法} \label{sec:batch_and_minibatch_algorithms} diff --git a/acknowledgments_github.md b/acknowledgments_github.md index cc0b357..1bcc96d 100644 --- a/acknowledgments_github.md +++ b/acknowledgments_github.md @@ -144,3 +144,7 @@ - @endymecy ==> Chapter14, 语句问题 +2017年1月5日 +--------------- + - @tonyzeng2016 ==> Chapter8, 8.1.2最后一段翻译建议 + - @zdx3578 ==> Chapter18, "intractable"翻译建议 diff --git a/terminology.tex b/terminology.tex index 011d1c6..21ebe23 100644 --- a/terminology.tex +++ b/terminology.tex @@ -645,7 +645,7 @@ \newglossaryentry{estimator} { - name=估计量, + name=估计, description={estimator}, sort={estimator}, } @@ -2177,7 +2177,7 @@ \newglossaryentry{score_matching} { - name=分数匹配, + name=得分匹配, description={score matching}, sort={score matching}, } @@ -4274,7 +4274,7 @@ \newglossaryentry{score} { - name=分数, + name=得分, description={score}, sort={score}, } @@ -4632,7 +4632,7 @@ \newglossaryentry{spurious_modes} { - name=伪造模式, + name=虚假模态, description={spurious modes}, sort={spurious modes}, } @@ -4677,7 +4677,7 @@ \newglossaryentry{GSM} { - name=广义分数匹配, + name=广义得分匹配, description={generalized score matching}, sort={generalized score matching}, symbol={GSM} From 1cd92225b5a693d00537b4d1785349eba74d61d8 Mon Sep 17 00:00:00 2001 From: futianfan Date: Fri, 6 Jan 2017 09:52:10 +0800 Subject: [PATCH 3/3] adjust 19.4 Former-commit-id: 986a10b1228418a4577454fb8b994607eca947d1 --- Chapter19/approximate_inference.tex | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Chapter19/approximate_inference.tex b/Chapter19/approximate_inference.tex index f811610..fb52731 100644 --- a/Chapter19/approximate_inference.tex +++ b/Chapter19/approximate_inference.tex @@ -296,7 +296,7 @@ \section{变分推断和学习} 变分学习的核心思想就是我们通过选择给定的分布族中的一个$q$分布来最大化$\CalL$。 选择这个分布族的时候应该考虑到计算$\SetE_q \log p(\Vh,\Vv)$的简单性。 -一个典型的方法就是添加一些假设诸如$q$可以分解。 +一个典型的方法就是添加一些假设诸如$q$分布可以分解。 % 630 head @@ -311,19 +311,19 @@ \section{变分推断和学习} 变分方法的优点是我们不需要为分布$q$设定一个特定的参数化的形式。 -我们设定它如何分解,而优化问题中决定了在这些分解限制下的最优的概率分布。 +我们设定它如何分解,之后通过解决优化问题来找出在这些分解限制下的最优的概率分布。 对离散型的\gls{latent_variable}来说,这意味着我们使用了传统的优化技巧来优化描述$q$分布的有限个数的变量。 对连续性的变量来说,这意味着我们使用了一个叫做\firstgls{calculus_of_variations}的数学分支来解决对一个空间的函数的优化问题。 -然后决定哪一个函数来表示$q$。 +然后决定哪一个函数来表示$q$分布。 \gls{calculus_of_variations}是``变分学习''或者``变分推断''这些名字的来历,尽管当\gls{latent_variable}是离散的时候\gls{calculus_of_variations}并没有用武之地。 -当遇到连续的\gls{latent_variable}的时候,\gls{calculus_of_variations}是一种很有用的工具,只需要设定分布$q$如何分解,而不需要过多的人工选择模型,比如尝试着设计一个特定的能够精确的近似原后验分布的$q$。 +当遇到连续的\gls{latent_variable}的时候,\gls{calculus_of_variations}是一种很有用的工具,只需要设定分布$q$如何分解,而不需要过多的人工选择模型,比如尝试着设计一个特定的能够精确的近似原后验分布的$q$分布。 % 630 -因为$\CalL(\Vv,\Vtheta,q)$定义成$\log p(\Vv;\Vtheta) - D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv;\Vtheta))$,我们可以认为关于$q$最大化$\CalL$的问题等价于最小化$D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv))$。 +因为$\CalL(\Vv,\Vtheta,q)$定义成$\log p(\Vv;\Vtheta) - D_{\text{KL}} (q(\Vh\mid\Vv) \Vert p(\Vh\mid\Vv;\Vtheta) )$,我们可以认为关于$q$最大化$\CalL$的问题等价于最小化$D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv))$。 在这种情况下,我们要用$q$来拟合$p$。 然而,我们并不是直接拟合一个近似,而是处理一个\gls{KL}的问题。 -当我们使用\gls{MLE}来将数据拟合到模型的时候,我们最小化$D_{\text{KL}}(p_{\text{data}\Vert p_{\text{model}}})$。 +当我们使用\gls{MLE}来将数据拟合到模型的时候,我们最小化$D_{\text{KL}}(p_{\text{data}} \Vert p_{\text{model}})$。 如同\figref{fig:chap3_kl_direction_color}中所示,这意味着\gls{MLE}促进模型在每一个数据达到更高概率的地方达到更高的概率,而基于优化的推断则促进了$q$在每一个真实后验分布概率较低的地方概率较小。 这两种方法都有各自的优点与缺点。 选择哪一种方法取决于在具体应用中哪一种性质更受偏好。