From ddb233372ee5842cf7e80f0911d426d4f9c84aee Mon Sep 17 00:00:00 2001 From: swordyork Date: Wed, 15 Mar 2017 16:41:29 +0800 Subject: [PATCH] chapter 18 done --- .../confronting_the_partition_function.tex | 60 +- README.md | 5 +- .../2016-12-01-Chapter1_introduction.md | 64 +- .../2016-12-02-Chapter2_linear_algebra.md | 2 +- ...ter3_probability_and_information_theory.md | 62 +- ...16-12-04-Chapter4_numerical_computation.md | 82 +-- ...-12-05-Chapter5_machine_learning_basics.md | 26 +- ...2-06-Chapter6_deep_feedforward_networks.md | 142 ++-- .../2016-12-07-Chapter7_regularization.md | 390 +++++------ ...8_optimization_for_training_deep_models.md | 18 +- ...6-12-09-Chapter9_convolutional_networks.md | 89 +-- ...6-12-10-Chapter10_sequence_modeling_rnn.md | 4 +- .../2016-12-12-Chapter12_applications.md | 2 +- ...16-12-13-Chapter13_linear_factor_models.md | 2 +- .../2016-12-14-Chapter14_autoencoders.md | 132 ++-- ...12-15-Chapter15_representation_learning.md | 72 +-- ...er16_structured_probabilistic_modelling.md | 67 +- ...016-12-17-Chapter17_monte_carlo_methods.md | 32 +- ...er18_confronting_the_partition_function.md | 80 +-- ...6-12-19-Chapter19_approximate_inference.md | 184 +++--- ...-12-20-Chapter20_deep_generative_models.md | 611 +++++++++--------- 21 files changed, 1063 insertions(+), 1063 deletions(-) diff --git a/Chapter18/confronting_the_partition_function.tex b/Chapter18/confronting_the_partition_function.tex index 1caf1a5..df12261 100644 --- a/Chapter18/confronting_the_partition_function.tex +++ b/Chapter18/confronting_the_partition_function.tex @@ -88,9 +88,9 @@ \section{对数似然梯度} \end{equation} 该等式只适用于$\tilde{p}$和$\nabla_{\Vtheta} \tilde{p} (\RVx)$上的一些特定规范条件。 在测度论术语中,这些条件是: -(1)对每一个$\Vtheta$而言,未归一化分布$\tilde{p}$必须是$\Vx$的\gls{lebesgue_integrable}函数。 -(2)对于所有的$\Vtheta$和几乎所有$\Vx$,梯度$\nabla_{\Vtheta} \tilde{p}(\RVx)$必须存在。 -(3)对于所有的$\Vtheta$和几乎所有的$\Vx$,必须存在一个可积函数$R(\Vx)$使得$\max_i | \frac{\partial}{\partial \theta_i } \tilde{p} (\RVx) | \leq R(\Vx)$。 +(1) 对每一个$\Vtheta$而言,未归一化分布$\tilde{p}$必须是$\Vx$的\gls{lebesgue_integrable}函数。 +(2) 对于所有的$\Vtheta$和几乎所有$\Vx$,梯度$\nabla_{\Vtheta} \tilde{p}(\RVx)$必须存在。 +(3) 对于所有的$\Vtheta$和几乎所有的$\Vx$,必须存在一个可积函数$R(\Vx)$使得$\max_i | \frac{\partial}{\partial \theta_i } \tilde{p} (\RVx) | \leq R(\Vx)$。 幸运的是,大多数感兴趣的\gls{ML}模型都具有这些性质。 % 599 mid @@ -107,7 +107,7 @@ \section{对数似然梯度} 在\gls{negative_phase}中,我们通过降低从模型分布中采样的$\log \tilde{p}(\RVx)$来降低\gls{partition_function}。 % 599 mid -在\gls{DL}文献中,经常会看到用\gls{energy_function}(等式\eqnref{eqn:167})来参数化$\log \tilde{p}$。 +在\gls{DL}文献中,经常会看到用\gls{energy_function}(\eqnref{eqn:167})来参数化$\log \tilde{p}$。 在这种情况下,\gls{positive_phase}可以解释为压低训练样本的能量,\gls{negative_phase}可以解释为提高模型抽出的样本的能量,如\figref{fig:chap18_pos_and_neg_phase}所示。 % 599 mid @@ -127,7 +127,7 @@ \section{随机\glsentrytext{maximum_likelihood}和\glsentrytext{contrastive_div \label{alg:naive_cd} \begin{algorithmic} \STATE 设步长 $\epsilon$ 为一个小正数。 -\STATE 设\gls{gibbs_steps} $k$ 大到足以允许\gls{burn_in}。在小图像集上训练一个~\glssymbol{RBM}~大致设为100 。 +\STATE 设\gls{gibbs_steps} $k$ 大到足以允许\gls{burn_in}。在小图像集上训练一个~\glssymbol{RBM}~大致设为100。 \WHILE{不收敛} \STATE 从训练集中采包含 $m$ 个样本$\{ \RVx^{(1)}, \dots, \RVx^{(m)}\}$的\gls{minibatch}。 \STATE $\RVg \leftarrow \frac{1}{m} \sum_{i=1}^m \nabla_{\Vtheta} \log \tilde{p}(\RVx^{(i)}; \Vtheta)$. @@ -157,8 +157,8 @@ \section{随机\glsentrytext{maximum_likelihood}和\glsentrytext{contrastive_div \centerline{\includegraphics{Chapter18/figures/pos_and_neg_phase_color}} \fi \caption{\algref{alg:naive_cd}角度的``\gls{positive_phase}''和``\gls{negative_phase}''。 -(左)在\gls{positive_phase}中,我们从数据分布中采样,然后推高它们未归一化的概率。这意味着概率越高的数据点未归一化的概率被推高得越多。 -(右)在\gls{negative_phase}中,我们从模型分布中采样,然后压低它们未归一化的概率。 +\emph{(左)}在\gls{positive_phase}中,我们从数据分布中采样,然后推高它们未归一化的概率。这意味着概率越高的数据点未归一化的概率被推高得越多。 +\emph{(右)}在\gls{negative_phase}中,我们从模型分布中采样,然后压低它们未归一化的概率。 这与\gls{positive_phase}的倾向相反,给未归一化的概率处处添加了一个大常数。 当数据分布和模型分布相等时,\gls{positive_phase}推高数据点和\gls{negative_phase}压低数据点的机会相等。 此时,不再有任何的梯度(期望上说),训练也必须停止。} @@ -237,7 +237,7 @@ \section{随机\glsentrytext{maximum_likelihood}和\glsentrytext{contrastive_div 出于可视化的目的,这个图使用了某种程度上说更加简单的距离的概念——在$\SetR$的数轴上\gls{spurious_modes}与正确的模式有很大的距离。 这对应着基于局部移动$\SetR$上的单个变量$x$的\gls{markov_chain}。 对于大部分深度概率模型来说,\gls{markov_chain}是基于\,\gls{gibbs_sampling}的,并且对于单个变量产生非局部的移动但是无法同时移动所有的变量。 -对于这些问题来说,考虑edit距离比欧式距离通常更好。 +对于这些问题来说,考虑编辑距离比欧式距离通常更好。 然而,高维空间的编辑距离很难在二维空间作图展示。} \label{fig:chap18_spurious_mode} \end{figure} @@ -340,8 +340,8 @@ \section{随机\glsentrytext{maximum_likelihood}和\glsentrytext{contrastive_div \begin{equation} \Vtheta = \Vtheta^{\text{(slow)}} + \Vtheta^{\text{(fast)}}. \end{equation} -现在的参数是以前的两倍多,逐位相加定义原始模型的参数。 -快速参数用更大的\gls{learning_rate}来训练,从而使其快速响应学习的\gls{negative_phase},并促使\gls{markov_chain}探索新的区域。 +现在的参数是以前的两倍多,将其逐个相加以定义原始模型的参数。 +快速复制参数可以使用更大的\gls{learning_rate}来训练,从而使其快速响应学习的\gls{negative_phase},并促使\gls{markov_chain}探索新的区域。 这能够使\gls{markov_chain}快速\gls{mixing},尽管这种效应只会发生在学习期间快速权重可以自由改变的时候。 通常,在短时间地将快速权重设为大值并保持足够长时间,使\gls{markov_chain}改变\gls{mode}之后,我们会对快速权重使用显著的\gls{weight_decay},促使它们收敛到较小的值。 @@ -396,10 +396,10 @@ \section{\glsentrytext{pseudolikelihood}} 当然,在数据集不趋近于大采样极限的情况下,\gls{pseudolikelihood}可能表现出与\gls{MLE}不同的结果。 % 608 head -可以用\firstgls{generalized_pseudolikelihood_estimator}以计算复杂度的增加换取其相对于最大似然表现的偏离的下降~\citep{Huang02}。 +我们可以使用\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}会变为\gls{pseudolikelihood}。%?? recover the pseudolikeli +在$m = 1$和$\SetS^{(1)}= 1, \dots, n$的极端情况下,\gls{generalized_pseudolikelihood_estimator}会变为对数似然。 +在$m = n$和$\SetS^{(i)} = \{i\}$的极端情况下,\gls{generalized_pseudolikelihood}会恢复为\gls{pseudolikelihood}。%?? recover the pseudolikeli \gls{generalized_pseudolikelihood_estimator}\gls{objective_function}如下所示 \begin{equation} \sum_{i=1}^m \log p(\RVx_{\SetS^{(i)}} \mid \RVx_{- \SetS^{(i)} }). @@ -416,7 +416,7 @@ \section{\glsentrytext{pseudolikelihood}} \gls{pseudolikelihood}估计的一个弱点是它不能与仅在$\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 end @@ -428,7 +428,7 @@ \section{\glsentrytext{pseudolikelihood}} 每个条件分布的分母会使得学习算法降低所有仅具有一个变量不同于训练样本的状态的概率。 -了解\gls{pseudolikelihood}渐近效率的理论分析,可以参考~\cite{Marlin11-small}。 +读者可以参考~\cite{Marlin11-small}了解\gls{pseudolikelihood}渐近效率的理论分析,。 % 609 mid \section{\glsentrytext{score_matching}和\glsentrytext{ratio_matching}} @@ -443,7 +443,7 @@ \section{\glsentrytext{score_matching}和\glsentrytext{ratio_matching}} J(\Vtheta) & = \frac{1}{2} \SetE_{p_{\text{data}}(\Vx)} L(\Vx, \Vtheta), \\ %\end{equation} %\begin{equation} - \Vtheta^* & = \min_{\Vtheta} J(\Vtheta) . \\ + \Vtheta^* & = \min_{\Vtheta} J(\Vtheta) . \end{align} @@ -509,7 +509,7 @@ \section{\glsentrytext{score_matching}和\glsentrytext{ratio_matching}} 该近似只估计随机选择的目标子集,不需要模型生成完整的样本。 -了解\gls{ratio_matching}渐近效率的理论分析,可以参考~\cite{Marlin11-small}。 +读者可以参考~\cite{Marlin11-small}了解\gls{ratio_matching}渐近效率的理论分析,。 % 611 mid \section{\glsentrytext{denoising_score_matching}} @@ -522,8 +522,8 @@ \section{\glsentrytext{denoising_score_matching}} 分布$q(\Vx \mid \Vy)$是一个损坏过程,通常在形成$\Vx$的过程中会向$\Vy$中添加少量\gls{noise}。 -\gls{denoising_score_matching}非常有用,因为在实践中,通常我们不能获取真实的$p_{data}$,而只能得到其样本确定的\gls{empirical_distribution}。 -给定足够\gls{capacity},任何一致估计都会使$p_{model}$成为一组以训练点为中心的\,\gls{dirac_distribution}。 +\gls{denoising_score_matching}非常有用,因为在实践中,通常我们不能获取真实的$p_{\text{data}}$,而只能得到其样本确定的\gls{empirical_distribution}。 +给定足够\gls{capacity},任何一致估计都会使$p_{\text{model}}$成为一组以训练点为中心的\,\gls{dirac_distribution}。 考虑在\secref{sec:consistency}介绍的渐近一致性上的\gls{loss},通过$q$来平滑有助于缓解这个问题。 \cite{Kingma+LeCun-2010}介绍了平滑分布$q$为正态分布\gls{noise}的\gls{regularize}\gls{score_matching}。 @@ -546,8 +546,8 @@ \section{\glsentrytext{NCE}} \log p_{\text{model}} (\RVx) = \log \tilde{p}_{\text{model}} (\RVx; \Vtheta) + c, \end{equation} 其中$c$是$-\log Z(\Vtheta)$的近似。 -不仅仅估计$\Vtheta$,\gls{NCE}过程将$c$视为另一参数,使用相同的算法同时估计$\Vtheta$和$c$。 -因此,所得到的$\log p_{\text{model}}(\RVx)$可能并不完全对应有效的\gls{PD},但随着$c$估计的改进,它将变得越来越接近有效值\footnote{\glssymbol{NCE}~也适用于具有易于处理的,不需要引入额外参数$c$的\gls{partition_function}的问题。它已经是最令人感兴趣的,估计具有复杂\gls{partition_function}模型的方法}。 +\gls{NCE}过程将$c$视为另一参数,使用相同的算法同时估计$\Vtheta$和$c$,而不是仅仅估计$\Vtheta$,。 +因此,所得到的$\log p_{\text{model}}(\RVx)$可能并不完全对应有效的\gls{PD},但随着$c$估计的改进,它将变得越来越接近有效值\footnote{\glssymbol{NCE}~也适用于具有易于处理的,不需要引入额外参数$c$的\gls{partition_function}的问题。它已经是最令人感兴趣的,估计具有复杂\gls{partition_function}模型的方法。}。 这种方法不可能使用最大似然作为估计的标准。 @@ -633,7 +633,7 @@ \section{\glsentrytext{NCE}} 同样地,$p_{\text{noise}}$的下界也没有用,因为它只提供了$p_{\text{joint}}( y = 1 \mid \RVx)$的上界。 -当在每个梯度步骤之前,模型分布被复制来定义新的\gls{noise_distribution}时,\glssymbol{NCE}\,定义了一个被称为\firstgls{self_contrastive_estimation}的过程,其梯度期望等价于最大似然的梯度期望~\citep{Goodfellow-ICLR2015}。 +在每个梯度步骤之前,模型分布被复制来定义新的\gls{noise_distribution}时,\glssymbol{NCE}\,定义了一个被称为\firstgls{self_contrastive_estimation}的过程,其梯度期望等价于最大似然的梯度期望~\citep{Goodfellow-ICLR2015}。 特殊情况的\,\glssymbol{NCE}(\gls{noise}采样由模型生成)表明最大似然可以被解释为使模型不断学习以将现实与自身发展的信念区分的过程,而\gls{NCE}通过让模型区分现实和固定的基准(\gls{noise}模型),我们降低了计算成本。%?? 以 是不是多余的? @@ -795,7 +795,7 @@ \subsection{\glsentrytext{AIS}} % -- 618 -- -利用由此定义的抽样过程和\eqnref{eq:18.52}中给出的重要性权重,\gls{partition_function}的比率估计如下所示: +利用由此定义的采样过程和\eqnref{eq:18.52}中给出的重要性权重,\gls{partition_function}的比率估计如下所示: \begin{equation} \frac{Z_1}{Z_0} \approx \frac{1}{K} \sum_{k=1}^K w^{(k)} \end{equation} @@ -835,7 +835,7 @@ \subsection{\glsentrytext{AIS}} \frac{ \tilde{p}_{\eta_{1}}(\Vx_{\eta_{1}}^{(k)}) }{ \tilde{p}_{0}(\Vx_{0}^{(k)}) } . \end{equation} 这些权重和\,\glssymbol{AIS}\,上的权重相同。 -因此,我们可以将\,\glssymbol{AIS}\,解释为应用于扩展状态上的简单\gls{importance_sampling},其有效性紧紧来源于\gls{importance_sampling}的有效性。 +因此,我们可以将\,\glssymbol{AIS}\,解释为应用于扩展状态上的简单\gls{importance_sampling},其有效性直接来源于\gls{importance_sampling}的有效性。 % -- 619 -- @@ -867,24 +867,24 @@ \subsection{\glsentrytext{bridge_sampling}} 也就是说,我们会迭代地重新估计比率,并使用每次迭代更新$r$的值。 -\textbf{\gls{linked_importance_sampling}} +\paragraph{\gls{linked_importance_sampling}} \glssymbol{AIS}\,和\gls{bridge_sampling}各有优点。 如果$D_{\text{KL}}(p_0 \| p_1)$不太大(由于$p_0$和$p_1$足够接近)的话,那么\gls{bridge_sampling}能比\,\glssymbol{AIS}\,更高效地估计\gls{partition_function}比率。 然而,如果对于单个分布$p_*$而言,两个分布相距太远难以桥接差距,那么\,\glssymbol{AIS}\,至少可以使用许多潜在中间分布来跨越$p_0$和$p_1$之间的差距。 \cite{Neal05estimatingratios}展示\gls{linked_importance_sampling}方法如何利用\gls{bridge_sampling}的优点,桥接\,\glssymbol{AIS}\,中使用的中间分布,并且显著改进了整个\gls{partition_function}的估计。 -\textbf{在训练期间估计\gls{partition_function}} +\paragraph{在训练期间估计\gls{partition_function}} 虽然\,\glssymbol{AIS}\,已经被认为是用于估计许多无向模型\gls{partition_function}的标准方法,但是它在计算上代价很高,以致其在训练期间仍然不很实用。 -近来探索了一些在训练过程中估计\gls{partition_function}的替代方法。 +研究者探索了一些在训练过程中估计\gls{partition_function}的替代方法。 -使用\gls{bridge_sampling},短链\,\glssymbol{AIS}\,和\gls{parallel_tempering}的组合,\cite{Desjardins+al-NIPS2011}设计了一种在训练过程中追踪\,\glssymbol{RBM}\,\gls{partition_function}的方法。 -该方法的基础是,在\gls{parallel_tempering}方法操作的每个温度下,\glssymbol{RBM}\,\gls{partition_function}的独立估计。 +使用\gls{bridge_sampling}、短链\,\glssymbol{AIS}\,和\gls{parallel_tempering}的组合,\cite{Desjardins+al-NIPS2011}设计了一种在训练过程中追踪\,\glssymbol{RBM}\,\gls{partition_function}的方法。 +该策略的基础是,在\gls{parallel_tempering}方法操作的每个温度下,\glssymbol{RBM}\,\gls{partition_function}的独立估计会一直保持。 作者将相邻链(来自\gls{parallel_tempering})的\gls{partition_function}比率的\gls{bridge_sampling}估计和跨越时间的\,\glssymbol{AIS}\,估计组合起来,提出一个在每次迭代学习时估计\gls{partition_function}的(且方差较小的)方法。 -本章中描述的工具提供了许多不同的方法,以解决难求解\gls{partition_function}的问题,但是在训练和使用\gls{generative_model}时,可能会存在一些其他问题。 +本章中描述的工具提供了许多不同的方法,以解决难处理的\gls{partition_function}问题,但是在训练和使用\gls{generative_model}时,可能会存在一些其他问题。 其中最重要的是我们接下来会遇到的难以推断的问题。 % -- 621 -- diff --git a/README.md b/README.md index 6ba3844..88876df 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,8 @@ | [第十五章 表示学习](https://exacity.github.io/deeplearningbook-chinese/Chapter15_representation_learning/) | @liber145 | @cnscottzheng | | 完成合并 | | [第十六章 深度学习中的结构化概率模型](https://exacity.github.io/deeplearningbook-chinese/Chapter16_structured_probabilistic_modelling/) | @futianfan | | | 完成合并 | | [第十七章 蒙特卡罗方法](https://exacity.github.io/deeplearningbook-chinese/Chapter17_monte_carlo_methods/) | @futianfan | | @sailordiary | 完成合并 | -| [第十八章 面对配分函数](https://via.hypothes.is/https://exacity.github.io/deeplearningbook-chinese/Chapter18_confronting_the_partition_function/) | @liber145 | | @tankeco | 需要校对 | -| [第十九章 近似推断](https://via.hypothes.is/https://exacity.github.io/deeplearningbook-chinese/Chapter19_approximate_inference/) | @futianfan | | @sailordiary, @hengqujushi | 完成合并 | +| [第十八章 面对配分函数](https://exacity.github.io/deeplearningbook-chinese/Chapter18_confronting_the_partition_function/) | @liber145 | | | 完成合并 | +| [第十九章 近似推断](https://exacity.github.io/deeplearningbook-chinese/Chapter19_approximate_inference/) | @futianfan | | @sailordiary, @hengqujushi | 完成合并 | | [第二十章 深度生成模型](https://exacity.github.io/deeplearningbook-chinese/Chapter20_deep_generative_models/) | @swordyork | | | 完成合并 | @@ -82,6 +82,7 @@ TODO @endymecy name:YUE-DaJiong @9578577 @linzhp @cnscottzheng @germany-zhu @zhangyafeikimi @showgood163 @gump88 @kangqf @NeutronT @badpoem @kkpoker @Seaball @wheaio @angrymidiao @ZhiweiYang @corenel @zhaoyu611 @SiriusXDJ @dfcv24 EmisXXY FlyingFire vsooda @friskit-china + 注意 ----------- diff --git a/docs/_posts/2016-12-01-Chapter1_introduction.md b/docs/_posts/2016-12-01-Chapter1_introduction.md index ba82c58..969b8a1 100644 --- a/docs/_posts/2016-12-01-Chapter1_introduction.md +++ b/docs/_posts/2016-12-01-Chapter1_introduction.md @@ -19,11 +19,11 @@ share: false 让计算机从经验获取知识,可以避免由人类来给计算机形式化地指定它需要的所有知识。 层次化的概念让计算机构建较简单的概念来学习复杂概念。 如果绘制出这些概念如何建立在彼此之上的图,我们将得到一张"深"(层次很多)的图。 -基于这个原因,我们称这种方法为AI深度学习。 +基于这个原因,我们称这种方法为~AI深度学习。 -AI许多早期的成功发生在相对朴素且形式化的环境中, 而且不要求计算机具备很多关于世界的知识。 +AI~许多早期的成功发生在相对朴素且形式化的环境中, 而且不要求计算机具备很多关于世界的知识。 例如,IBM的深蓝(Deep Blue)国际象棋系统在1997年击败了世界冠军Garry Kasparov{cite?}。 显然国际象棋是一个非常简单的领域,因为它仅含有64个位置并只能以严格限制的方式移动32个棋子。 设计一种成功的国际象棋策略是巨大的成就,但向计算机描述棋子及其允许的走法并不是挑战的困难所在。 @@ -45,12 +45,12 @@ Cyc包括一个推断引擎和一个使用CycL语言描述的声明数据库。 这些声明是由人类监督者输入的。 这是一个笨拙的过程。 人们设法设计出足够复杂的形式化规则来精确地描述世界。 -例如,Cyc不能理解一个关于名为Fred的人在早上剃须的故事{cite?}。 -它的推理引擎检测到故事中的不一致性:它知道人没有电气零件,但由于Fred正拿着一个电动剃须刀,它认为实体 -"正在剃须的Fred"("FredWhileShaving")含有电气部件。 -因此它产生了这样的疑问——Fred在刮胡子的时候是否仍然是一个人。 +例如,Cyc不能理解一个关于名为~Fred~的人在早上剃须的故事{cite?}。 +它的推理引擎检测到故事中的不一致性:它知道人没有电气零件,但由于~Fred~正拿着一个电动剃须刀,它认为实体 +"正在剃须的Fred"\,("FredWhileShaving")含有电气部件。 +因此它产生了这样的疑问——Fred~在刮胡子的时候是否仍然是一个人。 -依靠硬编码的知识体系面对的困难表明,AI系统需要具备自己获取知识的能力,即从原始数据中提取模式的能力。 +依靠硬编码的知识体系面对的困难表明,AI~系统需要具备自己获取知识的能力,即从原始数据中提取模式的能力。 这种能力被称为机器学习。 引入机器学习使计算机能够解决涉及现实世界知识的问题,并能作出看似主观的决策。 比如,一个被称为逻辑回归的简单机器学习算法可以决定是否建议剖腹产{cite?}。 @@ -59,7 +59,7 @@ Cyc包括一个推断引擎和一个使用CycL语言描述的声明数据库。 这些简单的机器学习算法的性能在很大程度上依赖于给定数据的表示。 -例如,当逻辑回归被用于判断产妇是否适合剖腹产时,AI系统不会直接检查患者。 +例如,当逻辑回归被用于判断产妇是否适合剖腹产时,AI~系统不会直接检查患者。 相反,医生需要告诉系统几条相关的信息,诸如是否存在子宫疤痕。 表示患者的每条信息被称为一个特征。 逻辑回归学习病人的这些特征如何与各种结果相关联。 @@ -150,7 +150,7 @@ MRI扫描的单一像素与分娩过程中并发症之间的相关性微乎其 有了第一隐藏层描述的边缘,第二隐藏层可以容易地搜索可识别为角和扩展轮廓的边集合。 给定第二隐藏层中关于角和轮廓的图像描述,第三隐藏层可以找到轮廓和角的特定集合来检测特定对象的整个部分。 最后,根据图像描述中包含的对象部分,可以识别图像中存在的对象。 -经{ZeilerFergus14}许可转载此图。 +经~{ZeilerFergus14}许可转载此图。 } \end{figure} @@ -187,8 +187,8 @@ MRI扫描的单一像素与分娩过程中并发症之间的相关性微乎其 \fi \caption{将输入映射到输出的计算图表的示意图,其中每个节点执行一个操作。 深度是从输入到输出的最长路径的长度,但这取决于可能的计算步骤的定义。 -这些图中所示的计算是逻辑回归模型的输出,$\sigma(\Vw^T \Vx)$,其中$\sigma$是logistic sigmoid函数。 -如果我们使用加法、乘法和logistic sigmoid作为我们计算机语言的元素,那么这个模型深度为三。 +这些图中所示的计算是逻辑回归模型的输出,$\sigma(\Vw^T \Vx)$,其中$\sigma$是~logistic sigmoid~函数。 +如果我们使用加法、乘法和~logistic sigmoid~作为我们计算机语言的元素,那么这个模型深度为三。 如果我们将逻辑回归视为元素本身,那么这个模型深度为一。 } \end{figure} @@ -196,7 +196,7 @@ MRI扫描的单一像素与分娩过程中并发症之间的相关性微乎其 另一种是在深度概率模型中使用的方法,它不是将计算图的深度视为模型深度,而是将描述概念彼此如何关联的图的深度视为模型深度。 在这种情况下,计算每个概念表示的计算流程图的深度可能比概念本身的图更深。 这是因为系统对较简单概念的理解在给出更复杂概念的信息后可以进一步精细化。 -例如,一个AI系统观察其中一只眼睛在阴影中的脸部图像时,它最初可能只看到一只眼睛。 +例如,一个~AI~系统观察其中一只眼睛在阴影中的脸部图像时,它最初可能只看到一只眼睛。 但当检测到脸部的存在后,系统可以推断第二只眼睛也可能是存在的。 在这种情况下,概念的图仅包括两层(关于眼睛的层和关于脸的层),但如果我们细化每个概念的估计将需要额外的$n$次计算,即计算的图将包含$2n$层。 @@ -208,10 +208,10 @@ MRI扫描的单一像素与分娩过程中并发症之间的相关性微乎其 总之, 这本书的主题——深度学习是通向人工智能的途径之一。 具体来说,它是机器学习的一种,一种能够使计算机系统从经验和数据中得到提高的技术。 -我们坚信机器学习可以构建出在复杂实际环境下运行的AI系统,并且是唯一切实可行的方法。 +我们坚信机器学习可以构建出在复杂实际环境下运行的~AI~系统,并且是唯一切实可行的方法。 深度学习是一种特定类型的机器学习,具有强大的能力和灵活性,它将大千世界表示为嵌套的层次概念体系 (由较简单概念间的联系定义复杂概念、从一般抽象概括到高级抽象表示)。 -\fig?说明了这些不同的AI学科之间的关系。\fig?展示了每个学科如何工作的高层次原理。 +\fig?说明了这些不同的~AI~学科之间的关系。\fig?展示了每个学科如何工作的高层次原理。 \begin{figure}[!hbt] \ifOpenSource @@ -219,8 +219,8 @@ MRI扫描的单一像素与分娩过程中并发症之间的相关性微乎其 \else \centerline{\includegraphics[width=0.65\textwidth]{Chapter1/figures/venn}} \fi -\caption{维恩图展示了深度学习是一种表示学习,也是一种机器学习,可以用于许多(但不是全部)AI方法。 -维恩图的每个部分包括一个AI技术的示例。 +\caption{维恩图展示了深度学习是一种表示学习,也是一种机器学习,可以用于许多(但不是全部)AI~方法。 +维恩图的每个部分包括一个~AI~技术的示例。 } \end{figure} @@ -230,7 +230,7 @@ MRI扫描的单一像素与分娩过程中并发症之间的相关性微乎其 \else \centerline{\includegraphics{Chapter1/figures/which_part_learned}} \fi -\caption{流程图展示了AI系统的不同部分如何在不同的AI学科中彼此相关。 +\caption{流程图展示了~AI~系统的不同部分如何在不同的~AI~学科中彼此相关。 阴影框表示能从数据中学习的组件。} \end{figure} @@ -331,7 +331,7 @@ MRI扫描的单一像素与分娩过程中并发症之间的相关性微乎其 这些模型希望学习一组权重$\Sw_1, \dots, \Sw_n $,并计算它们的输出$f(\Vx, \Vw) = \Sx_1 \Sw_1 + \dots + \Sx_n \Sw_n$。 如\fig?所示,这第一波神经网络研究浪潮被称为控制论。 -McCulloch-Pitts神经元{cite?}是脑功能的早期模型。 +McCulloch-Pitts~神经元{cite?}是脑功能的早期模型。 该线性模型通过检验函数$f(\Vx,\Vw)$的正负来识别两种不同类别的输入。 显然,模型的权重需要正确设置后才能使模型的输出对应于期望的类别。 这些权重可以由操作人员设定。 @@ -359,7 +359,7 @@ McCulloch-Pitts神经元{cite?}是脑功能的早期模型。 我们不能够做到这一点,所以我们甚至连大脑最简单、最深入研究的部分都还远远没有理解{cite?}。 神经科学已经给了我们依靠单一深度学习算法解决许多不同任务的理由。 -神经学家们发现,如果将雪貂的大脑重新连接,使视觉信号传送到听觉区域,它们可以学会用大脑的听觉处理区域去"看"{cite?}。 +神经学家们发现,如果将雪貂的大脑重新连接,使视觉信号传送到听觉区域,它们可以学会用大脑的听觉处理区域去"看"~{cite?}。 这暗示着大多数哺乳动物的大脑能够使用单一的算法就可以解决其大脑可以解决的大部分不同任务。 在这个假设之前,机器学习研究是比较分散的,研究人员在不同的社群研究自然语言处理、计算机视觉、运动规划和语音识别。 如今,这些应用社群仍然是独立的,但是对于深度学习研究团体来说,同时研究许多或甚至所有这些应用领域是很常见的。 @@ -369,7 +369,7 @@ McCulloch-Pitts神经元{cite?}是脑功能的早期模型。 新认知机{cite?}受哺乳动物视觉系统的结构启发,引入了一个处理图片的强大模型架构,它后来成为了现代卷积网络的基础{cite?}(我们将会在\sec?看到)。 目前大多数神经网络是基于一个称为整流线性单元的神经单元模型。 原始认知机{cite?}受我们关于大脑功能知识的启发, 引入了一个更复杂的版本。 -简化的现代版通过吸收来自不同观点的思想而形成,{Nair-2010}和{Glorot+al-AI-2011-small}援引神经科学作为影响,{Jarrett-ICCV2009}援引更多面向工程的影响。 +简化的现代版通过吸收来自不同观点的思想而形成,{Nair-2010}和~{Glorot+al-AI-2011-small}援引神经科学作为影响,{Jarrett-ICCV2009}援引更多面向工程的影响。 虽然神经科学是灵感的重要来源,但它不需要被视为刚性指导。 我们知道,真实的神经元计算着与现代整流线性单元非常不同的函数,但更接近真实神经网络的系统并没有导致机器学习性能的提升。 此外,虽然神经科学已经成功地启发了一些神经网络\emph{架构},但我们对用于神经科学的生物学习还没有足够多的了解,因此也就不能为训练这些架构用的\emph{学习算法}提供太多的借鉴。 @@ -392,7 +392,7 @@ McCulloch-Pitts神经元{cite?}是脑功能的早期模型。 认知科学是理解思维的跨学科途径,即它融合多个不同的分析层次。 在20世纪80年代初期,大多数认知科学家研究符号推理模型。 尽管这很流行,但符号模型很难解释大脑如何真正使用神经元实现推理功能。 -联结主义者开始研究真正基于神经系统实现的认知模型{cite?},其中很多复苏的想法可以追溯到心理学家Donald Hebb在20世纪40年代的工作{cite?}。 +联结主义者开始研究真正基于神经系统实现的认知模型{cite?},其中很多复苏的想法可以追溯到心理学家~Donald Hebb~在20世纪40年代的工作{cite?}。 联结主义的中心思想是,当网络将大量简单的计算单元连接在一起时可以实现智能行为。 这种见解同样适用于生物神经系统中的神经元,因为它和计算模型中隐藏单元起着类似的作用。 @@ -414,9 +414,9 @@ McCulloch-Pitts神经元{cite?}是脑功能的早期模型。 这个算法虽然曾黯然失色不再流行,但截至写书之时,它仍是训练深度模型的主导方法。% ?? 在20世纪90年代,研究人员在使用神经网络进行序列建模的方面取得了重要进展。 -{Hochreiter91}和{Bengio1994ITNN}指出了对长序列进行建模的一些根本性数学难题,这将在\sec?中描述。 +{Hochreiter91}和~{Bengio1994ITNN}指出了对长序列进行建模的一些根本性数学难题,这将在\sec?中描述。 {Hochreiter+Schmidhuber-1997}引入长短期记忆网络来解决这些难题。 -如今,LSTM在许多序列建模任务中广泛应用,包括Google的许多自然语言处理任务。 +如今,LSTM~在许多序列建模任务中广泛应用,包括Google的许多自然语言处理任务。 神经网络研究的第二次浪潮一直持续到上世纪90年代中期。 基于神经网络和其他AI技术的创业公司开始寻求投资,其做法野心勃勃但不切实际。 @@ -427,7 +427,7 @@ McCulloch-Pitts神经元{cite?}是脑功能的早期模型。 在此期间,神经网络继续在某些任务上获得令人印象深刻的表现{cite?}。 加拿大高级研究所(CIFAR)通过其神经计算和自适应感知(NCAP)研究计划帮助维持神经网络研究。 -该计划联合了分别由Geoffrey Hinton、Yoshua Bengio和Yann LeCun领导的多伦多大学、蒙特利尔大学和纽约大学的机器学习研究小组。 +该计划联合了分别由~Geoffrey Hinton、Yoshua Bengio和~Yann LeCun~领导的多伦多大学、蒙特利尔大学和纽约大学的机器学习研究小组。 这个多学科的CIFAR NCAP研究计划还囊括了神经科学家、人类和计算机视觉专家。 @@ -437,10 +437,10 @@ McCulloch-Pitts神经元{cite?}是脑功能的早期模型。 这可能仅仅由于其计算代价太高,而以当时可用的硬件难以进行足够的实验。 神经网络研究的第三次浪潮始于2006年的突破。 -Geoffrey Hinton表明名为深度信念网络的神经网络可以使用一种称为贪婪逐层预训练的策略来有效地训练{cite?},我们将在\sec?中更详细地描述。 +Geoffrey Hinton~表明名为深度信念网络的神经网络可以使用一种称为贪婪逐层预训练的策略来有效地训练{cite?},我们将在\sec?中更详细地描述。 其他CIFAR附属研究小组很快表明,同样的策略可以被用来训练许多其他类型的深度网络{cite?},并能系统地帮助提高在测试样例上的泛化能力。 神经网络研究的这一次浪潮普及了"深度学习"这一术语的使用,强调研究者现在有能力训练以前不可能训练的比较深的神经网络,并着力于深度的理论重要性上{cite?}。 -此时,深度神经网络已经优于与之竞争的基于其他机器学习技术以及手工设计功能的AI系统。 +此时,深度神经网络已经优于与之竞争的基于其他机器学习技术以及手工设计功能的~AI~系统。 在写这本书的时候,神经网络的第三次发展浪潮仍在继续,尽管深度学习的研究重点在这一段时间内发生了巨大变化。 第三次浪潮已开始着眼于新的无监督学习技术和深度模型在小数据集的泛化能力,但目前更多的兴趣点仍是比较传统的监督学习算法和深度模型充分利用大型标注数据集的能力。 @@ -563,7 +563,7 @@ Geoffrey Hinton将其描述为"机器学习的\emph{果蝇}",这意味着机 \fi \caption{与日俱增的神经网络规模。 自从引入隐藏单元,人工神经网络的大小大约每2.4年翻一倍。 -生物神经网络规模来自{number_of_neurons}。 +生物神经网络规模来自~{number_of_neurons}。 } {\tiny \begin{enumerate} @@ -633,8 +633,8 @@ Geoffrey Hinton将其描述为"机器学习的\emph{果蝇}",这意味着机 现代对象识别网络能处理丰富的高分辨率照片,并且不需要在被识别的对象附近进行裁剪{cite?}。 类似地,最早的网络只能识别两种对象(或在某些情况下,单类对象的存在与否),而这些现代网络通常能够识别至少1000个不同类别的对象。 对象识别中最大的比赛是每年举行的ImageNet大型视觉识别挑战(ILSVRC)。 -深度学习迅速崛起的激动人心的一幕是卷积网络第一次大幅赢得这一挑战,它将最高水准的前5错误率从26.1\%降到15.3\%{cite?},这意味着该卷积网络针对每个图像的可能类别生成一个顺序列表,除了15.3\%的测试样本,其他测试样本的正确类标都出现在此列表中的前5项里。 -此后,深度卷积网络连续地赢得这些比赛,截至写本书时,深度学习的最新结果将这个比赛中的前5错误率降到了3.6\%, 如\fig?所示。 +深度学习迅速崛起的激动人心的一幕是卷积网络第一次大幅赢得这一挑战,它将最高水准的前5错误率从~26.1\%~降到~15.3\%~{cite?},这意味着该卷积网络针对每个图像的可能类别生成一个顺序列表,除了15.3\%的测试样本,其他测试样本的正确类标都出现在此列表中的前5项里。 +此后,深度卷积网络连续地赢得这些比赛,截至写本书时,深度学习的最新结果将这个比赛中的前5错误率降到了~3.6\%, 如\fig?所示。 \begin{figure}[!htb] \ifOpenSource @@ -644,7 +644,7 @@ Geoffrey Hinton将其描述为"机器学习的\emph{果蝇}",这意味着机 \fi \caption{日益降低的错误率。 由于深度网络达到了在ImageNet大规模视觉识别挑战中竞争所必需的规模,它们每年都能赢得胜利,并且产生越来越低的错误率。 -数据来源于 {russakovsky2014imagenet}和{He-et-al-arxiv2015}。} +数据来源于 {russakovsky2014imagenet}和~{He-et-al-arxiv2015}。} \end{figure} @@ -659,7 +659,7 @@ Geoffrey Hinton将其描述为"机器学习的\emph{果蝇}",这意味着机 在深度网络的规模和精度有所提高的同时,它们可以解决的任务也日益复杂。 {Goodfellow+et+al-ICLR2014a}表明,神经网络可以学习输出描述图像的整个字符序列,而不是仅仅识别单个对象。 此前,人们普遍认为,这种学习需要对序列中的单个元素进行标注{cite?}。 -循环神经网络,如之前提到的LSTM序列模型,现在用于对序列和其他序列之间的关系进行建模,而不是仅仅固定输入之间的关系。 +循环神经网络,如之前提到的~LSTM~序列模型,现在用于对序列和其他序列之间的关系进行建模,而不是仅仅固定输入之间的关系。 这种序列到序列的学习似乎引领着另一个应用的颠覆性发展,即机器翻译{cite?}。 @@ -678,7 +678,7 @@ DeepMind表明,基于深度学习的强化学习系统能够学会玩Atari视 许多深度学习应用都是高利润的。现在深度学习被许多顶级的技术公司使用,包括Google、Microsoft、Facebook、IBM、Baidu、Apple、Adobe、Netflix、NVIDIA和NEC等。 深度学习的进步也严重依赖于软件基础架构的进展。 -软件库如Theano{cite?}、PyLearn2{cite?}、Torch{cite?}、DistBelief{cite?}、Caffe{cite?}、MXNet{cite?}和TensorFlow{cite?}都能支持重要的研究项目或商业产品。 +软件库如Theano~{cite?}、PyLearn2~{cite?}、Torch~{cite?}、DistBelief~{cite?}、Caffe~{cite?}、MXNet~{cite?}和TensorFlow~{cite?}都能支持重要的研究项目或商业产品。 深度学习也为其他科学做出了贡献。 用于对象识别的现代卷积网络为神经科学家们提供了可以研究的视觉处理模型{cite?}。 diff --git a/docs/_posts/2016-12-02-Chapter2_linear_algebra.md b/docs/_posts/2016-12-02-Chapter2_linear_algebra.md index 172fe2a..feac112 100644 --- a/docs/_posts/2016-12-02-Chapter2_linear_algebra.md +++ b/docs/_posts/2016-12-02-Chapter2_linear_algebra.md @@ -777,7 +777,7 @@ Moore-Penrose 伪逆使我们在这类问题上取得了一定的进展。 我们希望找到一个编码函数,根据输入返回编码,$f(\Vx)=\Vc$;我们也希望找到一个解码函数,给定编码重构输入,$\Vx\approx g(f(\Vx))$。 -PCA由我们选择的解码函数而定。 +PCA~由我们选择的解码函数而定。 具体地,为了简化解码器,我们使用矩阵乘法将编码映射回$\SetR^n$,即$g(\Vc)=\MD\Vc$,其中$\MD\in \SetR^{n\times l}$是定义解码的矩阵。 diff --git a/docs/_posts/2016-12-03-Chapter3_probability_and_information_theory.md b/docs/_posts/2016-12-03-Chapter3_probability_and_information_theory.md index dca5f3f..59dcb7d 100644 --- a/docs/_posts/2016-12-03-Chapter3_probability_and_information_theory.md +++ b/docs/_posts/2016-12-03-Chapter3_probability_and_information_theory.md @@ -10,8 +10,8 @@ share: false 它不仅提供了量化不确定性的方法,也提供了用于导出新的不确定性声明的公理。 在人工智能领域,概率论主要有两种用途。 -首先,概率法则告诉我们AI系统如何推理,据此我们设计一些算法来计算或者估算由概率论导出的表达式。 -其次,我们可以用概率和统计从理论上分析我们提出的AI系统的行为。 +首先,概率法则告诉我们~AI~系统如何推理,据此我们设计一些算法来计算或者估算由概率论导出的表达式。 +其次,我们可以用概率和统计从理论上分析我们提出的~AI~系统的行为。 概率论是众多科学和工程学科的基本工具。 我们提供这一章是为了保证那些背景是软件工程而较少接触概率论的读者也可以理解本书的内容。 @@ -20,7 +20,7 @@ share: false 如果你已经对概率论和信息论很熟悉了,那么除了\sec?以外的整章内容,你都可以跳过。 而在\sec?中,我们会介绍用来描述机器学习中结构化概率模型的图。 -即使你对这些主题完全没有任何的先验知识,本章对于完成深度学习的研究项目来说已经足够,但我们还是建议你能够参考一些额外的资料,例如{Jaynes03}。 +即使你对这些主题完全没有任何的先验知识,本章对于完成深度学习的研究项目来说已经足够,但我们还是建议你能够参考一些额外的资料,例如~{Jaynes03}。 @@ -37,7 +37,7 @@ share: false 不确定性和随机性可能来自多个方面。 至少从20世纪80年代开始,研究人员就对使用概率论来量化不确定性提出了令人信服的论据。 -这里提出的许多论点都是根据{Pearl88}总结或启发得到的。 +这里提出的许多论点都是根据~{Pearl88}总结或启发得到的。 几乎所有的活动都需要能够在不确定性存在时进行推理。 事实上,除了那些被定义为真的数学声明,我们很难认定某个命题是千真万确的或者确保某件事一定会发生。 @@ -78,7 +78,7 @@ share: false 如果要列出一些关于不确定性的常识推理中我们希望其具有的性质,那么满足这些性质的唯一一点就是将贝叶斯概率和频率派概率视为等同的。 例如,如果我们要在扑克牌游戏中根据玩家手上的牌计算她能够获胜的概率,我们和医生情境使用完全相同的公式,就是我们依据病人的某些症状计算她是否患病的概率。 -有关一个小集合的常识假设为什么能够导出相同公理的细节必须深入了解这两种概率,参见{Ramsey1926}。 +有关一个小集合的常识假设为什么能够导出相同公理的细节必须深入了解这两种概率,参见~{Ramsey1926}。 @@ -114,7 +114,7 @@ share: false 离散型变量的概率分布可以用概率质量函数\footnote{译者注:国内有些教材也将它翻译成概率分布律。}来描述。 我们通常用大写字母$P$来表示概率质量函数。 -通常每一个随机变量都会有一个不同的概率质量函数,并且读者必须根据随机变量来推断所使用的PMF,而不是根据函数的名称来推断;例如,$P(\RSx)$ 通常和$P(\RSy)$不一样。 +通常每一个随机变量都会有一个不同的概率质量函数,并且读者必须根据随机变量来推断所使用的~PMF,而不是根据函数的名称来推断;例如,$P(\RSx)$ 通常和$P(\RSy)$不一样。 @@ -127,7 +127,7 @@ $\RSx = x$的概率用$P(x)$来表示,概率为1表示$\RSx = x$是确定的 这种多个变量的概率分布被称为联合概率分布。 $P(\RSx = x, \RSy = y)$表示$\RSx = x$和$\RSy = y$同时发生的概率。我们也可以简写为$P(x, y)$。 -如果一个函数$P$是随机变量 $\RSx$的PMF,必须满足下面这几个条件: +如果一个函数$P$是随机变量 $\RSx$的~PMF,必须满足下面这几个条件: + $P$的定义域必须是$\RSx$所有可能状态的集合。 @@ -173,7 +173,7 @@ P(\RSx = x_i) = \frac{1}{k} 特别地,$x$落在集合$\SetS$中的概率可以通过$p(x)$对这个集合求积分来得到。 在单变量的例子中,$x$落在区间$[a, b]$的概率是$\int_{[a,b]} p(x)dx$。 -为了给出一个连续型随机变量的PDF的例子,我们可以考虑实数区间上的均匀分布。 +为了给出一个连续型随机变量的~PDF~的例子,我们可以考虑实数区间上的均匀分布。 我们可以使用函数$u(x; a, b)$,其中$a$和$b$是区间的端点且满足$b>a$。 符号"$;$"表示"以什么为参数";我们把$x$作为函数的自变量,$a$和$b$作为定义函数的参数。 为了确保区间外没有概率,我们对所有的$x\not\in[a,b]$,令$u(x; a, b)=0$。 @@ -350,20 +350,19 @@ P(\RSx = x) = \phi^x (1-\phi)^{1-x}\\ ## Multinoulli分布 -Multinoulli分布或者范畴分布是指在具有$k$个不同状态的单个离散型随机变量上的分布,其中$k$是一个有限值。 -\footnote{"multinoulli"这个术语是最近被Gustavo Lacerdo发明、被{MurphyBook2012}推广的。 +Multinoulli分布或者范畴分布是指在具有$k$个不同状态的单个离散型随机变量上的分布,其中$k$是一个有限值。\footnote{"multinoulli"这个术语是最近被Gustavo Lacerdo发明、被{MurphyBook2012}推广的。 Multinoulli分布是多项式分布的一个特例。 -多项式分布是$\{0,\ldots, n\}^k$中的向量的分布,用于表示当对Multinoulli分布采样$n$次时$k$个类中的每一个被访问的次数。 -很多文章使用"多项式分布"而实际上说的是Multinoulli分布,但是他们并没有说是对$n=1$的情况,这点需要注意。} +多项式分布是$\{0,\ldots, n\}^k$中的向量的分布,用于表示当对~Multinoulli分布采样$n$次时$k$个类中的每一个被访问的次数。 +很多文章使用"多项式分布"而实际上说的是~Multinoulli分布,但是他们并没有说是对$n=1$的情况,这点需要注意。} Multinoulli分布由向量$\Vp \in [0, 1]^{k-1}$参数化,其中每一个分量$p_i$表示第$i$个状态的概率。 最后的第$k$个状态的概率可以通过$1-\bm{1}^\top \Vp$给出。 注意我们必须限制$\bm{1}^\top\Vp\le 1$。 Multinoulli分布经常用来表示对象分类的分布,所以我们很少假设状态1具有数值1之类的。 -因此,我们通常不需要去计算Multinoulli分布的随机变量的期望和方差。 +因此,我们通常不需要去计算~Multinoulli分布的随机变量的期望和方差。 -Bernoulli分布和Multinoulli分布足够用来描述在它们领域内的任意分布。 +Bernoulli分布和~Multinoulli分布足够用来描述在它们领域内的任意分布。 它们能够描述这些分布,不是因为它们特别强大,而是因为它们的领域很简单; 它们可以对那些,能够将所有的状态进行枚举的离散型随机变量进行建模。 当处理的是连续型随机变量时,会有不可数无限多的状态,所以任何通过少量参数描述的概率分布都必须在分布上加以严格的限制。 @@ -461,7 +460,7 @@ p(x) = \delta(x-\mu). \end{equation} Dirac delta函数被定义成在除了0以外的所有点的值都为0,但是积分为1。 Dirac delta函数不像普通函数一样对$x$的每一个值都有一个实数值的输出,它是一种不同类型的数学对象,被称为广义函数,广义函数是依据积分性质定义的数学对象。 -我们可以把Dirac delta函数想成一系列函数的极限点,这一系列函数把除0以外的所有点的概率密度越变越小。 +我们可以把~Dirac delta函数想成一系列函数的极限点,这一系列函数把除0以外的所有点的概率密度越变越小。 @@ -473,7 +472,7 @@ Dirac分布经常作为经验分布的一个组成部分出现: \end{equation} 经验分布将概率密度$\frac{1}{m}$赋给$m$个点$\Vx^{(1)}, \ldots, \Vx^{(m)}$中的每一个,这些点是给定的数据集或者采样的集合。 只有在定义连续型随机变量的经验分布时,Dirac delta函数才是必要的。 -对于离散型随机变量,情况更加简单:经验分布可以被定义成一个Multinoulli分布,对于每一个可能的输入,其概率可以简单地设为在训练集上那个输入值的经验频率。 +对于离散型随机变量,情况更加简单:经验分布可以被定义成一个~Multinoulli分布,对于每一个可能的输入,其概率可以简单地设为在训练集上那个输入值的经验频率。 当我们在训练集上训练模型时,我们可以认为从这个训练集上得到的经验分布指明了我们采样来源的分布。 关于经验分布另外一种重要的观点是,它是训练数据的似然最大的那个概率密度函数(见\sec?)。 @@ -485,13 +484,13 @@ Dirac分布经常作为经验分布的一个组成部分出现: 通过组合一些简单的概率分布来定义新的概率分布也是很常见的。 一种通用的组合方法是构造混合分布。 混合分布由一些组件(component)分布构成。 -每次实验,样本是由哪个组件分布产生的取决于从一个Multinoulli分布中采样的结果: +每次实验,样本是由哪个组件分布产生的取决于从一个~Multinoulli分布中采样的结果: \begin{equation} P(\RSx) = \sum_i P(\RSc = i) P(\RSx \mid \RSc = i), \end{equation} -这里$P(\RSc)$是对各组件的一个Multinoulli分布。 +这里$P(\RSc)$是对各组件的一个~Multinoulli分布。 -我们已经看过一个混合分布的例子了:实值变量的经验分布对于每一个训练实例来说,就是以Dirac分布为组件的混合分布。 +我们已经看过一个混合分布的例子了:实值变量的经验分布对于每一个训练实例来说,就是以~Dirac分布为组件的混合分布。 @@ -539,11 +538,11 @@ P(\RSx) = \sum_i P(\RSc = i) P(\RSx \mid \RSc = i), -其中一个函数是\textbf{logistic sigmoid}函数: +其中一个函数是~\textbf{logistic sigmoid}~函数: \begin{equation} \sigma(x) = \frac{1}{1+\exp(-x)}. \end{equation} -logistic sigmoid函数通常用来产生Bernoulli分布中的参数$\phi$,因为它的范围是$(0,1)$,处在$\phi$的有效取值范围内。 +logistic sigmoid~函数通常用来产生~Bernoulli分布中的参数$\phi$,因为它的范围是$(0,1)$,处在$\phi$的有效取值范围内。 \fig?给出了sigmoid函数的图示。 sigmoid函数在变量取绝对值非常大的正值或负值时会出现饱和现象,意味着函数会变得很平,并且对输入的微小改变会变得不敏感。 @@ -566,7 +565,7 @@ softplus函数名来源于它是另外一个函数的平滑(或"软化")形 \begin{equation} x^+ = \max(0, x). \end{equation} -\fig?给出了softplus函数的图示。 +\fig?给出了~softplus函数的图示。 \begin{figure}[!htb] \ifOpenSource @@ -627,8 +626,7 @@ P(\RSx \mid \RSy) = \frac{P(\RSx) P(\RSy \mid \RSx)}{P(\RSy)}. 在\sec?中,我们已经看到连续型向量值随机变量 $\RVx$落在某个集合$\SetS$ 中的概率是通过$p(\Vx)$对集合$\SetS$积分得到的。 对于集合$\SetS$的一些选择可能会引起悖论。 例如,构造两个集合$\SetS_1$和$\SetS_2$使得$p(\Vx\in \SetS_1) + p(\Vx\in \SetS_2)>1$并且$\SetS_1 \cap \SetS_2 = \emptyset$是可能的。 -这些集合通常是大量使用了实数的无限精度来构造的,例如通过构造分形形状(fractal-shaped)的集合或者是通过有理数相关集合的变换定义的集合。 -\footnote{Banach-Tarski定理给出了这类集合的一个有趣的例子。 +这些集合通常是大量使用了实数的无限精度来构造的,例如通过构造分形形状(fractal-shaped)的集合或者是通过有理数相关集合的变换定义的集合。\footnote{Banach-Tarski定理给出了这类集合的一个有趣的例子。 译者注:我们这里把"the set of rational numbers"翻译成"有理数相关集合",理解为"一些有理数组成的集合",如果直接用后面的翻译读起来会比较拗口。} 测度论的一个重要贡献就是提供了一些集合的特征使得我们在计算概率时不会遇到悖论。 在本书中,我们只对相对简单的集合进行积分,所以测度论的这个方面不会成为一个相关考虑。 @@ -696,7 +694,7 @@ p_x(\Vx) = p_y(g(\Vx)) \left | \det \left ( \frac{\partial g(\Vx)}{\partial \Vx} 在机器学习中,我们也可以把信息论应用在连续型变量上,而信息论中一些消息长度的解释不怎么使用。 信息论是电子工程和计算机科学中许多领域的基础。 在本书中,我们主要使用信息论的一些关键思想来描述概率分布或者量化概率分布之间的相似性。 -有关信息论的更多细节,参见{cover-book2006}或者{MacKay03}。 +有关信息论的更多细节,参见~{cover-book2006}或者~{MacKay03}。 信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息。 消息说:"今天早上太阳升起"信息量是如此之少以至于没有必要发送,但一条消息说:"今天早上有日食"信息量就很丰富。 @@ -766,7 +764,7 @@ D_{\text{KL}}(P||Q) = \SetE_{\RSx \sim P} \left [ \log \frac{P(x)}{Q(x)} \right KL散度有很多有用的性质,最重要的是它是非负的。 KL散度为0当且仅当$P$和$Q$在离散型变量的情况下是相同的分布,或者在连续型变量的情况下是"几乎处处"相同的。 -因为KL散度是非负的并且衡量的是两个分布之间的差异,它经常被用作分布之间的某种距离。 +因为~KL散度是非负的并且衡量的是两个分布之间的差异,它经常被用作分布之间的某种距离。 然而,它并不是真的距离因为它不是对称的:对于某些$P$和$Q$,$D_\text{KL}(P||Q) \ne D_\text{KL}(Q||P)$。 这种非对称性意味着选择$D_\text{KL}(P||Q)$还是$D_\text{KL}(Q||P)$影响很大。 更多细节可以看\fig?。 @@ -781,7 +779,7 @@ KL散度为0当且仅当$P$和$Q$在离散型变量的情况下是相同的分 假设我们有一个分布$p(x)$,并且希望用另一个分布$q(x)$来近似它。 我们可以选择最小化$D_\text{KL}(p||q)$或最小化$D_\text{KL}(q||p)$。 为了说明每种选择的效果,我们令$p$是两个高斯分布的混合,令$q$为单个高斯分布。 -选择使用KL散度的哪个方向是取决于问题的。 +选择使用~KL散度的哪个方向是取决于问题的。 一些应用需要这个近似分布$q$在真实分布$p$放置高概率的所有地方都放置高概率,而其他应用需要这个近似分布$q$在真实分布$p$放置低概率的所有地方都很少放置高概率。 KL散度方向的选择反映了对于每种应用,优先考虑哪一种选择。 \emph{(左)}最小化$D_\text{KL}(p||q)$的效果。 @@ -789,20 +787,20 @@ KL散度方向的选择反映了对于每种应用,优先考虑哪一种选择 当$p$具有多个峰时,$q$选择将这些峰模糊到一起,以便将高概率质量放到所有峰上。 \emph{(右)}最小化$D_\text{KL}(q||p)$的效果。 在这种情况下,我们选择一个$q$使得它在$p$具有低概率的地方具有低概率。 -当$p$具有多个峰并且这些峰间隔很宽时,如该图所示,最小化KL散度会选择单个峰,以避免将概率质量放置在$p$的多个峰之间的低概率区域中。 +当$p$具有多个峰并且这些峰间隔很宽时,如该图所示,最小化~KL散度会选择单个峰,以避免将概率质量放置在$p$的多个峰之间的低概率区域中。 这里,我们说明当$q$被选择成强调左边峰时的结果。 -我们也可以通过选择右边峰来得到KL散度相同的值。 -如果这些峰没有被足够强的低概率区域分离,那么KL散度的这个方向仍然可能选择模糊这些峰。} +我们也可以通过选择右边峰来得到~KL散度相同的值。 +如果这些峰没有被足够强的低概率区域分离,那么~KL散度的这个方向仍然可能选择模糊这些峰。} \end{figure} -一个和KL散度密切联系的量是交叉熵 $H(P, Q) = H(P) + D_\text{KL}(P||Q)$,它和KL散度很像但是缺少左边一项: +一个和~KL散度密切联系的量是交叉熵 $H(P, Q) = H(P) + D_\text{KL}(P||Q)$,它和~KL散度很像但是缺少左边一项: \begin{equation} H(P, Q) = -\SetE_{\RSx\sim P} \log Q(x). \end{equation} -针对$Q$最小化交叉熵等价于最小化KL散度,因为$Q$并不参与被省略的那一项。 +针对$Q$最小化交叉熵等价于最小化~KL散度,因为$Q$并不参与被省略的那一项。 当我们计算这些量时,经常会遇到$0\log 0$这个表达式。 按照惯例,在信息论中,我们将这个表达式处理为$\lim_{x \to 0} x\log x = 0$。 diff --git a/docs/_posts/2016-12-04-Chapter4_numerical_computation.md b/docs/_posts/2016-12-04-Chapter4_numerical_computation.md index 3e05bc6..96a76e4 100644 --- a/docs/_posts/2016-12-04-Chapter4_numerical_computation.md +++ b/docs/_posts/2016-12-04-Chapter4_numerical_computation.md @@ -29,7 +29,7 @@ share: false 进一步的运算通常会导致这些无限值变为非数字。 必须对上溢和下溢进行数值稳定的一个例子是softmax函数。 -softmax函数经常用于预测与Multinoulli分布相关联的概率,定义为 +softmax函数经常用于预测与~Multinoulli分布相关联的概率,定义为 \begin{align} \text{softmax}(\Vx)_i = \frac{\exp(\Sx_i)}{\sum_{j=1}^n \exp(\Sx_j)} . \end{align} @@ -37,7 +37,7 @@ softmax函数经常用于预测与Multinoulli分布相关联的概率,定义 从理论分析上说,我们可以发现所有的输出都应该为$\frac{1}{n}$。 从数值计算上说,当$\Sc$量级很大时,这可能不会发生。 如果$\Sc$是很小的负数,$\exp(c)$就会下溢。 -这意味着softmax函数的分母会变成0,所以最后的结果是未定义的。 +这意味着~softmax函数的分母会变成0,所以最后的结果是未定义的。 当$\Sc$是非常大的正数时,$\exp(c)$的上溢再次导致整个表达式未定义。 这两个困难能通过计算$\text{softmax}(\Vz)$同时解决,其中$\Vz = \Vx - \max_i \Sx_i$。 简单的代数计算表明,$\text{softmax}$解析上的函数值不会因为从输入向量减去或加上标量而改变。 @@ -212,7 +212,7 @@ $ f^\prime(\Sx)=0 $的点称为临界点或驻点。 有时我们需要计算输入和输出都为向量的函数的所有偏导数。 包含所有这样的偏导数的矩阵被称为Jacobian矩阵。 -具体来说,如果我们有一个函数:$\Vf: \SetR^m \rightarrow \SetR^n$,$\Vf$的Jacobian矩阵$\MJ \in \SetR^{n \times m}$定义为$J_{i,j} = \frac{\partial}{\partial \Sx_j} f(\Vx)_i$。 +具体来说,如果我们有一个函数:$\Vf: \SetR^m \rightarrow \SetR^n$,$\Vf$的~Jacobian~矩阵$\MJ \in \SetR^{n \times m}$定义为$J_{i,j} = \frac{\partial}{\partial \Sx_j} f(\Vx)_i$。 有时,我们也对导数的导数感兴趣,即二阶导数。 例如,有一个函数$f: \SetR^m \rightarrow \SetR$,$f$的一阶导数(关于$\Sx_j$)关于$x_i$的导数记为$\frac{\partial^2}{\partial \Sx_i \partial \Sx_j} f$。 @@ -245,11 +245,11 @@ $ f^\prime(\Sx)=0 $的点称为临界点或驻点。 当我们的函数具有多维输入时,二阶导数也有很多。 我们可以将这些导数合并成一个矩阵,称为Hessian矩阵。 -Hessian矩阵$\MH(f)(\Vx)$定义为 +Hessian~矩阵$\MH(f)(\Vx)$定义为 \begin{align} \MH(f)(\Vx)_{i,j} = \frac{\partial^2}{\partial \Sx_i \partial \Sx_j} f(\Vx). \end{align} -Hessian等价于梯度的Jacobian矩阵。 +Hessian~等价于梯度的~Jacobian~矩阵。 @@ -257,9 +257,9 @@ Hessian等价于梯度的Jacobian矩阵。 \begin{align} \frac{\partial^2}{\partial \Sx_i \partial \Sx_j} f(\Vx) = \frac{\partial^2}{\partial \Sx_j\partial \Sx_i} f(\Vx) . \end{align} -这意味着$H_{i,j} = H_{j,i}$, 因此Hessian矩阵在这些点上是对称的。 -在深度学习背景下,我们遇到的大多数函数的Hessian几乎处处都是对称的。 -因为Hessian矩阵是实对称的,我们可以将其分解成一组实特征值和一组特征向量的正交基。 +这意味着$H_{i,j} = H_{j,i}$, 因此~Hessian~矩阵在这些点上是对称的。 +在深度学习背景下,我们遇到的大多数函数的~Hessian~几乎处处都是对称的。 +因为~Hessian~矩阵是实对称的,我们可以将其分解成一组实特征值和一组特征向量的正交基。 在特定方向$\Vd$上的二阶导数可以写成$\Vd^\Tsp \MH \Vd$。 当$\Vd$是$\MH$的一个特征向量时,这个方向的二阶导数就是对应的特征值。 对于其他的方向$\Vd$,方向二阶导数是所有特征值的加权平均,权重在0和1之间,且与$\Vd$夹角越小的特征向量的权重越大。 @@ -273,7 +273,7 @@ Hessian等价于梯度的Jacobian矩阵。 f(\Vx) \approx f(\Vx^{(0)}) + (\Vx - \Vx^{(0)})^\Tsp \Vg + \frac{1}{2} (\Vx - \Vx^{(0)})^\Tsp \MH (\Vx - \Vx^{(0)}), \end{align} -其中$\Vg$是梯度,$\MH$是$ \Vx^{(0)}$点的Hessian。 +其中$\Vg$是梯度,$\MH$是$ \Vx^{(0)}$点的~Hessian。 如果我们使用学习率 $\epsilon$,那么新的点$\Vx$将会是$\Vx^{(0)}-\epsilon \Vg$。 代入上述的近似,可得 \begin{align} @@ -288,7 +288,7 @@ Hessian等价于梯度的Jacobian矩阵。 \epsilon^* = \frac{ \Vg^\Tsp \Vg}{ \Vg^\Tsp \MH \Vg} . \end{align} 最坏的情况下,$\Vg$与$\MH$最大特征值$\lambda_{\max}$对应的特征向量对齐,则最优步长是$\frac{1}{\lambda_{\max}}$。 -我们要最小化的函数能用二次函数很好地近似的情况下,Hessian的特征值决定了学习率的量级。 +我们要最小化的函数能用二次函数很好地近似的情况下,Hessian~的特征值决定了学习率的量级。 二阶导数还可以被用于确定一个临界点是否是局部极大点、局部极小点或鞍点。 回想一下,在临界点处$f'(x) = 0$。 @@ -302,13 +302,13 @@ Hessian等价于梯度的Jacobian矩阵。 在多维情况下,我们需要检测函数的所有二阶导数。 -利用Hessian的特征值分解,我们可以将二阶导数测试扩展到多维情况。 -在临界点处($\nabla_{\Vx} f(\Vx) = 0$),我们通过检测Hessian的特征值来判断该临界点是一个局部极大点、局部极小点还是鞍点。 -当Hessian是正定的(所有特征值都是正的),则该临界点是局部极小点。 +利用~Hessian~的特征值分解,我们可以将二阶导数测试扩展到多维情况。 +在临界点处($\nabla_{\Vx} f(\Vx) = 0$),我们通过检测~Hessian~的特征值来判断该临界点是一个局部极大点、局部极小点还是鞍点。 +当~Hessian~是正定的(所有特征值都是正的),则该临界点是局部极小点。 因为方向二阶导数在任意方向都是正的,参考单变量的二阶导数测试就能得出此结论。 -同样的,当Hessian是负定的(所有特征值都是负的),这个点就是局部极大点。 +同样的,当~Hessian~是负定的(所有特征值都是负的),这个点就是局部极大点。 在多维情况下,实际上我们可以找到确定该点是否为鞍点的积极迹象(某些情况下)。 -如果Hessian的特征值中至少一个是正的且至少一个是负的,那么$\Vx$是$f$某个横截面的局部极大点,却是另一个横截面的局部极小点。 +如果~Hessian~的特征值中至少一个是正的且至少一个是负的,那么$\Vx$是$f$某个横截面的局部极大点,却是另一个横截面的局部极小点。 见\fig?中的例子。 最后,多维二阶导数测试可能像单变量版本那样是不确定的。 当所有非零特征值是同号的且至少有一个特征值是$0$时,这个检测就是不确定的。 @@ -322,9 +322,9 @@ Hessian等价于梯度的Jacobian矩阵。 \caption{既有正曲率又有负曲率的鞍点。 示例中的函数是$f(\Vx) = x_1^2 - x_2^2$。 函数沿$x_1$轴向上弯曲。 -$x_1$轴是Hessian的一个特征向量,并且具有正特征值。 +$x_1$轴是~Hessian~的一个特征向量,并且具有正特征值。 函数沿$x_2$轴向下弯曲。 -该方向对应于Hessian负特征值的特征向量。 +该方向对应于~Hessian~负特征值的特征向量。 名称"鞍点"源自该处函数的鞍状形状。 这是具有鞍点函数的典型示例。 维度多于一个时,鞍点不一定要具有0特征值:仅需要同时具有正特征值和负特征值。 @@ -333,8 +333,8 @@ $x_1$轴是Hessian的一个特征向量,并且具有正特征值。 \end{figure} 多维情况下,单个点处每个方向上的二阶导数是不同。 -Hessian的条件数衡量这些二阶导数的变化范围。 -当Hessian的条件数很差时,梯度下降法也会表现得很差。 +Hessian~的条件数衡量这些二阶导数的变化范围。 +当~Hessian~的条件数很差时,梯度下降法也会表现得很差。 这是因为一个方向上的导数增加得很快,而在另一个方向上增加得很慢。 梯度下降不知道导数的这种变化,所以它不知道应该优先探索导数长期为负的方向。 病态条件也导致很难选择合适的步长。 @@ -347,21 +347,21 @@ Hessian的条件数衡量这些二阶导数的变化范围。 \else \centerline{\includegraphics{Chapter4/figures/poor_conditioning_color}} \fi -\caption{梯度下降无法利用包含在Hessian矩阵中的曲率信息。 -这里我们使用梯度下降来最小化Hessian矩阵条件数为5的二次函数$f(\Vx)$。 +\caption{梯度下降无法利用包含在~Hessian~矩阵中的曲率信息。 +这里我们使用梯度下降来最小化~Hessian~矩阵条件数为5的二次函数$f(\Vx)$。 这意味着最大曲率方向具有比最小曲率方向多五倍的曲率。 在这种情况下,最大曲率在$[1,1]^\top$方向上,最小曲率在$[1,-1]^\top$方向上。 红线表示梯度下降的路径。 这个非常细长的二次函数类似一个长峡谷。 梯度下降把时间浪费于在峡谷壁反复下降,因为它们是最陡峭的特征。 由于步长有点大,有超过函数底部的趋势,因此需要在下一次迭代时在对面的峡谷壁下降。 -与指向该方向的特征向量对应的Hessian的大的正特征值表示该方向上的导数快速增加,因此基于Hessian的优化算法可以预测,在此情况下最陡峭方向实际上不是有前途的搜索方向。 +与指向该方向的特征向量对应的~Hessian~的大的正特征值表示该方向上的导数快速增加,因此基于~Hessian~的优化算法可以预测,在此情况下最陡峭方向实际上不是有前途的搜索方向。 } \end{figure} -我们可以使用Hessian矩阵的信息来指导搜索,以解决这个问题。 +我们可以使用~Hessian~矩阵的信息来指导搜索,以解决这个问题。 其中最简单的方法是牛顿法。 牛顿法基于一个二阶泰勒展开来近似$\Vx^{(0)}$附近的$f(\Vx)$: \begin{align} @@ -375,33 +375,33 @@ Hessian的条件数衡量这些二阶导数的变化范围。 如果$f$不是一个真正二次但能在局部近似为正定二次,牛顿法则需要多次迭代应用\eqn?。 迭代地更新近似函数和跳到近似函数的最小点可以比梯度下降更快地到达临界点。 这在接近局部极小点时是一个特别有用的性质,但是在鞍点附近是有害的。 -如\eqn?所讨论的,当附近的临界点是最小点(Hessian的所有特征值都是正的)时牛顿法才适用,而梯度下降不会被吸引到鞍点(除非梯度指向鞍点)。 +如\eqn?所讨论的,当附近的临界点是最小点(Hessian~的所有特征值都是正的)时牛顿法才适用,而梯度下降不会被吸引到鞍点(除非梯度指向鞍点)。 -仅使用梯度信息的优化算法被称为\textbf{一阶优化算法}(first-order optimization algorithms),如梯度下降。 -使用Hessian矩阵的优化算法被称为\textbf{二阶最优化算法}(second-order optimization algorithms){cite?},如牛顿法。 +仅使用梯度信息的优化算法被称为\,\textbf{一阶优化算法}(first-order optimization algorithms),如梯度下降。 +使用~Hessian~矩阵的优化算法被称为\,\textbf{二阶最优化算法}(second-order optimization algorithms){cite?},如牛顿法。 在本书大多数上下文中使用的优化算法适用于各种各样的函数,但几乎都没有保证。 因为在深度学习中使用的函数族是相当复杂的,所以深度学习算法往往缺乏保证。 在许多其他领域,优化的主要方法是为有限的函数族设计优化算法。 在深度学习的背景下,限制函数满足Lipschitz连续或其导数Lipschitz连续可以获得一些保证。 -Lipschitz连续函数的变化速度以Lipschitz常数 $\CalL$为界: +Lipschitz~连续函数的变化速度以Lipschitz常数 $\CalL$为界: \begin{align} \forall \Vx,~\forall \Vy, ~| f(\Vx) - f(\Vy)| \leq \CalL \| \Vx - \Vy \|_2 . \end{align} 这个属性允许我们量化我们的假设——梯度下降等算法导致的输入的微小变化将使输出只产生微小变化,因此是很有用的。 -Lipschitz连续性也是相当弱的约束,并且深度学习中很多优化问题经过相对较小的修改后就能变得Lipschitz连续。 +Lipschitz~连续性也是相当弱的约束,并且深度学习中很多优化问题经过相对较小的修改后就能变得~Lipschitz连续。 最成功的特定优化领域或许是凸优化。 凸优化通过更强的限制提供更多的保证。 -凸优化算法只对凸函数适用,即Hessian处处半正定的函数。 +凸优化算法只对凸函数适用,即~Hessian~处处半正定的函数。 因为这些函数没有鞍点而且其所有局部极小点必然是全局最小点,所以表现很好。 然而,深度学习中的大多数问题都难以表示成凸优化的形式。 凸优化仅用作一些深度学习算法的子程序。 凸优化中的分析思路对证明深度学习算法的收敛性非常有用,然而一般来说,深度学习背景下凸优化的重要性大大减少。 -有关凸优化的详细信息,详见{Boyd04}或{rockafellar1997convex}。 +有关凸优化的详细信息,详见~{Boyd04}或~{rockafellar1997convex}。 @@ -427,19 +427,19 @@ Lipschitz连续性也是相当弱的约束,并且深度学习中很多优化 -Karush–Kuhn–Tucker方法\footnote{KKT方法是\textbf{Lagrange乘子法}(只允许等式约束)的推广}是针对约束优化非常通用的解决方案。 +Karush–Kuhn–Tucker方法\footnote{KKT~方法是\textbf{Lagrange乘子法}(只允许等式约束)的推广。}是针对约束优化非常通用的解决方案。 为介绍KKT方法,我们引入一个称为广义Lagrangian或广义Lagrange函数的新函数。 为了定义Lagrangian,我们先要通过等式和不等式的形式描述$\SetS$。 我们希望通过$m$个函数$g^{(i)}$和$n$个函数$h^{(j)}$描述$\SetS$,那么$\SetS$可以表示为$\SetS = \{ \Vx \mid \forall i, g^{(i)}(\Vx) = 0 ~\text{and}~ \forall j, h^{(j)}(\Vx) \leq 0 \}$。 其中涉及$g^{(i)}$的等式称为等式约束,涉及$h^{(j)}$的不等式称为不等式约束。 -我们为每个约束引入新的变量$\lambda_i$和$\alpha_j$,这些新变量被称为KKT乘子。广义Lagrangian可以如下定义: +我们为每个约束引入新的变量$\lambda_i$和$\alpha_j$,这些新变量被称为~KKT~乘子。广义Lagrangian~可以如下定义: \begin{align} L(\Vx, \Vlambda, \Valpha) = f(\Vx) + \sum_i \lambda_i g^{(i)}(\Vx) + \sum_j \alpha_j h^{(j)}(\Vx). \end{align} -现在,我们可以通过优化无约束的广义Lagrangian解决约束最小化问题。 +现在,我们可以通过优化无约束的广义Lagrangian~解决约束最小化问题。 只要存在至少一个可行点且$f(\Vx)$不允许取$\infty$,那么 \begin{align} \underset{\Vx}{\min}~ \underset{\Vlambda}{\max}~ @@ -489,18 +489,18 @@ Karush–Kuhn–Tucker方法\footnote{KKT方法是\textbf{Lagrange乘子法}( $中的$\alpha_i = 0$。 因此,我们可以观察到在该解中$\Valpha \odot \Vh(\Vx) = 0$。 换句话说,对于所有的$i$, $\alpha_i \geq 0$或$ h^{(j)}(\Vx) \leq 0$在收敛时必有一个是活跃的。 -为了获得关于这个想法的一些直观解释,我们可以说这个解是由不等式强加的边界,我们必须通过对应的KKT乘子影响$\Vx$的解,或者不等式对解没有影响,我们则归零KKT乘子。 +为了获得关于这个想法的一些直观解释,我们可以说这个解是由不等式强加的边界,我们必须通过对应的~KKT~乘子影响$\Vx$的解,或者不等式对解没有影响,我们则归零~KKT~乘子。 我们可以使用一组简单的性质来描述约束优化问题的最优点。 这些性质称为Karush–Kuhn–Tucker条件{cite?}。 这些是确定一个点是最优点的必要条件,但不一定是充分条件。 这些条件是: -+ 广义Lagrangian的梯度为零。 -+ 所有关于$\Vx$和KKT乘子的约束都满足。 ++ 广义Lagrangian~的梯度为零。 ++ 所有关于$\Vx$和~KKT~乘子的约束都满足。 + 不等式约束显示的"互补松弛性":$\Valpha \odot \Vh(\Vx) = 0$。 -有关KKT方法的详细信息,请参阅{NumOptBook}。 +有关~KKT~方法的详细信息,请参阅~{NumOptBook}。 @@ -537,7 +537,7 @@ $ f(\Vx) = \frac{1}{2} || \MA \Vx - \Vb ||_2^2$的算法。 因为在这个情况下,真实函数是二次的,牛顿法所用的二次近似是精确的,该算法会在一步后收敛到全局最小点。 现在假设我们希望最小化同样的函数,但受 $\Vx^\Tsp \Vx \leq 1$ 的约束。 -要做到这一点,我们引入Lagrangian +要做到这一点,我们引入~Lagrangian \begin{align} L(\Vx, \lambda) = f(\Vx) + \lambda (\Vx^\Tsp \Vx - 1). \end{align} @@ -549,10 +549,10 @@ $ f(\Vx) = \frac{1}{2} || \MA \Vx - \Vb ||_2^2$的算法。 -我们可以用Moore-Penrose伪逆:$\Vx = \MA^+ \Vb$找到无约束最小二乘问题的最小范数解。 +我们可以用~Moore-Penrose~伪逆:$\Vx = \MA^+ \Vb$找到无约束最小二乘问题的最小范数解。 如果这一点是可行,那么这也是约束问题的解。 否则,我们必须找到约束是活跃的解。 -关于$\Vx$对Lagrangian微分,我们得到方程 +关于$\Vx$对~Lagrangian~微分,我们得到方程 \begin{align} \MA^\Tsp \MA \Vx - \MA^\Tsp \Vb + 2 \lambda \Vx = 0. \end{align} @@ -566,7 +566,7 @@ $\lambda$的选择必须使结果服从约束。 \begin{align} \frac{\partial}{\partial \lambda} L(\Vx, \lambda) = \Vx^\Tsp \Vx - 1. \end{align} -当$\Vx$的范数超过1时,该导数是正的,所以为了跟随导数上坡并相对$\lambda$增加Lagrangian,我们需要增加$\lambda$。 +当$\Vx$的范数超过1时,该导数是正的,所以为了跟随导数上坡并相对$\lambda$增加~Lagrangian,我们需要增加$\lambda$。 因为$\Vx^\Tsp \Vx$的惩罚系数增加了,求解关于$\Vx$的线性方程现在将得到具有较小范数的解。 求解线性方程和调整$\lambda$的过程将一直持续到$\Vx$具有正确的范数并且关于$\lambda$的导数是$0$。 diff --git a/docs/_posts/2016-12-05-Chapter5_machine_learning_basics.md b/docs/_posts/2016-12-05-Chapter5_machine_learning_basics.md index e7753d8..2d3df23 100644 --- a/docs/_posts/2016-12-05-Chapter5_machine_learning_basics.md +++ b/docs/_posts/2016-12-05-Chapter5_machine_learning_basics.md @@ -232,7 +232,7 @@ Iris(鸢尾花卉)数据集~{cite?}是统计学家和机器学习研究者 学习范式的其他变种也是有可能的。 例如,半监督学习中,一些样本有监督目标,但其他样本没有。 在多实例学习中,样本的整个集合被标记为含有或者不含有该类的样本,但是集合中单独的样本是没有标记的。 -参考{Kotzias2015}了解最近深度模型进行多实例学习的示例。 +参考~{Kotzias2015}了解最近深度模型进行多实例学习的示例。 有些机器学习算法并不是训练于一个固定的数据集上。 例如,强化学习算法会和环境进行交互,所以学习系统和它的训练过程会有反馈回路。 @@ -379,7 +379,7 @@ Iris(鸢尾花卉)数据集~{cite?}是统计学家和机器学习研究者 -截距项$b$通常被称为仿射变换的\textbf{偏置}(bias)参数。 +截距项$b$通常被称为仿射变换的\,\textbf{偏置}(bias)参数。 这个术语的命名源自该变换的输出在没有任何输入时会偏移$b$。 它和统计偏差中指代统计估计算法的某个量的期望估计偏离真实值的意思是不一样的。 @@ -642,7 +642,7 @@ VC\,维定义为该分类器能够分类的训练样本的最大数目。 \else \centerline{\includegraphics{Chapter5/figures/underfit_just_right_overfit_wd_color}} \fi -\caption{我们使用高阶多项式回归模型来拟合图\?中训练样本。真实函数是二次的,但是在这里我们只使用$9$阶多项式。我们通过改变权重衰减的量来避免高阶模型的过拟合问题。\emph{(左)}当$\lambda$非常大时,我们可以强迫模型学习到了一个没有斜率的函数。由于它只能表示一个常数函数,所以会导致欠拟合。\emph{(中)}取一个适当的$\lambda$时,学习算法能够用一个正常的形状来恢复曲率。即使模型能够用更复杂的形状来来表示函数,权重衰减鼓励用一个带有更小参数的更简单的模型来描述它。\emph{(右)}当权重衰减趋近于$0$(即使用\,Moore-Penrose 伪逆来解这个带有最小正则化的欠定问题)时,这个$9$阶多项式会导致严重的过拟合,这和我们在图\?中看到的一样。} +\caption{我们使用高阶多项式回归模型来拟合\fig?中训练样本。真实函数是二次的,但是在这里我们只使用$9$阶多项式。我们通过改变权重衰减的量来避免高阶模型的过拟合问题。\emph{(左)}当$\lambda$非常大时,我们可以强迫模型学习到了一个没有斜率的函数。由于它只能表示一个常数函数,所以会导致欠拟合。\emph{(中)}取一个适当的$\lambda$时,学习算法能够用一个正常的形状来恢复曲率。即使模型能够用更复杂的形状来来表示函数,权重衰减鼓励用一个带有更小参数的更简单的模型来描述它。\emph{(右)}当权重衰减趋近于$0$(即使用\,Moore-Penrose 伪逆来解这个带有最小正则化的欠定问题)时,这个$9$阶多项式会导致严重的过拟合,这和我们在图\?中看到的一样。} \end{figure} 更一般地,正则化一个学习函数$f(\Vx;\Vtheta)$的模型,我们可以给代价函数添加被称为正则化项的惩罚。 @@ -969,7 +969,7 @@ MSE\,度量着估计和真实参数$\theta$之间平方误差的总体期望偏 \else \centerline{\includegraphics{Chapter5/figures/bias_variance_tradeoff}} \fi -\caption{当容量增大($x$轴)时,偏差(用点表示)随之减小,而方差(虚线)随之增大,使得泛化误差(加粗曲线)产生了另一种U形。如果我们沿着轴改变容量,会发现最佳容量,当容量小于最佳容量会呈现欠拟合,大于时导致过拟合。这种关系与\sec?以及图\?中讨论的容量、欠拟合和过拟合之间的关系类似。} +\caption{当容量增大($x$轴)时,偏差(用点表示)随之减小,而方差(虚线)随之增大,使得泛化误差(加粗曲线)产生了另一种U形。如果我们沿着轴改变容量,会发现最佳容量,当容量小于最佳容量会呈现欠拟合,大于时导致过拟合。这种关系与\sec?以及\fig?中讨论的容量、欠拟合和过拟合之间的关系类似。} \end{figure} @@ -1287,7 +1287,7 @@ MAP\,估计选择后验概率最大的点(或在$\Vtheta$是连续值的更常 许多正规化估计方法,例如权重衰减正则化的最大似然学习,可以被解释为贝叶斯推断的\,MAP\,近似。 这个适应于正则化时加到目标函数的附加项对应着$\log p(\Vtheta)$。 -并非所有的正则化惩罚都对应着MAP~贝叶斯推断。 +并非所有的正则化惩罚都对应着~MAP~贝叶斯推断。 例如,有些正则化项可能不是一个概率分布的对数。 还有些正则化项依赖于数据,当然也不会是一个先验概率分布。 @@ -1319,7 +1319,7 @@ MAP\,贝叶斯推断提供了一个直观的方法来设计复杂但可解释的 我们用于线性回归的实数正态分布是用均值参数化的。 我们提供这个均值的任何值都是有效的。 二元变量上的的分布稍微复杂些,因为它的均值必须始终在$0$和$1$之间。 -解决这个问题的一种方法是使用logistic sigmoid函数将线性函数的输出压缩进区间$(0,1)$。 +解决这个问题的一种方法是使用~logistic sigmoid~函数将线性函数的输出压缩进区间$(0,1)$。 该值可以解释为概率: \begin{equation} p(y = 1 \mid \Vx; \Vtheta) = \sigma(\Vtheta^\Tsp \Vx). @@ -1423,8 +1423,8 @@ $\Valpha$和$f(\Vx)$之间的关系也是线性的。 反之,在测试阶段我们希望在新的测试输入$\Vx$上产生$y$,我们需要在训练数据$\MX$上找到$\Vx$的$k$-最近邻。 然后我们返回训练集上对应的$y$值的平均值。 这几乎适用于任何类型可以确定$y$值平均值的监督学习。 -在分类情况中,我们可以关于one-hot编码向量$\Vc$求平均,其中$c_y = 1$,其他的$i$值取$c_i=0$。 -然后,我们可以解释这些one-hot编码的均值为类别的概率分布。 +在分类情况中,我们可以关于~one-hot~编码向量$\Vc$求平均,其中$c_y = 1$,其他的$i$值取$c_i=0$。 +然后,我们可以解释这些~one-hot~编码的均值为类别的概率分布。 作为一个非参数学习算法,$k$-近邻能达到非常高的容量。 例如,假设我们有一个用$0$-$1$误差度量性能的多分类任务。 在此设定中,当训练样本数目趋向于无穷大时,$1$-最近邻收敛到两倍贝叶斯误差。 @@ -1587,13 +1587,13 @@ PCA\,这种将数据变换为元素之间彼此不相关表示的能力是\,PCA\ 另外一个简单的表示学习算法是$k$-均值聚类。 $k$-均值聚类算法将训练集分成$k$个靠近彼此的不同样本聚类。 -因此我们可以认为该算法提供了$k$-维的one-hot编码向量$\Vh$以表示输入$\Vx$。 +因此我们可以认为该算法提供了$k$-维的~one-hot~编码向量$\Vh$以表示输入$\Vx$。 当$\Vx$属于聚类$i$时,有$h_i=1$,$\Vh$的其他项为零。 -$k$-均值聚类提供的one-hot编码也是一种稀疏表示,因为每个输入的表示中大部分元素为零。 +$k$-均值聚类提供的~one-hot~编码也是一种稀疏表示,因为每个输入的表示中大部分元素为零。 之后,我们会介绍能够学习更灵活的稀疏表示的一些其他算法(表示中每个输入$\Vx$不只一个非零项)。 -one-hot编码是稀疏表示的一个极端示例,丢失了很多分布式表示的优点。 -one-hot编码仍然有一些统计优点(自然地传达了相同聚类中的样本彼此相似的观点), +one-hot~编码是稀疏表示的一个极端示例,丢失了很多分布式表示的优点。 +one-hot~编码仍然有一些统计优点(自然地传达了相同聚类中的样本彼此相似的观点), 也具有计算上的优势,因为整个表示可以用一个单独的整数表示。 $k$-均值聚类初始化$k$个不同的中心点$\{\Vmu^{(1)},\dots,\Vmu^{(k)}\}$,然后迭代交换两个不同的步骤直到收敛。 @@ -1618,7 +1618,7 @@ $k$-均值聚类初始化$k$个不同的中心点$\{\Vmu^{(1)},\dots,\Vmu^{(k)}\ -这些问题说明了一些我们可能更偏好于分布式表示(相对于one-hot表示而言)的原因。 +这些问题说明了一些我们可能更偏好于分布式表示(相对于~one-hot~表示而言)的原因。 分布式表示可以对每个车辆赋予两个属性——一个表示它颜色,一个表示它是汽车还是卡车。 目前仍然不清楚什么是最优的分布式表示(学习算法如何知道我们关心的两个属性是颜色和是否汽车或卡车,而不是制造商和车龄?), 但是多个属性减少了算法去猜我们关心哪一个属性的负担,允许我们通过比较很多属性而非测试一个单一属性来细粒度地度量相似性。 diff --git a/docs/_posts/2016-12-06-Chapter6_deep_feedforward_networks.md b/docs/_posts/2016-12-06-Chapter6_deep_feedforward_networks.md index 6d73494..e4ee0a3 100644 --- a/docs/_posts/2016-12-06-Chapter6_deep_feedforward_networks.md +++ b/docs/_posts/2016-12-06-Chapter6_deep_feedforward_networks.md @@ -59,7 +59,7 @@ share: false 剩下的问题就是如何选择映射$\phi$。 \begin{enumerate} -+ 其中一种选择是使用一个通用的$\phi$,例如无限维的$\phi$,它隐含地用在基于RBF核的核机器上。 ++ 其中一种选择是使用一个通用的$\phi$,例如无限维的$\phi$,它隐含地用在基于~RBF~核的核机器上。 如果$\phi(\Vx)$具有足够高的维数,我们总是有足够的能力来拟合训练集,但是对于测试集的泛化往往不佳。 非常通用的特征映射通常只基于局部光滑的原则,并且没有将足够的先验信息进行编码来解决高级问题。 @@ -120,7 +120,7 @@ XOR函数提供了我们想要学习的目标函数$y = f^*(\Vx)$。 -评估整个训练集上表现的MSE损失函数为 +评估整个训练集上表现的~MSE~损失函数为 \begin{equation} J(\Vtheta) = \frac{1}{4} \sum_{\Vx\in \SetX} (f^*(\Vx) - f(\Vx; \Vtheta))^2. \end{equation} @@ -202,7 +202,7 @@ $f^{(1)}$应该是哪种函数?线性模型到目前为止都表现不错, 此前,为了描述线性回归模型,我们使用权重向量和一个标量的偏置参数来描述从输入向量到输出标量的仿射变换。 现在,因为我们描述的是向量$\Vx$到向量$\Vh$的仿射变换,所以我们需要一整个向量的偏置参数。 激活函数$g$通常选择对每个元素分别起作用的函数,有$h_i =g(\Vx^\top \MW_{:, i} + c_i)$。 -在现代神经网络中,默认的推荐是使用由激活函数$g(z)=\max\{0, z\}$定义的整流线性单元或者称为ReLU{cite?},如\fig?所示。 +在现代神经网络中,默认的推荐是使用由激活函数$g(z)=\max\{0, z\}$定义的整流线性单元或者称为~ReLU~{cite?},如\fig?所示。 \begin{figure}[!htb] \ifOpenSource @@ -318,7 +318,7 @@ f(\Vx; \MW, \Vc, \Vw, b) = \Vw^\top \max\{ 0, \MW^\top \Vx + \Vc \} +b. 在\sec?中,我们描述了如何通过指定一个优化过程、代价函数和一个模型族来构建一个机器学习算法。 我们到目前为止看到的线性模型和神经网络的最大区别,在于神经网络的非线性导致大多数我们感兴趣的代价函数都变得非凸。 -这意味着神经网络的训练通常使用迭代的、基于梯度的优化,仅仅使得代价函数达到一个非常小的值;而不是像用于训练线性回归模型的线性方程求解器,或者用于训练逻辑回归或SVM的凸优化算法那样保证全局收敛。 +这意味着神经网络的训练通常使用迭代的、基于梯度的优化,仅仅使得代价函数达到一个非常小的值;而不是像用于训练线性回归模型的线性方程求解器,或者用于训练逻辑回归或~SVM~的凸优化算法那样保证全局收敛。 凸优化从任何一种初始参数出发都会收敛(理论上如此——在实践中也很鲁棒但可能会遇到数值问题)。 用于非凸损失函数的随机梯度下降没有这种收敛性保证,并且对参数的初始值很敏感。 对于前馈神经网络,将所有的权重值初始化为小随机数是很重要的。 @@ -477,7 +477,7 @@ p(\Vy\mid\Vx) = \CalN(\Vy; \hat{\Vy}, \MI ). 许多任务需要预测二值型变量$y$的值。 具有两个类的分类问题可以归结为这种形式。 -此时最大似然的方法是定义$y$在$\Vx$条件下的Bernoulli分布。 +此时最大似然的方法是定义$y$在$\Vx$条件下的~Bernoulli分布。 Bernoulli分布仅需单个参数来定义。 神经网络只需要预测$P(y =1\mid\Vx)$即可。 @@ -495,23 +495,23 @@ P(y=1 \mid \Vx) = \max \left \{ 0, \min \{1, \Vw^\top \Vh+b \} \right \}. 相反,最好是使用一种新的方法来保证无论何时模型给出了错误的答案时,总能有一个较大的梯度。 -这种方法是基于使用sigmoid输出单元结合最大似然来实现的。 +这种方法是基于使用~sigmoid~输出单元结合最大似然来实现的。 -sigmoid输出单元定义为 +sigmoid~输出单元定义为 \begin{equation} \hat{y} = \sigma \left (\Vw^\top \Vh + b \right ), \end{equation} -这里$\sigma$是\sec?中介绍的logistic sigmoid函数。 +这里$\sigma$是\sec?中介绍的~logistic sigmoid~函数。 -我们可以认为sigmoid输出单元具有两个部分。 +我们可以认为~sigmoid~输出单元具有两个部分。 首先,它使用一个线性层来计算$z=\Vw^\top \Vh+b$。 -接着,它使用sigmoid激活函数将$z$转化成概率。 +接着,它使用~sigmoid~激活函数将$z$转化成概率。 我们暂时忽略对于$\Vx$的依赖性,只讨论如何用$z$的值来定义$y$的概率分布。 -sigmoid可以通过构造一个非归一化(和不为1)的概率分布$\tilde{P}(y)$来得到。 +sigmoid~可以通过构造一个非归一化(和不为1)的概率分布$\tilde{P}(y)$来得到。 我们可以随后除以一个合适的常数来得到有效的概率分布。 如果我们假定非归一化的对数概率对$y$ 和$z$是线性的,可以对它取指数来得到非归一化的概率。 -我们然后对它归一化,可以发现这服从Bernoulli分布,该分布受$z$的sigmoid变换控制: +我们然后对它归一化,可以发现这服从~Bernoulli分布,该分布受$z$的~sigmoid~变换控制: \begin{align} \log \tilde{P}(y) &= yz,\\ \tilde{P}(y) &= \exp(yz),\\ @@ -524,9 +524,9 @@ P(y) &= \sigma((2y-1)z). 这种在对数空间里预测概率的方法可以很自然地使用最大似然学习。 -因为用于最大似然的代价函数是$-\log P(y\mid\Vx)$,代价函数中的log抵消了sigmoid中的exp。 -如果没有这个效果,sigmoid的饱和性会阻止基于梯度的学习做出好的改进。 -我们使用最大似然来学习一个由sigmoid参数化的Bernoulli分布,它的损失函数为 +因为用于最大似然的代价函数是$-\log P(y\mid\Vx)$,代价函数中的log抵消了~sigmoid~中的exp。 +如果没有这个效果,sigmoid~的饱和性会阻止基于梯度的学习做出好的改进。 +我们使用最大似然来学习一个由~sigmoid~参数化的~Bernoulli分布,它的损失函数为 \begin{align} J(\Vtheta) &= -\log P(y\mid\Vx)\\ &= -\log \sigma ((2y-1)z)\\ @@ -534,7 +534,7 @@ J(\Vtheta) &= -\log P(y\mid\Vx)\\ \end{align} 这个推导使用了\sec?中的一些性质。 -通过将损失函数写成softplus函数的形式,我们可以看到它仅仅在$(1-2y)z$取绝对值非常大的负值时才会饱和。 +通过将损失函数写成~softplus函数的形式,我们可以看到它仅仅在$(1-2y)z$取绝对值非常大的负值时才会饱和。 因此饱和只会出现在模型已经得到正确答案时——当$y=1$且$z$取非常大的正值时,或者$y=0$且$z$取非常小的负值时。 当$z$的符号错误时,softplus函数的变量$(1-2y)z$可以简化为$|z|$。 当$|z|$变得很大并且$z$的符号错误时,softplus函数渐近地趋向于它的变量$|z|$。 @@ -542,19 +542,19 @@ J(\Vtheta) &= -\log P(y\mid\Vx)\\ 这个性质很有用,因为它意味着基于梯度的学习可以很快地改正错误的$z$。 当我们使用其他的损失函数,例如均方误差之类的,损失函数会在$\sigma(z)$饱和时饱和。 -sigmoid激活函数在$z$取非常小的负值时会饱和到0,当$z$取非常大的正值时会饱和到1。 +sigmoid~激活函数在$z$取非常小的负值时会饱和到0,当$z$取非常大的正值时会饱和到1。 这种情况一旦发生,梯度会变得非常小以至于不能用来学习,无论此时模型给出的是正确还是错误的答案。 -因此,最大似然几乎总是训练sigmoid输出单元的优选方法。 +因此,最大似然几乎总是训练~sigmoid~输出单元的优选方法。 -理论上,sigmoid的对数总是确定和有限的,因为sigmoid的返回值总是被限制在开区间$(0, 1)$上,而不是使用整个闭区间$[0, 1]$的有效概率。 +理论上,sigmoid~的对数总是确定和有限的,因为~sigmoid~的返回值总是被限制在开区间$(0, 1)$上,而不是使用整个闭区间$[0, 1]$的有效概率。 在软件实现时,为了避免数值问题,最好将负的对数似然写作$z$的函数,而不是$\hat{y}=\sigma(z)$的函数。 -如果sigmoid函数下溢到零,那么之后对$\hat{y}$取对数会得到负无穷。 +如果~sigmoid~函数下溢到零,那么之后对$\hat{y}$取对数会得到负无穷。 \subsubsection{用于 Multinoulli输出分布的softmax单元} 任何时候当我们想要表示一个具有$n$个可能取值的离散型随机变量的分布时,我们都可以使用softmax函数。 -它可以看作是sigmoid函数的扩展,其中sigmoid函数用来表示二值型变量的分布。 +它可以看作是~sigmoid~函数的扩展,其中~sigmoid~函数用来表示二值型变量的分布。 @@ -566,11 +566,11 @@ softmax函数最常用作分类器的输出,来表示$n$个不同类上的概 \hat{y} = P(y=1\mid\Vx). \end{equation} 因为这个数需要处在0和1之间,并且我们想要让这个数的对数可以很好地用于对数似然的基于梯度的优化,我们选择去预测另外一个数$z=\log \hat{P}(y=1\mid\Vx)$。 -对其指数化和归一化,我们就得到了一个由sigmoid函数控制的Bernoulli分布。 +对其指数化和归一化,我们就得到了一个由~sigmoid~函数控制的~Bernoulli分布。 为了推广到具有$n$个值的离散型变量的情况,我们现在需要创造一个向量$\hat{\Vy}$,它的每个元素是$\hat{y}_i = P(y=i\mid\Vx)$。 我们不仅要求每个$\hat{y}_i$元素介于0和1之间,还要使得整个向量的和为1,使得它表示一个有效的概率分布。 -用于Bernoulli分布的方法同样可以推广到Multinoulli分布。 +用于~Bernoulli分布的方法同样可以推广到~Multinoulli分布。 首先,线性层预测了未归一化的对数概率: \begin{equation} \Vz = \MW^\top \Vh+\Vb, @@ -582,7 +582,7 @@ softmax函数然后可以对$z$指数化和归一化来获得需要的$\hat{\Vy} \text{softmax}(\Vz)_i = \frac{\exp(z_i)}{\sum_j \exp(z_j)}. \end{equation} -和logistic sigmoid一样,当使用最大化对数似然训练softmax来输出目标值$\RSy$时,使用指数函数工作地非常好。 +和~logistic sigmoid一样,当使用最大化对数似然训练softmax来输出目标值$\RSy$时,使用指数函数工作地非常好。 这种情况下,我们想要最大化$\log P(\RSy =i; \Vz)=\log \text{softmax}(\Vz)_i$。 将softmax定义成指数的形式是很自然的因为对数似然中的log可以抵消softmax中的exp: \begin{equation} @@ -613,8 +613,8 @@ softmax函数然后可以对$z$指数化和归一化来获得需要的$\hat{\Vy} 特别是,平方误差对于softmax单元来说是一个很差的损失函数,即使模型做出高度可信的不正确预测,也不能训练模型改变其输出{cite?}。 要理解为什么这些损失函数可能失败,我们需要检查softmax函数本身。 -像sigmoid一样,softmax激活函数可能会饱和。 -sigmoid函数具有单个输出,当它的输入极端负或者极端正时会饱和。 +像~sigmoid~一样,softmax激活函数可能会饱和。 +sigmoid~函数具有单个输出,当它的输入极端负或者极端正时会饱和。 对于softmax的情况,它有多个输出值。 当输入值之间的差异变得极端时,这些输出值可能饱和。 当softmax饱和时,基于softmax的许多代价函数也饱和,除非它们能够转化饱和的激活函数。 @@ -634,7 +634,7 @@ sigmoid函数具有单个输出,当它的输入极端负或者极端正时会 当其中一个输入是最大($z_i = \max_i z_i$)并且$z_i$远大于其他的输入时,相应的输出$\text{softmax}(\Vz)_i$会饱和到1。 当$z_i$不是最大值并且最大值非常大时,相应的输出$\text{softmax}(\Vz)_i$也会饱和到0。 -这是sigmoid单元饱和方式的一般化,并且如果损失函数不被设计成对其进行补偿,那么也会造成类似的学习困难。 +这是~sigmoid~单元饱和方式的一般化,并且如果损失函数不被设计成对其进行补偿,那么也会造成类似的学习困难。 softmax函数的变量$\Vz$可以通过两种方式产生。 最常见的是简单地使神经网络较早的层输出$\Vz$的每个元素,就像先前描述的使用线性层$\Vz={W}^\top\Vh+\Vb$。 @@ -642,7 +642,7 @@ softmax函数的变量$\Vz$可以通过两种方式产生。 $n$个输出总和必须为1的约束意味着只有$n-1$个参数是必要的;第$n$个概率值可以通过1减去前面$n-1$个概率来获得。 因此,我们可以强制要求$\Vz$的一个元素是固定的。 例如,我们可以要求$z_n=0$。 -事实上,这正是sigmoid单元所做的。 +事实上,这正是~sigmoid~单元所做的。 定义$P(y=1\mid\Vx)=\sigma(z)$等价于用二维的$\Vz$以及$z_1=0$来定义$P(y=1\mid\Vx)=\text{softmax}(\Vz)_1$。 无论是$n-1$个变量还是$n$个变量的方法,都描述了相同的概率分布,但会产生不同的学习机制。 在实践中,无论是过度参数化的版本还是限制的版本都很少有差别,并且实现过度参数化的版本更为简单。 @@ -656,13 +656,13 @@ $n$个输出总和必须为1的约束意味着只有$n-1$个参数是必要的 "soft"这个术语来源于softmax函数是连续可微的。 "argmax"函数的结果表示为一个one-hot向量(只有一个元素为1,其余元素都为0的向量),不是连续和可微的。 softmax函数因此提供了argmax的"软化"版本。max函数相应的软化版本是$\text{softmax}(\Vz)^\top \Vz$。 -可能最好是把softmax函数称为"softargmax",但当前名称是一个根深蒂固的习惯了。 +可能最好是把softmax函数称为"softargmax",但当前名称已经是一个根深蒂固的习惯了。 \subsubsection{其他的输出类型} -之前描述的线性、sigmoid和softmax输出单元是最常见的。 +之前描述的线性、sigmoid~和softmax输出单元是最常见的。 神经网络可以推广到我们希望的几乎任何种类的输出层。 最大似然原则给如何为几乎任何种类的输出层设计一个好的代价函数提供了指导。 @@ -719,9 +719,7 @@ p(\Vy\mid\Vx) = \sum_{i=1}^n p(\RSc = i \mid \Vx) \CalN(\Vy; \Vmu^{(i)}(\Vx), \V 神经网络必须有三个输出:定义$p(\RSc=i\mid\Vx)$的向量,对所有的$i$给出$\Vmu^{(i)}(\Vx)$的矩阵,以及对所有的$i$给出$\VSigma^{(i)}(\Vx)$的张量。 这些输出必须满足不同的约束: \begin{enumerate} -+ 混合组件$p(\RSc=i\mid\Vx)$:它们由潜变量 -\footnote{我们之所以认为$\RSc$是潜在的,是因为我们不能直接在数据中观测到它:给定输入$\RVx$和目标$\RVy$,不可能确切地知道是哪个高斯组件产生$\RVy$,但我们可以想象$\RVy$是通过选择其中一个来产生的,并且将那个未被观测到的选择作为随机变量。} -$\RSc$关联着,在$n$个不同组件上形成Multinoulli分布。 ++ 混合组件$p(\RSc=i\mid\Vx)$:它们由潜变量\footnote{我们之所以认为$\RSc$是潜在的,是因为我们不能直接在数据中观测到它:给定输入$\RVx$和目标$\RVy$,不可能确切地知道是哪个高斯组件产生$\RVy$,但我们可以想象$\RVy$是通过选择其中一个来产生的,并且将那个未被观测到的选择作为随机变量。}~$\RSc$关联着,在$n$个不同组件上形成~Multinoulli分布。 这个分布通常可以由$n$维向量的softmax来获得,以确保这些输出是正的并且和为1。 + 均值$\Vmu^{(i)}(\Vx)$:它们指明了与第$i$个高斯组件相关联的中心或者均值,并且是无约束的(通常对于这些输出单元完全没有非线性)。 @@ -835,7 +833,7 @@ $\RSc$关联着,在$n$个不同组件上形成Multinoulli分布。 绝对值整流固定$\alpha_i=-1$来得到$g(z)=|z|$。 它用于图像中的对象识别{cite?},其中寻找在输入照明极性反转下不变的特征是有意义的。 整流线性单元的其他扩展比这应用地更广泛。 -渗漏整流线性单元{cite?}将$\alpha_i$固定成一个类似0.01的小值,参数化整流线性单元或者\textbf{PReLU}将$\alpha_i$作为学习的参数{cite?}。 +渗漏整流线性单元{cite?}将$\alpha_i$固定成一个类似0.01的小值,参数化整流线性单元或者~\textbf{PReLU}~将$\alpha_i$作为学习的参数{cite?}。 @@ -854,7 +852,7 @@ maxout单元因此可以视为\emph{学习激活函数}本身而不仅仅是单 特别地,具有两块的maxout层可以学习实现和传统层相同的输入$\Vx$的函数,这些传统层可以使用整流线性激活函数、绝对值整流、渗漏整流线性单元 或参数化整流线性单元,或者可以学习实现与这些都不同的函数。 maxout层的参数化当然也将与这些层不同,所以即使是maxout学习去实现和其他种类的层相同的$\Vx$的函数这种情况下,学习的机理也是不一样的。 -每个maxout单元现在由$k$个权重向量来参数化,而不仅仅是一个,所以maxout单元通常比整流线性单元需要更多的正则化。 +每个~maxout单元现在由$k$个权重向量来参数化,而不仅仅是一个,所以~maxout单元通常比整流线性单元需要更多的正则化。 如果训练集很大并且每个单元的块数保持很低的话,它们可以在没有正则化的情况下工作得不错{cite?}。 maxout单元还有一些其他的优点。 @@ -876,7 +874,7 @@ maxout单元还有一些其他的优点。 ## logistic sigmoid与双曲正切函数 -在引入整流线性单元之前,大多数神经网络使用logistic sigmoid激活函数 +在引入整流线性单元之前,大多数神经网络使用~logistic sigmoid~激活函数 \begin{equation} g(z) = \sigma(z) \end{equation} @@ -886,21 +884,21 @@ g(z) = \text{tanh}(z). \end{equation} 这些激活函数紧密相关,因为$\text{tanh}(z)=2\sigma(2z)-1$。 -我们已经看过sigmoid单元作为输出单元用来预测二值型变量取值为1的概率。 -与分段线性单元不同,sigmoid单元在其大部分定义域内都饱和——当$z$取绝对值很大的正值时,它们饱和到一个高值,当$z$取绝对值很大的负值时,它们饱和到一个低值,并且仅仅当$z$接近0时它们才对输入强烈敏感。 -sigmoid单元的广泛饱和性会使得基于梯度的学习变得非常困难。 +我们已经看过~sigmoid~单元作为输出单元用来预测二值型变量取值为1的概率。 +与分段线性单元不同,sigmoid~单元在其大部分定义域内都饱和——当$z$取绝对值很大的正值时,它们饱和到一个高值,当$z$取绝对值很大的负值时,它们饱和到一个低值,并且仅仅当$z$接近0时它们才对输入强烈敏感。 +sigmoid~单元的广泛饱和性会使得基于梯度的学习变得非常困难。 因为这个原因,现在不鼓励将它们用作前馈网络中的隐藏单元。 -当使用一个合适的代价函数来抵消sigmoid的饱和性时,它们作为输出单元可以与基于梯度的学习相兼容。 +当使用一个合适的代价函数来抵消~sigmoid~的饱和性时,它们作为输出单元可以与基于梯度的学习相兼容。 -当必须要使用sigmoid激活函数时,双曲正切激活函数通常要比logistic sigmoid函数表现更好。 +当必须要使用~sigmoid~激活函数时,双曲正切激活函数通常要比~logistic sigmoid~函数表现更好。 在$\text{tanh}(0)=0$而$\sigma(0)=\frac{1}{2}$的意义上,它更像是单位函数。 因为$\text{tanh}$在0附近与单位函数类似,训练深层神经网络$\hat{y}=\Vw^\top \text{tanh}(\MU^\top \text{tanh}(\MV^\top \Vx))$类似于训练一个线性模型$\hat{y}= \Vw^\top \MU^\top \MV^\top \Vx$,只要网络的激活能够被保持地很小。 这使得训练$\text{tanh}$网络更加容易。 -sigmoid形的激活函数在除了前馈网络以外的情景中更为常见。 -循环网络、许多概率模型以及一些自编码器有一些额外的要求使得它们不能使用分段线性激活函数,并且使得sigmoid形的单元更具有吸引力,尽管它存在饱和性的问题。 +sigmoid~激活函数在除了前馈网络以外的情景中更为常见。 +循环网络、许多概率模型以及一些自编码器有一些额外的要求使得它们不能使用分段线性激活函数,并且使得~sigmoid~单元更具有吸引力,尽管它存在饱和性的问题。 ## 其他隐藏单元 @@ -947,13 +945,13 @@ softmax单元很自然地表示具有$k$个可能值的离散型随机变量的 因为它对大部分$\Vx$都饱和到0,因此很难优化。 + \textbf{softplus}函数:$g(a)=\zeta(a)=\log(1+e^a)$。 -这是整流线性单元的平滑版本,由{Dugas01}引入用于函数近似,由{Nair-2010-small}引入用于无向概率模型的条件分布。 +这是整流线性单元的平滑版本,由~{Dugas01}引入用于函数近似,由~{Nair-2010-small}引入用于无向概率模型的条件分布。 {Glorot+al-AI-2011-small}比较了softplus和整流线性单元,发现后者的结果更好。 -通常不鼓励使用softplus函数。 +通常不鼓励使用~softplus函数。 softplus表明隐藏单元类型的性能可能是非常反直觉的——因为它处处可导或者因为它不完全饱和,人们可能希望它具有优于整流线性单元的点,但根据经验来看,它并没有。 + 硬双曲正切函数:它的形状和$\text{tanh}$以及整流线性单元类似,但是不同于后者,它是有界的,$g(a)=\max(-1, \min(1,a))$。 -它由{Collobert04}引入。 +它由~{Collobert04}引入。 隐藏单元的设计仍然是一个活跃的研究领域,许多有用的隐藏单元类型仍有待发现。 @@ -998,7 +996,7 @@ softplus表明隐藏单元类型的性能可能是非常反直觉的——因为 前馈网络的导数也可以任意好地来近似函数的导数{cite?}。 Borel可测的概念超出了本书的范畴;对于我们想要实现的目标,只需要知道定义在$\SetR^n$的有界闭集上的任意连续函数是Borel可测的,因此可以用神经网络来近似。 神经网络也可以近似从任何有限维离散空间映射到另一个的任意函数。 -虽然原始定理最初以具有特殊激活函数的单元的形式来描述,这个激活函数当变量取绝对值非常大的正值和负值时都会饱和,万能近似定理, %万能逼近定理也已经被证明对于更广泛类别的激活函数也是适用的,其中就包括现在常用的整流线性单元{cite?}。 +虽然原始定理最初以具有特殊激活函数的单元的形式来描述,这个激活函数当变量取绝对值非常大的正值和负值时都会饱和,万能近似定理, %万能逼近定理也已经被证明对于更广泛类别的激活函数也是适用的,其中就包括现在常用的整流线性单元~{cite?}。 @@ -1029,7 +1027,7 @@ Borel可测的概念超出了本书的范畴;对于我们想要实现的目标 许多现代神经网络使用整流线性单元。 {Leshno-et-al-1993}证明带有一大类非多项式激活函数族的浅层网络,包括整流线性单元,具有万能的近似性质,但是这些结果并没有强调深度或效率的问题——它们仅指出足够宽的整流网络能够表示任意函数。 {Montufar-et-al-NIPS2014}指出一些用深度整流网络表示的函数可能需要浅层网络(一个隐藏层)指数级的隐藏单元才能表示。 -更确切的说,他们说明分段线性网络(可以通过整流非线性或maxout单元获得)可以表示区域的数量是网络深度的指数级的函数。%这里为什么是非线性? +更确切的说,他们说明分段线性网络(可以通过整流非线性或~maxout单元获得)可以表示区域的数量是网络深度的指数级的函数。%这里为什么是非线性? \fig?解释了带有绝对值整流的网络是如何创建函数的镜像图像的,这些函数在某些隐藏单元的顶部计算,作用于隐藏单元的输入。 每个隐藏单元指定在哪里折叠输入空间,来创造镜像响应(在绝对值非线性的两侧)。 通过组合这些折叠操作,我们获得指数级的分段线性区域,他们可以概括所有种类的规则模式(例如,重复)。 @@ -1041,12 +1039,12 @@ Borel可测的概念超出了本书的范畴;对于我们想要实现的目标 \centerline{\includegraphics[width=\textwidth]{Chapter6/figures/space_folding.jpg}} \fi \caption{ % This is a screenshot. -关于更深的整流网络具有指数优势的一个直观的几何解释,来自{Montufar-et-al-NIPS2014}。 +关于更深的整流网络具有指数优势的一个直观的几何解释,来自~{Montufar-et-al-NIPS2014}。 \emph{(左)}绝对值整流单元对其输入中的每对镜像点有相同的输出。 镜像的对称轴由单元的权重和偏置定义的超平面给出。 在该单元顶部计算的函数(绿色决策面)将是横跨该对称轴的更简单模式的一个镜像。 \emph{(中)}该函数可以通过折叠对称轴周围的空间来得到。 \emph{(右)}另一个重复模式可以在第一个的顶部折叠(由另一个下游单元)以获得另外的对称性(现在重复四次,使用了两个隐藏层)。 -经{Montufar-et-al-NIPS2014}许可改编此图。} +经~{Montufar-et-al-NIPS2014}许可改编此图。} \end{figure} @@ -1082,7 +1080,7 @@ O \left ( k^{(l-1)+d} \right ). \fi \caption{深度的影响。 实验结果表明,当从地址照片转录多位数字时,更深层的网络能够更好地泛化。 -数据来自{Goodfellow+et+al-ICLR2014a}。 +数据来自~{Goodfellow+et+al-ICLR2014a}。 测试集上的准确率随着深度的增加而不断增加。 \fig?给出了一个对照实验,它说明了对模型尺寸其他方面的增加并不能产生相同的效果。} \end{figure} @@ -1138,7 +1136,7 @@ O \left ( k^{(l-1)+d} \right ). 当我们使用前馈神经网络接收输入$\Vx$并产生输出$\hat{\Vy}$时,信息通过网络向前流动。 输入$\Vx$提供初始信息,然后传播到每一层的隐藏单元,最终产生输出$\hat{\Vy}$。 -这称之为前向传播。 +这称之为~前向传播。 在训练过程中,前向传播可以持续向前直到它产生一个标量代价函数$J(\Vtheta)$。 反向传播算法{cite?},经常简称为\textbf{\glsdesc{BP}},允许来自代价函数的信息通过网络向后流动,以便计算梯度。 @@ -1154,7 +1152,7 @@ O \left ( k^{(l-1)+d} \right ). 在学习算法中,我们最常需要的梯度是代价函数关于参数的梯度,即$\nabla_{\Vtheta} J(\Vtheta)$。 许多机器学习任务需要计算其他导数,来作为学习过程的一部分,或者用来分析学得的模型。 反向传播算法也适用于这些任务,不局限于计算代价函数关于参数的梯度。 -通过在网络中传播信息来计算导数的想法非常普遍,它还可以用于计算诸如多输出函数$f$的Jacobian的值。 +通过在网络中传播信息来计算导数的想法非常普遍,它还可以用于计算诸如多输出函数$f$的~Jacobian~的值。 我们这里描述的是最常用的情况,其中$f$只有单个输出。 @@ -1225,10 +1223,10 @@ O \left ( k^{(l-1)+d} \right ). \begin{equation} \nabla_{\Vx}z = \left ( \frac{\partial \Vy}{\partial \Vx} \right )^\top \nabla_{\Vy} z, \end{equation} -这里$\frac{\partial \Vy}{\partial \Vx}$是$g$的$n\times m$的Jacobian矩阵。 +这里$\frac{\partial \Vy}{\partial \Vx}$是$g$的$n\times m$的~Jacobian矩阵。 -从这里我们看到,变量$\Vx$的梯度可以通过Jacobian矩阵$\frac{\partial \Vy}{\partial \Vx}$和梯度$\nabla_{\Vy} z$相乘来得到。 -反向传播算法由图中每一个这样的Jacobian梯度的乘积操作所组成。 +从这里我们看到,变量$\Vx$的梯度可以通过~Jacobian矩阵$\frac{\partial \Vy}{\partial \Vx}$和梯度$\nabla_{\Vy} z$相乘来得到。 +反向传播算法由图中每一个这样的~Jacobian~梯度的乘积操作所组成。 @@ -1236,7 +1234,7 @@ O \left ( k^{(l-1)+d} \right ). 从概念上讲,这与使用向量的反向传播完全相同。 唯一的区别是如何将数字排列成网格以形成张量。 我们可以想象,在我们运行反向传播之前,将每个张量变平为一个向量,计算一个向量值梯度,然后将该梯度重新构造成一个张量。 -从这种重新排列的观点上看,反向传播仍然只是将Jacobian乘以梯度。 +从这种重新排列的观点上看,反向传播仍然只是将~Jacobian~乘以梯度。 @@ -1346,7 +1344,7 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 反向传播算法被设计为减少公共子表达式的数量而不考虑存储的开销。 -具体来说,它大约对图中的每个节点执行一个Jacobian乘积。 +具体来说,它大约对图中的每个节点执行一个~Jacobian~乘积。 这可以从\alg?中看出,反向传播算法访问了图中的节点$u^{(j)}$到节点$u^{(i)}$的每条边一次,以获得相关的偏导数$\frac{\partial u^{(i)}}{\partial u^{(j)}}$。 反向传播因此避免了重复子表达式的指数爆炸。 然而,其他算法可能通过对计算图进行简化来避免更多的子表达式,或者也可能通过重新计算而不是存储这些子表达式来节省内存。 @@ -1449,13 +1447,13 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 我们用一个特定的数值来替代网络的符号输入$\Vx$,例如$[1.2, 3,765, -1.8]^\top$。 一些反向传播的方法采用计算图和一组用于图的输入的数值,然后返回在这些输入值处梯度的一组数值。 -我们将这种方法称为\textbf{符号到数值}的微分。 -这种方法用在诸如Torch{cite?}和Caffe{cite?}之类的库中。 +我们将这种方法称为\,\textbf{符号到数值}的微分。 +这种方法用在诸如Torch~{cite?}和Caffe~{cite?}之类的库中。 另一种方法是采用计算图以及添加一些额外的节点到计算图中,这些额外的节点提供了我们所需导数的符号描述。 -这是Theano{cite?}和TensorFlow{cite?}所采用的方法。 +这是Theano~{cite?}和TensorFlow~{cite?}所采用的方法。 \fig?给出了该方法如何工作的一个例子。 这种方法的主要优点是导数可以使用与原始表达式相同的语言来描述。 因为导数只是另外一张计算图,我们可以再次运行反向传播,对导数再进行求导就能得到更高阶的导数。 @@ -1494,8 +1492,8 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 反向传播算法非常简单。 为了计算某个标量$z$关于图中它的一个祖先$\Vx$的梯度,我们首先观察到它关于$z$的梯度由$\frac{dz}{dz}=1$给出。 -然后,我们可以计算对图中$z$的每个父节点的梯度,通过现有的梯度乘以产生$z$的操作的Jacobian。 -我们继续乘以Jacobian,以这种方式向后穿过图,直到我们到达$\Vx$。 +然后,我们可以计算对图中$z$的每个父节点的梯度,通过现有的梯度乘以产生$z$的操作的~Jacobian。 +我们继续乘以~Jacobian,以这种方式向后穿过图,直到我们到达$\Vx$。 对于从$z$出发可以经过两个或更多路径向后行进而到达的任意节点,我们简单地对该节点来自不同路径上的梯度进行求和。 更正式地,图$\CalG$中的每个节点对应着一个变量。 @@ -1517,7 +1515,7 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 每个操作~\verb|op|也与~\verb|bprop|操作相关联。 -该~\verb|bprop|操作可以计算如\eqn?所描述的Jacobian向量积。 +该~\verb|bprop|操作可以计算如\eqn?所描述的~Jacobian~向量积。 这是反向传播算法能够实现很大通用性的原因。 每个操作负责了解如何通过它参与的图中的边来反向传播。 例如,我们可以使用矩阵乘法操作来产生变量$\MC=\MA\MB$。 @@ -1602,7 +1600,7 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 这里我们是对计算图中的操作进行计数,而不是由底层硬件执行的单独操作,所以重要的是要记住每个操作的运行时间可能是高度可变的。 例如,两个矩阵相乘可能对应着图中的一个单独的操作,但这两个矩阵可能每个都包含数百万个元素。 我们可以看到,计算梯度至多需要$O(n^2)$的操作,因为在最坏的情况下,前向传播的步骤将在原始图的全部$n$个节点上运行(取决于我们想要计算的值,我们可能不需要执行整个图)。 -反向传播算法在原始图的每条边添加一个Jacobian向量积,可以用$O(1)$个节点来表达。 +反向传播算法在原始图的每条边添加一个~Jacobian~向量积,可以用$O(1)$个节点来表达。 因为计算图是有向无环图,它至多有$O(n^2)$条边。对于实践中常用图的类型,情况会更好。 大多数神经网络的代价函数大致是链式结构的,使得反向传播只有$O(n)$的成本。 这远远胜过简单的方法,简单方法可能需要在指数级的节点上运算。 @@ -1651,7 +1649,7 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 \else \centerline{\includegraphics{Chapter6/figures/mlp_example}} \fi -\caption{用于计算代价函数的计算图,这个代价函数是使用交叉熵损失以及权重衰减训练我们的单层MLP示例所产生的。} +\caption{用于计算代价函数的计算图,这个代价函数是使用交叉熵损失以及权重衰减训练我们的单层~MLP~示例所产生的。} \end{figure} 这个示例的梯度计算图实在太大,以致于绘制或者阅读都将是乏味的。 @@ -1729,7 +1727,7 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 人类数学家可以观察到$J$对$z_i$的导数采用了非常简单的形式:$p_iq_i-p_i$。 \footnote{译者注:这里作者误写成了$q_i-p_i$。} 反向传播算法不能够以这种方式来简化梯度,而是会通过原始图中的所有对数和指数操作显式地传播梯度。 -一些软件库如Theano{cite?}能够执行某些种类的代数替换来改进由纯反向传播算法提出的图。 +一些软件库如Theano~{cite?}能够执行某些种类的代数替换来改进由纯反向传播算法提出的图。 @@ -1737,7 +1735,7 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 因此,总的计算量是$O(\#\text{edges})$。 然而,可能通过对反向传播算法构建的计算图进行简化来减少这些计算量,并且这是NP完全问题。 诸如Theano和TensorFlow的实现使用基于匹配已知简化模式的试探法,以便重复地尝试去简化图。 -我们定义反向传播仅用于计算标量输出的梯度,但是反向传播可以扩展到计算Jacobian矩阵(该Jacobian矩阵或者来源于图中的$k$个不同标量节点,或者来源于包含$k$个值的张量值节点)。 +我们定义反向传播仅用于计算标量输出的梯度,但是反向传播可以扩展到计算~Jacobian矩阵(该~Jacobian矩阵或者来源于图中的$k$个不同标量节点,或者来源于包含$k$个值的张量值节点)。 朴素的实现可能需要$k$倍的计算:对于原始前向图中的每个内部标量节点,朴素的实现计算$k$个梯度而不是单个梯度。 当图的输出数目大于输入的数目时,有时更偏向于使用另外一种形式的自动微分,称为前向模式累加。 前向模式计算已经被提出用于循环神经网络梯度的实时计算,例如{cite?}。 @@ -1746,7 +1744,7 @@ $\CalB$中的计算和$\CalG$中的计算顺序完全相反,而且$\CalB$中 \begin{equation} \MA \MB \MC \MD, \end{equation} -其中的矩阵可以认为是Jacobian矩阵。 +其中的矩阵可以认为是~Jacobian矩阵。 例如,如果$\MD$是列向量,而$\MA$有很多行,那么这对应于一幅具有单个输出和多个输入的图,并且从最后开始乘,反向进行,只需要矩阵-向量的乘积。 这对应着反向模式。 相反,从左边开始乘将涉及一系列的矩阵-矩阵乘积,这使得总的计算变得更加昂贵。 @@ -1832,12 +1830,12 @@ Krylov方法是用于执行各种操作的一组迭代技术,这些操作包 其中一个算法上的变化是用损失函数的交叉熵族替代均方误差。 均方误差在20世纪80年代和90年代流行,但逐渐被交叉熵损失替代,并且最大似然原理的想法在统计学界和机器学习界之间广泛传播。 -使用交叉熵损失大大提高了具有sigmoid和softmax输出的模型的性能,而当使用均方误差损失时会存在饱和和学习缓慢的问题。 +使用交叉熵损失大大提高了具有~sigmoid~和softmax输出的模型的性能,而当使用均方误差损失时会存在饱和和学习缓慢的问题。 -另一个显著改善前馈网络性能的算法上的主要变化是使用分段线性隐藏单元来替代sigmoid隐藏单元,例如用整流线性单元。 +另一个显著改善前馈网络性能的算法上的主要变化是使用分段线性隐藏单元来替代~sigmoid~隐藏单元,例如用整流线性单元。 使用$\max\{0, z\}$函数的整流在早期神经网络中已经被引入,并且至少可以追溯到认知机(Cognitron)和神经认知机(Neocognitron){cite?}。 这些早期的模型没有使用整流线性单元,而是将整流用于非线性函数。 -尽管整流在早期很普及,在20世纪80年代,整流很大程度上被sigmoid所取代,也许是因为当神经网络非常小时,sigmoid表现更好。 +尽管整流在早期很普及,在20世纪80年代,整流很大程度上被~sigmoid~所取代,也许是因为当神经网络非常小时,sigmoid~表现更好。 到21世纪初,由于有些迷信的观念,认为必须避免具有不可导点的激活函数,所以避免了整流线性单元。 这在2009年开始发生改变。 {Jarrett-ICCV2009-small}观察到,在神经网络结构设计的几个不同因素中"使用整流非线性是提高识别系统性能的最重要的唯一因素"。 diff --git a/docs/_posts/2016-12-07-Chapter7_regularization.md b/docs/_posts/2016-12-07-Chapter7_regularization.md index 6dd8cf4..7bceca6 100644 --- a/docs/_posts/2016-12-07-Chapter7_regularization.md +++ b/docs/_posts/2016-12-07-Chapter7_regularization.md @@ -45,7 +45,7 @@ share: false 这意味着控制模型的复杂度不是找到合适规模的模型(带有正确的参数个数)这样一个简单的事情。 相反,我们可能会发现,或者说在实际的深度学习场景中我们几乎总是会发现,最好的拟合模型(从最小化泛化误差的意义上)是一个适当正则化的大型模型。 -现在我们回顾几种创建这些大型深度正则化模型的策略。 +现在我们回顾几种策略,以创建这些正则化的大型深度模型。 @@ -89,7 +89,7 @@ $\alpha$越大,对应正则化惩罚越大。 这个正则化策略通过向目标函数添加一个正则项$\Omega(\Vtheta) = \frac{1}{2} \norm{\Vw}_2^2$,使权重更加接近原点\footnote{更一般地,我们可以将参数正则化为接近空间中的任意特定点,令人惊讶的是这样也仍有正则化效果,但是特定点越接近真实值结果越好。 当我们不知道正确的值应该是正还是负时,零是有意义的默认值。 由于模型参数正则化为零的情况更为常见,我们将只探讨这种特殊情况。}。 -在其他学术圈,$L^2$也被称为岭回归或Tikhonov正则。 +在其他学术圈,$L^2$也被称为岭回归或~Tikhonov正则。 我们可以通过研究正则化化后目标函数的梯度,洞察一些权重衰减的正则化表现。 为了简单起见,我们假定其中没有偏置参数,因此$\Vtheta$就是$\Vw$。 @@ -121,7 +121,7 @@ $\alpha$越大,对应正则化惩罚越大。 \begin{align} \hat J(\Vtheta) = J(\Vw^*) + \frac{1}{2}(\Vw - \Vw^*)^\top \MH (\Vw - \Vw^*), \end{align} -其中$\MH$是$J$在$\Vw^*$处计算的Hessian矩阵(关于$\Vw$)。 +其中$\MH$是$J$在$\Vw^*$处计算的~Hessian~矩阵(关于$\Vw$)。 因为$\Vw^*$被定义为最优,即梯度消失为$0$,所以该二次近似中没有一阶项。 同样地,因为$\Vw^*$是$J$的一个最优点,我们可以得出$\MH$是半正定的结论。 @@ -164,7 +164,7 @@ $\alpha$越大,对应正则化惩罚越大。 实线椭圆表示没有正则化目标的等值线。 虚线圆圈表示$L^2$正则化项的等值线。 在$\tilde{\Vw}$点,这两个竞争目标达到平衡。 -目标函数$J$的Hessian的第一维特征值很小。 +目标函数$J$的~Hessian~的第一维特征值很小。 当从$\Vw^*$水平移动时,目标函数不会增加得太多。 因为目标函数对这个方向没有强烈的偏好,所以正则化项对该轴具有强烈的影响。 正则化项将$w_1$拉向零。 @@ -177,7 +177,7 @@ $\alpha$越大,对应正则化惩罚越大。 只有在显著减小目标函数方向上的参数会保留得相对完好。 -在无助于目标函数减小的方向(对应Hessian矩阵较小的特征值)上改变参数不会显著增加梯度。 +在无助于目标函数减小的方向(对应~Hessian~矩阵较小的特征值)上改变参数不会显著增加梯度。 这种不重要方向对应的分量会在训练过程中因正则化而衰减掉。 @@ -210,7 +210,7 @@ $L^2$正则项将这个矩阵替换为\eqn?中的$ (\MX^\top \MX + \alpha \MI)^{ ## $L^1$参数正则化 -$L^2$权重衰减是权重衰减最常见的形式,我们还可以使用其他的方法限制模型参数的大小。 +$L^2$权重衰减是权重衰减最常见的形式,我们还可以使用其他的方法限制模型参数的规模。 比如我们还可以使用$L^1$正则化。 形式地,对模型参数$\Vw$的$L^1$正则化被定义为: @@ -246,7 +246,7 @@ $L^2$权重衰减是权重衰减最常见的形式,我们还可以使用其他 \end{align} 同样,$\MH$是$J$在$\Vw^*$处的Hessian矩阵(关于$\Vw$)。 -由于$L^1$惩罚项在满的、一般的Hessian的情况下,无法得到直接清晰的代数表达式,因此我们将进一步简化假设Hessian是对角的,即$\MH = \text{diag}([H_{1,1},\dots, H_{n,n}])$,其中每个$H_{i,i}>0$。 +由于$L^1$惩罚项在满的、一般的~Hessian~的情况下,无法得到直接清晰的代数表达式,因此我们将进一步简化假设~Hessian~是对角的,即$\MH = \text{diag}([H_{1,1},\dots, H_{n,n}])$,其中每个$H_{i,i}>0$。 如果线性回归问题中的数据已被预处理(如可以使用PCA),去除了输入特征之间的相关性,那么这一假设成立。 我们可以将$L^1$正则化目标函数的二次近似分解成关于参数的求和: @@ -268,23 +268,23 @@ w_i = \text{sign}(w_i^*) \max\Big\{ |w_i^*| - \frac{\alpha}{H_{i,i}} , 0\Big\} . $w_i^* < 0$的情况与之类似,但是$L^1$惩罚项使$w_i$更接近0(增加$ \frac{\alpha}{H_{i,i}}$)或者为0。 相比$L^2$正则化,$L^1$正则化会产生更稀疏的解。 -此处稀疏性指的是一些参数具有最优值0。 +此处稀疏性指的是最优值中的一些参数为$0$。 和$L^2$正则化相比,$L^1$正则化的稀疏性具有本质的不同。 \eqn?给出了$L^2$正则化的解$\tilde \Vw$。 -如果我们使用Hessian $\MH$为对角正定矩阵的假设(与$L^1$正则化分析时一样),重新考虑这个等式,我们发现 +如果我们使用~Hessian~矩阵$\MH$为对角正定矩阵的假设(与$L^1$正则化分析时一样),重新考虑这个等式,我们发现 $\tilde{w_i} = \frac{H_{i,i}}{H_{i,i} + \alpha} w_i^*$。 如果$w_i^*$不是零,那么$\tilde{w_i}$也会保持非零。 这表明$L^2$正则化不会使参数变得稀疏,而$L^1$正则化有可能通过足够大的$\alpha$实现稀疏。 由$L^1$正则化导出的稀疏性质已经被广泛地用于特征选择机制。 特征选择从可用的特征子集选择出有意义的特征,化简机器学习问题。 -著名的LASSO{cite?}(Least Absolute Shrinkage and +著名的LASSO~{cite?}(Least Absolute Shrinkage and Selection Operator)模型将$L^1$惩罚和线性模型结合,并使用最小二乘代价函数。 $L^1$惩罚使部分子集的权重为零,表明相应的特征可以被安全地忽略。 -在\sec?,我们看到许多正则化策略可以被解释为MAP贝叶斯推断, -特别是$L^2$正则化相当于权重是高斯先验的MAP贝叶斯推断。 -对于$L^1$正则化,用于正则化代价函数的惩罚项$\alpha \Omega(\Vw) = \alpha \sum_i |w_i |$与通过MAP贝叶斯推断最大化的对数先验项是等价的($\Vw \in \SetR^n$并且权重先验是各向同性的拉普拉斯分布(\eqn?)): +在\sec?,我们看到许多正则化策略可以被解释为~MAP~贝叶斯推断, +特别是$L^2$正则化相当于权重是高斯先验的~MAP~贝叶斯推断。 +对于$L^1$正则化,用于正则化代价函数的惩罚项$\alpha \Omega(\Vw) = \alpha \sum_i |w_i |$与通过~MAP~贝叶斯推断最大化的对数先验项是等价的($\Vw \in \SetR^n$并且权重先验是各向同性的拉普拉斯分布(\eqn?)): \begin{align} \log p(\Vw) = \sum_i \log \text{Laplace}(w_i;0,\frac{1}{\alpha}) = -\alpha \norm{\Vw}_1 + n \log \alpha - n \log 2. @@ -354,10 +354,10 @@ $L^1$惩罚使部分子集的权重为零,表明相应的特征可以被安全 -{Hinton-et-al-arxiv2012}尤其推荐由{Srebro05}引入的策略:约束神经网络层的权重矩阵每列的范数,而不是限制整个权重矩阵的Frobenius范数。 +{Hinton-et-al-arxiv2012}尤其推荐由{Srebro05}引入的策略:约束神经网络层的权重矩阵每列的范数,而不是限制整个权重矩阵的~Frobenius~范数。 分别限制每一列的范数可以防止某一隐藏单元有非常大的权重。 -如果我们将此约束转换成Lagrange函数中的一个惩罚,这将与$L^2$ 权重衰减类似但每个隐藏单元的权重都具有单独的KKT乘子。 -每个KKT乘子分别会被动态更新,以使每个隐藏单元服从约束。 +如果我们将此约束转换成~Lagrange~函数中的一个惩罚,这将与$L^2$ 权重衰减类似但每个隐藏单元的权重都具有单独的~KKT~乘子。 +每个~KKT~乘子分别会被动态更新,以使每个隐藏单元服从约束。 在实践中,列范数的限制总是通过重投影的显式约束来实现。 @@ -385,7 +385,7 @@ $L^1$惩罚使部分子集的权重为零,表明相应的特征可以被安全 -正如我们在\sec?看到的,我们可以使用Moore-Penrose求解欠定线性方程。 +正如我们在\sec?看到的,我们可以使用~Moore-Penrose~求解欠定线性方程。 回想$\MX$伪逆$\MX^+$的一个定义: \begin{align} \MX^+ = \lim_{\alpha \searrow 0} (\MX^\top \MX + \alpha \MI)^{-1}\MX^\top. @@ -433,7 +433,7 @@ $L^1$惩罚使部分子集的权重为零,表明相应的特征可以被安全 输入噪声注入是一些无监督学习算法的一部分,如去噪自编码器{cite?}。 向隐藏单元施加噪声也是可行的,这可以被看作在多个抽象层上进行的数据集增强。 {Poole14}最近表明,噪声的幅度被细心调整后,该方法是非常高效的。 -Dropout,一个将在\sec?介绍的强大正则化策略,可以被看作是通过与噪声\emph{相乘}构建新输入的过程。 +我们将在\sec?介绍一个强大的正则化策略~Dropout,该策略可以被看作是通过与噪声\emph{相乘}构建新输入的过程。 在比较机器学习基准测试的结果时,考虑其采取的数据集增强是很重要的。 通常情况下,人工设计的数据集增强方案可以大大减少机器学习技术的泛化误差。 @@ -455,10 +455,10 @@ Dropout,一个将在\sec?介绍的强大正则化策略,可以被看作是 \sec?已经提出将噪声作用于输入,作为数据集增强策略。 对于某些模型而言,向输入添加方差极小的噪声等价于对权重施加范数惩罚{cite?}。 在一般情况下,噪声注入远比简单地收缩参数强大,特别是噪声被添加到隐藏单元时会更加强大。 -向隐藏单元添加噪声是值得单独讨论重要的话题;在\sec?所述Dropout算法是这种做法的主要发展方向。 +向隐藏单元添加噪声是值得单独讨论重要的话题;在\sec?所述~Dropout~算法是这种做法的主要发展方向。 另一种正则化模型的噪声使用方式是将其加到的权重。 -这项技术主要用于循环神经网络{cite?}。 +这项技术主要用于循环神经网络~{cite?}。 这可以被解释为关于权重的贝叶斯推断的随机实现。 贝叶斯学习过程将权重视为不确定的,并且可以通过概率分布表示这种不确定性。 向权重添加噪声是反映这种不确定性的一种实用的随机方法。 @@ -470,7 +470,7 @@ Dropout,一个将在\sec?介绍的强大正则化策略,可以被看作是 \end{align} 训练集包含$m$对标注样例$\{(\Vx^{(1)}, y^{(1)}),\dots,(\Vx^{(m)}, y^{(m)})\}$。 -现在我们假设对每个输入表示,网络权重添加随机扰动$\epsilon_{\Vw} \sim \CalN(\Vepsilon;0, \eta\MI )$。 +现在我们假设对每个输入表示,网络权重添加随机扰动$\epsilon_{\Vw} \sim \CalN(\Vepsilon;0, \eta\MI \, )$。 想象我们有一个标准的$l$层MLP。 我们将扰动模型记为$\hat y_{\epsilon_{\MW}} (\Vx)$。 尽管有噪声注入,我们仍然希望减少网络输出误差的平方。 @@ -481,7 +481,7 @@ Dropout,一个将在\sec?介绍的强大正则化策略,可以被看作是 (\Vx)+ y^2] . \end{align} -对于小的$\eta$,最小化带权重噪声(方差为$\eta \MI$)的$J$等同于最小化附加正则化项的$J$: +对于小的$\eta$,最小化带权重噪声(方差为$\eta \MI$\,)的$J$等同于最小化附加正则化项的$J$: $ \eta \SetE_{p(\Vx,y)}[\norm{\nabla_{\MW}~\hat y(\Vx)}^2]$。 这种形式的正则化鼓励参数进入权重小扰动对输出相对影响较小的参数空间区域。 换句话说,它推动模型进入对权重小的变化相对不敏感的区域,找到的点不只是极小点,还是由平坦区域所包围的最小点{cite?}。 @@ -495,12 +495,12 @@ $ \eta \SetE_{p(\Vx,y)}[\norm{\nabla_{\MW}~\hat y(\Vx)}^2]$。 大多数数据集的$y$标签都有一定错误。 错误的$y$不利于最大化$\log p(y \mid \Vx)$。 避免这种情况的一种方法是显式地对标签上的噪声进行建模。 -例如,我们可以假设,对于一些小常数$\epsilon$,训练集标记$y$是正确的概率是$1-\epsilon$,(以$\epsilon$的概率)任何其他可能的标签可能是正确的。 +例如,我们可以假设,对于一些小常数$\epsilon$,训练集标记$y$是正确的概率是$1-\epsilon$,(以$\epsilon$的概率)任何其他可能的标签也可能是正确的。 这个假设很容易就能解析地与代价函数结合,而不用显式地抽取噪声样本。 -例如,\textbf{标签平滑}(label smoothing)通过把确切分类目标从0和1替换成$\frac{\epsilon}{k-1}$和$1-\epsilon$,正则化具有$k$个输出的softmax函数的模型。 +例如,\textbf{标签平滑}(label smoothing)通过把确切分类目标从0和1替换成$\frac{\epsilon}{k-1}$和$1-\epsilon$,正则化具有$k$个输出的~softmax函数~的模型。 标准交叉熵损失可以用在这些非确切目标的输出上。 -使用softmax函数和明确目标的最大似然学习可能永远不会收敛—— -softmax函数永远无法真正预测0概率或1概率,因此它会继续学习越来越大的权重,使预测更极端。 +使用~softmax函数~和明确目标的最大似然学习可能永远不会收敛—— +softmax函数~永远无法真正预测0概率或1概率,因此它会继续学习越来越大的权重,使预测更极端。 使用如权重衰减等其他正则化策略能够防止这种情况。 标签平滑的优势是能够防止模型追求确切概率而不影响模型学习正确分类。 这种策略自20世纪80年代就已经被使用,并在现代神经网络继续保持显著特色{cite?}。 @@ -512,12 +512,12 @@ softmax函数永远无法真正预测0概率或1概率,因此它会继续学 在半监督学习的框架下,$P(\RVx)$产生的未标记样本和$P(\RVx, \RVy)$中的标记样本都用于估计$P(\RVy \mid \RVx)$或者根据$\RVx$预测$\RVy$。 -在深度学习的背景下,半监督学习通常指的是学习一个表示 $h = f(\Vx)$。 +在深度学习的背景下,半监督学习通常指的是学习一个表示 $\Vh = f(\Vx)$。 学习表示的目的是使相同类中的样本有类似的表示。 无监督学习可以为如何在表示空间聚集样本提供有用线索。 在输入空间紧密聚集的样本应该被映射到类似的表示。 在许多情况下,新空间上的线性分类器可以达到较好的泛化{cite?}。 -这种方法的一个经典变种是使用主成分分析主成分分析作为分类前(在投影后的数据上分类)的预处理步骤。 +这种方法的一个经典变种是使用主成分分析作为分类前(在投影后的数据上分类)的预处理步骤。 我们可以构建这样一个模型,其中生成模型$P(\RVx)$或$P(\RVx, \RVy)$与判别模型$P(\RVy \mid \RVx)$共享参数,而不用分离无监督和监督部分。 我们权衡监督模型准则 $-\log P(\RVy \mid \RVx)$和无监督或生成模型准则(如$-\log P(\RVx)$或$-\log P(\RVx, \RVy)$)。 @@ -526,12 +526,12 @@ softmax函数永远无法真正预测0概率或1概率,因此它会继续学 {Russ+Geoff-nips-2007}描述了一种学习回归核机器中核函数的方法,其中建模$P(\RVx)$时使用的未标记样本大大提高了$P(\RVy \mid \RVx)$的效果。 -更多半监督学习的信息,请参阅{SSL-Book-2006}。 +更多半监督学习的信息,请参阅~{SSL-Book-2006}。 # 多任务学习 -多任务学习{cite?}是通过合并几个任务中的样例(可以视为对参数施加的软约束)来提高泛化的一种方式。 +多任务学习~{cite?}是通过合并几个任务中的样例(可以视为对参数施加的软约束)来提高泛化的一种方式。 额外的训练样本以同样的方式将模型的参数推向泛化更好的方向,当模型的一部分在任务之间共享时,模型的这一部分更多地被约束为良好的值(假设共享是合理的),往往能更好地泛化。 \fig?展示了多任务学习中非常普遍的一种形式,其中不同的监督任务(给定$\RVx$预测$\RVy^{(i)}$)共享相同的输入$\RVx$以及一些中间层表示$\Vh^{(\text{share})}$,能学习共同的因素池。 @@ -564,7 +564,7 @@ softmax函数永远无法真正预测0概率或1概率,因此它会继续学 # 提前终止 -当训练有足够的表示能力甚至会过拟合任务的大模型时,我们经常观察到,训练误差会随着时间的推移逐渐降低但验证集的误差会再次上升。 +当训练有足够的表示能力甚至会过拟合的大模型时,我们经常观察到,训练误差会随着时间的推移逐渐降低但验证集的误差会再次上升。 \fig?是这些现象的一个例子,这种现象几乎一定会出现。 这意味着如果我们返回使验证集误差最低的参数设置,就可以获得更好的模型(因此,有希望获得更好的测试误差)。 @@ -635,7 +635,7 @@ softmax函数永远无法真正预测0概率或1概率,因此它会继续学 \centerline{\includegraphics{Chapter7/figures/learning_curve_color}} \fi \caption{学习曲线显示负对数似然损失如何随时间变化(表示为遍历数据集的训练迭代数,或轮数)。 -在这个例子中,我们在MNIST上训练了一个maxout网络。 +在这个例子中,我们在MNIST上训练了一个~maxout~网络。 我们可以观察到训练目标随时间持续减小,但验证集上的平均损失最终会再次增加,形成不对称的U形曲线。 } \end{figure} @@ -706,7 +706,7 @@ softmax函数永远无法真正预测0概率或1概率,因此它会继续学 \paragraph{提前终止为何具有正则化效果:} 目前为止,我们已经声明提前终止是一种正则化策略,但我们只通过展示验证集误差的学习曲线是一个U型曲线来支持这种说法。 提前终止正则化模型的真正机制是什么呢? -{Bishop1995}和{Sjoberg95}认为提前终止可以将优化过程的参数空间限制在初始参数值$\Vtheta_0$的小邻域内。 +{Bishop1995}和~{Sjoberg95}认为提前终止可以将优化过程的参数空间限制在初始参数值$\Vtheta_0$的小邻域内。 更具体地,想象用学习率$\epsilon$进行$\tau$个优化步骤(对应于$\tau$个训练迭代)。 我们可以将$\epsilon \tau$作为有效容量的度量。 假设梯度有界,限制迭代的次数和学习速率能够限制从$\Vtheta_0$到达的参数空间的大小,如\fig?所示。 @@ -720,7 +720,7 @@ softmax函数永远无法真正预测0概率或1概率,因此它会继续学 \fi \caption{提前终止效果的示意图。 \emph{(左)}实线轮廓线表示负对数似然的轮廓。 -虚线表示从原点开始的SGD所经过的轨迹。 % ?? +虚线表示从原点开始的~SGD~所经过的轨迹。 % ?? 提前终止的轨迹在较早的点$\tilde \Vw$处停止,而不是停止在最小化代价的点$\Vw^*$处。 \emph{(右)}为了对比,使用$L^2$正则化效果的示意图。 虚线圆圈表示$L^2$惩罚的轮廓,$L^2$惩罚使得总代价的最小值比非正则化代价的最小值更靠近原点。 @@ -769,7 +769,7 @@ softmax函数永远无法真正预测0概率或1概率,因此它会继续学 \begin{align} (\MI - \epsilon \VLambda)^\tau = (\VLambda + \alpha \MI)^{-1} \alpha, \end{align} -那么$L^2$正则化和权重衰减可以被看作是等价的(至少在目标函数的二次近似下)。 +那么$L^2~$正则化和权重衰减可以被看作是等价的(至少在目标函数的二次近似下)。 进一步取对数,使用$\log~(1+x)$的级数展开,我们可以得出结论:如果所有$\lambda_i$是小的(即$\epsilon \lambda_i \ll 1$且$\lambda_i / \alpha \ll 1$),那么 \begin{align} \tau \approx \frac{1}{\epsilon \alpha}, \\ @@ -834,12 +834,12 @@ CNN通过在图像多个位置共享参数来考虑这个特性。 # 稀疏表示 -权重衰减施加直接作用于模型参数的惩罚。 -另一种策略是将惩罚放在神经网络的激活单元,鼓励对应的激活是稀疏。 -这间接的对模型参数施加了复杂惩罚。 +前文所述的权重衰减直接惩罚模型参数。 +另一种策略是惩罚神经网络中的激活单元,稀疏化激活单元。 +这种策略间接地对模型参数施加了复杂惩罚。 -我们已经讨论过(在\sec?)$L^1$惩罚如何诱导稀疏的参数,意味着许多参数为零(或接近于零)。 -表示的稀疏,在另一方面描述了许多的元素是零(或接近零)的表示。 +我们已经讨论过(在\sec?中)$L^1$惩罚如何诱导稀疏的参数,即许多参数为零(或接近于零)。 +表示的稀疏,在另一方面描述了许多元素是零(或接近零)的表示。 我们可以线性回归的情况下简单说明这种区别: \begin{align} \underset{\Vy ~\in~ \SetR^m}{ @@ -870,7 +870,7 @@ CNN通过在图像多个位置共享参数来考虑这个特性。 3 & 1 & 2 & -3 & 0 & -3 \\ -5 & 4 & -2 & 2 & -5 & -1 \end{bmatrix}} - \underset{\Vh \in \SetR^n}{ + \underset{\Vh ~\in~ \SetR^n}{ \begin{bmatrix} 0 \\ 2 \\ 0 \\ 0 \\ -3 \\ 0 \end{bmatrix} } @@ -879,39 +879,39 @@ CNN通过在图像多个位置共享参数来考虑这个特性。 第一个表达式是参数稀疏的线性回归模型的例子。 -第二个是数据$\Vx$具有稀疏表示 $\Vh$的线性回归。 -也就是说,$\Vh$是$\Vx$的一个函数,在某种意义上表示存在于$\Vx$中的信息,但用一个稀疏向量表示。 +第二个表达式是数据$\Vx$具有稀疏表示 $\Vh$的线性回归。 +也就是说,$\Vh$是$\Vx$的一个函数,在某种意义上表示存在于$\Vx$中的信息,但只是用一个稀疏向量表示。 表示的正则化可以使用参数正则化中同种类型的机制实现。 -表示的范数惩罚正则化是通过向损失函数 $J$添加对表示的范数惩罚。 -记这个惩罚为$\Omega(\Vh)$。 -和以前一样,我们将正则化后的损失函数记为$\tilde J$: +表示的范数惩罚正则化是通过向损失函数 $J$添加对表示的范数惩罚来实现的。 +我们将这个惩罚记作$\Omega(\Vh)$。 +和以前一样,我们将正则化后的损失函数记作$\tilde J$: \begin{align} \tilde J(\Vtheta; \MX, \Vy) = J(\Vtheta; \MX, \Vy) + \alpha \Omega(\Vh), \end{align} -其中$\alpha \in [0, \infty]$ 权衡范数惩罚项的相对贡献,越大的$\alpha$对应更多的正则化。 +其中$\alpha \in [0, \infty]$ 权衡范数惩罚项的相对贡献,越大的$\alpha$对应越多的正则化。 正如对参数的$L^1$惩罚诱导参数稀疏性,对表示元素的$L^1$惩罚诱导稀疏的表示: $\Omega(\Vh) = \norm{\Vh}_1 = \sum_i |h_i|$。 -当然$L^1$惩罚是导致稀疏表示的选择之一。 -其他包括从表示上Student $t$先验导出的惩罚{cite?}和KL散度惩罚{cite?}有利于表示元素约束于单位区间上。 -{HonglakL2008-small}和{Goodfellow2009}都提供了基于几个样本平均激活的正则化策略的例子,即令$\frac{1}{m}\sum_i \Vh^{(i)}$接近某些目标值(如每项都是$.01$的向量)。 +当然$L^1$惩罚是使表示稀疏的方法之一。 +其他方法还包括从表示上的Student-$t$先验导出的惩罚{cite?}和KL散度惩罚{cite?}有利于表示元素约束于单位区间上。 +{HonglakL2008-small}和{Goodfellow2009}都提供了正则化几个样本平均激活的例子,即令$\frac{1}{m}\sum_i \Vh^{(i)}$接近某些目标值(如每项都是$.01$的向量)。 -还有其他方法使用激活值的硬性约束获得表示稀疏。 +还有一些其他方法通过激活值的硬性约束来获得表示稀疏。 例如,\textbf{正交匹配追踪}(orthogonal matching pursuit){cite?}通过解决约束优化问题将输入值$\Vx$编码成表示 $\Vh$ \begin{align} \underset{\Vh, \norm{\Vh}_0 < k}{\argmin} \norm{\Vx - \MW \Vh}^2, \end{align} 其中$\norm{\Vh}_0 $是$\Vh$中非零项的个数。 -当$\MW$被约束为正交时,这个问题可以高效地解决。 +当$\MW$被约束为正交时,我们可以高效地解决这个问题。 这种方法通常被称为OMP-$k$,通过$k$指定允许的非零特征数量。 {Coates2011b}证明OMP-$1$可以成为深度架构中非常有效的特征提取器。 -有隐藏单元的模型本质上都能变得稀疏。 -在这本书中,我们将看到各种情况下使用稀疏正则化的例子。 +含有隐藏单元的模型在本质上都能变得稀疏。 +在本书中,我们将看到在各种情况下使用稀疏正则化的例子。 # Bagging和其他集成方法 @@ -921,9 +921,9 @@ Bagging是通过结合几个模型降低泛化误差的技术{cite?}。 这是机器学习中常规策略的一个例子,被称为模型平均。 采用这种策略的技术被称为集成方法。 -模型平均奏效的原因是不同的模型通常不会在测试集上产生完全相同的错误。 +模型平均奏效的原因是不同的模型通常不会在测试集上产生完全相同的误差。 -考虑$k$个回归模型的例子。 +假设我们有$k$个回归模型。 假设每个模型在每个例子上的误差是$\epsilon_i$,这个误差服从零均值方差为$\SetE[\epsilon_i^2] = v$且协方差为$\SetE[\epsilon_i \epsilon_j] = c$的多维正态分布。 通过所有集成模型的平均预测所得误差是$\frac{1}{k} \sum_i \epsilon_i$。 集成预测器平方误差的期望是 @@ -934,8 +934,8 @@ Bagging是通过结合几个模型降低泛化误差的技术{cite?}。 \end{align} 在误差完全相关即$c=v$的情况下,均方误差减少到$v$,所以模型平均没有任何帮助。 在错误完全不相关即$c =0$的情况下,该集成平方误差的期望仅为$\frac{1}{k}v$。 -这意味着集成平方误差的期望会随着集成的大小线性地减小。 -换言之,集成平均上至少与它的任何成员表现得一样好,并且如果成员的误差是独立的,集成将显著地比其成员表现得更好。 +这意味着集成平方误差的期望会随着集成规模增大而线性减小。 +换言之,集成平均至少与它的任何成员表现得一样好,并且如果成员的误差是独立的,集成将显著地比其成员表现得更好。 不同的集成方法以不同的方式构建集成模型。 例如,集成的每个成员可以使用不同的算法和目标函数训练成完全不同的模型。 @@ -944,10 +944,10 @@ Bagging是一种允许重复多次使用同一种模型、训练算法和目标 具体来说,Bagging涉及构造$k$个不同的数据集。 -每个数据集与原始数据集具有相同数量的样例,但从原始数据集中替换采样构成。 +每个数据集从原始数据集中重复采样构成,和原始数据集具有相同数量的样例。 这意味着,每个数据集以高概率缺少一些来自原始数据集的例子,还包含若干重复的例子(如果所得训练集与原始数据集大小相同,那所得数据集中大概有原始数据集$2/3$的实例)。 模型$i$在数据集$i$上训练。 -每个数据集包含样本的差异导致训练模型之间的差异。 +每个数据集所含样本的差异导致了训练模型之间的差异。 \fig?是一个例子。 \begin{figure}[!htb] @@ -969,35 +969,35 @@ Bagging训练程序通过替换采样构建这些数据集。 \end{figure} 神经网络的解能达到足够多的变化意味着他们可以从模型平均中受益(即使所有模型都在同一数据集上训练)。 -神经网络中随机初始化的差异、小批量的随机选择、超参数的差异或不同输出的非确定性实现往往足以引起集成中不同成员的误差部分独立。 +神经网络中随机初始化的差异、小批量的随机选择、超参数的差异或不同输出的非确定性实现往往足以使得集成中的不同成员具有部分独立的误差。 -模型平均是减少泛化误差一个非常强大可靠的方法。 -作为科学论文算法的基准时,它通常是不鼓励使用的,因为任何机器学习算法可从模型平均中大幅获益(以增加计算和存储的代价)。 +模型平均是一个减少泛化误差的非常强大可靠的方法。 +在作为科学论文算法的基准时,它通常是不鼓励使用的,因为任何机器学习算法都可以从模型平均中大幅获益(以增加计算和存储为代价)。 -机器学习比赛通常使用超过几十种模型平均的方法取胜。 +机器学习比赛中的取胜算法通常是使用超过几十种模型平均的方法。 最近一个突出的例子是Netflix Grand Prize{cite?}。 不是所有构建集成的技术都是为了让集成模型比单一模型更加正则化。 -例如,一种被称为Boosting的技术{cite?}构建比单个模型容量更高集成模型。 -向集成逐步添加神经网络,Boosting已经应用于构建神经网络的集成{cite?}。 -通过逐渐增加神经网络的隐藏单元,Boosting也可以将单个神经网络解释为单个集成。 +例如,一种被称为Boosting的技术{cite?}构建比单个模型容量更高的集成模型。 +通过向集成逐步添加神经网络,Boosting已经被应用于构建神经网络的集成{cite?}。 +通过逐渐增加神经网络的隐藏单元,Boosting也可以将单个神经网络解释为一个集成。 # Dropout Dropout{cite?}提供了正则化一大类模型的方法,计算方便但功能强大。 -第一种近似下,Dropout可以被认为是集成非常多的大神经网络的实用Bagging方法。 +在第一种近似下,Dropout可以被认为是集成大量深层神经网络的实用Bagging方法。 Bagging涉及训练多个模型,并在每个测试样本上评估多个模型。 -当每个模型是一个大型神经网络时,这似乎是不切实际的,因为训练和评估这样的网络需要花费很多运行时间和内存。 -通常只能集成五至十个神经网络,如{Szegedy-et-al-arxiv2014}用六个赢得ILSVRC,超过这个数量就会迅速变得难以处理。 -Dropout提供了一种廉价的Bagging集成近似,能够训练和评估指数级的神经网络。 - -具体而言,Dropout训练的集成包括所有从基本的基础网络除去非输出单元形成子网络,如在\fig?所示。 -最先进的神经网络基于一系列仿射变换和非线性变换,我们可以将一些单元的输出乘零就能有效地删除一个单元。 -这个过程需要对模型一些修改,如径向基函数网络,单元的状态和参考值之间存在一定区别。 -为了简单起见,我们在这里提出乘零的简单Dropout算法,但是它被简单地修改后,可以与从网络中移除单元的其他操作一起工作。 +当每个模型都是一个很大的神经网络时,这似乎是不切实际的,因为训练和评估这样的网络需要花费很多运行时间和内存。 +通常我们只能集成五至十个神经网络,如{Szegedy-et-al-arxiv2014}集成了六个神经网络赢得ILSVRC,超过这个数量就会迅速变得难以处理。 +Dropout提供了一种廉价的Bagging集成近似,能够训练和评估指数级数量的神经网络。 + +具体而言,Dropout训练的集成包括所有从基础网络除去非输出单元后形成的子网络,如\fig?所示。 +最先进的神经网络基于一系列仿射变换和非线性变换,我们只需将一些单元的输出乘零就能有效地删除一个单元。 +这个过程需要对模型(如径向基函数网络,单元的状态和参考值之间存在一定区别)进行一些修改。 +为了简单起见,我们在这里提出乘零的简单Dropout算法,但是它被简单修改后,可以与从网络中移除单元的其他操作结合使用。 \begin{figure}[!htb] \ifOpenSource \centerline{\includegraphics{figure.pdf}} @@ -1009,20 +1009,20 @@ Dropout提供了一种廉价的Bagging集成近似,能够训练和评估指数 这四个单元有十六个可能的子集。 右图展示了从原始网络中丢弃不同的单元子集而形成的所有十六个子网络。 在这个小例子中,所得到的大部分网络没有输入单元或没有从输入连接到输出的路径。 -当层较宽时,丢弃所有从输入到输出的可能路径的概率变小,所以这个问题对于层较宽的网络不是很重要。} +当层较宽时,丢弃所有从输入到输出的可能路径的概率变小,所以这个问题不太可能在出现层较宽的网络中。} \end{figure} -回想一下使用Bagging学习,我们定义$k$个不同的模型,从训练集有替换采样构造$k$个不同的数据集,然后在训练集$i$上训练模型$i$。 +回想一下Bagging学习,我们定义$k$个不同的模型,从训练集有替换采样构造$k$个不同的数据集,然后在训练集$i$上训练模型$i$。 Dropout的目标是在指数级数量的神经网络上近似这个过程。 -具体来说,训练中使用Dropout,我们使用基于小批量的学习算法和小的步长,如梯度下降等。 -我们每次在小批量加载一个样本,然后随机抽样应用于网络中所有输入和隐藏单元的不同二值掩码。 +具体来说,在训练中使用Dropout时,我们会使用基于小批量的学习算法和较小的步长,如梯度下降等。 +我们每次在小批量中加载一个样本,然后随机抽样应用于网络中所有输入和隐藏单元的不同二值掩码。 对于每个单元,掩码是独立采样的。 -掩码值为1的采样概率(导致包含一个单元)是训练开始前固定一个超参数。 +掩码值为1的采样概率(导致包含一个单元)是训练开始前一个固定的超参数。 它不是模型当前参数值或输入样本的函数。 -通常一个输入单元包括的概率为$0.8$,一个隐藏单元包括的概率为$0.5$。 -然后,我们运行之前一样的前向传播、反向传播以及学习更新。 +通常在每一个小批量训练的神经网络中,一个输入单元被包括的概率为$0.8$,一个隐藏单元被包括的概率为$0.5$。 +然后,我们运行和之前一样的前向传播、反向传播以及学习更新。 \fig?说明了在Dropout下的前向传播。 \begin{figure}[!htb] \ifOpenSource @@ -1034,31 +1034,31 @@ Dropout的目标是在指数级数量的神经网络上近似这个过程。 (顶部)在此示例中,我们使用具有两个输入单元,具有两个隐藏单元的隐藏层以及一个输出单元的前馈网络。 (底部)为了执行具有Dropout的前向传播,我们随机地对向量$\Vmu$进行采样,其中网络中的每个输入或隐藏单元对应一项。 $\Vmu$中的每项都是二值的且独立于其他项采样。 -每项为$1$的概率是超参数,对于隐藏层通常为$0.5$,对于输入通常为$0.8$。 -网络中的每个单元乘以相应的掩码,然后正常地继续通过网络的其余部分前向传播。 -这相当于从\fig?中随机选择一个子网络并通过它前向传播。 +超参数的采样概率为$1$,隐藏层的采样概率通常为$0.5$,输入的采样概率通常为$0.8$。 +网络中的每个单元乘以相应的掩码,然后正常地继续沿着网络的其余部分前向传播。 +这相当于从\fig?中随机选择一个子网络并沿着前向传播。 } \end{figure} 更正式地说,假设一个掩码向量$\Vmu$指定被包括的单元,$J(\Vtheta, \Vmu)$是由参数$\Vtheta$和掩码 $\Vmu$定义的模型代价。 -那么Dropout训练在于最小化$\SetE_{\Vmu} J(\Vtheta, \Vmu)$。 -期望包含指数多的项,但我们可以通过抽样$\Vmu$获得梯度的无偏估计。 +那么Dropout训练的目标是最小化$\SetE_{\Vmu} J(\Vtheta, \Vmu)$。 +期望包含多达指数级的项,但我们可以通过抽样$\Vmu$获得梯度的无偏估计。 Dropout训练与Bagging训练不太一样。 -在Bagging的情况下,所有模型是独立的。 -在Dropout的情况下,模型是共享参数的,其中每个模型继承的父神经网络参数的不同子集。 -参数共享使得在有限可用的内存下代表指数数量的模型变得可能。 +在Bagging的情况下,所有模型都是独立的。 +在Dropout的情况下,所有模型共享参数,其中每个模型继承父神经网络参数的不同子集。 +参数共享使得在有限可用的内存下表示指数级数量的模型变得可能。 在Bagging的情况下,每一个模型在其相应训练集上训练到收敛。 -在Dropout的情况下,通常大部分模型都没有显式地被训练,通常该模型很大,以致到宇宙毁灭都不能采样所有可能的子网络。 -取而代之的是,可能的子网络的一小部分训练单个步骤,参数共享导致剩余的子网络能有好的参数设定。 +在Dropout的情况下,通常大部分模型都没有显式地被训练,因为通常父神经网络会很大,以致于到宇宙毁灭都不可能采样完所有的子网络。 +取而代之的是,在单个步骤中我们训练一小部分的子网络,参数共享会使得剩余的子网络也能有好的参数设定。 这些是仅有的区别。 除了这些,Dropout与Bagging算法一样。 例如,每个子网络中遇到的训练集确实是替换采样的原始训练集的一个子集。 -Bagging集成必须从所有成员的累积投票做一个预测。 +Bagging集成必须根据所有成员的累积投票做一个预测。 在这种背景下,我们将这个过程称为推断。 -目前为止,Bagging和Dropout的描述中没有要求模型具有明确的概率。 +目前为止,我们在介绍Bagging和Dropout时没有要求模型具有明确的概率。 现在,我们假定该模型的作用是输出一个概率分布。 在Bagging的情况下,每个模型$i$产生一个概率分布$p^{(i)}(y \mid \Vx)$。 集成的预测由这些分布的算术平均值给出, @@ -1067,20 +1067,20 @@ Bagging集成必须从所有成员的累积投票做一个预测。 \end{align} 在Dropout的情况下,通过掩码 $\Vmu$定义每个子模型的概率分布$p(y \mid \Vx, \Vmu)$。 -关于所有掩码的算术平均值由下式给出 +所有掩码的算术平均值由下式给出 \begin{align} \sum_{\Vmu} p(\Vmu) p(y \mid \Vx, \Vmu), \end{align} -其中$p(\Vmu)$是训练时采$\Vmu$的概率分布。 +其中$p(\Vmu)$是训练时采样$\Vmu$的概率分布。 -因为这个求和包含指数多的项,除非在该模型的结构允许某种形式的简化,否则是不可能计算的。 -目前为止,无法得知深度神经网络是否允许任何可行的简化。 +因为这个求和包含多达指数级的项,除非该模型的结构允许某种形式的简化,否则是不可能计算的。 +目前为止,无法得知深度神经网络是否允许某种可行的简化。 相反,我们可以通过采样近似推断,即平均许多掩码的输出。 即使是$10-20$个掩码就足以获得不错的表现。 -然而,有一个更好的方法能得到一个不错的近似整个集成的预测,且只需一个前向传播的代价。 +然而,一个更好的方法能不错地近似整个集成的预测,且只需一个前向传播的代价。 要做到这一点,我们改用集成成员预测分布的几何平均而不是算术平均。 {WardeFarley+al-ICLR2014}提出的论点和经验证据表明,在这个情况下几何平均与算术平均表现得差不多。 @@ -1091,26 +1091,26 @@ Bagging集成必须从所有成员的累积投票做一个预测。 \tilde{p}_{\text{ensemble}}(y \mid \Vx) = \sqrt[2^d]{\prod_{\Vmu} p(y \mid \Vx, \Vmu)}, \end{align} 其中$d$是可被丢弃的单元数。 -这里为简化介绍,我们使用均匀分布的$\Vmu$,但非均匀分布也是可能的。 +这里为简化介绍,我们使用均匀分布的$\Vmu$,但非均匀分布也是可以的。 为了作出预测,我们必须重新标准化集成: \begin{align} p_{\text{ensemble}}(y \mid \Vx) = \frac{\tilde{p}_{\text{ensemble}}(y \mid \Vx)} {\sum_{y'}\tilde{p}_{\text{ensemble}}(y' \mid \Vx) }. \end{align} -涉及Dropout的一个重要观点{cite?}是,我们可以通过评估模型中$p(y \mid \Vx)$近似$ p_{\text{ensemble}}$: -该模型具有所有单元,但单元$i$输出的权重乘以包括单元$i$的概率。 -这个修改的动机是捕获从该单元输出的正确期望值。 +涉及Dropout的一个重要观点{cite?}是,我们可以通过评估模型中$p(y \mid \Vx)$来近似$ p_{\text{ensemble}}$: +该模型具有所有单元,但我们将模型的权重修改为和单元$i$的概率的乘积。 +这个修改的动机是得到从该单元输出的正确期望值。 我们把这种方法称为权重比例推断规则。 -目前还没有在深度非线性网络上对这种近似推断规则的准确性作任何理论上的说法,但经验上表现得很好。 +目前还没有在深度非线性网络上对这种近似推断规则的准确性作任何理论分析,但经验上表现得很好。 % -- 255 -- 因为我们通常使用$\frac{1}{2}$的包含概率,权重比例规则一般相当于在训练结束后将权重除$2$,然后像平常一样使用模型。 实现相同结果的另一种方法是在训练期间将单元的状态乘$2$。 -无论哪种方式,我们的目标是确保在测试时一个单元的期望总输入是与在训练时该单元的期望总输入是大致相同(即使近半单位在训练时丢失)。 +无论哪种方式,我们的目标是确保在测试时一个单元的期望总输入与在训练时该单元的期望总输入是大致相同的(即使近半单位在训练时丢失)。 -对许多不具有非线性隐藏单元的模型族,权重比例推断规则是精确的。 +对许多不具有非线性隐藏单元的模型族而言,权重比例推断规则是精确的。 举个简单的例子,考虑softmax函数回归分类,其中由向量$\RVv$表示$n$个输入变量: \begin{align} P(\RSy = \Sy \mid \RVv) = \text{softmax}\big(\MW^\top\RVv + \Vb\big)_y. @@ -1153,27 +1153,27 @@ P_{\text{ensemble}}(\RSy = \Sy \mid \RVv) = \frac{\tilde{P}_{\text{ensemble}}(\ 权重比例推断规则在其他设定下也是精确的,包括条件正态输出的回归网络以及那些隐藏层不包含非线性的深度网络。 然而,权重比例推断规则对具有非线性的深度模型仅仅是一个近似。 虽然这个近似尚未有理论上的分析,但在实践中往往效果很好。 -{Goodfellow-et-al-ICML2013}实验发现,集成预测权重比例推断规则可以比蒙特卡罗近似工作得更好(在分类精度方面)。 -即使允许蒙特卡罗近似采样多达1000子网络时也比不过。 +{Goodfellow-et-al-ICML2013}实验发现,集成预测权重比例推断规则比蒙特卡罗近似的效果更好(在分类精度方面)。 +即使允许蒙特卡罗近似采样多达1000子网络时也比不过集成。 {gal2015bayesian}发现一些模型可以通过二十个样本和蒙特卡罗近似获得更好的分类精度。 似乎推断近似的最佳选择是与问题相关的。 -{Srivastava14}显示,Dropout比其他标准的计算开销小的正则化项,如权重衰减、过滤器范数约束和稀疏激活的正则化更有效。 +{Srivastava14}显示,Dropout比其他标准的计算开销小的正则化方法(如权重衰减、过滤器范数约束和稀疏激活的正则化)更有效。 Dropout也可以与其他形式的正则化合并,得到进一步的提升。 计算方便是Dropout的一个优点。 训练过程中使用Dropout产生$n$个随机二进制数与状态相乘,每个样本每次更新只需$\CalO(n)$的计算复杂度。 根据实现,也可能需要$\CalO(n)$的存储空间来持续保存这些二进制数(直到反向传播阶段)。 -使用训练好的模型推断时,计算每个样本的代价是与不使用Dropout一样的,尽管我们必须在开始运行推断前将权重除以2。 +使用训练好的模型推断时,计算每个样本的代价与不使用Dropout是一样的,尽管我们必须在开始运行推断前将权重除以2。 Dropout的另一个显著优点是不怎么限制适用的模型或训练过程。 几乎在所有使用分布式表示且可以用随机梯度下降训练的模型上都表现很好。 包括前馈神经网络、概率模型,如受限玻尔兹曼机{cite?},以及循环神经网络{cite?}。 -许多其他差不多强大正则化策略对模型结构的限制更严格。 +许多效果差不多的其他正则化策略对模型结构的限制更严格。 -虽然Dropout在特定模型上每一步的代价是微不足道的,但在一个完整的系统使用Dropout的代价可能非常显著。 +虽然Dropout在特定模型上每一步的代价是微不足道的,但在一个完整的系统上使用Dropout的代价可能非常显著。 因为Dropout是一个正则化技术,它减少了模型的有效容量。 为了抵消这种影响,我们必须增大模型规模。 不出意外的话,使用Dropout时最佳验证集的误差会低很多,但这是以更大的模型和更多训练算法的迭代次数为代价换来的。 @@ -1181,31 +1181,31 @@ Dropout的另一个显著优点是不怎么限制适用的模型或训练过程 在这些情况下,使用Dropout和更大模型的计算代价可能超过正则化带来的好处。 只有极少的训练样本可用时,Dropout不会很有效。 -在只有不到5000的样本的Alternative Splicing数据集上{cite?},贝叶斯神经网络{cite?}比Dropout表现更好{cite?}。 -当有其他未分类的数据可用时,无监督特征学习比Dropout更有优势。 +在只有不到5000的样本的Alternative Splicing数据集上{cite?},贝叶斯神经网络{cite?}比Dropout表现得更好{cite?}。 +当有其他未分类的数据可用时,无监督特征学习也比Dropout更有优势。 -{Wager+al-2013}表明,当Dropout作用于线性回归时,相当于每个输入特征具有不同权重衰减系数的$L^2$权重衰减。 每个特征的权重衰减系数的大小是由其方差来确定。 -其他线性模型有类似的结果。 -而对于深度模型,Dropout与权重衰减是不等同的。 +{Wager+al-2013}表明,当Dropout作用于线性回归时,相当于每个输入特征具有不同权重衰减系数的$L^2$权重衰减。 每个特征的权重衰减系数的大小是由其方差来确定的。 +其他线性模型也有类似的结果。 +而对于深度模型而言,Dropout与权重衰减是不等同的。 使用Dropout训练时的随机性不是这个方法成功的必要条件。 它仅仅是近似所有子模型总和的一个方法。 -{WangManning-ICML2013-small}导出近似这种边缘分布的解析解。 -他们的近似被称为快速Dropout, 由于梯度计算中的随机性减小导致更快的收敛时间。 -这种方法也可以在测试时应用,比权重比例推断规则更合理地(但计算也更昂贵)近似所有子网络的平均。 -快速Dropout在小神经网络上的性能几乎与标准的Dropout相当,但在大问题上尚未产生显著地改善或尚未应用。 +{WangManning-ICML2013-small}导出了近似这种边缘分布的解析解。 +他们的近似被称为快速Dropout,减小梯度计算中的随机性而获得更快的收敛速度。 +这种方法也可以在测试时应用,能够比权重比例推断规则更合理地(但计算也更昂贵)近似所有子网络的平均。 +快速Dropout在小神经网络上的性能几乎与标准的Dropout相当,但在大问题上尚未产生显著改善或尚未应用。 -正如随机性对实现Dropout的正则化效果不是必要的,这也不是充分的。 -为了证明这一点,{WardeFarley+al-ICLR2014}使用一种称为Dropout Boosting的方法设计了一个对照实验,与传统Dropout方法完全相同的噪声掩码, 但缺乏正则化效果。 +随机性对实现Dropout的正则化效果不是必要的,同时也不是充分的。 +为了证明这一点,{WardeFarley+al-ICLR2014}使用一种被称为Dropout Boosting的方法设计了一个对照实验,具有与传统Dropout方法完全相同的噪声掩码, 但缺乏正则化效果。 Dropout Boosting训练整个集成以最大化训练集上的似然。 -在相同意义上,传统的Dropout类似于Bagging,这种方式类似于Boosting。 -如预期一样,比较单一模型训练整个网络的情况,Dropout Boosting几乎没有正则化效果。 -这表明,Dropout Bagging的解释超过Dropout作为稳健性噪声的解释。 -当随机抽样的集成成员相互独立地训练好后,Bagging集成的正则化效果才能达到。 +从传统Dropout类似于Bagging的角度来看,这种方式类似于Boosting。 +如预期一样,和单一模型训练整个网络相比,Dropout Boosting几乎没有正则化效果。 +这表明,使用Bagging解释Dropout比使用稳健性噪声解释Dropout更好。 +只有当随机抽样的集成成员相互独立地训练好后,才能达到Bagging集成的正则化效果。 Dropout启发其他以随机方法训练指数量级的共享权重的集成。 DropConnect是 @@ -1213,32 +1213,32 @@ Dropout的一个特殊情况,其中一个标量权重和单个隐藏单元状 随机池化是构造卷积神经网络集成的一种随机池化的形式(见\sec?),其中每个卷积网络参与每个特征图的不同空间位置。 目前为止,Dropout仍然是最广泛使用的隐式集成方法。 -关于Dropout的一个重要见解是,通过随机行为训练网络并平均多个随机决定进行预测,通过参数共享实现了Bagging的一种形式。 +一个关于Dropout的重要见解是,通过随机行为训练网络并平均多个随机决定进行预测,实现了一种参数共享的Bagging形式。 早些时候,我们将Dropout描述为通过包括或排除单元形成模型集成的Bagging。 然而,这种参数共享策略不一定要基于包括和排除。 原则上,任何一种随机的修改都是可接受的。 -在实践中,我们必须选择能让神经网络能够学习对抗的修改类型。 -理想情况下,我们也应该使用可以快速近似推断的模型族。 -我们可以认为由向量$\Vmu$参数化的任何形式的修改,是对于$\Vmu$所有可能的值训练$p(y \mid \Vx, \Vmu)$的集成。 -这里不要求$\Vmu$具有有限数量的值。 +在实践中,我们必须选择让神经网络能够学习对抗的修改类型。 +在理想情况下,我们也应该使用可以快速近似推断的模型族。 +我们可以认为由向量$\Vmu$参数化的任何形式的修改,是对$\Vmu$所有可能的值训练$p(y \mid \Vx, \Vmu)$的集成。 +注意,这里不要求$\Vmu$具有有限数量的值。 例如,$\Vmu$可以是实值。 -{Srivastava14}表明,权重乘以$\Vmu \sim \CalN(\mathbf{1}, \MI)$比基于二值掩码Dropout表现更好。 +{Srivastava14}表明,权重乘以$\Vmu \sim \CalN(\mathbf{1}, \MI)$比基于二值掩码Dropout表现得更好。 由于$\SetE[\Vmu] = 1$,标准网络自动实现集成的近似推断,而不需要权重比例推断规则。 -目前为止,我们介绍了Dropout纯粹作为一种高效近似Bagging的方法。 -然而,有比这更进一步的Dropout观点。 +目前为止,我们将Dropout介绍为一种纯粹高效近似Bagging的方法。 +然而,还有比这更进一步的Dropout观点。 Dropout不仅仅是训练一个Bagging的集成模型, 并且是共享隐藏单元的集成模型。 这意味着无论其他隐藏单元是否在模型中,每个隐藏单元必须都能够表现良好。 隐藏单元必须准备好进行模型之间的交换和互换。 {Hinton-et-al-arxiv2012-small}由生物学的想法受到启发:有性繁殖涉及到两个不同生物体之间交换基因,进化产生的压力使得基因不仅是良好的而且要准备好不同有机体之间的交换。 这样的基因和这些特点对环境的变化是非常稳健的,因为它们一定会正确适应任何一个有机体或模型不寻常的特性。 -因此Dropout正则化每个隐藏单元不仅是一个很好的特征,更要在许多情况下良好的特征。 -{WardeFarley+al-ICLR2014}将Dropout与大集成的训练相比并得出结论:相比独立模型的集成获得的泛化误差,Dropout会提供的额外改进。 +因此Dropout正则化每个隐藏单元不仅是一个很好的特征,更要在许多情况下是良好的特征。 +{WardeFarley+al-ICLR2014}将Dropout与大集成的训练相比并得出结论:相比独立模型集成获得泛化误差,Dropout会带来额外的改进。 -Dropout强大的大部分是由于施加到隐藏单元的掩码噪声,了解这一事实是重要的。 +Dropout强大的大部分原因来自施加到隐藏单元的掩码噪声,了解这一事实是重要的。 这可以看作是对输入内容的信息高度智能化、自适应破坏的一种形式,而不是对输入原始值的破坏。 例如,如果模型学得通过鼻检测脸的隐藏单元 $h_i$,那么丢失$h_i$对应于擦除图像中有鼻子的信息。 模型必须学习另一种$h_i$,要么是鼻子存在的冗余编码,要么是脸部的另一特征,如嘴。 @@ -1251,21 +1251,21 @@ Dropout的另一个重要方面是噪声是乘性的。 -另一种深度学习算法——批标准化,在训练时向隐藏单元引入加性和乘性噪声重参数化模型。 -批标准化的主要目的是改善优化,但噪声具有正则化的效果,有时使Dropout变得没有必要。 -批标准化将会在\sec?更详细地讨论。 +另一种深度学习算法——批标准化,在训练时向隐藏单元引入加性和乘性噪声重新参数化模型。 +批标准化的主要目的是改善优化,但噪声具有正则化的效果,有时没必要再使用Dropout。 +批标准化将会在\sec?中被更详细地讨论。 # 对抗训练 -在许多情况下,神经网络在独立同分布的测试集上进行评估时已经达到人类表现。 -因此,自然要怀疑这些模型在这些任务上是否获得了真正的人类层次的理解。 -为了探测网络对底层任务的理解层次,我们可以搜索这个模型错误分类的例子。 -{Szegedy-ICLR2014}发现,精度达到人类水平的神经网络在通过优化过程故意构造的点上的误差率接近100\%,模型在这个输入点$\Vx'$的输出与附近的数据点$\Vx$非常不同。 -在许多情况下,$\Vx'$与$\Vx$非常近似,人类观察者不知道原始样本和对抗样本之间的差异,但是网络会作出非常不同的预测。 -见\fig?的例子。 +在许多情况下,神经网络在独立同分布的测试集上进行评估已经达到了人类表现。 +因此,我们自然要怀疑这些模型在这些任务上是否获得了真正的人类层次的理解。 +为了探索网络对底层任务的理解层次,我们可以探索这个模型错误分类的例子。 +{Szegedy-ICLR2014}发现,在精度达到人类水平的神经网络上通过优化过程故意构造数据点,其上的误差率接近100\%,模型在这个输入点$\Vx'$的输出与附近的数据点$\Vx$非常不同。 +在许多情况下,$\Vx'$与$\Vx$非常近似,人类观察者不会察觉原始样本和对抗样本之间的差异,但是网络会作出非常不同的预测。 +见\fig?中的例子。 \begin{figure}[!htb] \ifOpenSource \centerline{\includegraphics{figure.pdf}} @@ -1287,7 +1287,7 @@ $\ +\ .007\ \times$ &% \end{tabular} \fi \caption[Fast adversarial sample generation]{ -在ImageNet上应用于GoogLeNet~{cite?}的对抗样本生成的演示。 +在ImageNet上应用GoogLeNet~{cite?}的对抗样本生成的演示。 通过添加一个不可察觉的小向量(其中元素等于代价函数相对于输入的梯度元素的符号),我们可以改变GoogLeNet对此图像的分类结果。 经{Goodfellow-2015-adversarial}许可转载。 } @@ -1295,31 +1295,31 @@ $\ +\ .007\ \times$ &% -对抗样本有很多的影响,例如计算机安全,这超出了本章的范围。 -然而,它们在正则化的背景下很有意思,因为我们可以通过对抗训练减少原有独立同分布的测试集上错误率——在对抗扰动的训练集样本上训练{cite?}。 +对抗样本在很多领域有很多影响,例如计算机安全,这超出了本章的范围。 +然而,它们在正则化的背景下很有意思,因为我们可以通过对抗训练减少原有独立同分布的测试集的错误率——在对抗扰动的训练集样本上训练网络{cite?}。 {Goodfellow-2015-adversarial}表明,这些对抗样本的主要原因之一是过度线性。 -神经网络主要基于线性块构建的。 -因此在一些实验中,他们实现的整体函数被证明是高度线性。 +神经网络主要是基于线性块构建的。 +因此在一些实验中,它们实现的整体函数被证明是高度线性的。 这些线性函数很容易优化。 不幸的是,如果一个线性函数具有许多输入,那么它的值可以非常迅速地改变。 -如果我们用$\epsilon$改变每个输入,那么权重为$\Vw$线性函数可以改变$\epsilon \norm{\Vw}_1$之多,如果$\Vw$是高维的这会是一个非常大的数。 +如果我们用$\epsilon$改变每个输入,那么权重为$\Vw$的线性函数可以改变$\epsilon \norm{\Vw}_1$之多,如果$\Vw$是高维的这会是一个非常大的数。 对抗训练通过鼓励网络在训练数据附近的局部区域恒定来限制这一高度敏感的局部线性行为。 -这可以被看作是明确地向监督神经网络引入局部恒定的先验的方法。 +这可以被看作是一种明确地向监督神经网络引入局部恒定先验的方法。 -对抗训练有助于说明积极正则化与大型函数族结合的力量。 -纯粹的线性模型,如逻辑回归,由于他们被限制为线性而无法抵抗对抗样本。 -神经网络是能够将函数从接近线性转化为局部近似恒定,从而可以灵活地捕获到训练数据中的线性趋势同时学习抵抗局部扰动。 +对抗训练有助于体现积极正则化与大型函数族结合的力量。 +纯粹的线性模型,如逻辑回归,由于它们被限制为线性而无法抵抗对抗样本。 +神经网络能够将函数从接近线性转化为局部近似恒定,从而可以灵活地捕获到训练数据中的线性趋势同时学习抵抗局部扰动。 -对抗样本也提供了实现半监督学习的一种手段。 -与数据集中的标签不相关联的点$\Vx$处,模型本身为其分配一些标签$\hat y$。 -模型的标记$\hat y$未必是真正的标签,但如果模型是高品质,那么$\hat y$提供真正标签的可能性很大。 +对抗样本也提供了一种实现半监督学习的方法。 +在与数据集中的标签不相关联的点$\Vx$处,模型本身为其分配一些标签$\hat y$。 +模型的标记$\hat y$未必是真正的标签,但如果模型是高品质的,那么$\hat y$提供正确标签的可能性很大。 我们可以搜索一个对抗样本 $\Vx'$,导致分类器输出一个标签$y'$且$y' \neq \hat y$。 -不使用真正的标签,而是由训练好的模型提供标签产生的对抗样本称为虚拟对抗样本{cite?}。 -分类器可以被训练成对$\Vx$和$\Vx'$分配相同的标签。 -这鼓励分类器学习一个沿着未标签数据所在流形上任意微小变化都是鲁棒的函数。 -驱动这种方法的假设是,不同的类通常位于分离的流形上,并且小的扰动不能从一类的流形跳到另一个类的流形。 +不使用真正的标签,而是由训练好的模型提供标签产生的对抗样本被称为虚拟对抗样本{cite?}。 +我们可以训练分类器为$\Vx$和$\Vx'$分配相同的标签。 +这鼓励分类器学习一个沿着未标签数据所在流形上任意微小变化都很鲁棒的函数。 +驱动这种方法的假设是,不同的类通常位于分离的流形上,并且小扰动不会使数据点从一个类的流形跳到另一个类的流形上。 @@ -1332,20 +1332,20 @@ $\ +\ .007\ \times$ &% 如\sec?所述,许多机器学习的目标旨在假设数据位于低维流形附近来克服维数灾难。 一个利用流形假设的早期尝试是切面距离算法{cite?}。 -它是一种非参数的最近邻算法,其中度量使用的不是通用的欧几里德距离,而是是从邻近流形关于聚集概率的知识导出的。 -这假设我们正在尝试的分类样本,且同一流形上的样本共享相同的类别。 -由于分类器应该对变化的局部因素(对应于流形上的移动)不变,将点$\Vx_1$和$\Vx_2$分别所在的流形$M_1$和$M_2$的距离作为点$\Vx_1$和$\Vx_2$的最近邻距离是合理的。 -尽管这可能是在计算上是困难(它需要解决一个找到$M_1$和$M_2$最近对点的优化问题),一种廉价的替代是局部合理的,即使用$\Vx_i$点处切平面近似$M_i$,并测量两条切平面或一个切平面和点的距离。 -这可以通过求解一个低维线性系统(流形的维数)实现。 +它是一种非参数的最近邻算法,其中使用的度量不是通用的欧几里德距离,而是根据邻近流形关于聚集概率的知识导出的。 +这个算法假设我们尝试分类的样本和同一流形上的样本具有相同的类别。 +由于分类器应该对局部因素(对应于流形上的移动)的变化保持不变,一种合理的度量是将点$\Vx_1$和$\Vx_2$各自所在流形$M_1$和$M_2$的距离作为点$\Vx_1$和$\Vx_2$之间的最近邻距离。 +然而这可能在计算上是困难的(它需要解决一个寻找$M_1$和$M_2$最近点对的优化问题),一种局部合理的廉价替代是使用$\Vx_i$点处切平面近似$M_i$,并测量两条切平面或一个切平面和点之间的距离。 +这可以通过求解一个低维线性系统(就流形的维数而言)来实现。 当然,这种算法需要制定一个切向量。 受相关启发,正切传播算法{cite?}(\fig?)训练带有额外惩罚的神经网络分类器,使神经网络的每个输出$f(\Vx)$对已知的变化因素是局部不变的。 这些变化因素对应于沿着的相同样本聚集的流形的移动。 -局部不变性是通过要求$\nabla_{\Vx} f(\Vx)$与已知流形的切向$\Vv^{(i)}$正交实现的,或者等价地通过正则化惩罚$\Omega$使$f$在$\Vx$的$\Vv^{(i)}$方向的导数是小的: +这里实现局部不变性的方法是要求$\nabla_{\Vx} f(\Vx)$与已知流形的切向$\Vv^{(i)}$正交,或者等价地通过正则化惩罚$\Omega$使$f$在$\Vx$的$\Vv^{(i)}$方向的导数较小: \Omega(f) = \sum_i \Big((\nabla_{\Vx} f(\Vx)^\top \Vv^{(i)}) \Big)^2 . \end{align} -这个正则化项当然可以通过适当的超参数缩放,并且对于大多数神经网络,我们将需要对许多输出求和(此处为描述简单,$f(\Vx)$为唯一输出)。 -与切面距离算法一样,切向量推导先验,通常是从变换(如平移、旋转和缩放图像)的效果获得形式知识。 +这个正则化项当然可以通过适当的超参数缩放,并且对于大多数神经网络,我们需要对许多输出求和(此处为描述简单,$f(\Vx)$为唯一输出)。 +与切面距离算法一样,我们根据切向量推导先验,通常从变换(如平移、旋转和缩放图像)的效果获得形式知识。 正切传播不仅用于监督学习{cite?},还在强化学习{cite?}中有所应用。 \begin{figure}[!htb] \ifOpenSource @@ -1354,48 +1354,48 @@ $\ +\ .007\ \times$ &% \centerline{\includegraphics{Chapter7/figures/mtc_color}} \fi \caption{正切传播算法{cite?}和流形正切分类器主要思想的示意图{cite?},它们都正则化分类器的输出函数$f(\Vx)$。 -每条曲线表示不同类别的流形,这里表示为嵌入在二维空间中的一维流形。 -在一条曲线上,我们选择单个点并绘制了一个与类别流形(平行并接触流形)相切的向量以及与类别流形(与流形正交)垂直的向量。 +每条曲线表示不同类别的流形,这里表示嵌入二维空间中的一维流形。 +在一条曲线上,我们选择单个点并绘制一个与类别流形(平行并接触流形)相切的向量以及与类别流形(与流形正交)垂直的向量。 在多维情况下,可以存在许多切线方向和法线方向。 -我们希望分类函数沿垂直于流形方向上的移动而快速改变,并且不随着沿类别流形方向的移动而改变。 -正切传播和流形正切分类器都正则化 $f(\Vx)$不随$\Vx$沿流形的移动而大量改变。 -正切传播需要用户手动指定计算正切方向的函数(例如指定小平移后的图像保留在相同类别的流形中),而流形正切分类器通过训练自编码器拟合训练数据来估计流形的正切方向 。 +我们希望分类函数在垂直于流形方向上快速改变,并且在类别流形的方向上保持不变。 +正切传播和流形正切分类器都会正则化 $f(\Vx)$,使其不随$\Vx$沿流形的移动而剧烈变化。 +正切传播需要用户手动指定正切方向的计算函数(例如指定小平移后的图像保留在相同类别的流形中),而流形正切分类器通过训练自编码器拟合训练数据来估计流形的正切方向 。 我们将在\chap?中讨论使用自编码器来估计流形。 } \end{figure} 正切传播与数据集增强密切相关。 -在这两种情况下,该算法的用户通过指定一组不改变网络输出的转换,编码其先验知识。 -不同的是在数据集增强的情况下,网络是显式地训练正确分类这些施加大量变换后产生的不同输入。 +在这两种情况下,该算法的用户通过指定一组不改变网络输出的转换,编码其先验知识。 +不同的是在数据集增强的情况下,网络显式地训练正确分类这些施加大量变换后产生的不同输入。 正切传播不需要显式访问一个新的输入点。 -取而代之,它解析地对模型正则化在对应于指定转换的方向抵抗扰动。 -虽然这种分析方法是聪明优雅的,它有两个主要的缺点。 -首先,模型的正则化只能抵抗无穷小扰动。 -显式的数据集增强能对抗较大扰动。 -二是无限小的做法对基于整流线性单元的模型是困难的。 +取而代之,它解析地对模型正则化从而在指定转换的方向抵抗扰动。 +虽然这种解析方法是聪明优雅的,但是它有两个主要的缺点。 +首先,模型的正则化只能抵抗无穷小的扰动。 +显式的数据集增强能抵抗较大的扰动。 +其次,我们很难在基于整流线性单元的模型上使用无限小的方法。 这些模型只能通过关闭单元或缩小它们的权重才能缩小它们的导数。 -他们不能像sigmoid或tanh单元一样通过大的权重在高值处饱和以收缩导数。 -数据集增强在整流线性单元上工作得很好,因为整流单元的不同子集针对每一个原始输入不同的转换版本激活。 +它们不能像sigmoid或tanh单元一样通过较大权重在高值处饱和以收缩导数。 +数据集增强在整流线性单元上工作得很好,因为不同的整流单元会在每一个原始输入的不同转换版本上被激活。 正切传播也涉及到双反向传播{cite?}和对抗训练{cite?}。 -双反向传播正则化Jacobian要小,而对抗训练找到原输入附近的点,训练模型以在这些点产生与原来输入相同的输出。 -正切传播和手动指定转换的数据集增强都要求模型对输入变化的某些特定的方向是不变的。 -双反向传播和对抗训练都要求模型对输入所有方向中的变化(只要该变化较小)都应当是不变的。 +双反向传播正则化使Jacobian矩阵偏小,而对抗训练找到原输入附近的点,训练模型在这些点上产生与原来输入相同的输出。 +正切传播和手动指定转换的数据集增强都要求模型在输入变化的某些特定的方向上保持不变。 +双反向传播和对抗训练都要求模型对输入所有方向中的变化(只要该变化较小)都应当保持不变。 正如数据集增强是正切传播非无限小的版本,对抗训练是双反向传播非无限小的版本。 流形正切分类器{cite?}无需知道切线向量的先验。 -正如我们将在\chap?看到,自编码器可以估算流形的切向量。 +我们将在\chap?看到,自编码器可以估算流形的切向量。 流形正切分类器使用这种技术来避免用户指定切向量。 -如\fig?所示,这些估计的切向量超出了图像(如转化、旋转和缩放)几何的经典不变,还必须掌握因为特定对象(如移动身体的部分)的因素。 -因此根据流形正切分类器提出的算法是简单: +如\fig?所示,这些估计的切向量不仅对图像经典几何变换(如转化、旋转和缩放)保持不变,还必须掌握对特定对象(如移动身体的部分)保持不变的因素。 +因此根据流形正切分类器提出的算法相当简单: (1)使用自编码器通过无监督学习来学习流形的结构,以及(2)如正切传播(\eqn?)一样使用这些切面正则化神经网络分类器。 在本章中,我们已经描述了大多数用于正则化神经网络的通用策略。 -正则化是机器学习的中心主题,因此将定期在其余各章中重新回顾。 -机器学习的另一个中心主题是优化,将在下章描述。 +正则化是机器学习的中心主题,因此我们将不时在其余各章中重新回顾。 +机器学习的另一个中心主题是优化,我们将在下一章描述。 diff --git a/docs/_posts/2016-12-08-Chapter8_optimization_for_training_deep_models.md b/docs/_posts/2016-12-08-Chapter8_optimization_for_training_deep_models.md index 5588e63..bf6c5f8 100644 --- a/docs/_posts/2016-12-08-Chapter8_optimization_for_training_deep_models.md +++ b/docs/_posts/2016-12-08-Chapter8_optimization_for_training_deep_models.md @@ -285,7 +285,7 @@ share: false -因此,我们可以从数据生成分布$p_\text{data}$抽取小批量样本$\{ \Vx^{(1)}, \dots,\Vx^{(m)} \}$以及对应的目标$y^{(i)}$,然后计算该小批量上损失函数关于对应参数的梯度 +因此,我们可以从数据生成分布~$p_\text{data}$抽取小批量样本$\{ \Vx^{(1)}, \dots,\Vx^{(m)} \}$以及对应的目标$y^{(i)}$,然后计算该小批量上损失函数关于对应参数的梯度 \begin{equation} \hat{\Vg} = \frac{1}{m} \nabla_{\Vtheta} \sum_i L(f(\Vx^{(i)};\Vtheta),y^{(i)} ). \end{equation} @@ -397,9 +397,9 @@ share: false 除了权重空间对称性,很多神经网络还有其他导致不可辨认的原因。 -例如,在任意整流线性网络或者maxout网络中, -我们可以将传入权重和偏置乘以 $\alpha$倍,然后将传出权重乘以$\frac{1}{\alpha}$倍,而保持模型等价。 -这意味着,如果代价函数不包括如权重衰减这种直接依赖于权重而非模型输出的项,那么整流线性网络或者maxout网络的每一个局部极小点都在等价的局部极小值的$(m\times n)$维双曲线上。 +例如,在任意整流线性网络或者~maxout~网络中, +我们可以将传入权重和偏置扩大$\alpha$倍,然后将传出权重扩大$\frac{1}{\alpha}$倍,而保持模型等价。 +这意味着,如果代价函数不包括如权重衰减这种直接依赖于权重而非模型输出的项,那么整流线性网络或者~maxout~网络的每一个局部极小点都在等价的局部极小值的$(m\times n)$维双曲线上。 @@ -499,7 +499,7 @@ share: false 令人惊讶的是,这些可视化通常不会显示出很多明显的障碍。 大约2012年,在随机梯度下降开始成功训练非常大的模型之前,相比这些投影所显示的神经网络代价函数的表面通常被认为有更多的非凸结构。 该投影所显示的主要障碍是初始参数附近的高代价鞍点,但如由蓝色路径所示,SGD\,训练轨迹能轻易地逃脱该鞍点。 -大多数训练时间花费在横穿代价函数中相对平坦的峡谷,可能由于梯度中的高噪声、或该区域中\,Hessian\,矩阵的病态条件,或者需要经过间接的弧路径绕过图中可见的高"山" 。 +大多数训练时间花费在横穿代价函数中相对平坦的峡谷,可能由于梯度中的高噪声、或该区域中~Hessian~矩阵的病态条件,或者需要经过间接的弧路径绕过图中可见的高"山" 。 图经~{GoodfellowOptimization15}许可改编。 } \end{figure} @@ -644,7 +644,7 @@ share: false \fig?表明神经网络通常不会到达梯度很小的区域。 甚至,这些临界点不一定存在。 例如,损失函数 $-\log p(y\mid\Vx;\Vtheta)$ 可以没有全局最小点,而是当随着训练模型逐渐稳定后,渐近地收敛于某个值。 -对于具有离散的$y$和\,softmax\,分布$p(y\mid\Vx)$的分类器而言,若模型能够正确分类训练集上的每个样本,则负对数似然可以无限趋近但不会等于零。 +对于具有离散的$y$和~softmax~分布$p(y\mid\Vx)$的分类器而言,若模型能够正确分类训练集上的每个样本,则负对数似然可以无限趋近但不会等于零。 同样地,实值模型$p(y\mid\Vx) = \mathcal{N}(y;f(\Vtheta),\beta^{-1})$的负对数似然会趋向于负无穷——如果$f(\Vtheta)$能够正确预测所有训练集中的目标$y$,学习算法会无限制地增加$\beta$。 \fig?给出了一个失败的例子,即使没有局部极小值和鞍点,该例还是不能从局部优化中找到一个良好的代价函数值。 @@ -1169,7 +1169,7 @@ Nesterov 动量中,梯度计算在施加当前速度之后。 在这种情况下,我们有一个单元输出$u$,另一个单元$h\in[0,1]$,那么我们可以将$h$视作门,以决定$uh\approx 1$还是$uh\approx 0$。 在这种情形下,我们希望设置偏置 $h$,使得在初始化的大多数情况下$h\approx 1$。 否则,$u$没有机会学习。 -例如,{Jozefowicz-et-al-ICML2015}提议设置\,LSTM\,模型遗忘门的偏置为$1$,如\sec?所述。 +例如,{Jozefowicz-et-al-ICML2015}提议设置~LSTM~模型遗忘门的偏置为$1$,如\sec?所述。 @@ -1394,7 +1394,7 @@ Adam通常被认为对超参数的选择相当鲁棒,尽管学习率有时需 J(\Vtheta) \approx J(\Vtheta_0) + (\Vtheta - \Vtheta_0)^\top \nabla_{\Vtheta} J(\Vtheta_0) + \frac{1}{2} (\Vtheta - \Vtheta_0)^\top \MH(\Vtheta - \Vtheta_0), \end{equation} -其中$\MH$是$J$相对于$\Vtheta$的Hessian矩阵在$\Vtheta_0$处的估计。 +其中$\MH$是$J$相对于$\Vtheta$的\,Hessian\,矩阵在$\Vtheta_0$处的估计。 如果我们再求解这个函数的临界点,我们将得到牛顿参数更新规则: \begin{equation} \Vtheta^* = \Vtheta_0 - \MH^{-1}\nabla_{\Vtheta} J(\Vtheta_0). @@ -1574,7 +1574,7 @@ Hessian\,矩阵中元素数目是参数数量的平方,因此,如果参数 BFGS\,近似的说明和推导出现在很多关于优化的教科书中,包括{Lue84}。 -当Hessian逆近似$\MM_t$更新时,下降方向$\Vrho_t$为$\Vrho_t = \MM_t \Vg_t$。 +当\,Hessian\,逆近似$\MM_t$更新时,下降方向$\Vrho_t$为$\Vrho_t = \MM_t \Vg_t$。 该方向上的线性搜索用于决定该方向上的步长$\epsilon^*$。 参数的最后更新为: \begin{equation} diff --git a/docs/_posts/2016-12-09-Chapter9_convolutional_networks.md b/docs/_posts/2016-12-09-Chapter9_convolutional_networks.md index 59e621b..9da1db2 100644 --- a/docs/_posts/2016-12-09-Chapter9_convolutional_networks.md +++ b/docs/_posts/2016-12-09-Chapter9_convolutional_networks.md @@ -21,7 +21,7 @@ share: false 卷积网络是神经科学原理影响深度学习的典型代表。 我们之后也会讨论这些神经科学的原理,并对卷积网络在深度学习发展史中的作用作出评价。 本章没有涉及如何为你的卷积网络选择合适的结构,因为本章的目标是说明卷积网络提供的各种工具。 -第\?将会对如何在具体环境中选择使用相应的工具给出通用的准则。 +\chap?将会对如何在具体环境中选择使用相应的工具给出通用的准则。 对于卷积网络结构的研究进展得如此迅速,以至于针对特定基准(benchmark),数月甚至几周就会公开一个新的最优的网络结构,甚至在写这本书时也不好描述究竟哪种结构是最好的。 然而,最好的结构也是由本章所描述的基本部件逐步搭建起来的。 @@ -136,7 +136,7 @@ S(i, j) = (I*K)(i, j) = \sum_m \sum_n I(i+m, j+n) K(m, n). 另外,卷积提供了一种处理大小可变的输入的方法。 我们下面依次介绍这些思想。 -传统的神经网络使用矩阵乘法来建立输入与输出的连接关系\footnote{译者注:这里可以粗略地理解为输入$\times$参数矩阵=输出。}。 +传统的神经网络使用矩阵乘法来建立输入与输出的连接关系。%\footnote{译者注:这里可以粗略地理解为输入$\times$参数矩阵=输出。} 其中,参数矩阵中每一个单独的参数都描述了一个输入单元与一个输出单元间的交互。 这意味着每一个输出单元与每一个输入单元都产生交互。 然而,卷积网络具有稀疏交互(也叫做稀疏连接或者稀疏权重)的特征。 @@ -164,7 +164,7 @@ S(i, j) = (I*K)(i, j) = \sum_m \sum_n I(i+m, j+n) K(m, n). \emph{(上)}当$\Vs$是由核宽度为3的卷积产生时,只有三个输出受到$\Vx$的影响\protect\footnotemark。 \emph{(下)}当$\Vs$是由矩阵乘法产生时,连接不再是稀疏的,所以所有的输出都会受到$x_3$的影响。} \end{figure} - \footnotetext{译者注:译者认为此处应当是$x_3$。} + \begin{figure}[!htb] @@ -180,7 +180,7 @@ S(i, j) = (I*K)(i, j) = \sum_m \sum_n I(i+m, j+n) K(m, n). \emph{(上)}当$\Vs$是由核宽度为3的卷积产生时,只有三个输入影响$s_3$。 \emph{(下)}当$\Vs$是由矩阵乘法产生时,连接不再是稀疏的,所以所有的输入都会影响$s_3$。} \end{figure} -\footnotetext{译者注:在生物中称之为"感受野"。} + \begin{figure}[!htb] @@ -542,7 +542,7 @@ S(i, j) = (I*K)(i, j) = \sum_m \sum_n I(i+m, j+n) K(m, n). 然而,输入像素中靠近边界的部分相比于中间部分对于输出像素的影响更小。 这可能会导致边界像素存在一定程度的欠表示。 这使得第三种极端情况产生了,在MATLAB中称为全卷积。 -它进行了足够多的零填充使得每个像素在每个方向上恰好被访问了$k$次\footnote{译者注:图\?给出了有效卷积和相同卷积的例子,这里对全卷积略作说明:我们可以认为全卷积是在输入的两端各填充$k-1$个零,使得输入的每个像素都恰好被核访问$k$次,最终得到的输出的宽度为$[m+2(k-1)]-k+1=m+k-1$},最终输出图像的宽度为$m+k-1$。%译者注 +它进行了足够多的零填充使得每个像素在每个方向上恰好被访问了$k$次,最终输出图像的宽度为$m+k-1$。%\footnote{译者注:图\?给出了有效卷积和相同卷积的例子,这里对全卷积略作说明:我们可以认为全卷积是在输入的两端各填充$k-1$个零,使得输入的每个像素都恰好被核访问$k$次,最终得到的输出的宽度为$[m+2(k-1)]-k+1=m+k-1$} 在这种情况下,输出像素中靠近边界的部分相比于中间部分是更少像素的函数。 这将导致学得一个在卷积特征映射的所有位置都表现不错的单核更为困难。 通常零填充的最优数量(对于测试集的分类正确率)处于"有效卷积"和"相同卷积"之间的某个位置。 @@ -668,12 +668,12 @@ $\TSK$在这里并没有对输出映射中的每一个位置使用单独的索 在一些情况下,不同大小的输入通过前向传播过程能够得到相同大小的输出映射,所以必须明确地告知转置运算原始输入的大小。 这三种运算——卷积、从输出到权重的反向传播和从输出到输入的反向传播——对于训练任意深度的前馈卷积网络,以及训练带有(基于卷积的转置的)重构函数的卷积网络,这三种运算都足以计算它们所需的所有梯度。 -对于完全一般的多维、多样例情况下的公式,完整的推导可以参见~{Goodfellow-TR2010}。 +对于完全一般的多维、多样例情况下的公式,完整的推导可以参考~{Goodfellow-TR2010}。 为了直观说明这些公式是如何起作用的,我们这里给出一个二维单个样例的版本。 -假设我们想要训练这样一个卷积网络,它包含步幅为$s$的步幅卷积,该卷积的核为$\TSK$,作用于多通道的图像$\TSV$,定义为$c(\TSK, \TSV, s)$,就像公式\?中一样。 +假设我们想要训练这样一个卷积网络,它包含步幅为$s$的步幅卷积,该卷积的核为$\TSK$,作用于多通道的图像$\TSV$,定义为$c(\TSK, \TSV, s)$,就像\eqn?中一样。 假设我们想要最小化某个损失函数$J(\TSV, \TSK)$。 在前向传播过程中,我们需要用$c$本身来输出$\TSZ$,然后$\TSZ$传递到网络的其余部分并且被用来计算损失函数$J$。 在反向传播过程中,我们会得到一个张量$\TSG$满足$\TEG_{i, j, k} = \frac{\partial}{\partial \TEZ_{i, j, k}} J(\TSV, \TSK)$。 @@ -696,7 +696,7 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, \sum_q \TEK_{q,i,m,p} \TEG_{q, l, n}. \end{eqnarray} -第\?章描述的自编码器网络,是一些被训练成把输入拷贝到输出的前馈网络。 +\chap?描述的自编码器网络,是一些被训练成把输入拷贝到输出的前馈网络。 一个简单的例子是\,PCA\,算法,将输入$\Vx$拷贝到一个近似的重构值$\Vr$,通过函数${\MW}^\top \MW \Vx$来实现。 使用权重矩阵转置的乘法,就像\,PCA\,算法这种,在一般的自编码器中是很常见的。 为了使这些模型卷积化,我们可以用函数$h$来实现卷积运算的转置。 @@ -752,7 +752,7 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, 输入是图像张量$\TSX$,它的轴对应图像的行、列和通道(红,绿,蓝)。 目标是输出标签张量$\hat{Y}$,它遵循每个像素的标签的概率分布。 该张量的轴对应图像的行、列和不同类别。 -并不是单次输出$\hat{Y}$,循环网络通过使用$\hat{Y}$的先前估计作为创建新估计的输入,来迭代地改善其估计。 +循环网络通过使用$\hat{Y}$的先前估计作为创建新估计的输入,来迭代地改善其估计,而不是单次输出$\hat{Y}$,。 每个更新的估计使用相同的参数,并且估计可以如我们所愿地被改善任意多次。 每一步使用的卷积核张量$\TSU$,是用来计算给定输入图像的隐藏表示的。 核张量$\TSV$用于产生给定隐藏值时标签的估计。 @@ -763,7 +763,7 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, -一旦对每个像素都进行了预测,可以使用各种方法来进一步处理这些预测,以便获得图像在区域上的分割{cite?}。 +一旦对每个像素都进行了预测,我们就可以使用各种方法来进一步处理这些预测,以便获得图像在区域上的分割{cite?}。 一般的想法是假设大片相连的像素倾向于对应着相同的标签。 图模型可以描述相邻像素间的概率关系。 或者,卷积网络可以被训练来最大化地近似图模型的训练目标{cite?}。 @@ -773,7 +773,7 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, 卷积网络使用的数据通常包含多个通道,每个通道是时间上或空间中某一点的不同观测量。 -参见表\,\?\,来了解具有不同维数和通道数的数据类型的例子。 +参考表\,\?\,来了解具有不同维数和通道数的数据类型的例子。 \begin{table}[htbp!] @@ -782,9 +782,9 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, & 单通道 & 多通道\\ \hline 1维 & 音频波形:卷积的轴对应于时间。我们将时间离散化并且在每个时间点测量一次波形的振幅。 & -骨架动画(skeleton animation)数据:计算机渲染的3D角色动画是通过随时间调整"骨架"的姿势而生成的。 在每个时间点,角色的姿势通过骨架中的每个关节的角度来描述。我们输入到卷积模型的数据的每个通道,表示一个关节的关于一个轴的角度。\\ \hline +骨架动画(skeleton animation)数据:计算机渲染的3D角色动画是通过随时间调整"骨架"的姿势而生成的。 在每个时间点,角色的姿势通过骨架中的每个关节的角度来描述。我们输入到卷积模型的数据的每个通道,表示一个关节关于一个轴的角度。\\ \hline 2维 & -已经用傅立叶变换预处理的音频数据:我们可以将音频波形变换成2维张量,不同的行对应不同的频率,不同的列对应不同的时间点。在时间轴上使用卷积使模型等效于在时间上移动。在频率轴上使用卷积使得模型等效于在频率上移动,这使得在不同八度音阶中播放的相同旋律产生相同的表示,但处于网络输出中的不同高度。 & %Fourier transform这里不是很清楚,在频率上使用卷积是做什么的? +已经使用傅立叶变换预处理过的音频数据:我们可以将音频波形变换成2维张量,不同的行对应不同的频率,不同的列对应不同的时间点。在时间轴上使用卷积使模型等效于在时间上移动。在频率轴上使用卷积使得模型等效于在频率上移动,这使得在不同八度音阶中播放的相同旋律产生相同的表示,但处于网络输出中的不同高度。 & %Fourier transform这里不是很清楚,在频率上使用卷积是做什么的? 彩色图像数据:其中一个通道包含红色像素,另一个包含绿色像素,最后一个包含蓝色像素。在图像的水平轴和竖直轴上移动卷积核,赋予了两个方向上平移等变性。\\ \hline 3维 & 体积数据:这种数据一般来源于医学成像技术,例如CT扫描等。 & @@ -794,22 +794,23 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, \end{table} -卷积网络用于视频的例子,可以参见~{Chen-Ting-2010}。 +卷积网络用于视频的例子,可以参考~{Chen-Ting-2010}。 到目前为止,我们仅讨论了训练和测试数据中的每个样例都有相同的空间维度的情况。 卷积网络的一个优点是它们还可以处理具有可变的空间尺度的输入。 这些类型的输入不能用传统的基于矩阵乘法的神经网络来表示。 -这为卷积网络的使用提供了的令人信服的理由,即使当计算开销和过拟合都不是主要问题时\footnote{译者注:传统的基于矩阵乘法的神经网络会面对计算开销和过拟合的问题,即使当计算开销和过拟合都不是主要问题时,我们也有充分的理由来使用卷积网络而不是传统的神经网络,因为卷积网络可以处理可变大小的输入。}。 +这为卷积网络的使用提供了令人信服的理由,即使当计算开销和过拟合都不是主要问题时。 + 例如,考虑一组图像的集合,其中每个图像具有不同的高度和宽度。 目前还不清楚如何用固定大小的权重矩阵对这样的输入进行建模。 -卷积就可以很直接地应用;核依据输入的大小简单地被使用不同次,并且卷积运算的输出也相应地放缩。 +卷积就可以很直接地应用;核依据输入的大小简单地被使用不同次,并且卷积运算的输出也相应地缩放。 卷积可以被视为矩阵乘法;相同的卷积核为每种大小的输入引入了一个不同大小的双重分块循环矩阵。 有时,网络的输出允许和输入一样具有可变的大小,例如如果我们想要为输入的每个像素分配一个类标签。 在这种情况下,不需要进一步的设计工作。 在其他情况下,网络必须产生一些固定大小的输出,例如,如果我们想要为整个图像指定单个类标签。 在这种情况下,我们必须进行一些额外的设计步骤,例如插入一个池化层,池化区域的大小要与输入的大小成比例,以便保持固定数量的池化输出。 -这种策略的一些例子可以参见\fig?。 +这种策略的一些例子可以参考\fig?。 注意,使用卷积处理可变尺寸的输入,仅对输入是因为包含对同种事物的不同量的观察(时间上不同长度的记录,空间上不同宽度的观察等)而导致的尺寸变化这种情况才有意义。 如果输入是因为它可以选择性地包括不同种类的观察而具有可变尺寸,使用卷积是不合理的。 @@ -820,7 +821,7 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, 现代卷积网络的应用通常需要包含超过百万个单元的网络。 -利用并行计算资源的强大实现是很关键的,如\sec?中所描述。 +利用并行计算资源的强大实现是很关键的,如\sec?中所描述的。 然而,在很多情况下,也可以通过选择适当的卷积算法来加速卷积。 @@ -844,7 +845,7 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, 通常,卷积网络训练中最昂贵的部分是学习特征。 -输出层通常相对便宜,因为在通过若干层池化之后作为该层输入的特征的数量较少。 +输出层的计算代价通常相对不高,因为在通过若干层池化之后作为该层输入的特征的数量较少。 当使用梯度下降执行监督训练时,每步梯度计算需要完整地运行整个网络的前向传播和反向传播。 减少卷积网络训练成本的一种方式是使用那些不是由监督方式训练得到的特征。 @@ -867,7 +868,7 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, 一个中间方法是学习特征,但是使用那种不需要在每个梯度计算步骤中都进行完整的前向和反向传播的方法。 与多层感知机一样,我们使用贪心逐层预训练,单独训练第一层,然后一次性地从第一层提取所有特征,之后用那些特征单独训练第二层,以此类推。 -第\?章描述了如何实现监督的贪心逐层预训练,第\?部分将此扩展到了无监督的范畴。 +\chap?描述了如何实现监督的贪心逐层预训练,第\?部分将此扩展到了无监督的范畴。 卷积模型的贪心逐层预训练的经典模型是卷积深度信念网络{cite?}。 卷积网络为我们提供了相对于多层感知机更进一步采用预训练策略的机会。 并非一次训练整个卷积层,我们可以训练一小块模型,就像~{Coates2011}使用$k$均值做的那样。 @@ -897,13 +898,13 @@ h(\TSK, \TSG, s)_{i, j, k} &=& \frac{\partial }{\partial \TEV_{i, j, k}} J(\TSV, 他们的伟大发现是,处于视觉系统较为前面的神经元对非常特定的光模式(例如精确定向的条纹)反应最强烈,但对其他模式几乎完全没有反应。 他们的工作有助于表征大脑功能的许多方面,这些方面超出了本书的范围。 -从深度学习的角度来看,我们可以专注于简化的,卡通形式的大脑功能视图。 +从深度学习的角度来看,我们可以专注于简化的、草图形式的大脑功能视图。 在这个简化的视图中,我们关注被称为V1的大脑的一部分,也称为初级视觉皮层。 V1是大脑对视觉输入开始执行显著高级处理的第一个区域。 -在该卡通视图中,图像是由光到达眼睛并刺激视网膜(眼睛后部的光敏组织)形成的。 +在该草图视图中,图像是由光到达眼睛并刺激视网膜(眼睛后部的光敏组织)形成的。 视网膜中的神经元对图像执行一些简单的预处理,但是基本不改变它被表示的方式。 -然后图像通过视神经和称为外侧膝状核的脑部区域。 +然后图像通过视神经和称为\emph{外侧膝状核}的脑部区域。 这些解剖区域的主要作用是仅仅将信号从眼睛传递到位于头后部的V1。 @@ -941,7 +942,7 @@ V1是大脑对视觉输入开始执行显著高级处理的第一个区域。 这些内侧颞叶神经元比现代卷积网络更通用一些,这些网络在读取名称时不会自动联想到识别人或对象。 -与卷积网络的最后一层在特征上最接近的类比是称为颞下皮质(IT)的脑区。 +与卷积网络的最后一层在特征上最接近的类比是称为\emph{颞下皮质}(IT)的脑区。 当查看一个对象时,信息从视网膜经LGN流到V1,然后到V2,V4,之后是IT。 这发生在瞥见对象的前100ms内。 如果允许一个人继续观察对象更多的时间,那么信息将开始回流,因为大脑使用自上而下的反馈来更新较低级脑区中的激活。 @@ -958,9 +959,9 @@ V1是大脑对视觉输入开始执行显著高级处理的第一个区域。 虽然我们觉得我们可以看到高分辨率的整个场景,但这是由我们的大脑的潜意识部分创建的错觉,因为它缝合了我们瞥见的若干个小区域。 大多数卷积网络实际上接收大的全分辨率的照片作为输入。 人类大脑控制几次眼动,称为扫视,以瞥见场景中最显眼的或任务相关的部分。 - 将类似的关注机制融入深度学习模型是一个活跃的研究方向。 - 在深度学习的背景下,关注机制对于自然语言处理是最成功的,参见\sec?。 - 已经研发了几种具有视觉机制的视觉模型,但到目前为止还没有成为主导方法{cite?}。 + 将类似的注意力机制融入深度学习模型是一个活跃的研究方向。 + 在深度学习的背景下,注意力机制对于自然语言处理是最成功的,参考\sec?。 + 研究者已经研发了几种具有视觉机制的视觉模型,但到目前为止还没有成为主导方法{cite?}。 + 人类视觉系统集成了许多其他感觉,例如听觉,以及像我们的心情和想法一样的因素。 卷积网络迄今为止纯粹是视觉的。 @@ -976,7 +977,7 @@ V1是大脑对视觉输入开始执行显著高级处理的第一个区域。 大脑可能使用非常不同的激活和池化函数。 单个神经元的激活可能不能用单个线性过滤器的响应来很好地表征。 最近的V1模型涉及对每个神经元的多个二次过滤器{cite?}。 - 事实上,我们的"简单细胞"和"复杂细胞"的卡通图片可能并没有区别;简单细胞和复杂细胞可能是相同种类的细胞,但是它们的"参数"使得它们能够实现从我们所说的"简单"到"复杂"的连续的行为。 + 事实上,我们的"简单细胞"和"复杂细胞"的草图图片可能并没有区别;简单细胞和复杂细胞可能是相同种类的细胞,但是它们的"参数"使得它们能够实现从我们所说的"简单"到"复杂"的连续的行为。 @@ -986,9 +987,9 @@ V1是大脑对视觉输入开始执行显著高级处理的第一个区域。 例如,{cite?}结合了现代卷积网络的大多数模型结构设计元素,但依赖于层次化的无监督聚类算法。 {Lang+Hinton88}引入反向传播来训练时延神经网络。 -使用当代术语来说,TDNNs 是用于时间序列的一维卷积网络。 +使用当代术语来说,TDNN是用于时间序列的一维卷积网络。 用于这些模型的反向传播不受任何神经科学观察的启发,并且被一些人认为是生物不可信的。 -在基于使用反向传播训练的TDNNs成功之后,{LeCun89d}通过将相同的训练算法应用于图像的2维卷积来发展现代卷积网络。 +在基于使用反向传播训练的TDNN成功之后,{LeCun89d}通过将相同的训练算法应用于图像的2维卷积来发展现代卷积网络。 到目前为止,我们已经描述了简单细胞对于某些特征是如何呈现粗略的线性和选择性,复杂细胞是如何更加的非线性,并且对于这些简单细胞特征的某些变换具有不变性,以及在选择性和不变性之间交替放置的层可以产生对非常特定现象的祖母细胞。 我们还没有精确描述这些单个细胞检测到了什么。 @@ -1022,8 +1023,8 @@ Gabor函数描述在图像中的2维点处的权重。我们可以认为图像 y' = -(x-x_0) \sin(\tau) + (y-y_0)\cos(\tau). \end{equation} -这里$\alpha, \beta_x, \beta_y, f, \phi, x_0, y_0, \tau$都是控制Gabor函数性质的参数。 -图\?给出了Gabor函数在不同参数集上的一些例子。 +这里$\alpha, \beta_x, \beta_y, f, \phi, x_0, y_0, \tau$都是控制~Gabor函数性质的参数。 +\fig?给出了Gabor函数在不同参数集上的一些例子。 \begin{figure} \ifOpenSource @@ -1062,26 +1063,26 @@ Gabor函数描述在图像中的2维点处的权重。我们可以认为图像 余弦因子$ \cos (fx' + \phi)$控制简单细胞如何响应延$x‘$轴的亮度改变。 参数$f$控制余弦的频率,$\phi$控制它的相位偏移。 -合在一起,简单细胞的这个卡通视图意味着,简单细胞对在特定位置处、特定方向上、特定空间频率的亮度进行响应。 +合在一起,简单细胞的这个草图视图意味着,简单细胞对在特定位置处、特定方向上、特定空间频率的亮度进行响应。 当图像中的光波与细胞的权重具有相同的相位时,简单细胞是最兴奋的。 这种情况发生在当图像亮时,它的权重为正,而图像暗时,它的权重为负。 当光波与权重完全异相时,简单细胞被抑制——当图像较暗时,它的权重为正;较亮时,它的权重为负。 -复杂细胞的卡通视图是它计算包含两个简单细胞响应的2维向量的$L^2$范数:$c(I)=\sqrt{s_0(I)^2 + s_1(I)^2}$。 +复杂细胞的草图视图是它计算包含两个简单细胞响应的2维向量的$L^2$范数:$c(I)=\sqrt{s_0(I)^2 + s_1(I)^2}$。 一个重要的特殊情况是当$s_1$和$s_0$具有除$\phi$ 以外都相同的参数,并且$\phi$被设置为使得$s_1$与$s_0$相位相差四分之一周期时。 在这种情况下,$s_0$和$s_1$形成象限对。 当高斯重新加权的图像$I(x,y)\exp(-\beta_x x'^2 -\beta_y y^2)$包含具有频率$f$、在方向$\tau$上、接近$(x_0, y_0)$的高振幅正弦波时,用先前方法定义的复杂细胞会响应,并且\emph{不管该波的相位偏移}。 换句话说,复杂细胞对于图像在方向$\tau$上的微小变换或者翻转图像(用白色代替黑色,反之亦然)具有不变性。 神经科学和机器学习之间最显著的对应关系,是从视觉上比较机器学习模型学得的特征与使用V1得到的特征。 -{Olshausen+Field-1996}说明,一个简单的无监督学习算法,稀疏编码,学习的特征具有与简单细胞类似的接受域\footnote{译者注:这里原文是"receptive field",生物中称之为"感受野"}。 +{Olshausen+Field-1996}说明,一个简单的无监督学习算法,稀疏编码,学习的特征具有与简单细胞类似的接受域。%\footnote{译者注:这里原文是"receptive field",生物中称之为"感受野"}。 从那时起,我们发现,当应用于自然图像时,极其多样的统计学习算法学习类Gabor函数的特征。这包括大多数深度学习算法,它们在其第一层中学习这些特征。 \fig?给出了一些例子。 因为如此众多不同的学习算法学习边缘检测器,所以很难仅基于学习算法学得的特征,来断定哪一个特定的学习算法是"正确"的大脑模型(虽然,当应用于自然图像时,如果一个算法\emph{不能}学得某种检测器时,它能够作为一种否定标志)。 这些特征是自然图像的统计结构的重要部分,并且可以通过许多不同的统计建模方法来重新获得。 -可以参考{cite?}来获得自然图像统计领域的综述。 +读者可以参考{cite?}来获得自然图像统计领域的综述。 \begin{figure} \ifOpenSource @@ -1094,7 +1095,7 @@ Gabor函数描述在图像中的2维点处的权重。我们可以认为图像 \caption{许多机器学习算法在应用于自然图像时,会学习那些用来检测边缘或边缘的特定颜色的特征。 这些特征检测器使人联想到已知存在于初级视觉皮层中的~Gabor函数。 \emph{(左)}通过应用于小图像块的无监督学习算法(尖峰和平板稀疏编码)学得的权重。%这里不是很懂 -\emph{(右)}由完全监督的卷积~maxout~网络的第一层学得的卷积核。 相邻的过滤器对驱动相同的~maxout单元。} +\emph{(右)}由完全监督的卷积~maxout~网络的第一层学得的卷积核。 相邻的一对过滤器驱动相同的~maxout单元。} \end{figure} @@ -1107,11 +1108,11 @@ Gabor函数描述在图像中的2维点处的权重。我们可以认为图像 它们是将研究大脑获得的深刻理解成功用于机器学习应用的关键例子。 它们也是第一个表现良好的深度模型之一,远远早于任意深度模型被认为是可行的。 卷积网络也是第一个解决重要商业应用的神经网络,并且仍然是当今深度学习商业应用的前沿。 -例如,在20世纪90年代,AT\&T的神经网络研究小组开发了一个用于读取支票的~卷积网络{cite?}。 +例如,在20世纪90年代,AT\&T的神经网络研究小组开发了一个用于读取支票的卷积网络{cite?}。 到90年代末,NEC部署的这个系统已经被用于读取美国10%以上的支票。 后来,微软部署了若干个基于卷积网络的OCR和手写识别系统{cite?}。 -关于卷积网络的这种应用和更现代应用的更多细节,参见第\?章。 -到2010年以前的更为深入的卷积网络历史可以参见{cite?}。 +关于卷积网络的这种应用和更现代应用的更多细节,参考\chap?。 +读者可以参考{cite?}了解2010年之前的更为深入的卷积网络历史。 卷积网络也被用作在许多比赛中的取胜手段。 当前对深度学习的商业兴趣的热度始于{Krizhevsky-2012-small}赢得了ImageNet对象识别挑战,但是在那之前,卷积网络也已经被用于赢得前些年影响较小的其他机器学习和计算机视觉竞赛了。 @@ -1120,14 +1121,14 @@ Gabor函数描述在图像中的2维点处的权重。我们可以认为图像 卷积网络是第一批能使用反向传播有效训练的的深度网络之一。 现在仍不完全清楚为什么卷积网络在一般的反向传播网络被认为已经失败时反而成功了。 -可能简单地归结为卷积网络比全连接网络计算效率更高,因此使用它们运行多个实验并调整它们的实现和超参数更容易。 +这可能可以简单地归结为卷积网络比全连接网络计算效率更高,因此使用它们运行多个实验并调整它们的实现和超参数更容易。 更大的网络也似乎更容易训练。 -利用现代硬件,大型全连接的网络对许多任务也执行得很合理,即使使用过去那些全连接网络被认为不能工作的很好的数据集和当时流行的激活函数时,现在也能执行得很好。 -可能神经网络成功的主要阻碍是心理(实践者没有期望神经网络有效,所以他们没有认真努力地使用神经网络)。 +利用现代硬件,大型全连接的网络在许多任务上也表现得很合理,即使使用过去那些全连接网络被认为不能工作得很好的数据集和当时流行的激活函数时,现在也能执行得很好。 +心理可能神经网络成功的主要阻碍(实践者没有期望神经网络有效,所以他们没有认真努力地使用神经网络)。 无论如何,幸运的是卷积网络在几十年前就表现良好。 在许多方面,它们为余下的深度学习传递火炬,并为一般的神经网络被接受铺平了道路。 -卷积网络提供了一种方法来特化神经网络,使其能够处理具有清楚的网格结构拓扑的数据,以及将这样的模型放大到非常大的尺寸。 +卷积网络提供了一种方法来特化神经网络,使其能够处理具有清楚的网格结构拓扑的数据,以及将这样的模型扩展到非常大的规模。 这种方法在二维图像拓扑上是最成功的。 为了处理一维序列数据,我们接下来转向神经网络框架的另一种强大的特化:循环神经网络。 diff --git a/docs/_posts/2016-12-10-Chapter10_sequence_modeling_rnn.md b/docs/_posts/2016-12-10-Chapter10_sequence_modeling_rnn.md index 0e93715..9d860bc 100644 --- a/docs/_posts/2016-12-10-Chapter10_sequence_modeling_rnn.md +++ b/docs/_posts/2016-12-10-Chapter10_sequence_modeling_rnn.md @@ -1070,7 +1070,7 @@ LSTM~架构中哪些部分是真正必须的? 例如复位门(或遗忘门)的输出可以在多个隐藏单元间共享。 或者,全局门的乘积(覆盖一整组的单元,例如整一层)和一个局部门(每单元)可用于结合全局控制和局部控制。 然而,一些调查发现这些~LSTM~和GRU架构的变种,在广泛的任务中难以明显地同时击败这两个原始架构{cite?}。 -{Greff-et-al-arxiv2015}发现其中的关键因素是遗忘门,而~{Jozefowicz-et-al-ICML2015}发现向LSTM遗忘门加入1的偏置(由~{Gers-et-al-2000}提倡)能让~LSTM~变得与已探索的最佳变种一样健壮。 +{Greff-et-al-arxiv2015}发现其中的关键因素是遗忘门,而~{Jozefowicz-et-al-ICML2015}发现向~LSTM~遗忘门加入1的偏置(由~{Gers-et-al-2000}提倡)能让~LSTM~变得与已探索的最佳变种一样健壮。 # 优化长期依赖 @@ -1196,7 +1196,7 @@ LSTM~架构中哪些部分是真正必须的? 为了解决这一难题,{Weston2014}引入了记忆网络,其中包括一组可以通过寻址机制来访问的记忆单元。 记忆网络原本需要监督信号指示他们如何使用自己的记忆单元。 -{Graves-et-al-arxiv2014}引入的神经网络图灵机,不需要明确的监督指示采取哪些行动而能学习从记忆单元读写任意内容,并通过使用基于内容的软注意机制(见{Bahdanau-et-al-ICLR2015-small}和\sec?),允许端到端的训练。 +{Graves-et-al-arxiv2014}引入的神经网络图灵机,不需要明确的监督指示采取哪些行动而能学习从记忆单元读写任意内容,并通过使用基于内容的软注意机制(~见{Bahdanau-et-al-ICLR2015-small}和\sec?),允许端到端的训练。 这种软寻址机制已成为其他允许基于梯度优化的模拟算法机制的相关架构的标准{cite?}。 每个记忆单元可以被认为是~LSTM~和GRU中记忆单元的扩展。 diff --git a/docs/_posts/2016-12-12-Chapter12_applications.md b/docs/_posts/2016-12-12-Chapter12_applications.md index 2df58e5..af20a8a 100644 --- a/docs/_posts/2016-12-12-Chapter12_applications.md +++ b/docs/_posts/2016-12-12-Chapter12_applications.md @@ -243,7 +243,7 @@ GPU~另一个常见的设定是使一个组中的所有线程都同时执行同 类似的,我们可以使用称为选通器的神经网络来选择在给定当前输入的情况下将使用几个专家网络中的哪一个来计算输出。 这个想法的第一个版本被称为专家混合体{cite?},其中选通器为每个专家输出一个概率或权重(通过非线性的softmax函数获得),并且最终输出由各个专家输出的加权组合获得。 -在这种情况下,使用选通器不会降低计算成本,但如果每个样本的选通器选择单个专家,我们就会获得一个特殊的硬专家混合体~{cite?},这可以加速推断和训练。 +在这种情况下,使用选通器不会降低计算成本,但如果每个样本的选通器选择单个专家,我们就会获得一个特殊的硬专家混合体\,{cite?},这可以加速推断和训练。 当选通器决策的数量很小时,这个策略效果会很好,因为它不是组合的。 但是当我们想要选择不同的单元或参数子集时,不可能使用"软开关",因为它需要枚举(和计算输出)所有的选通器配置。 为了解决这个问题,许多工作探索了几种方法来训练组合的选通器。 diff --git a/docs/_posts/2016-12-13-Chapter13_linear_factor_models.md b/docs/_posts/2016-12-13-Chapter13_linear_factor_models.md index da022d7..8435a4a 100644 --- a/docs/_posts/2016-12-13-Chapter13_linear_factor_models.md +++ b/docs/_posts/2016-12-13-Chapter13_linear_factor_models.md @@ -174,7 +174,7 @@ ICA~的许多变种仅知道如何在$\Vx$和$\Vh$之间变换,而没有任何 关于非线性~ICA~最初的工作可以参考~{hyvarinen1999nonlinear},它和集成学习的成功结合可以参见~{roberts2001independent,lappalainen2000nonlinear}。 ICA~的另一个非线性扩展是非线性独立成分估计方法~{cite?},这个方法堆叠了一系列可逆变换(在编码器阶段),其特性是能高效地计算每个变换的~Jacobian~行列式。 这使得我们能够精确地计算似然,并且像~ICA~一样,NICE~尝试将数据变换到具有因子的边缘分布的空间。 -由于非线性编码器的使用\footnote{译者注:相比于~ICA},这种方法更可能成功。 +由于非线性编码器的使用,这种方法更可能成功。%\footnote{译者注:相比于~ICA} 因为编码器和一个能进行完美逆变换的解码器相关联,所以可以直接从模型生成样本(首先从$p(\Vh)$采样,然后使用解码器)。 diff --git a/docs/_posts/2016-12-14-Chapter14_autoencoders.md b/docs/_posts/2016-12-14-Chapter14_autoencoders.md index 30d2b9d..e7cef07 100644 --- a/docs/_posts/2016-12-14-Chapter14_autoencoders.md +++ b/docs/_posts/2016-12-14-Chapter14_autoencoders.md @@ -54,13 +54,13 @@ share: false 其中$L$是一个损失函数,惩罚$g(f(\Vx))$与$\Vx$的差异,如均方误差。 -当解码器是线性的且$L$是均方误差,欠完备的自编码器会学习出与PCA相同的生成子空间。 +当解码器是线性的且$L$是均方误差,欠完备的自编码器会学习出与~PCA~相同的生成子空间。 这种情况下,自编码器在训练来执行复制任务的同时学到了训练数据的主元子空间。 -因此,拥有非线性编码器函数$f$和非线性解码器函数$g$的自编码器能够学习出更强大的PCA非线性推广。 +因此,拥有非线性编码器函数$f$和非线性解码器函数$g$的自编码器能够学习出更强大的~PCA~非线性推广。 不幸的是,如果编码器和解码器被赋予过大的容量,自编码器会执行复制任务而捕捉不到任何有关数据分布的有用信息。 -从理论上说,我们可以设想这样一个自编码器,它只有一维编码,但它具有一个非常强大的非线性编码器,能够将每个训练数据$\Vx^{(i)}$表示为编码 $~i$。 +从理论上说,我们可以设想这样一个自编码器,它只有一维编码,但它具有一个非常强大的非线性编码器,能够将每个训练数据$\Vx^{(i)}$表示为编码~$i$。 而解码器可以学习将这些整数索引映射回特定训练样本的值。 这种特定情形不会在实际情况中发生,但它清楚地说明,如果自编码器的容量太大,那训练来执行复制任务的自编码器可能无法学习到数据集的任何有用信息。 @@ -85,7 +85,7 @@ share: false 除了这里所描述的方法(正则化自编码器最自然的解释),几乎任何带有潜变量并配有一个推断过程(计算给定输入的潜在表示)的生成模型,都可以看作是自编码器的一种特殊形式。 -强调与自编码器联系的两个生成式建模方法是Helmholtz机~{cite?}的衍生模型,如变分自编码器(\sec?)和生成随机网络(\sec?)。 +强调与自编码器联系的两个生成式建模方法是~Helmholtz机~{cite?}的衍生模型,如变分自编码器(\sec?)和生成随机网络(\sec?)。 这些变种(或衍生)自编码器能够学习出高容量且过完备的模型,进而发现输入数据中有用的结构信息,并且也无需对模型进行正则化。 这些编码显然是有用的,因为这些模型被训练为近似训练数据的概率分布而不是将输入复制到输出。 % confusing @@ -108,7 +108,7 @@ share: false 我们可以简单地将惩罚项$\Omega(\Vh)$视为加到前馈网络的正则项,这个前馈网络的主要任务是将输入复制到输出(无监督学习的目标),并尽可能地根据这些稀疏特征执行一些监督学习任务(根据监督学习的目标)。 不像其它正则项如权重衰减——没有直观的贝叶斯解释。 -如\sec?描述,权重衰减和其他正则惩罚可以被解释为一个MAP近似贝叶斯推断,正则化的惩罚对应于模型参数的先验概率分布。 +如\sec?描述,权重衰减和其他正则惩罚可以被解释为一个~MAP~近似贝叶斯推断,正则化的惩罚对应于模型参数的先验概率分布。 这种观点认为,正则化的最大似然对应最大化$p(\Vtheta \mid \Vx)$, 相当于最大化$\log p(\Vx \mid \Vtheta) + \log p(\Vtheta)$。 $\log p(\Vx \mid \Vtheta)$即通常的数据似然项,参数的对数先验项$\log p(\Vtheta)$则包含了对$\Vtheta$特定值的偏好。 这种观点在\sec?有所描述。 正则自编码器不适用这样的解释是因为正则项取决于数据,因此根据定义上(从文字的正式意义)来说,它不是一个先验。 @@ -144,7 +144,7 @@ p_{\text{model}}(h_i) = \frac{\lambda}{2} e^{-\lambda | h_i |}, \end{align} 这里的常数项只跟$\lambda$有关。 通常我们将$\lambda$视为超参数,因此可以丢弃不影响参数学习的常数项。 -其他如Student-t先验也能诱导稀疏性。 +其他如~Student-t~先验也能诱导稀疏性。 从稀疏性导致$p_{\text{model}}(\Vh)$学习成近似最大似然的结果看,稀疏惩罚完全不是一个正则项。 这仅仅影响模型关于潜变量的分布。 这个观点提供了训练自编码器的另一个动机:这是近似训练生成模型的一种途径。 @@ -185,7 +185,7 @@ p_{\text{model}}(h_i) = \frac{\lambda}{2} e^{-\lambda | h_i |}, 其中 $\tilde \Vx$是被某种噪声损坏的$\Vx$的副本。 因此去噪自编码器必须撤消这些损坏,而不是简单地复制输入。 -{Alain+Bengio-ICLR2013-small}和{Bengio-et-al-NIPS2013-small}指出去噪训练过程强制$f$和$g$隐式地学习$p_{\text{data}} (\Vx)$的结构。 +{Alain+Bengio-ICLR2013-small}和~{Bengio-et-al-NIPS2013-small}指出去噪训练过程强制$f$和$g$隐式地学习$p_{\text{data}} (\Vx)$的结构。 因此去噪自编码器也是一个通过最小化重构误差获取有用特性的例子。 这也是将过完备、高容量的模型用作自编码器的一个例子——只要小心防止这些模型仅仅学习一个恒等函数。 去噪自编码器将在\sec?给出更多细节。 @@ -262,8 +262,8 @@ p_{\text{model}}(h_i) = \frac{\lambda}{2} e^{-\lambda | h_i |}, 损失函数的具体形式视$p_{\text{decoder}}$的形式而定。 就传统的前馈网络来说,如果$\Vx$是实值的,那么我们通常使用线性输出单元参数化高斯分布的均值。 在这种情况下,负对数似然对应均方误差准则。 -类似地,二值$\Vx$对应于一个Bernoulli分布,其参数由sigmoid输出单元确定的。 -而离散的$\Vx$对应softmax分布,以此类推。 +类似地,二值$\Vx$对应于一个~Bernoulli分布,其参数由~sigmoid~输出单元确定的。 +而离散的$\Vx$对应~softmax~分布,以此类推。 在给定$\Vh$的情况下,为了便于计算概率分布,输出变量通常被视为是条件独立的,但一些技术(如混合密度输出)可以解决输出相关的建模。 @@ -300,7 +300,7 @@ p_{\text{decoder}}(\Vx \mid \Vh) = p_{\text{model}}(\Vx\mid\Vh). -DAE的训练过程如\fig?中所示。 +DAE~的训练过程如\fig?中所示。 我们引入一个损坏过程$C(\tilde{\RVx} \mid \RVx)$,这个条件分布代表给定数据样本$\RVx$产生损坏样本$\tilde \RVx$的概率。 自编码器则根据以下过程,从训练数据对$(\Vx, \tilde \Vx)$中学习\textbf{重构分布}(reconstruction distribution)~$p_{\text{reconstruct}} (\RVx \mid \tilde \RVx)$: \begin{enumerate} @@ -324,7 +324,7 @@ $p_{\text{reconstruct}} (\Vx \mid \tilde \Vx) = p_{\text{decoder}}(\Vx \mid\Vh)$ } \end{figure} -因此我们可以认为DAE是在以下期望下进行随机梯度下降: +因此我们可以认为~DAE~是在以下期望下进行随机梯度下降: \begin{align} - \SetE_{\RVx \sim \hat{p}_{\text{data}}(\RVx)} \SetE_{\tilde{\RVx} \sim C(\tilde{\RVx}\mid\Vx)} \log p_{\text{decoder}}(\Vx \mid \Vh = f(\tilde{\Vx})), \end{align} @@ -335,7 +335,7 @@ $p_{\text{reconstruct}} (\Vx \mid \tilde \Vx) = p_{\text{decoder}}(\Vx \mid\Vh)$ ## 得分估计 -得分匹配{cite?}是最大似然的代替。 +得分匹配~{cite?}是最大似然的代替。 它提供了概率分布的一致估计,促使模型在各个数据点$\Vx$上获得与数据分布相同的得分。 在这种情况下,得分是一个特定的梯度场: \begin{align} @@ -346,7 +346,7 @@ $p_{\text{reconstruct}} (\Vx \mid \tilde \Vx) = p_{\text{decoder}}(\Vx \mid\Vh)$ 对于现在讨论的自编码器,理解学习$\log p_{\text{data}}$的梯度场是学习$p_{\text{data}}$结构的一种方式就足够了。 -DAE的训练准则(条件高斯$p(\Vx \mid \Vh)$)能让自编码器学到能估计数据分布得分的向量场$(g(f(\Vx))-\Vx)$ ,这是DAE的一个重要特性。 +DAE~的训练准则(条件高斯$p(\Vx \mid \Vh)$)能让自编码器学到能估计数据分布得分的向量场$(g(f(\Vx))-\Vx)$ ,这是~DAE~的一个重要特性。 具体如\fig?所示。 \begin{figure}[!htb] @@ -366,17 +366,17 @@ $g(f(\tilde \Vx))$对可能产生$\tilde \Vx$的原始点$\Vx$的质心进行估 } \end{figure} -对一类采用高斯噪声和均方误差作为重构误差的特定去噪自编码器(具有sigmoid隐藏单元和线性重构单元)的去噪训练过程,与训练一类特定的被称为RBM的无向概率模型是等价的{cite?}。 +对一类采用高斯噪声和均方误差作为重构误差的特定去噪自编码器(具有sigmoid~隐藏单元和线性重构单元)的去噪训练过程,与训练一类特定的被称为~RBM~的无向概率模型是等价的{cite?}。 这类模型将在\sec?给出更详细的介绍;对于现在的讨论,我们只需知道这个模型能显式的给出$p_{\text{model}}(\Vx; \Vtheta)$。 -当RBM使用去噪得分匹配算法~{cite?}训练时,它的学习算法与训练对应的去噪自编码器是等价的。 +当~RBM~使用去噪得分匹配算法~{cite?}训练时,它的学习算法与训练对应的去噪自编码器是等价的。 在一个确定的噪声水平下,正则化的得分匹配不是一致估计量;相反它会恢复分布的一个模糊版本。 然而,当噪声水平趋向于0且训练样本数趋向与无穷时,一致性就会恢复。 我们将会在\sec?更详细地讨论去噪得分匹配。 -自编码器和RBM还存在其他联系。 -在RBM上应用得分匹配后,其代价函数将等价于重构误差结合类似CAE惩罚的正则项 {cite?}。 -{Bengio+Delalleau-2009}指出自编码器的梯度是对RBM对比散度训练的近似。 +自编码器和~RBM~还存在其他联系。 +在~RBM~上应用得分匹配后,其代价函数将等价于重构误差结合类似~CAE~惩罚的正则项 {cite?}。 +{Bengio+Delalleau-2009}指出自编码器的梯度是对~RBM~对比散度训练的近似。 对于连续的$\Vx$,高斯损坏和重构分布的去噪准则得到的得分估计适用于一般编码器和解码器的参数化{cite?}。 @@ -405,13 +405,13 @@ $g(f(\tilde \Vx))$对可能产生$\tilde \Vx$的原始点$\Vx$的质心进行估 当重构误差的范数(由箭头的长度示出)很大时,在箭头的方向上移动可以显著增加概率,并且在低概率的地方大多也是如此。 自编码器将这些低概率点映射到较高的概率重构。 在概率最大的情况下,重构变得更准确,因此箭头会收缩。 -经{Alain+Bengio-ICLR2013-small}许可转载此图。 +经~{Alain+Bengio-ICLR2013-small}许可转载此图。 } \end{figure} 一般情况下,不能保证重构函数$g(f(\Vx))$减去输入$\Vx$后对应于某个函数的梯度,更不用说得分 。 这是早期工作~{cite?}专用于特定参数化的原因(其中$g(f(\Vx)) - \Vx$能通过另一个函数的导数获得)。 -{Kamyshanska+Memisevic-2015}通过标识一类特殊的浅层自编码器家族,使$g(f(\Vx)) - \Vx$对应于这个家族所有成员的一个得分,以此推广{Vincent-NC-2011-small}的结果。 +{Kamyshanska+Memisevic-2015}通过标识一类特殊的浅层自编码器家族,使$g(f(\Vx)) - \Vx$对应于这个家族所有成员的一个得分,以此推广~{Vincent-NC-2011-small}的结果。 @@ -424,18 +424,18 @@ $g(f(\tilde \Vx))$对可能产生$\tilde \Vx$的原始点$\Vx$的质心进行估 ## 历史展望 -采用MLP去噪的想法可以追溯到{Lecun-these87}和{Gallinari87}的工作。 +采用~MLP~去噪的想法可以追溯到~{Lecun-these87}和~{Gallinari87}的工作。 {Behnke-2001}也曾使用循环网络对图像去噪。 -在某种意义上,去噪自编码器仅仅是被训练去噪的MLP。 +在某种意义上,去噪自编码器仅仅是被训练去噪的~MLP。 然而,"去噪自编码器"的命名指的不仅仅是学习去噪,而且可以学到一个好的内部表示(作为学习去噪的副效用)。 这个想法提出较晚{cite?}。 学习到的表示可以被用来预训练更深的无监督网络或监督网络。 -与稀疏自编码器、稀疏编码、收缩自编码器等正则化的自编码器类似, DAE的动机是允许学习容量很高的编码器,同时防止在编码器和解码器学习一个无用的恒等函数 。 +与稀疏自编码器、稀疏编码、收缩自编码器等正则化的自编码器类似, DAE~的动机是允许学习容量很高的编码器,同时防止在编码器和解码器学习一个无用的恒等函数 。 -在引入现代DAE之前,{Inayoshi-and-Kurita-2005}探索了其中一些相同的方法和目标。 -他们除了在监督目标的情况下最小化重构误差之外,还在监督MLP的隐藏层注入噪声,通过引入重构误差和注入噪声提升泛化能力。 -然而,他们的方法基于线性编码器,因此无法学习到现代DAE能学习的强大函数族。 +在引入现代~DAE~之前,{Inayoshi-and-Kurita-2005}探索了其中一些相同的方法和目标。 +他们除了在监督目标的情况下最小化重构误差之外,还在监督~MLP~的隐藏层注入噪声,通过引入重构误差和注入噪声提升泛化能力。 +然而,他们的方法基于线性编码器,因此无法学习到现代~DAE~能学习的强大函数族。 @@ -466,7 +466,7 @@ $d$维流形上的一点$\Vx$,切平面由能张成流形上允许变动的局 我们使用一张784像素的MNIST图像,并通过垂直平移来转换它。 垂直平移的量定义沿着1维流形的坐标,轨迹为通过图像空间的弯曲路径。 该图显示了沿着该流形的几个点。 -为了可视化,我们使用PCA将流形投影到$2$维空间中。 +为了可视化,我们使用~PCA~将流形投影到$2$维空间中。 $n$维流形在每个点处都具有$n$维切平面。 该切平面恰好在该点接触流形,并且在该点处平行于流形表面。 它定义了为保持在流形上可以移动的方向空间。 @@ -555,13 +555,13 @@ $\Vx$是从训练数据挑出的这一事实很关键,因为这意味着在自 \fi \caption{如果每个位置处的切平面(见\fig?)是已知的,则它们可以平铺后形成全局坐标系或密度函数。 每个局部块可以被认为是局部欧几里德坐标系或者是局部平面高斯或"薄饼",在与薄饼正交的方向上具有非常小的方差而在定义坐标系的方向上具有非常大的方差。 -这些高斯的混合提供了估计的密度函数,如流形中的Parzen窗口算法{cite?} 或其非局部的基于神经网络的变体{cite?}。 +这些高斯的混合提供了估计的密度函数,如流形中的~Parzen~窗口算法{cite?} 或其非局部的基于神经网络的变体{cite?}。 } \end{figure} 然而,{Bengio+Monperrus-2005}指出了这些局部非参数方法应用于流形学习的根本困难:如果流形不是很光滑(它们有许多波峰、波谷和曲折),为覆盖其中的每一个变化,我们可能需要非常多的训练样本,导致没有能力泛化到没见过的变化。 实际上,这些方法只能通过内插,概括相邻实例之间流形的形状。 -不幸的是,AI问题中涉及的流形可能具有非常复杂的结构,难以仅从局部插值捕获特征。 +不幸的是,AI~问题中涉及的流形可能具有非常复杂的结构,难以仅从局部插值捕获特征。 考虑\fig?转换所得的流形样例。 如果我们只观察输入向量内的一个坐标$x_i$,当平移图像,我们可以观察到当这个坐标遇到波峰或波谷时,图像的亮度也会经历一个波峰或波谷。 换句话说,底层图像模板亮度的模式复杂性决定执行简单的图像变换所产生的流形的复杂性。 @@ -572,53 +572,53 @@ $\Vx$是从训练数据挑出的这一事实很关键,因为这意味着在自 # 收缩自编码器 -收缩自编码器{cite?}在编码 $\Vh = f(\Vx)$的基础上添加了显式的正则项,鼓励$f$的导数尽可能小: +收缩自编码器~{cite?}在编码 $\Vh = f(\Vx)$的基础上添加了显式的正则项,鼓励$f$的导数尽可能小: \begin{align} \Omega(\Vh) = \lambda \Bigg\| \frac{\partial f(\Vx)}{\partial \Vx} \Bigg\|_F^2 . \end{align} -惩罚项$\Omega(\Vh)$为平方Frobenius范数(元素平方之和),作用于与编码器的函数相关偏导数的Jacobian矩阵。 +惩罚项$\Omega(\Vh)$为平方~Frobenius~范数(元素平方之和),作用于与编码器的函数相关偏导数的~Jacobian~矩阵。 去噪自编码器和收缩自编码器之间存在一定联系:{Alain+Bengio-ICLR2013-small}指出在小高斯噪声的限制下,当重构函数将$\Vx$映射到$\Vr = g(f(\Vx))$时,去噪重构误差与收缩惩罚项是等价的。 换句话说,去噪自编码器能抵抗小且有限的输入扰动,而收缩自编码器使特征提取函数能抵抗极小的输入扰动。 -分类任务中,基于Jacobian的收缩惩罚预训练特征函数$f(\Vx)$,将收缩惩罚应用在$f(\Vx)$而不是$g(f(\Vx))$可以产生最好的分类精度。 +分类任务中,基于~Jacobian~的收缩惩罚预训练特征函数$f(\Vx)$,将收缩惩罚应用在$f(\Vx)$而不是$g(f(\Vx))$可以产生最好的分类精度。 如\sec?所讨论,应用于$f(\Vx)$的收缩惩罚与得分匹配也有紧密的联系。 -收缩源于CAE弯曲空间的方式。 -具体来说,由于CAE训练为抵抗输入扰动,鼓励将输入点邻域映射到输出点处更小的邻域。 +收缩源于~CAE~弯曲空间的方式。 +具体来说,由于~CAE~训练为抵抗输入扰动,鼓励将输入点邻域映射到输出点处更小的邻域。 我们能认为这是将输入的邻域收缩到更小的输出邻域。 -说得更清楚一点,CAE只在局部收缩——一个训练样本$\Vx$的所有扰动都映射到$f(\Vx)$的附近。 +说得更清楚一点,CAE~只在局部收缩——一个训练样本$\Vx$的所有扰动都映射到$f(\Vx)$的附近。 全局来看,两个不同的点$\Vx$和$\Vx'$会分别被映射到远离原点的两个点$f(\Vx)$和$f(\Vx')$。 $f$扩展到数据流形的中间或远处是合理的(见\fig?中小例子的情况)。 -当$\Omega(\Vh)$惩罚应用于sigmoid单元时,收缩Jacobian的简单方式是令sigmoid趋向饱和的0或1。 -这鼓励CAE使用sigmoid的极值编码输入点,或许可以解释为二进制编码。 -它也保证了CAE可以穿过大部分sigmoid隐藏单元能张成的超立方体,进而扩散其编码值。 +当$\Omega(\Vh)$惩罚应用于~sigmoid~单元时,收缩~Jacobian~的简单方式是令~sigmoid~趋向饱和的0或1。 +这鼓励~CAE~使用~sigmoid~的极值编码输入点,或许可以解释为二进制编码。 +它也保证了~CAE~可以穿过大部分~sigmoid~隐藏单元能张成的超立方体,进而扩散其编码值。 -我们可以认为点$\Vx$处的Jacobian矩阵$\MJ$能将非线性编码器近似为线性算子。 +我们可以认为点$\Vx$处的~Jacobian~矩阵$\MJ$能将非线性编码器近似为线性算子。 这允许我们更形式地使用"收缩"这个词。 在线性理论中,当$\MJ\Vx$的范数对于所有单位$\Vx$都小于等于1时,$\MJ$被称为收缩的。 换句话说,如果$\MJ$收缩了单位球,他就是收缩的。 -我们可以认为CAE为鼓励每个局部线性算子具有收缩性,而在每个训练数据点处将Frobenius范数作为$f(\Vx)$的局部线性近似的惩罚。 +我们可以认为~CAE~为鼓励每个局部线性算子具有收缩性,而在每个训练数据点处将~Frobenius~范数作为$f(\Vx)$的局部线性近似的惩罚。 如\sec?中描述,正则自编码器基于两种相反的推动力学习流形。 -在CAE的情况下,这两种推动力是重构误差和收缩惩罚$\Omega(\Vh)$。 -单独的重构误差鼓励CAE学习一个恒等函数。 -单独的收缩惩罚将鼓励CAE学习关于$\Vx$是恒定的特征。 +在~CAE~的情况下,这两种推动力是重构误差和收缩惩罚$\Omega(\Vh)$。 +单独的重构误差鼓励~CAE~学习一个恒等函数。 +单独的收缩惩罚将鼓励~CAE~学习关于$\Vx$是恒定的特征。 这两种推动力的的折衷产生导数$\frac{\partial f(\Vx)}{\partial \Vx}$大多是微小的自编码器。 只有少数隐藏单元,对应于一小部分输入数据的方向,可能有显著的导数。 -CAE的目标是学习数据的流形结构。 +CAE~的目标是学习数据的流形结构。 使$\MJ\Vx$很大的方向$\Vx$,会快速改变$\Vh$,因此很可能是近似流形切平面的方向。 -{Rifai+al-2011-small,Salah+al-2011-small}的实验显示训练CAE会导致$\MJ$中大部分奇异值(幅值)比1小,因此是收缩的。 -然而,有些奇异值仍然比1大,因为重构误差的惩罚鼓励CAE对最大局部变化的方向进行编码。 +{Rifai+al-2011-small,Salah+al-2011-small}的实验显示训练~CAE~会导致$\MJ$中大部分奇异值(幅值)比1小,因此是收缩的。 +然而,有些奇异值仍然比1大,因为重构误差的惩罚鼓励~CAE~对最大局部变化的方向进行编码。 对应于最大奇异值的方向被解释为收缩自编码器学到的切方向。 理想情况下,这些切方向应对应于数据的真实变化。 -比如,一个应用于图像的CAE应该能学到显示图像改变的切向量,如\fig?图中物体渐渐改变状态。 +比如,一个应用于图像的~CAE~应该能学到显示图像改变的切向量,如\fig?图中物体渐渐改变状态。 如\fig?所示,实验获得的奇异向量的可视化似乎真的对应于输入图象有意义的变换。 @@ -641,18 +641,18 @@ Input point & Tangent vectors\\ & Contractive autoencoder\\ \end{tabular} \fi -\caption{通过局部PCA和收缩自编码器估计的流形切向量的图示。 +\caption{通过局部~PCA~和收缩自编码器估计的流形切向量的图示。 流形的位置由来自CIFAR-10数据集中狗的输入图像定义。 -切向量通过输入到代码映射的Jacobian矩阵$\frac{\partial \Vh}{\partial \Vx}$ 的前导奇异向量估计。 -虽然局部PCA和CAE都可以捕获局部切方向,但CAE能够从有限训练数据形成更准确的估计,因为它利用了不同位置的参数共享(共享激活的隐藏单元子集)。 +切向量通过输入到代码映射的~Jacobian~矩阵$\frac{\partial \Vh}{\partial \Vx}$ 的前导奇异向量估计。 +虽然局部~PCA~和~CAE~都可以捕获局部切方向,但~CAE~能够从有限训练数据形成更准确的估计,因为它利用了不同位置的参数共享(共享激活的隐藏单元子集)。 CAE切方向通常对应于物体的移动或改变部分(例如头或腿)。 -经{Dauphin-et-al-NIPS2011-small}许可转载此图。 +经~{Dauphin-et-al-NIPS2011-small}许可转载此图。 } \end{figure} 收缩自编码器正则化准则的一个实际问题是,尽管它在单一隐藏层的自编码器情况下是容易计算的,但在更深的自编码器情况下会变的难以计算。 -根据{Rifai+al-2011-small}的策略,分别训练一系列单层的自编码器,并且每个被训练为重构前一个自编码器的隐藏层。 +根据~{Rifai+al-2011-small}的策略,分别训练一系列单层的自编码器,并且每个被训练为重构前一个自编码器的隐藏层。 这些自编码器的组合就组成了一个深度自编码器。 因为每个层分别训练成局部收缩,深度自编码器自然也是收缩的。 这个结果与联合训练深度模型完整架构(带有关于Jacobian的惩罚项)获得的结果是不同的,但它抓住了许多理想的定性特征。 @@ -671,9 +671,9 @@ $f$和$g$都是由线性仿射变换后进行逐元素非线性变换的标准 # 预测稀疏分解 -预测稀疏分解是稀疏编码和参数化自编码器{cite?}的混合模型。 +预测稀疏分解是稀疏编码和参数化自编码器~{cite?}的混合模型。 参数化编码器被训练为能预测迭代推断的输出。 -PSD被应用于图片和视频中对象识别的无监督特征学习{cite?},在音频中也有所应用{cite?}。 +PSD~被应用于图片和视频中对象识别的无监督特征学习{cite?},在音频中也有所应用{cite?}。 这个模型由一个编码器 $f(\Vx)$和一个解码器 $g(\Vh)$组成,并且都是参数化的。 在训练过程中,$\Vh$由优化算法控制。 优化过程是最小化 @@ -685,19 +685,19 @@ PSD被应用于图片和视频中对象识别的无监督特征学习{cite?}, 简单的梯度下降算法只需10步左右就能获得理想的$\Vh$。 -PSD所使用的训练程序不是先训练稀疏编码模型,然后训练$f(\Vx)$来预测稀疏编码的特征。 -PSD训练过程正则化解码器,使用$f(\Vx)$可以推断出良好编码的参数。 +PSD~所使用的训练程序不是先训练稀疏编码模型,然后训练$f(\Vx)$来预测稀疏编码的特征。 +PSD~训练过程正则化解码器,使用$f(\Vx)$可以推断出良好编码的参数。 预测稀疏分解是学习近似推断的一个例子。 在\sec?中,这个话题将会进一步展开。 -\chap?中展示的工具能让我们了解到,PSD能够被解释为通过最大化模型的对数似然下界训练有向稀疏编码的概率模型。 +\chap?中展示的工具能让我们了解到,PSD~能够被解释为通过最大化模型的对数似然下界训练有向稀疏编码的概率模型。 -在PSD的实际应用中,迭代优化仅在训练过程中使用。 +在~PSD~的实际应用中,迭代优化仅在训练过程中使用。 模型被部署后,参数编码器 $f$用于计算已经习得的特征。 相比通过梯度下降推断$\Vh$,计算$f$是很容易的。 -因为$f$是一个可微带参函数,PSD模型可堆叠,并用于初始化其他训练准则的深度网络。 +因为$f$是一个可微带参函数,PSD~模型可堆叠,并用于初始化其他训练准则的深度网络。 @@ -708,13 +708,13 @@ PSD训练过程正则化解码器,使用$f(\Vx)$可以推断出良好编码的 自编码器已成功应用于降维和信息检索任务。 降维是表示学习和深度学习的第一批应用之一。 它是研究自编码器早期驱动力之一。 -例如, {Hinton-Science2006}训练了一个栈式RBM,然后利用它们的权重初始化一个隐藏层逐渐减小的深度自编码器,终结于30个单元的瓶颈。 -生成的编码比30维的PCA产生更少的重构误差,所学到的表示更容易定性解释,并能联系基础类别,这些类别表现为分离良好的集群。 +例如, {Hinton-Science2006}训练了一个栈式~RBM,然后利用它们的权重初始化一个隐藏层逐渐减小的深度自编码器,终结于30个单元的瓶颈。 +生成的编码比30维的~PCA~产生更少的重构误差,所学到的表示更容易定性解释,并能联系基础类别,这些类别表现为分离良好的集群。 低维表示可以提高许多任务的性能,例如分类。 小空间的模型消耗更少的内存和运行时间。 -据{Salakhutdinov+Hinton2007-small}和{Torralba+Fergus+Weiss-2008}观察,许多降维的形式会将语义上相关的样本置于彼此邻近的位置。 +据~{Salakhutdinov+Hinton2007-small}和~{Torralba+Fergus+Weiss-2008}观察,许多降维的形式会将语义上相关的样本置于彼此邻近的位置。 映射到低维空间所提供的线索有助于泛化。 @@ -726,11 +726,11 @@ PSD训练过程正则化解码器,使用$f(\Vx)$可以推断出良好编码的 这种通过降维和二值化的信息检索方法被称为语义哈希{cite?},已经被用于文本输入{cite?}和图像{cite?}。 -通常在最终层上使用sigmoid编码函数产生语义哈希的二值编码。 -sigmoid单元必须被训练为到达饱和,对所有输入值都接近0或接近1。 -能做到这一点的窍门就是训练时在sigmoid非线性单元前简单地注入加性噪声。 +通常在最终层上使用~sigmoid~编码函数产生语义哈希的二值编码。 +sigmoid~单元必须被训练为到达饱和,对所有输入值都接近0或接近1。 +能做到这一点的窍门就是训练时在~sigmoid~非线性单元前简单地注入加性噪声。 噪声的大小应该随时间增加。 -要对抗这种噪音并且保存尽可能多的信息,网络必须加大输入到sigmoid函数的幅度,直到饱和。 +要对抗这种噪音并且保存尽可能多的信息,网络必须加大输入到~sigmoid~函数的幅度,直到饱和。 diff --git a/docs/_posts/2016-12-15-Chapter15_representation_learning.md b/docs/_posts/2016-12-15-Chapter15_representation_learning.md index afc555d..143dc58 100644 --- a/docs/_posts/2016-12-15-Chapter15_representation_learning.md +++ b/docs/_posts/2016-12-15-Chapter15_representation_learning.md @@ -16,7 +16,7 @@ share: false 这是一个广泛适用于日常生活、计算机科学及机器学习的基本原则。 例如,对于人而言,可以直接使用长除法计算$210$除以$6$。 但如果使用罗马数字表示,这个问题就没那么直接了。 -大部分现代人在使用罗马数字计算CCX除以VI时,都会将其转化成阿拉伯数字,从而使用位值系统的长除法。 +大部分现代人在使用罗马数字计算~CCX~除以~VI~时,都会将其转化成阿拉伯数字,从而使用位值系统的长除法。 更具体地,我们可以使用合适或不合适的表示来量化不同操作的渐近运行时间。 例如,插入一个数字到有序表中的正确位置,如果该数列表示为链表,那么所需时间是$O(n)$;如果该列表表示为红黑树,那么只需要$O(\log n)$的时间。 @@ -30,7 +30,7 @@ share: false 我们可以将监督学习训练的前馈网络视为表示学习的一种形式。 -具体地,网络的最后一层通常是线性分类器,如softmax回归分类器。 +具体地,网络的最后一层通常是线性分类器,如~softmax~回归分类器。 网络的其余部分学习出该分类器的表示。 监督学习训练模型,一般会使得模型的各个隐藏层(特别是接近顶层的隐藏层)的表示能够更加容易地完成训练任务。 例如,输入特征线性不可分的类别可能在最后一个隐藏层变成线性可分离的。 @@ -81,7 +81,7 @@ share: false -贪心逐层无监督预训练依赖于单层表示学习算法,例如RBM、单层自编码器、稀疏编码模型或其他学习潜在表示的模型。 +贪心逐层无监督预训练依赖于单层表示学习算法,例如~RBM、单层自编码器、稀疏编码模型或其他学习潜在表示的模型。 每一层使用无监督学习预训练,将前一层的输出作为输入,输出数据的新的表示。 这个新的表示的分布(或者是和其他变量比如要预测类别的关系)有可能是更简单的。 如\alg?所示的正式表述。 @@ -182,7 +182,7 @@ share: false 在预训练变得流行时,在一个位置初始化模型被认为会使其接近某一个局部极小点,而不是另一个局部极小点。%?? 难以理解 如今,局部极小值不再被认为是神经网络优化中的严重问题。 现在我们知道标准的神经网络训练过程通常不会到达任何形式的临界点。 -仍然可能的是,预训练会初始化模型到一个可能不会到达的位置——例如,某种区域,其中代价函数从一个样本点到另一个样本点变化很大,而小批量只能提供噪声严重的梯度估计,或是某种区域中的Hessian矩阵条件数是病态的,梯度下降必须使用非常小的步长。 +仍然可能的是,预训练会初始化模型到一个可能不会到达的位置——例如,某种区域,其中代价函数从一个样本点到另一个样本点变化很大,而小批量只能提供噪声严重的梯度估计,或是某种区域中的~Hessian~矩阵条件数是病态的,梯度下降必须使用非常小的步长。 然而,我们很难准确判断监督学习期间预训练参数的哪些部分应该保留。 这是现代方法通常同时使用无监督学习和监督学习,而不是依序使用两个学习阶段的原因之一。 除了这些复杂的方法可以让监督学习阶段保持无监督学习阶段提取的信息之外,还有一种简单的方法,固定特征提取器的参数,仅仅将监督学习作为顶层学成特征的分类器。 @@ -203,7 +203,7 @@ share: false 从无监督预训练作为学习一个表示的角度来看,我们可以期望无监督预训练在初始表示较差的情况下更有效。 一个重要的例子是词嵌入。 -使用one-hot向量表示的词并不具有很多信息,因为任意两个不同的one-hot向量之间的距离(平方$L^2$距离都是$2$ )都是相同的。 +使用~one-hot~向量表示的词并不具有很多信息,因为任意两个不同的~one-hot~向量之间的距离(平方$L^2$距离都是$2$ )都是相同的。 学成的词嵌入自然会用它们彼此之间的距离来编码词之间的相似性。 因此,无监督预训练在处理单词时特别有用。 然而在处理图像时是不太有用的,可能是因为图像已经在一个很丰富的向量空间中,其中的距离只能提供低质量的相似性度量。 @@ -215,7 +215,7 @@ share: false 无监督预训练的大量未标注样本和少量标注样本构成的半监督学习的优势特别明显。 在2011年,无监督预训练赢得了两个国际迁移学习比赛~{cite?}。 在该情景中,目标任务中标注样本的数目很少(每类几个到几十个)。 -这些效果也出现在被{paine2014analysis}严格控制的实验中。 +这些效果也出现在被~{paine2014analysis}严格控制的实验中。 @@ -237,7 +237,7 @@ share: false 对训练误差和测试误差的改进都可以解释为,无监督预训练将参数引入到了其他方法可能探索不到的区域。 神经网络训练是非确定性的,并且每次运行都会收敛到不同的函数。 训练可以停止在梯度很小的点;也可以提前终止结束训练,以防过拟合; -还可以停止在梯度很大,但由于诸如随机性或Hessian矩阵病态条件等问题难以找到合适下降方向的点。 +还可以停止在梯度很大,但由于诸如随机性或~Hessian~矩阵病态条件等问题难以找到合适下降方向的点。 经过无监督预训练的神经网络会一致地停止在一片相同的函数空间区域,但未经过预训练的神经网络会一致地停在另一个区域。 \fig?可视化了这种现象。 经过预训练的网络到达的区域是较小的,这表明预训练减少了估计过程的方差,这进而又可以降低严重过拟合的风险。 @@ -246,7 +246,7 @@ share: false {Erhan+al-2010-small}也回答了\emph{何时}预训练效果最好——预训练的网络越深,测试误差的均值和方差下降得越多。 -值得注意的是,这些实验是在训练非常深层网络的现代方法发明和流行(整流线性单元,Dropout和批标准化)之前进行的,因此对于无监督预训练与当前方法的结合,我们所知甚少。 +值得注意的是,这些实验是在训练非常深层网络的现代方法发明和流行(整流线性单元,Dropout~和批标准化)之前进行的,因此对于无监督预训练与当前方法的结合,我们所知甚少。 @@ -282,13 +282,13 @@ share: false 经{Erhan+al-2010-small}许可改编此图。 函数空间中的坐标是关于每组输入$\Vx$和它的一个输出$\Vy$的无限维向量。 {Erhan+al-2010-small}将很多特定$\Vx$的$\Vy$连接起来,线性投影到高维空间中。 -然后他们使用Isomap~{cite?}进行进一步的非线性投影并投到二维空间。 +然后他们使用~Isomap~{cite?}进行进一步的非线性投影并投到二维空间。 颜色表示时间。 所有的网络初始化在上图的中心点附近(对应的函数区域在不多数输入上具有近似均匀分布的类别$y$)。 随着时间推移,学习将函数向外移动到预测得更好的点。 当使用预训练时,训练会一致地收敛到同一个区域; 而不使用预训练时,训练会收敛到另一个不重叠的区域。 -Isomap试图维持全局相对距离(体积因此也保持不变),因此使用预训练的模型对应的较小区域意味着,基于预训练的估计具有较小的方差。 +Isomap~试图维持全局相对距离(体积因此也保持不变),因此使用预训练的模型对应的较小区域意味着,基于预训练的估计具有较小的方差。 } \end{figure} @@ -298,26 +298,26 @@ Isomap试图维持全局相对距离(体积因此也保持不变),因此 具有两个单独的训练阶段的另一个缺点是每个阶段都具有各自的超参数。 第二阶段的性能通常不能在第一阶段期间预测,因此在第一阶段提出超参数和第二阶段根据反馈来更新之间存在较长的延迟。 -最通用的方法是在监督阶段使用验证集上的误差来挑选预训练阶段的超参数,如{Larochelle-jmlr-2009}中讨论的。 +最通用的方法是在监督阶段使用验证集上的误差来挑选预训练阶段的超参数,如~{Larochelle-jmlr-2009}中讨论的。 在实际中,有些超参数,如预训练迭代的次数,很方便在预训练阶段设定,通过无监督目标上使用提前终止策略完成。 这个策略并不理想,但是在计算上比使用监督目标代价小得多。 -如今,大部分算法已经不使用无监督预训练了,除了在自然语言处理领域中单词作为one-hot向量的自然表示不能传达相似性信息,并且有非常多的未标注数据集可用。 +如今,大部分算法已经不使用无监督预训练了,除了在自然语言处理领域中单词作为~one-hot~向量的自然表示不能传达相似性信息,并且有非常多的未标注数据集可用。 在这种情况下,预训练的优点是可以对一个巨大的未标注集合(例如用包含数十亿单词的语料库)进行预训练,学习良好的表示(通常是单词,但也可以是句子),然后使用该表示或精调它,使其适合于训练集样本大幅减少的监督任务。 -这种方法由{CollobertR2008-small}、{Turian+Ratinov+Bengio-2010-small}和{collobert2011natural}开创,至今仍在使用。 +这种方法由~{CollobertR2008-small}、{Turian+Ratinov+Bengio-2010-small}和~{collobert2011natural}开创,至今仍在使用。 -基于监督学习的深度学习技术,通过Dropout或批标准化来正则化,能够在很多任务上达到人类级别的性能,但仅仅是在极大的标注数据集上。 -在中等大小的数据集(例如CIFAR-10和MNIST,每个类大约有5,000个标注样本)上,这些技术的效果比无监督预训练更好。 +基于监督学习的深度学习技术,通过~Dropout~或批标准化来正则化,能够在很多任务上达到人类级别的性能,但仅仅是在极大的标注数据集上。 +在中等大小的数据集(例如~CIFAR-10和~MNIST,每个类大约有5,000个标注样本)上,这些技术的效果比无监督预训练更好。 在极小的数据集,例如选择性剪接数据集,贝叶斯方法要优于基于无监督预训练的方法~{cite?}。 由于这些原因,无监督预训练已经不如以前流行。 然而,无监督预训练仍然是深度学习研究历史上的一个重要里程碑,并将继续影响当代方法。 预训练的想法已经推广到监督预训练,这将在\sec?中讨论,在迁移学习中这是非常常用的方法。 -迁移学习中的监督预训练流行~{cite?}于在ImageNet数据集上使用卷积网络预训练。 +迁移学习中的监督预训练流行~{cite?}于在~ImageNet~数据集上使用卷积网络预训练。 由于这个原因,实践者们公布了这些网络训练出的参数,就像自然语言任务公布预训练的单词向量一样~{cite?}。 @@ -461,7 +461,7 @@ $\Vh_{\Vx}$空间中的相似性度量表示$\Vx$空间中任意点对之间的 零数据学习可以通过以下方法实现。 像$\Vx_{\text{test}}$可以和单词$\Vy_{\text{test}}$关联起来,即使该单词没有像,仅仅是因为单词表示$f_{\Vy}(\Vy_{\text{test}})$和像表示$f_{\Vx}(\Vx_{\text{test}})$可以通过表示空间的映射彼此关联。 这种方法有效的原因是,尽管像和单词没有匹配成队,但是它们各自的特征向量$f_{\Vx}(\Vx_{\text{test}})$和$f_{\Vy}(\Vy_{\text{test}})$互相关联。 -上图受Hrant Khachatrian的建议启发。 +上图受~Hrant Khachatrian~的建议启发。 } \end{figure} @@ -554,7 +554,7 @@ $\Vh_{\Vx}$空间中的相似性度量表示$\Vx$空间中任意点对之间的 在实践中,暴力求解是不可行的,因为不可能捕获影响观察的所有或大多数变化因素。 例如,在视觉场景中,表示是否应该对背景中的所有最小对象进行编码? -根据一个有据可查的心理学现象,人们不会察觉到环境中和他们所在进行的任务并不立刻相关的变化,具体例子可以参考{simons1998failure}。 +根据一个有据可查的心理学现象,人们不会察觉到环境中和他们所在进行的任务并不立刻相关的变化,具体例子可以参考~{simons1998failure}。 半监督学习的一个重要研究前沿是确定每种情况下要编码\emph{什么}。 目前,处理大量潜在原因的两个主要策略是,同时使用无监督学习和监督学习信号,从而使得模型捕获最相关的变动因素,或是使用纯无监督学习学习更大规模的表示。 @@ -595,7 +595,7 @@ $\Vh_{\Vx}$空间中的相似性度量表示$\Vx$空间中任意点对之间的 还有一些其他的显著性的定义。 例如,如果一组像素具有高度可识别的模式,那么即使该模式不涉及到极端的亮度或暗度,该模式还是会被认为非常显著。 -实现这样一种定义显著的方法是使用最近提出的生成式对抗网络~{cite?}。 +实现这样一种定义显著的方法是使用最近提出的生成式对抗网络{cite?}。 在这种方法中,生成模型被训练来愚弄前馈分类器。 前馈分类器尝试将来自生成模型的所有样本识别为假的,并将来自训练集的所有样本识别为真的。 在这个框架中,前馈网络能够识别出的任何结构化模式都是非常显著的。 @@ -632,7 +632,7 @@ $\Vh_{\Vx}$空间中的相似性度量表示$\Vx$空间中任意点对之间的 \emph{(右)}由具有均方误差和对抗损失的模型生成的图片。 使用这个学成的代价函数,由于耳朵遵循可预测的模式,因此耳朵是显著重要的。 学习哪些原因对于模型而言是足够重要和相关的,是一个重要的活跃研究领域。 -以上图片由{lotter2015unsupervised}提供。 +以上图片由~{lotter2015unsupervised}提供。 } \end{figure} @@ -640,7 +640,7 @@ $\Vh_{\Vx}$空间中的相似性度量表示$\Vx$空间中任意点对之间的 -正如{Janzing-et-al-ICML2012}指出,学习潜在因素的好处是,如果真实的生成过程中$\RVx$是结果,$\RVy$是原因,那么建模$p(\RVx \mid \RVy)$对于$p(\RVy)$的变化是鲁棒的。 +正如~{Janzing-et-al-ICML2012}指出,学习潜在因素的好处是,如果真实的生成过程中$\RVx$是结果,$\RVy$是原因,那么建模$p(\RVx \mid \RVy)$对于$p(\RVy)$的变化是鲁棒的。 如果因果关系被逆转,这是不对的,因为根据贝叶斯规则,$p(\RVx \mid \RVy)$将会对$p(\RVy)$的变化十分敏感。 很多时候,我们考虑分布的变化(由于不同领域、时间不稳定性或任务性质的变化)时,\emph{因果机制是保持不变的}("宇宙定律不变"),而潜在因素的边缘分布是会变化的。 因此,通过学习试图恢复成因向量$\RVh$和$p(\RVx \mid \RVh)$的生成模型,我们可以期望最后的模型对所有种类的变化有更好的泛化和鲁棒性。 @@ -665,7 +665,7 @@ $n$维二元向量是一个分布式表示的示例,有$2^n$种配置,每一 这可以与\emph{符号表示}相比较,其中输入关联到单一符号或类别。 如果字典中有$n$个符号,那么可以想象有$n$个特征监测器,每个特征探测器监测相关类别的存在。 在这种情况下,只有表示空间中$n$个不同配置才有可能在输入空间中刻画$n$个不同的区域,如\fig?所示。 -这样的符号表示也被称为one-hot表示,因为它可以表示成相互排斥的$n$维二元向量(其中只有一位是激活的)。 +这样的符号表示也被称为~one-hot~表示,因为它可以表示成相互排斥的$n$维二元向量(其中只有一位是激活的)。 符号表示是更广泛的非分布式表示类中的一个具体示例,它可以包含很多条目,但是每个条目没有显著意义的单独控制作用。 @@ -691,7 +691,7 @@ $n$维二元向量是一个分布式表示的示例,有$2^n$种配置,每一 具有$n$个特征的分布式表示给$O(n^d)$个不同区域分配唯一的编码,而具有$n$个样本的最近邻算法只能给$n$个不同区域分配唯一的编码。 因此,分布式表示能够比非分布式表示多分配指数级的区域。 注意并非所有的$\Vh$值都是可取的(这个例子中没有$\Vh=\mathbf{0}$),在分布式表示上的线性分类器不能向每个相邻区域分配不同的类别标识; -甚至深度线性阀值网络的VC维只有$O(w\log w)$(其中$w$是权重数目){cite?}。 +甚至深度线性阀值网络的~VC~维只有$O(w\log w)$(其中$w$是权重数目){cite?}。 强表示层和弱分类器层的组合是一个强正则化项。 试图学习"人"和"非人"概念的分类器不需要给表示为"戴眼镜的女人"和"没有戴眼镜的男人"的输入分配不同的类别。 容量限制鼓励每个分类器关注少数几个$h_i$,鼓励$\Vh$以线性可分的方式学习表示这些类别。 @@ -739,7 +739,7 @@ $n$维二元向量是一个分布式表示的示例,有$2^n$种配置,每一 -+ 基于$n$-gram的语言或翻译模型:根据后缀的树结构划分上下文集合(符号序列)。 ++ 基于~$n$-gram~的语言或翻译模型:根据后缀的树结构划分上下文集合(符号序列)。 例如,一个叶节点可能对应于最后两个单词$w_1$和$w_2$。 树上的每个叶节点分别估计单独的参数(有些共享也是可能的)。 @@ -757,7 +757,7 @@ $n$维二元向量是一个分布式表示的示例,有$2^n$种配置,每一 作为纯符号,"猫"和"狗"之间的距离和任意其他两种符号的距离一样。 然而,如果将它们与有意义的分布式表示相关联,那么关于猫的很多特点可以推广到狗,反之亦然。 例如,我们的分布式表示可能会包含诸如"具有皮毛"或"腿的数目"这类在"猫"和"狗"的嵌入上具有相同值的项。 -正如\sec?所讨论的,作用于单词分布式表示的神经语言模型比其他直接对单词one-hot表示进行操作的模型泛化得更好。 +正如\sec?所讨论的,作用于单词分布式表示的神经语言模型比其他直接对单词~one-hot~表示进行操作的模型泛化得更好。 分布式表示具有丰富的\emph{相似性空间},语义上相近的概念(或输入)在距离上接近,这是纯粹的符号表示所缺少的特点。 @@ -802,16 +802,16 @@ $n$个相应半空间的指数级数量的交集确定了该分布式表示学 另一个解释基于分布式表示的模型泛化能力更好的说法是,尽管能够明确地编码这么多不同的区域,但它们的容量仍然是很有限的。 -例如,线性阀值单元神经网络的VC维仅为$O(w\log w)$, 其中$w$是权重的数目~{cite?}。 +例如,线性阀值单元神经网络的~VC~维仅为$O(w\log w)$, 其中$w$是权重的数目~{cite?}。 这种限制出现的原因是,虽然我们可以为表示空间分配非常多的唯一码,但是我们不能完全使用所有的码空间,也不能使用线性分类器学习出从表示空间$\Vh$到输出$\Vy$的任意函数映射。 因此使用与线性分类器相结合的分布式表示传达了一种先验信念,待识别的类在$\Vh$代表的潜在因果因子的函数下是线性可分的。 -我们通常想要学习类别,例如所有绿色对象的图像集合,或是所有汽车图像集合,但不会是需要非线性XOR逻辑的类别。 +我们通常想要学习类别,例如所有绿色对象的图像集合,或是所有汽车图像集合,但不会是需要非线性~XOR~逻辑的类别。 例如,我们通常不会将数据划分成所有红色汽车和绿色卡车作为一个集合,所有绿色汽车和红色卡车作为另一个集合。 到目前为止讨论的想法都是抽象的,但是它们可以通过实验验证。 -{Zhou-et-al-ICLR2015}发现,在ImageNet和Places基准数据集上训练的深度卷积网络中的隐藏单元学成的特征通常是可以解释的,对应人类自然分配的标签。 +{Zhou-et-al-ICLR2015}发现,在~ImageNet~和~Places~基准数据集上训练的深度卷积网络中的隐藏单元学成的特征通常是可以解释的,对应人类自然分配的标签。 在实践中,隐藏单元并不能总是学习出具有简单语言学名称的事物,但有趣的是,这些事物会在那些最好的计算机视觉深度网络的顶层附近出现。 这些特征的共同之处在于,我们可以设想\emph{学习其中的每个特征不需要知道所有其他特征的所有配置}。 {radford2015unsupervised}发现生成模型可以学习人脸图像的表示,在表示空间中的不同方向捕获不同的潜在变差因素。 @@ -842,7 +842,7 @@ $n$个相应半空间的指数级数量的交集确定了该分布式表示学 \caption{生成模型学到了分布式表示,能够从戴眼镜的概念中区分性别的概念。 如果我们从一个戴眼镜的男人的概念表示向量开始,然后减去一个没戴眼镜的男人的概念表示向量,最后加上一个没戴眼镜的女人的概念表示向量,那么我们会得到一个戴眼镜的女人的概念表示向量。 生成模型将所有这些表示向量正确地解码为可被识别为正确类别的图像。 -图片转载许可自{radford2015unsupervised}。 +图片转载许可自~{radford2015unsupervised}。 } \end{figure} @@ -860,14 +860,14 @@ $n$个相应半空间的指数级数量的交集确定了该分布式表示学 在\sec?中,我们看到了一个生成模型的示例,能够学习人脸图像的潜在解释因子,包括性别以及是否佩戴眼镜。 完成这个任务的生成模型是基于一个深度神经网络的。 浅层网络例如线性网络不能学习出这些抽象解释因子和图像像素之间的复杂关系。 -在这个任务和其他AI任务中,这些因子几乎彼此独立地被抽取,但仍然对应到有意义输入的因素,很有可能是高度抽象的,并且和输入呈高度非线性的关系。 +在这个任务和其他~AI~任务中,这些因子几乎彼此独立地被抽取,但仍然对应到有意义输入的因素,很有可能是高度抽象的,并且和输入呈高度非线性的关系。 我们认为这需要\emph{深度}分布式表示,需要许多非线性组合来获得较高级的特征(被视为输入的函数)或因子(被视为生成原因)。 在许多不同情景中已经证明, 非线性和重用特征层次结构的组合来组织计算,可以使分布式表示获得指数级加速之外,还可以获得统计效率的指数级提升。 -许多种类的只有一个隐藏层的网络(例如,具有饱和非线性,布尔门,和/积,或RBF单元的网络)都可以被视为万能近似器。 +许多种类的只有一个隐藏层的网络(例如,具有饱和非线性,布尔门,和/积,或~RBF~单元的网络)都可以被视为万能近似器。 在给定足够多隐藏单元的情况下,这个模型族是一个万能近似器,可以在任意非零允错级别近似一大类函数(包括所有连续函数)。 然而,隐藏单元所需的数量可能会非常大。 关于深层架构表达能力的理论结果表明,有些函数族可以高效地通过深度$k$层的网络架构表示,但是深度不够(深度为2或$k-1$)时会需要指数级(相对于输入大小而言)的隐藏单元。 @@ -886,8 +886,8 @@ $n$个相应半空间的指数级数量的交集确定了该分布式表示学 和-积网络%,SPN ~{cite?}是这样的一种概率模型。 这些模型使用多项式回路来计算一组随机变量的概率分布。 -{Delalleau+Bengio-2011-small}表明存在一种概率分布,对SPN的最小深度有要求,以避免模型规模呈指数级增长。 -后来,{Martens+Medabalimi-arxiv2014}表明,任意两个有限深度的SPN之间都会存在显著差异,并且一些使SPN易于处理的约束可能会限制其表示能力。 +{Delalleau+Bengio-2011-small}表明存在一种概率分布,对~SPN~的最小深度有要求,以避免模型规模呈指数级增长。 +后来,{Martens+Medabalimi-arxiv2014}表明,任意两个有限深度的~SPN~之间都会存在显著差异,并且一些使~SPN~易于处理的约束可能会限制其表示能力。 @@ -910,13 +910,13 @@ $n$个相应半空间的指数级数量的交集确定了该分布式表示学 更一般地,为了利用丰富的未标注数据,表示学习会使用关于潜在因素的其他不太直接的提示。 这些提示包含一些我们(学习算法的设计者)为了引导学习器而强加的隐式先验信息。 诸如没有免费午餐定理的这些结果表明,正则化策略对于获得良好泛化是很有必要的。 -当不可能找到一个普遍良好的正则化策略时,深度学习的一个目标是找到一套相当通用的正则化策略,使其能够适用于各种各样的AI任务(类似于人和动物能够解决的任务)。 +当不可能找到一个普遍良好的正则化策略时,深度学习的一个目标是找到一套相当通用的正则化策略,使其能够适用于各种各样的~AI~任务(类似于人和动物能够解决的任务)。 在此,我们提供了一些通用正则化策略的列表。 该列表显然是不详尽的,但是给出了一些学习算法是如何发现对应潜在因素的特征的具体示例。 -该列表在{Bengio-Courville-Vincent-TPAMI-2012}的第3.1节中提出,这里进行了部分拓展。 +该列表在~{Bengio-Courville-Vincent-TPAMI-2012}的第3.1节中提出,这里进行了部分拓展。 + \emph{平滑}:假设对于单位$\Vd$和小量$\epsilon$有$f(\Vx + \epsilon \Vd) \approx f(\Vx)$。 这个假设允许学习器从训练样本泛化到输入空间中附近的点。 @@ -927,7 +927,7 @@ $n$个相应半空间的指数级数量的交集确定了该分布式表示学 这使得算法能够预测远离观测数据的点,但有时可能会导致一些极端的预测。 大多数简单的学习算法不会做平滑假设,而会做线性假设。 这些假设实际上是不同的,具有很大权重的线性函数在高维空间中可能不是非常平滑的。 - 参看{Goodfellow-2015-adversarial}了解关于线性假设局限性的进一步讨论。 + 参看~{Goodfellow-2015-adversarial}了解关于线性假设局限性的进一步讨论。 diff --git a/docs/_posts/2016-12-16-Chapter16_structured_probabilistic_modelling.md b/docs/_posts/2016-12-16-Chapter16_structured_probabilistic_modelling.md index 0964b85..bb8051b 100644 --- a/docs/_posts/2016-12-16-Chapter16_structured_probabilistic_modelling.md +++ b/docs/_posts/2016-12-16-Chapter16_structured_probabilistic_modelling.md @@ -105,12 +105,12 @@ share: false \centerline{\includegraphics[width=0.9\textwidth]{Chapter16/figures/fig-ssrbm_samples}} \fi \caption{自然图片的概率建模。 -\emph{(上)}CIFAR-10数据集{cite?}中的$32\times 32$像素的样例图片。 +\emph{(上)}~CIFAR-10数据集{cite?}中的$32\times 32$像素的样例图片。 \emph{(下)}从这个数据集上训练的结构化概率模型中抽出的样本。 每一个样本都出现在与其欧式距离最近的训练样本的格点中。 这种比较使得我们发现这个模型确实能够生成新的图片,而不是记住训练样本。 为了方便展示,两个集合的图片都经过了微调。 -图片经{Courville+al-2011-small}许可转载。} +图片经~{Courville+al-2011-small}许可转载。} \end{figure} 对上千甚至是上百万随机变量的分布建模,无论从计算上还是从统计意义上说,都是一个极具挑战性的任务。 @@ -133,7 +133,7 @@ share: false + \emph{统计的高效性}: 当模型中的参数个数增加时,使用统计估计器估计这些参数所需要的训练数据数量也需要相应地增加。 因为基于查表的模型拥有天文数字级别的参数,为了准确地拟合,相应的训练集的大小也是相同级别的。 -任何这样的模型都会导致严重的过拟合,除非我们添加一些额外的假设来联系表格中的不同元素(正如\sec?中所举的回退或者平滑$n$-gram模型)。 +任何这样的模型都会导致严重的过拟合,除非我们添加一些额外的假设来联系表格中的不同元素(正如\sec?中所举的回退或者平滑~$n$-gram~模型)。 + \emph{运行时间:推断的开销。} @@ -210,8 +210,7 @@ Bob的完成时间依赖于Alice的完成时间,因为Bob只能在Alice跑完 -有向图模型是一种结构化概率模型,也被称为信念网络或者贝叶斯网络 -\footnote{当我们希望"强调"从网络中计算出的值的"推断"本质,即强调这些值代表的是置信程度大小而不是事件的频率时,Judea Pearl建议使用"贝叶斯网络"这个术语。}%?? +有向图模型是一种结构化概率模型,也被称为信念网络或者贝叶斯网络\footnote{当我们希望"强调"从网络中计算出的值的"推断"本质,即强调这些值代表的是置信程度大小而不是事件的频率时,Judea Pearl建议使用"贝叶斯网络"这个术语。}%?? {cite?}。 @@ -365,7 +364,7 @@ p(\RSt_0,\RSt_1,\RSt_2) = p(\RSt_0)p(\RSt_1\mid \RSt_0)p(\RSt_2\mid \RSt_1). \end{figure} 正式地说,一个无向模型是一个定义在无向模型 $\CalG$上的结构化概率模型。 -对于图中的每一个团\footnote{图的一个团是图中结点的一个子集,并且其中的点是全连接的}$\CalC$, +对于图中的每一个团\footnote{图的一个团是图中结点的一个子集,并且其中的点是全连接的}$~\CalC$, 一个因子 $\phi(\CalC)$(也称为团势能),衡量了团中变量每一种可能的联合状态所对应的密切程度。 这些因子都被限制为是非负的。 它们一起定义了未归一化概率函数: @@ -627,7 +626,7 @@ $E(\RVx)$被称作是能量函数。 类似的概念适用于有向模型,只是在有向模型中,这些概念被称为d-分离。 "d"代表"依赖"的意思。 -有向图中d-分离的定义与无向模型中分离的定义相同: +有向图中\,d-分离的定义与无向模型中分离的定义相同: 如果图结构显示给定变量集$\SetS$时 ,变量集$\SetA$与变量集$\SetB$无关, 那么我们认为给定变量集$\SetS$时,变量集$\SetA$~d-分离于变量集$\SetB$。 @@ -691,7 +690,7 @@ $E(\RVx)$被称作是能量函数。 \emph{(d)}即使$\RSs$的任意后代都被观察到,相消解释作用也会起作用。 举个例子,假设$\RSc$是一个表示你是否收到你同事的报告的一个变量。 如果你注意到你还没有收到这个报告,这会增加你估计的她今天不在工作的概率,这反过来又会增加她今天生病或者度假的概率。 -阻塞V-结构中路径的唯一方法就是共享子节点的后代一个都观察不到。} +阻塞\,V-结构中路径的唯一方法就是共享子节点的后代一个都观察不到。} \end{figure} @@ -705,16 +704,16 @@ $E(\RVx)$被称作是能量函数。 \includegraphics{Chapter16/figures/example_dsep} \fi \captionsetup{singlelinecheck=off} -\caption[d-separation example]{从这张图中,我们可以发现一些d-分离的性质。这包括了: +\caption[d-separation example]{从这张图中,我们可以发现一些\,d-分离的性质。这包括了: -+ 给定空集的情况下,$\RSa$和$\RSb$是d-分离的。 -+ 给定$\RSc$的情况下,$\RSa$和$\RSe$是d-分离的。 -+ 给定$\RSc$的情况下,$\RSd$和$\RSe$是d-分离的。 ++ 给定空集的情况下,$\RSa$和$\RSb$是\,d-分离的。 ++ 给定$\RSc$的情况下,$\RSa$和$\RSe$是\,d-分离的。 ++ 给定$\RSc$的情况下,$\RSd$和$\RSe$是\,d-分离的。 -我们还可以发现当我们观察到一些变量时,一些变量不再是d-分离的: +我们还可以发现当我们观察到一些变量时,一些变量不再是\,d-分离的: -+ 给定$\RSc$的情况下,$\RSa$和$\RSb$不是d-分离的。 -+ 给定$\RSd$的情况下,$\RSa$和$\RSb$不是d-分离的。 ++ 给定$\RSc$的情况下,$\RSa$和$\RSb$不是\,d-分离的。 ++ 给定$\RSd$的情况下,$\RSa$和$\RSb$不是\,d-分离的。 } \end{figure} @@ -1137,7 +1136,7 @@ NP中的问题只需确定其中一个问题是否有解决方案,并找到一 分布式表示具有许多优点,但是从图模型和计算复杂性的观点来看, 分布式表示有一个缺点就是很难产生对于精确推断和环状信念传播等传统技术来说足够稀疏的图。 结果,大规模图模型和深度图模型最大的区别之一就是深度学习中几乎从来不会使用环状信念传播。 -相反的,许多深度学习模型可以设计来加速Gibbs采样或者变分推断。 +相反的,许多深度学习模型可以设计来加速~Gibbs采样或者变分推断。 此外,深度学习模型包含了大量的潜变量,使得高效的数值计算代码显得格外重要。 除了选择高级推断算法之外,这提供了另外的动机,用于将结点分组成层,相邻两层之间用一个矩阵来描述相互作用。 这要求实现算法的单个步骤可以实现高效的矩阵乘积运算,或者专门适用于稀疏连接的操作,例如块对角矩阵乘积或卷积。 @@ -1158,17 +1157,17 @@ NP中的问题只需确定其中一个问题是否有解决方案,并找到一 ## 实例:受限玻尔兹曼机 受限玻尔兹曼机{cite?}或者簧风琴是图模型如何用于深度学习的典型例子。 -RBM本身不是一个深层模型。 +RBM~本身不是一个深层模型。 相反,它有一层潜变量,可用于学习输入的表示。 -在\chap?中,我们将看到RBM如何被用来构建许多的深层模型。 -在这里,我们举例展示了RBM在许多深度图模型中使用的实践: +在\chap?中,我们将看到~RBM~如何被用来构建许多的深层模型。 +在这里,我们举例展示了~RBM~在许多深度图模型中使用的实践: 它的单元被分成很大的组,这种组称作层,层之间的连接由矩阵描述,连通性相对密集。 -该模型被设计为能够进行高效的Gibbs采样,并且模型设计的重点在于以很高的自由度来学习潜变量,而潜变量的含义并不是设计者指定的。 -之后在\sec?,我们将更详细地再次讨论RBM。 +该模型被设计为能够进行高效的~Gibbs采样,并且模型设计的重点在于以很高的自由度来学习潜变量,而潜变量的含义并不是设计者指定的。 +之后在\sec?,我们将更详细地再次讨论~RBM。 -标准的RBM是具有二值的可见和隐藏单元的基于能量的模型。 其能量函数为 +标准的~RBM~是具有二值的可见和隐藏单元的基于能量的模型。 其能量函数为 \begin{align} E(\Vv,\Vh) = -\Vb^{\top}\Vv - \Vc^{\top}\Vh - \Vv^{\top}\MW\Vh, \end{align} @@ -1193,7 +1192,7 @@ E(\Vv,\Vh) = -\Vb^{\top}\Vv - \Vc^{\top}\Vh - \Vv^{\top}\MW\Vh, -对RBM结构的限制产生了良好的属性 +对~RBM~结构的限制产生了良好的属性 \begin{align} p(\RVh\mid\RVv) = \prod_i p(\RSh_i\mid \RVv) \end{align} @@ -1211,7 +1210,7 @@ p(\RSh_i = 0\mid\RVv) = 1 - \sigma\big(\RVv^{\top}\MW_{:,i} + b_i\big).\\ \end{aligned} \end{align} 结合这些属性可以得到高效的块吉布斯采样,它在同时采样所有$\Vh$和同时采样所有$\Vv$之间交替。 -RBM模型通过Gibbs采样产生的样本展示在\fig?中。 +RBM~模型通过~Gibbs采样产生的样本展示在\fig?中。 \begin{figure}[!htb] @@ -1220,18 +1219,18 @@ RBM模型通过Gibbs采样产生的样本展示在\fig?中。 \else \centerline{\includegraphics[width=0.9\textwidth]{Chapter16/figures/rbm_samples}} \fi -\caption{训练好的RBM的样本及其权重。 -\emph{(左)}用MNIST训练模型,然后用Gibbs采样进行采样。 -每一列是一个单独的Gibbs采样过程。 -每一行表示另一个$1000$步后Gibbs采样的输出。 +\caption{训练好的~RBM~的样本及其权重。 +\emph{(左)}用MNIST训练模型,然后用~Gibbs采样进行采样。 +每一列是一个单独的~Gibbs采样过程。 +每一行表示另一个$1000$步后~Gibbs采样的输出。 连续的样本之间彼此高度相关。 \emph{(右)}对应的权重向量。 将本图结果与图\?中描述的线性因子模型的样本和权重相比。 -由于RBM的先验$p(\Vh)$没有限制为因子,这里的样本表现得好很多。 -采样时RBM能够学习到哪些特征需要一起出现。 -另一方面说,RBM后验$p(\Vh \mid \Vv)$是因子的,而稀疏编码的后验并不是,所以在特征提取上稀疏编码模型表现得更好。 +由于~RBM~的先验$p(\Vh)$没有限制为因子,这里的样本表现得好很多。 +采样时~RBM~能够学习到哪些特征需要一起出现。 +另一方面说,RBM~后验$p(\Vh \mid \Vv)$是因子的,而稀疏编码的后验并不是,所以在特征提取上稀疏编码模型表现得更好。 其他的模型可以使用非因子的$p(\Vh)$和非因子的$p(\Vh \mid \Vh)$。 -图片经{lisa_tutorial_rbm}允许转载。} +图片经~{lisa_tutorial_rbm}允许转载。} \end{figure} @@ -1242,7 +1241,7 @@ RBM模型通过Gibbs采样产生的样本展示在\fig?中。 -这两个属性,高效的Gibbs采样和导数计算,使训练过程变得非常方便。 +这两个属性,高效的~Gibbs采样和导数计算,使训练过程变得非常方便。 在\chap?中,我们将看到,可以通过计算应用于这种来自模型样本的导数来训练无向模型。 @@ -1252,7 +1251,7 @@ RBM模型通过Gibbs采样产生的样本展示在\fig?中。 -总的来说,RBM展示了典型的图模型深度学习方法: +总的来说,RBM~展示了典型的图模型深度学习方法: 使用多层潜变量,并由矩阵参数化层之间的高效相互作用来完成表示学习。 diff --git a/docs/_posts/2016-12-17-Chapter17_monte_carlo_methods.md b/docs/_posts/2016-12-17-Chapter17_monte_carlo_methods.md index ca029ec..739a9b2 100644 --- a/docs/_posts/2016-12-17-Chapter17_monte_carlo_methods.md +++ b/docs/_posts/2016-12-17-Chapter17_monte_carlo_methods.md @@ -183,17 +183,17 @@ $q$分布经常会取一些简单常用的分布使得我们能够从$q$分布 在这种情况下,为了从分布$p_{\text{model}}(\RVx)$中近似采样,我们引入了一种称为马尔可夫链的数学工具。 利用马尔可夫链来进行蒙特卡罗估计的这一类算法被称为马尔可夫链蒙特卡罗方法。 {koller-book2009}花了大量篇幅来描述马尔可夫链蒙特卡罗算法在机器学习中的应用。 -MCMC技术最标准、最一般的的理论保证只适用于那些各状态概率均不为零的模型。 +MCMC~技术最标准、最一般的的理论保证只适用于那些各状态概率均不为零的模型。 因此,这些技术最方便的使用方法是用于从基于能量的模型即$p(\Vx)\propto \exp(-E(\Vx))$中采样,见\sec?。 -在EBM的公式表述中,每一个状态所对应的概率都不为零。 -事实上,MCMC方法可以被广泛地应用在包含$0$概率状态的许多概率分布中。 -然而,在这种情况下,关于MCMC方法性能的理论保证只能依据具体不同类型的分布具体分析证明。 +在~EBM~的公式表述中,每一个状态所对应的概率都不为零。 +事实上,MCMC~方法可以被广泛地应用在包含$0$概率状态的许多概率分布中。 +然而,在这种情况下,关于~MCMC~方法性能的理论保证只能依据具体不同类型的分布具体分析证明。 在深度学习中,我们通常依赖于那些一般的理论保证,其在所有基于能量的模型都能自然成立。 -为了解释从基于能量的模型中采样困难的原因,我们考虑一个包含两个变量的EBM的例子,记$p(\RSa,\RSb)$为其分布。 +为了解释从基于能量的模型中采样困难的原因,我们考虑一个包含两个变量的~EBM~的例子,记$p(\RSa,\RSb)$为其分布。 为了采$\RSa$,我们必须先从$p(\RSa\mid \RSb)$中采样;为了采$\RSb$,我们又必须从$p(\RSb\mid \RSa)$中采样。 这似乎成了棘手的先有鸡还是先有蛋的问题。 有向模型避免了这一问题因为它的图是有向无环的。 @@ -202,7 +202,7 @@ MCMC技术最标准、最一般的的理论保证只适用于那些各状态概 -在EBM中,我们通过使用马尔可夫链来采样,从而避免了先有鸡还是先有蛋的问题。 +在~EBM~中,我们通过使用马尔可夫链来采样,从而避免了先有鸡还是先有蛋的问题。 马尔可夫链的核心思想是从某个可取任意值的状态$\Vx$出发。 随着时间的推移,我们随机地反复更新状态$\Vx$。 最终$\Vx$成为了一个从$p(\Vx)$中抽出的(非常接近)比较一般的样本。 %?? 建议 比较公正 换成 标准 @@ -211,7 +211,7 @@ MCMC技术最标准、最一般的的理论保证只适用于那些各状态概 -为了给出MCMC方法为何有效的一些理论解释,重参数化这个问题是很有用的。 +为了给出~MCMC~方法为何有效的一些理论解释,重参数化这个问题是很有用的。 首先我们关注一些简单的情况,其中随机变量$\RVx$有可数个状态。 我们将这种状态简单地记作正整数$x$。 不同的整数$x$的大小对应着原始问题中$\Vx$的不同状态。 @@ -349,7 +349,7 @@ q' (\RVx') = \SetE_{\RVx\sim q}T(\RVx'\mid \RVx), Gibbs采样是一种概念简单而又有效的方法。 它构造一个从$p_{\text{model}}(\Vx)$中采样的马尔可夫链,其中在基于能量的模型中从$T(\RVx'\mid \RVx)$采样是通过选择一个变量$\RSx_i$,然后从$p_{\text{model}}$中该点关于在无向图$\CalG$(定义了基于能量的模型结构)中邻接点的条件分布中采样。 只要一些变量在给定相邻变量时是条件独立的,那么这些变量就可以被同时采样。 -正如在\sec?中看到的RBM示例一样,RBM中所有的隐藏单元可以被同时采样,因为在给定所有可见单元的条件下它们相互条件独立。 +正如在\sec?中看到的~RBM~示例一样,RBM~中所有的隐藏单元可以被同时采样,因为在给定所有可见单元的条件下它们相互条件独立。 同样地,所有的可见单元也可以被同时采样,因为在给定所有隐藏单元的情况下它们相互条件独立。 以这种方式同时更新许多变量的\,Gibbs采样通常被称为块吉布斯采样。 @@ -381,7 +381,7 @@ Gibbs采样是一种概念简单而又有效的方法。 -当我们考虑Gibbs采样算法(见\sec?)时,这种现象格外明显。 +当我们考虑~Gibbs采样算法(见\sec?)时,这种现象格外明显。 在这种情况下,我们考虑在一定步数内从一个峰值移动到一个临近峰值的概率。 决定这个概率的是两个峰值之间的"能量障碍"的形状。 隔着一个巨大"能量障碍" (低概率的区域)的两个峰值之间的转移概率是(随着能量障碍的高度)指数下降的,如\fig?所示。 @@ -396,7 +396,7 @@ Gibbs采样是一种概念简单而又有效的方法。 \else \centerline{\includegraphics{Chapter17/figures/good_bad_really_bad_mixing_color}} \fi -\caption{对于三种分布使用\,Gibbs采样所产生的路径,所有的分布马尔可夫链初始值都设为峰值。 +\caption{对于三种分布使用~Gibbs采样所产生的路径,所有的分布马尔可夫链初始值都设为峰值。 \emph{(左)}一个带有两个独立变量的多维正态分布。 由于变量之间是相互独立的,Gibbs采样混合得很好。 \emph{(中)}变量之间存在高度相关性的一个多维正态分布。 @@ -410,13 +410,13 @@ Gibbs采样混合得很慢,因为每次更新仅仅一个变量很难跨越不 举一个简单的例子,考虑两个变量$\RSa$,$\RSb$的基于能量的模型,这两个变量都是二值的,取值$+1$或者$-1$。 %?? 如果对某个较大的正数$w$,$E(\RSa,\RSb) = - w \RSa \RSb$,那么这个模型传达了一个强烈的信息,$\RSa$和$\RSb$有相同的符号。 -当$\RSa=1$时用\,Gibbs采样更新$\RSb$。 +当$\RSa=1$时用~Gibbs采样更新$\RSb$。 给定$\RSb$时的条件分布满足$p(\RSb=1\mid \RSa=1) = \sigma(w)$。 -如果$w$的值很大,sigmoid函数趋近于饱和,那么$b$也取到$1$的概率趋近于$1$。 +如果$w$的值很大,sigmoid~函数趋近于饱和,那么$b$也取到$1$的概率趋近于$1$。 同理,如果$\RSa=-1$,那么$\RSb$取到$-1$的概率也趋于$1$。 根据模型$p_{\text{model}}(\RSa,\RSb)$,两个变量取一样的符号的概率几乎相等。 根据$p_{\text{model}}(\RSa\mid \RSb)$,两个变量应该有相同的符号。 -这也意味着\,Gibbs采样很难会改变这些变量的符号。 +这也意味着~Gibbs采样很难会改变这些变量的符号。 在更实际的问题中,这种挑战更加艰巨因为在实际问题中我们不能仅仅关注在两个峰值之间的转移,更要关注在多个峰值之间的转移。 @@ -453,7 +453,7 @@ Gibbs采样混合得很慢,因为每次更新仅仅一个变量很难跨越不 \fi \caption{深度概率模型中一个混合缓慢问题的例证。 每张图都是按照从左到右从上到下的顺序的。 -\emph{(左)}\,Gibbs采样从MNIST数据集训练成的深度玻尔兹曼机中采出的连续样本。 +\emph{(左)}~Gibbs采样从MNIST数据集训练成的深度玻尔兹曼机中采出的连续样本。 这些连续的样本之间非常相似。 由于\,Gibbs采样作用于一个深度图模型,相似度更多地是基于语义而非原始视觉特征。 但是对于吉布斯链来说从分布的一个峰值转移到另一个仍然是很困难的,比如说改变数字。 @@ -516,11 +516,11 @@ $\beta$参数可以被理解为温度的倒数,反映了基于能量的模型 当我们从潜变量模型$p(\Vh,\Vx)$中采样时,我们可以发现如果$p(\Vh\mid \Vx)$将$\Vx$编码得非常好,那么从$p(\Vx \mid \Vh)$中采样时,并不会太大地改变$\Vx$,那么混合结果会很糟糕。 解决这个问题的一种方法是使得$\Vh$成为一种将$\Vx$编码为$\Vh$的深度表示,从而使得马尔可夫链在$\Vh$空间中更容易混合。 -在许多表示学习算法如自编码器和\,RBM中,$\Vh$的边缘分布相比于$\Vx$上的原始数据分布,通常表现为更加均匀、更趋近于单峰值。 +在许多表示学习算法如自编码器和\,RBM\,中,$\Vh$的边缘分布相比于$\Vx$上的原始数据分布,通常表现为更加均匀、更趋近于单峰值。 或许可以说,这是因为利用了所有可用的表示空间并尽量减小重构误差。 因为当训练集上的不同样本之间在$\Vh$空间能够被非常容易地区分时,我们也会很容易地最小化重构误差。 {Bengio-et-al-ICML2013-small}观察到这样的现象,堆叠越深的正则化自编码器或者\,RBM,顶端$\Vh$空间的边缘分布越趋向于均匀和发散,而且不同峰值(比如说实验中的类别)所对应区域之间的间距也会越小。 -在高层空间中训练\,RBM会使得\,Gibbs采样在峰值间混合得更快。 +在高层空间中训练\,RBM\,会使得~Gibbs采样在峰值间混合得更快。 然而,如何利用这种观察到的现象来辅助训练深度生成模型或者从中采样仍然有待探索。 diff --git a/docs/_posts/2016-12-18-Chapter18_confronting_the_partition_function.md b/docs/_posts/2016-12-18-Chapter18_confronting_the_partition_function.md index 6483bfd..53dba52 100644 --- a/docs/_posts/2016-12-18-Chapter18_confronting_the_partition_function.md +++ b/docs/_posts/2016-12-18-Chapter18_confronting_the_partition_function.md @@ -90,9 +90,9 @@ RBM\,的隐藏单元在给定可见单元的情况下彼此条件独立,是一 \end{equation} 该等式只适用于$\tilde{p}$和$\nabla_{\Vtheta} \tilde{p} (\RVx)$上的一些特定规范条件。 在测度论术语中,这些条件是: -(1)对每一个$\Vtheta$而言,未归一化分布$\tilde{p}$必须是$\Vx$的勒贝格可积函数。 -(2)对于所有的$\Vtheta$和几乎所有$\Vx$,梯度$\nabla_{\Vtheta} \tilde{p}(\RVx)$必须存在。 -(3)对于所有的$\Vtheta$和几乎所有的$\Vx$,必须存在一个可积函数$R(\Vx)$使得$\max_i | \frac{\partial}{\partial \theta_i } \tilde{p} (\RVx) | \leq R(\Vx)$。 +(1) 对每一个$\Vtheta$而言,未归一化分布$\tilde{p}$必须是$\Vx$的勒贝格可积函数。 +(2) 对于所有的$\Vtheta$和几乎所有$\Vx$,梯度$\nabla_{\Vtheta} \tilde{p}(\RVx)$必须存在。 +(3) 对于所有的$\Vtheta$和几乎所有的$\Vx$,必须存在一个可积函数$R(\Vx)$使得$\max_i | \frac{\partial}{\partial \theta_i } \tilde{p} (\RVx) | \leq R(\Vx)$。 幸运的是,大多数感兴趣的机器学习模型都具有这些性质。 @@ -108,7 +108,7 @@ RBM\,的隐藏单元在给定可见单元的情况下彼此条件独立,是一 在负相中,我们通过降低从模型分布中采样的$\log \tilde{p}(\RVx)$来降低配分函数。 -在深度学习文献中,经常会看到用能量函数(等式\eqn?)来参数化$\log \tilde{p}$。 +在深度学习文献中,经常会看到用能量函数(\eqn?)来参数化$\log \tilde{p}$。 在这种情况下,正相可以解释为压低训练样本的能量,负相可以解释为提高模型抽出的样本的能量,如\fig?所示。 @@ -128,7 +128,7 @@ RBM\,的隐藏单元在给定可见单元的情况下彼此条件独立,是一 \caption{一种朴素的\,MCMC\,算法,使用梯度上升最大化具有难以计算配分函数的对数似然。} \begin{algorithmic} \STATE 设步长 $\epsilon$ 为一个小正数。 -\STATE 设吉布斯步数 $k$ 大到足以允许磨合。在小图像集上训练一个RBM大致设为100 。 +\STATE 设吉布斯步数 $k$ 大到足以允许磨合。在小图像集上训练一个~RBM~大致设为100。 \WHILE{不收敛} \STATE 从训练集中采包含 $m$ 个样本$\{ \RVx^{(1)}, \dots, \RVx^{(m)}\}$的小批量。 \STATE $\RVg \leftarrow \frac{1}{m} \sum_{i=1}^m \nabla_{\Vtheta} \log \tilde{p}(\RVx^{(i)}; \Vtheta)$. @@ -158,8 +158,8 @@ RBM\,的隐藏单元在给定可见单元的情况下彼此条件独立,是一 \centerline{\includegraphics{Chapter18/figures/pos_and_neg_phase_color}} \fi \caption{\alg?角度的"正相"和"负相"。 -(左)在正相中,我们从数据分布中采样,然后推高它们未归一化的概率。这意味着概率越高的数据点未归一化的概率被推高得越多。 -(右)在负相中,我们从模型分布中采样,然后压低它们未归一化的概率。 +\emph{(左)}在正相中,我们从数据分布中采样,然后推高它们未归一化的概率。这意味着概率越高的数据点未归一化的概率被推高得越多。 +\emph{(右)}在负相中,我们从模型分布中采样,然后压低它们未归一化的概率。 这与正相的倾向相反,给未归一化的概率处处添加了一个大常数。 当数据分布和模型分布相等时,正相推高数据点和负相压低数据点的机会相等。 此时,不再有任何的梯度(期望上说),训练也必须停止。} @@ -186,7 +186,7 @@ RBM\,的隐藏单元在给定可见单元的情况下彼此条件独立,是一 \caption{对比散度算法,使用梯度上升作为优化过程。} \begin{algorithmic} \STATE 设步长 $\epsilon$ 为一个小正数。 -\STATE 设吉布斯步数 $k$ 大到足以让从 $p_\text{data}$初始化并从 $p(\RVx; \Vtheta)$采样的马尔可夫链混合 。在小图像集上训练一个RBM大致设为1-20。 +\STATE 设吉布斯步数 $k$ 大到足以让从 $p_\text{data}$初始化并从 $p(\RVx; \Vtheta)$采样的马尔可夫链混合 。在小图像集上训练一个~RBM~大致设为1-20。 \WHILE{不收敛} \STATE 从训练集中采包含 $m$ 个样本 $\{ \RVx^{(1)}, \dots, \RVx^{(m)}\}$ 的小批量。 \STATE $\RVg \leftarrow \frac{1}{m} \sum_{i=1}^m \nabla_{\Vtheta} \log \tilde{p}(\RVx^{(i)}; \Vtheta).$ @@ -205,7 +205,7 @@ RBM\,的隐藏单元在给定可见单元的情况下彼此条件独立,是一 \end{algorithm} -\textbf{对比散度}(CD,或者是具有$k$个Gibbs步骤的CD-$k$)算法在每个步骤中初始化马尔可夫链为采样自数据分布中的样本~{cite?},如\alg?所示。 +\textbf{对比散度}(CD,或者是具有$k$个Gibbs步骤的~CD-$k$)算法在每个步骤中初始化马尔可夫链为采样自数据分布中的样本~{cite?},如\alg?所示。 从数据分布中获取样本是计算代价最小的,因为它们已经在数据集中了。 初始时,数据分布并不接近模型分布,因此负相不是非常准确。 幸运的是,正相仍然可以准确地增加数据的模型概率。 @@ -236,12 +236,12 @@ CD\,未能定性地实现真实负相的主要原因是,它不能抑制远离 出于可视化的目的,这个图使用了某种程度上说更加简单的距离的概念——在$\SetR$的数轴上虚假模态与正确的模式有很大的距离。 这对应着基于局部移动$\SetR$上的单个变量$x$的马尔可夫链。 对于大部分深度概率模型来说,马尔可夫链是基于\,Gibbs采样的,并且对于单个变量产生非局部的移动但是无法同时移动所有的变量。 -对于这些问题来说,考虑edit距离比欧式距离通常更好。 +对于这些问题来说,考虑编辑距离比欧式距离通常更好。 然而,高维空间的编辑距离很难在二维空间作图展示。} \end{figure} -{Perpinan+Hinton-2005-small}实验上证明\,CD\,估计偏向于RBM和完全可见的\,玻尔兹曼机\,,因为它会收敛到与最大似然估计不同的点。 +{Perpinan+Hinton-2005-small}实验上证明\,CD\,估计偏向于~RBM~和完全可见的玻尔兹曼机,因为它会收敛到与最大似然估计不同的点。 他们认为,由于偏差较小,CD\,可以作为一种计算代价低的方式来初始化模型,之后可以通过计算代价高的\,MCMC\,方法进行精调。 {Bengio+Delalleau-2009}表明,CD\,可以被理解为去掉了正确\,MCMC\,梯度更新中的最小项,这解释了偏差的由来。 @@ -337,8 +337,8 @@ CD\,方差低的原因是,其在正相和负相中使用了相同的训练点 \begin{equation} \Vtheta = \Vtheta^{\text{(slow)}} + \Vtheta^{\text{(fast)}}. \end{equation} -现在的参数是以前的两倍多,逐位相加定义原始模型的参数。 -快速参数用更大的学习率来训练,从而使其快速响应学习的负相,并促使马尔可夫链探索新的区域。 +现在的参数是以前的两倍多,将其逐个相加以定义原始模型的参数。 +快速复制参数可以使用更大的学习率来训练,从而使其快速响应学习的负相,并促使马尔可夫链探索新的区域。 这能够使马尔可夫链快速混合,尽管这种效应只会发生在学习期间快速权重可以自由改变的时候。 通常,在短时间地将快速权重设为大值并保持足够长时间,使马尔可夫链改变峰值之后,我们会对快速权重使用显著的权重衰减,促使它们收敛到较小的值。 @@ -394,10 +394,10 @@ CD\,方差低的原因是,其在正相和负相中使用了相同的训练点 当然,在数据集不趋近于大采样极限的情况下,伪似然可能表现出与最大似然估计不同的结果。 -可以用广义伪似然估计以计算复杂度的增加换取其相对于最大似然表现的偏离的下降~{cite?}。 +我们可以使用广义伪似然估计来权衡计算复杂度和最大似然表现的偏差~{cite?}。 广义伪似然估计使用$m$个不同的集合$\SetS^{(i)}$,$i=1, \dots, m$作为变量的指标出现在条件棒的左侧。 -在$m = 1$和$\SetS^{(1)}= 1, \dots, n$的极端情况下广义伪似然估计会变为对数似然。 -在$m = n$和$\SetS^{(i)} = \{i\}$的极端情况下,广义伪似然会变为伪似然。%?? recover the pseudolikeli +在$m = 1$和$\SetS^{(1)}= 1, \dots, n$的极端情况下,广义伪似然估计会变为对数似然。 +在$m = n$和$\SetS^{(i)} = \{i\}$的极端情况下,广义伪似然会恢复为伪似然。%?? recover the pseudolikeli 广义伪似然估计目标函数如下所示 \begin{equation} \sum_{i=1}^m \log p(\RVx_{\SetS^{(i)}} \mid \RVx_{- \SetS^{(i)} }). @@ -414,7 +414,7 @@ CD\,方差低的原因是,其在正相和负相中使用了相同的训练点 伪似然估计的一个弱点是它不能与仅在$\tilde{p}(\RVx)$上提供下界的其他近似一起使用,例如\chap?中介绍的变分推断。这是因为$\tilde{p}$出现在了分母中。 分母的下界仅提供了整个表达式的上界,然而最大化上界没有什么意义。 这使得我们难以将伪似然方法应用于诸如深度玻尔兹曼机的深度模型,因为变分方法是近似边缘化互相作用的多层隐藏变量的主要方法之一。 -尽管如此,伪似然仍然可以用在深度学习中,它可以用于单层模型,或使用不基于下限的近似推断方法的深度模型中。 +尽管如此,伪似然仍然可以用在深度学习中,它可以用于单层模型,或使用不基于下界的近似推断方法的深度模型中。 @@ -426,7 +426,7 @@ CD\,方差低的原因是,其在正相和负相中使用了相同的训练点 每个条件分布的分母会使得学习算法降低所有仅具有一个变量不同于训练样本的状态的概率。 -了解伪似然渐近效率的理论分析,可以参考~{Marlin11-small}。 +读者可以参考~{Marlin11-small}了解伪似然渐近效率的理论分析,。 @@ -442,7 +442,7 @@ CD\,方差低的原因是,其在正相和负相中使用了相同的训练点 J(\Vtheta) & = \frac{1}{2} \SetE_{p_{\text{data}}(\Vx)} L(\Vx, \Vtheta), \\ - \Vtheta^* & = \min_{\Vtheta} J(\Vtheta) . \\ + \Vtheta^* & = \min_{\Vtheta} J(\Vtheta) . \end{align} @@ -495,7 +495,7 @@ CD\,方差低的原因是,其在正相和负相中使用了相同的训练点 -类似于伪似然估计,比率匹配对每个数据点都需要$n$个$\tilde{p}$的估计,因此每次更新的计算代价大约比\,SML的计算代价高出$n$倍。 +类似于伪似然估计,比率匹配对每个数据点都需要$n$个$\tilde{p}$的估计,因此每次更新的计算代价大约比~SML~的计算代价高出$n$倍。 与伪似然估计一样,我们可以认为比率匹配减小了所有只有一个变量不同于训练样本的状态的概率。 @@ -508,7 +508,7 @@ CD\,方差低的原因是,其在正相和负相中使用了相同的训练点 该近似只估计随机选择的目标子集,不需要模型生成完整的样本。 -了解比率匹配渐近效率的理论分析,可以参考~{Marlin11-small}。 +读者可以参考~{Marlin11-small}了解比率匹配渐近效率的理论分析,。 @@ -522,8 +522,8 @@ CD\,方差低的原因是,其在正相和负相中使用了相同的训练点 分布$q(\Vx \mid \Vy)$是一个损坏过程,通常在形成$\Vx$的过程中会向$\Vy$中添加少量噪声。 -去噪得分匹配非常有用,因为在实践中,通常我们不能获取真实的$p_{data}$,而只能得到其样本确定的经验分布。 -给定足够容量,任何一致估计都会使$p_{model}$成为一组以训练点为中心的\,Dirac分布。 +去噪得分匹配非常有用,因为在实践中,通常我们不能获取真实的$p_{\text{data}}$,而只能得到其样本确定的经验分布。 +给定足够容量,任何一致估计都会使$p_{\text{model}}$成为一组以训练点为中心的\,Dirac分布。 考虑在\sec?介绍的渐近一致性上的损失,通过$q$来平滑有助于缓解这个问题。 {Kingma+LeCun-2010}介绍了平滑分布$q$为正态分布噪声的正则化得分匹配。 @@ -547,15 +547,15 @@ SML\,和\,CD\,只估计对数配分函数的梯度,而不是估计配分函数 \log p_{\text{model}} (\RVx) = \log \tilde{p}_{\text{model}} (\RVx; \Vtheta) + c, \end{equation} 其中$c$是$-\log Z(\Vtheta)$的近似。 -不仅仅估计$\Vtheta$,噪声对比估计过程将$c$视为另一参数,使用相同的算法同时估计$\Vtheta$和$c$。 -因此,所得到的$\log p_{\text{model}}(\RVx)$可能并不完全对应有效的概率分布,但随着$c$估计的改进,它将变得越来越接近有效值\footnote{NCE也适用于具有易于处理的,不需要引入额外参数$c$的配分函数的问题。它已经是最令人感兴趣的,估计具有复杂配分函数模型的方法}。 +噪声对比估计过程将$c$视为另一参数,使用相同的算法同时估计$\Vtheta$和$c$,而不是仅仅估计$\Vtheta$,。 +因此,所得到的$\log p_{\text{model}}(\RVx)$可能并不完全对应有效的概率分布,但随着$c$估计的改进,它将变得越来越接近有效值\footnote{NCE~也适用于具有易于处理的,不需要引入额外参数$c$的配分函数的问题。它已经是最令人感兴趣的,估计具有复杂配分函数模型的方法。}。 这种方法不可能使用最大似然作为估计的标准。 最大似然标准可以设置$c$为任意大的值,而不是设置$c$以创建一个有效的概率分布。 -NCE将估计$p(\RVx)$的无监督学习问题转化为学习一个概率二元分类器,其中一个类别对应模型生成的数据。 +NCE~将估计$p(\RVx)$的无监督学习问题转化为学习一个概率二元分类器,其中一个类别对应模型生成的数据。 该监督学习问题中的最大似然估计定义了原始问题的渐近一致估计。 @@ -578,12 +578,12 @@ NCE将估计$p(\RVx)$的无监督学习问题转化为学习一个概率二元 我们可以在训练数据上构造一个类似的联合模型。 -在这种情况下,开关变量决定是从\textbf{数据}还是从噪声分布中抽取$\RVx$。 +在这种情况下,开关变量决定是从\,\textbf{数据}\,还是从噪声分布中抽取$\RVx$。 正式地,$p_{\text{train}}(y = 1) = \frac{1}{2}$,$p_{\text{train}}( \RVx \mid y = 1) = p_{\text{data}}( \RVx)$,和 $p_{\text{train}}(\RVx \mid y = 0) = p_{\text{noise}}(\RVx)$。 -现在我们可以应用标准的最大似然学习拟合$p_{\text{joint}}$到$p_{\text{train}}$的\textbf{监督}学习问题: +现在我们可以应用标准的最大似然学习拟合$p_{\text{joint}}$到$p_{\text{train}}$的\,\textbf{监督}\,学习问题: \begin{equation} \Vtheta, c = \underset{ \Vtheta, c}{\arg\max} \SetE_{\RVx, \RSy \sim p_{\text{train}}} \log p_{\text{joint}} (y \mid \RVx). @@ -625,7 +625,7 @@ NCE\,能够非常成功地应用于随机变量较少的问题,但即使随机 如果$p_{\text{model}}$学会了眼睛,就算没有学习任何其他面部特征,比如嘴, 它也会拒绝几乎所有的非结构化噪声样本。 -噪声分布$p_{\text{noise}}$必须是易于估计和采样的约束可能是过于严格的限制。 +噪声分布~$p_{\text{noise}}$必须是易于估计和采样的约束可能是过于严格的限制。 当$p_{\text{noise}}$比较简单时,大多数采样可能与数据有着明显不同,而不会迫使$p_{\text{model}}$进行显著改进。 @@ -634,7 +634,7 @@ NCE\,能够非常成功地应用于随机变量较少的问题,但即使随机 同样地,$p_{\text{noise}}$的下界也没有用,因为它只提供了$p_{\text{joint}}( y = 1 \mid \RVx)$的上界。 -当在每个梯度步骤之前,模型分布被复制来定义新的噪声分布时,NCE\,定义了一个被称为自对比估计的过程,其梯度期望等价于最大似然的梯度期望~{cite?}。 +在每个梯度步骤之前,模型分布被复制来定义新的噪声分布时,NCE\,定义了一个被称为自对比估计的过程,其梯度期望等价于最大似然的梯度期望~{cite?}。 特殊情况的\,NCE(噪声采样由模型生成)表明最大似然可以被解释为使模型不断学习以将现实与自身发展的信念区分的过程,而噪声对比估计通过让模型区分现实和固定的基准(噪声模型),我们降低了计算成本。%?? 以 是不是多余的? @@ -734,7 +734,7 @@ NCE\,能够非常成功地应用于随机变量较少的问题,但即使随机 考虑分布序列$p_{\eta_0},\dots,p_{\eta_n}$,其中$0=\eta_0 < \eta_1 < \dots < \eta_{n-1} < \eta_n = 1$,分布序列中的第一个和最后一个分别是$p_0$和$p_1$。 -这种方法使我们能够估计定义在高维空间多峰分布(例如训练\,RBM\,时定义的分布)上的配分函数。 +这种方法使我们能够估计定义在高维空间多峰分布(例如训练~RBM~时定义的分布)上的配分函数。 我们从一个已知配分函数的简单模型(例如,权重为零的\,RBM)开始,估计两个模型配分函数之间的比率。 该比率的估计基于许多个相似分布的比率估计,例如在零和学习到的权重之间插值一组权重不同的\,RBM。 @@ -793,13 +793,13 @@ NCE\,能够非常成功地应用于随机变量较少的问题,但即使随机 -利用由此定义的抽样过程和\eqn?中给出的重要性权重,配分函数的比率估计如下所示: +利用由此定义的采样过程和\eqn?中给出的重要性权重,配分函数的比率估计如下所示: \begin{equation} \frac{Z_1}{Z_0} \approx \frac{1}{K} \sum_{k=1}^K w^{(k)} \end{equation} -为了验证该过程定义的重要采样方案是否有效,我们可以展示{cite?}\,AIS\,过程对应着扩展状态空间上的简单重要采样,其中数据点采样自乘积空间$[\Vx_{\eta_1},\dots,\Vx_{\eta_{n-1}},\Vx_1]$。 +为了验证该过程定义的重要采样方案是否有效,我们可以展示{cite?}~AIS~过程对应着扩展状态空间上的简单重要采样,其中数据点采样自乘积空间$[\Vx_{\eta_1},\dots,\Vx_{\eta_{n-1}},\Vx_1]$。 为此,我们将扩展空间上的分布定义为 \begin{align} &\tilde{p} (\Vx_{\eta_1}, \dots, \Vx_{\eta_{n-1}}, \Vx_1) \\ @@ -831,7 +831,7 @@ NCE\,能够非常成功地应用于随机变量较少的问题,但即使随机 \frac{ \tilde{p}_{\eta_{1}}(\Vx_{\eta_{1}}^{(k)}) }{ \tilde{p}_{0}(\Vx_{0}^{(k)}) } . \end{equation} 这些权重和\,AIS\,上的权重相同。 -因此,我们可以将\,AIS\,解释为应用于扩展状态上的简单重要采样,其有效性紧紧来源于重要采样的有效性。 +因此,我们可以将\,AIS\,解释为应用于扩展状态上的简单重要采样,其有效性直接来源于重要采样的有效性。 @@ -864,24 +864,24 @@ NCE\,能够非常成功地应用于随机变量较少的问题,但即使随机 也就是说,我们会迭代地重新估计比率,并使用每次迭代更新$r$的值。 -\textbf{链接重要采样} +\paragraph{链接重要采样} AIS\,和桥式采样各有优点。 如果$D_{\text{KL}}(p_0 \| p_1)$不太大(由于$p_0$和$p_1$足够接近)的话,那么桥式采样能比\,AIS\,更高效地估计配分函数比率。 然而,如果对于单个分布$p_*$而言,两个分布相距太远难以桥接差距,那么\,AIS\,至少可以使用许多潜在中间分布来跨越$p_0$和$p_1$之间的差距。 {Neal05estimatingratios}展示链接重要采样方法如何利用桥式采样的优点,桥接\,AIS\,中使用的中间分布,并且显著改进了整个配分函数的估计。 -\textbf{在训练期间估计配分函数} +\paragraph{在训练期间估计配分函数} 虽然\,AIS\,已经被认为是用于估计许多无向模型配分函数的标准方法,但是它在计算上代价很高,以致其在训练期间仍然不很实用。 -近来探索了一些在训练过程中估计配分函数的替代方法。 +研究者探索了一些在训练过程中估计配分函数的替代方法。 -使用桥式采样,短链\,AIS\,和并行回火的组合,{Desjardins+al-NIPS2011}设计了一种在训练过程中追踪\,RBM\,配分函数的方法。 -该方法的基础是,在并行回火方法操作的每个温度下,RBM\,配分函数的独立估计。 +使用桥式采样、短链\,AIS\,和并行回火的组合,{Desjardins+al-NIPS2011}设计了一种在训练过程中追踪\,RBM\,配分函数的方法。 +该策略的基础是,在并行回火方法操作的每个温度下,RBM\,配分函数的独立估计会一直保持。 作者将相邻链(来自并行回火)的配分函数比率的桥式采样估计和跨越时间的\,AIS\,估计组合起来,提出一个在每次迭代学习时估计配分函数的(且方差较小的)方法。 -本章中描述的工具提供了许多不同的方法,以解决难求解配分函数的问题,但是在训练和使用生成模型时,可能会存在一些其他问题。 +本章中描述的工具提供了许多不同的方法,以解决难处理的配分函数问题,但是在训练和使用生成模型时,可能会存在一些其他问题。 其中最重要的是我们接下来会遇到的难以推断的问题。 diff --git a/docs/_posts/2016-12-19-Chapter19_approximate_inference.md b/docs/_posts/2016-12-19-Chapter19_approximate_inference.md index 57668ef..ce58896 100644 --- a/docs/_posts/2016-12-19-Chapter19_approximate_inference.md +++ b/docs/_posts/2016-12-19-Chapter19_approximate_inference.md @@ -8,25 +8,25 @@ share: false 许多概率模型很难训练的原因是很难进行推断。 在深度学习中,通常我们有一系列可见变量$\Vv$和一系列潜变量 $\Vh$。 -难以推断的原因在于难以计算$p(\Vh\mid\Vv)$或其期望。 -而这样的操作在一些诸如最大似然估计的任务中往往是必需的。 +推断困难通常是指难以计算$p(\Vh\mid\Vv)$或其期望。 +而这样的操作在一些诸如最大似然学习的任务中往往是必需的。 -许多仅含一层的简单图模型会定义成易于计算$p(\Vh\mid\Vv)$或其期望的形式,例如受限玻尔兹曼机和概率PCA。 +许多仅含一个隐藏层的简单图模型会定义成易于计算$p(\Vh\mid\Vv)$或其期望的形式,例如受限玻尔兹曼机和概率PCA。 不幸的是,大多数具有多层隐藏变量的图模型的后验分布都很难处理。 对于这些模型而言,精确推断算法需要指数量级的运行时间。 即使一些只有单层的模型,如稀疏编码,也存在着这样的问题。 -在本章中,我们将会介绍几个基本的技巧,用来解决这些难以处理的推断问题。 +在本章中,我们将会介绍几个用来解决这些难以处理的推断问题的技巧。 稍后,在\chap?中,我们还将描述如何将这些技巧应用到训练其他方法难以奏效的概率模型中,如深度信念网络、深度玻尔兹曼机。 在深度学习中难以处理的推断问题通常源于结构化图模型中潜变量之间的相互作用。 -可以参考\fig?的几个例子。 +读者可以参考\fig?的几个例子。 这些相互作用可能是无向模型的直接相互作用,也可能是有向模型中同一个可见变量的共同祖先之间的"相消解释"作用。 @@ -54,18 +54,19 @@ share: false -# 推断是一个优化问题 +# 把推断视作优化问题 -许多难以利用观察值进行精确推断的问题往往可以描述为一个优化问题。 + +精确推断问题可以描述为一个优化问题,有许多方法正是由此解决了推断的困难。 通过近似这样一个潜在的优化问题,我们往往可以推导出近似推断算法。 为了构造这样一个优化问题,假设我们有一个包含可见变量$\Vv$和潜变量 $\Vh$的概率模型。 -我们希望计算观察数据的概率对数$\log p(\Vv;\Vtheta)$。 -有时候如果边缘化消去$\Vh$的操作很费时,我们通常很难计算$\log p(\Vv;\Vtheta)$。 +我们希望计算观察数据的对数概率$\log p(\Vv;\Vtheta)$。 +有时候如果边缘化消去$\Vh$的操作很费时,我们会难以计算$\log p(\Vv;\Vtheta)$。 作为替代,我们可以计算一个$\log p(\Vv;\Vtheta)$的下界$\CalL(\Vv,{\Vtheta},q)$。 这个下界被称为证据下界。 这个下界的另一个常用名称是负变分自由能。 @@ -78,8 +79,7 @@ share: false -因为$\log p(\Vv)$和$\CalL(\Vv,{\Vtheta},q)$之间的距离是由\,KL散度来衡量的。 -因为\,KL散度总是非负的,我们可以发现$\CalL$总是小于等于所求的概率对数。 +因为$\log p(\Vv)$和$\CalL(\Vv,{\Vtheta},q)$之间的距离是由~KL散度来衡量的,且~KL散度总是非负的,我们可以发现$\CalL$总是小于等于所求的对数概率。 当且仅当分布$q$完全相等于$p(\Vh\mid\Vv)$时取到等号。 @@ -103,7 +103,7 @@ share: false 对于一个较好的分布$q$的选择来说,$\CalL$是容易计算的。 对任意分布$q$的选择来说,$\CalL$提供了似然函数的一个下界。 -越好地近似$p(\Vh\mid\Vv)$的分布$q(\Vh\mid\Vv)$得到的下界就越紧,换言之,就是与$\log p(\Vv)$更加接近。 +越好地近似$p(\Vh\mid\Vv)$的分布$q(\Vh\mid\Vv)$,得到的下界就越紧,换言之,就是与$\log p(\Vv)$更加接近。 当$q(\Vh\mid\Vv) = p(\Vh\mid\Vv)$时,这个近似是完美的,也意味着$\CalL(\Vv,{\Vtheta},q) = \log {p(\Vv;{\Vtheta})} $。 @@ -111,7 +111,9 @@ share: false 因此我们可以将推断问题看作是找一个分布$q$使得$\CalL$最大的过程。 精确推断能够在包含分布$p(\Vh\mid\Vv)$的函数族中搜索一个函数,完美地最大化$\CalL$。 在本章中,我们将会讲到如何通过近似优化寻找分布$q$的方法来推导出不同形式的近似推断。 -我们可以通过限定分布$q$的形式或者使用并不彻底的优化方法来使得优化的过程更加高效(却更粗略),但是优化的结果是不完美的,因为只能显著地提升$\CalL$而无法彻底地最大化$\CalL$。 +我们可以通过限定分布$q$的形式或者使用并不彻底的优化方法来使得优化的过程更加高效(却更粗略),但是优化的结果是不完美的, +不求彻底地最大化$\CalL$,而只要显著地提升$\CalL$。 + @@ -128,18 +130,18 @@ share: false 我们介绍的第一个最大化下界$\CalL$的算法是期望最大化算法。 在潜变量模型中,这是一个非常常见的训练算法。 -在这里我们描述 {emview} 所提出的\,EM\,算法。 -与大多数我们在本章中介绍的其他算法不同的是,EM\,并不是一个近似推断算法,而是一种能够学到近似后验的算法。 +在这里我们描述 {emview} 所提出的~EM~算法。 +与大多数我们在本章中介绍的其他算法不同的是,EM~并不是一个近似推断算法,而是一种能够学到近似后验的算法。 -EM算法由交替迭代直到收敛的两步运算组成: +EM算法由交替迭代,直到收敛的两步运算组成: + E步: 令${\Vtheta^{(0)}}$表示在这一步开始时的参数值。 对任何我们想要训练的(对所有的或者小批量数据均成立)索引为$i$的训练样本$\Vv^{(i)}$,令$q(\Vh^{(i)}\mid \Vv) = p(\Vh^{(i)}\mid\Vv^{(i)};\Vtheta^{(0)})$。 通过这个定义,我们认为$q$在\emph{当前}参数$\Vtheta^{(0)}$下定义。 如果我们改变$\Vtheta$,那么$p(\Vh\mid\Vv;\Vtheta)$将会相应地变化,但是$q(\Vh\mid\Vv)$还是不变并且等于$p(\Vh\mid\Vv;\Vtheta^{(0)})$。 -+ M步:使用选择的优化算法完全地或者部分地最大化关于$\Vtheta$的 ++ M步:使用选择的优化算法完全地或者部分地关于$\Vtheta$最大化 \begin{align} \sum_i \CalL(\Vv^{(i)},\Vtheta,q). \end{align} @@ -152,29 +154,29 @@ EM算法由交替迭代直到收敛的两步运算组成: -基于潜变量模型的随机梯度上升可以被看作是一个\,EM\,算法的特例,其中M步包括了单次梯度操作。 -EM\,算法的其他变种可以实现多次梯度操作。 +基于潜变量模型的随机梯度上升可以被看作是一个~EM~算法的特例,其中~M步包括了单次梯度操作。 +EM~算法的其他变种可以实现多次梯度操作。 对一些模型族来说,M步甚至可以通过推出解析解直接完成,不同于其他方法,在给定当前$q$的情况下直接求出最优解。 -即使E步采用的是精确推断,我们仍然可以将\,EM\,算法视作是某种程度上的近似推断。 +尽管E步采用的是精确推断,我们仍然可以将~EM~算法视作是某种程度上的近似推断。 具体地说,M步假设一个分布$q$可以被所有的$\Vtheta$值分享。 -当\,M步越来越远离\,E步中的$\Vtheta^{(0)}$时,这将会导致$\CalL$和真实的$\log p(\Vv)$之间出现差距。 +当~M步越来越远离~E步中的$\Vtheta^{(0)}$时,这将会导致$\CalL$和真实的$\log p(\Vv)$之间出现差距。 幸运的是,在进入下一个循环时,E步把这种差距又降到了$0$。 -EM\,算法还包含一些不同的解释。 -首先,学习过程的一个基本思路就是,我们通过更新模型参数来提高整个数据集的似然,其中缺失变量的值是通过后验分布来估计的。 -这种特定的性质并不仅仅适用于\,EM\,算法。 -例如,使用梯度下降来最大化似然函数的对数的方法也利用了相同的性质。 +EM~算法还包含一些不同的见解。 +首先,它包含了学习过程的一个基本框架,就是我们通过更新模型参数来提高整个数据集的似然,其中缺失变量的值是通过后验分布来估计的。 +这种特定的性质并不是~EM~算法独有的。 +例如,使用梯度下降来最大化对数似然函数的方法也有相同的性质。 计算对数似然函数的梯度需要对隐藏单元的后验分布求期望。 -EM\,算法另一个关键的性质是当我们移动到另一个$\Vtheta$时候,我们仍然可以使用旧的分布$q$。 -在传统机器学习中,这种特有的性质在推导大\,M步更新时候得到了广泛的应用。 -在深度学习中,大多数模型太过于复杂以致于在最优大\,M步更新中很难得到一个简单的解。 -所以\,EM\,算法的第二个特质,更多为其所独有,较少被使用。 +EM~算法另一个关键的性质是当我们移动到另一个$\Vtheta$时候,我们仍然可以使用旧的分布$q$。 +在传统机器学习中,这种特有的性质在推导大~M步更新时候得到了广泛的应用。 +在深度学习中,大多数模型太过于复杂以致于在最优大~M步更新中很难得到一个简单的解。 +所以~EM~算法的第二个特质,更多为其所独有,较少被使用。 @@ -186,19 +188,19 @@ EM\,算法另一个关键的性质是当我们移动到另一个$\Vtheta$时候 我们通常使用推断这个术语来指代给定一些其他变量的情况下计算某些变量概率分布的过程。 当训练带有潜变量的概率模型时,我们通常关注于计算$p(\Vh\mid\Vv)$。 -另一种可选的推断形式是计算一个最有可能的潜变量值来代替在所有可能值的完整分布上的推断。 +另一种可选的推断形式是计算一个缺失变量的最可能值来代替在所有可能值的完整分布上的推断。 在潜变量模型中,这意味着计算 \begin{align} \Vh^* = \underset{\Vh}{\arg\max} \ \ p(\Vh\mid\Vv). \end{align} -这被称作最大后验推断,简称MAP推断。 +这被称作最大后验推断,简称~MAP~推断。 -MAP\,推断并不是一种近似推断,它只是精确地计算了最有可能的一个$\Vh^*$。 -然而,如果我们希望能够最大化$\CalL(\Vv,\Vh,q)$,那么我们可以把\,MAP\,推断看成是输出一个$q$值的学习过程。%是很有帮助的。 -在这种情况下,我们可以将\,MAP\,推断看成是近似推断,因为它并不能提供一个最优的$q$。 +MAP~推断并不被视作是一种近似推断,它只是精确地计算了最有可能的一个$\Vh^*$。 +然而,如果我们希望设计一个最大化$\CalL(\Vv,\Vh,q)$的学习过程,那么把~MAP~推断视作是输出一个$q$值的学习过程是很有帮助的。 +在这种情况下,我们可以将~MAP~推断视作是近似推断,因为它并不能提供一个最优的$q$。 @@ -208,7 +210,7 @@ MAP\,推断并不是一种近似推断,它只是精确地计算了最有可能 \CalL(\Vv,{\Vtheta},q) = \SetE_{\RVh\sim q}[\log p(\Vh , \Vv)] + H(q). \end{align} -我们通过限定分布$q$属于某个分布族,能够使得\,MAP\,推断成为一种形式的近似推断。 +我们通过限定分布$q$属于某个分布族,能够使得~MAP~推断成为一种形式的近似推断。 具体地说,我们令分布$q$满足一个\,Dirac分布: \begin{align} q(\Vh\mid\Vv) = \delta(\Vh - {\Vmu}). @@ -218,7 +220,7 @@ q(\Vh\mid\Vv) = \delta(\Vh - {\Vmu}). \begin{align} \Vmu^* = \underset{\Vmu}{\arg\max}\ \log p(\Vh = \Vmu,\Vv), \end{align} -这等价于MAP推断问题 +这等价于~MAP~推断问题 \begin{align} \Vh^* = \underset{\Vh}{\arg\max}\ p(\Vh\mid\Vv). \end{align} @@ -227,20 +229,20 @@ q(\Vh\mid\Vv) = \delta(\Vh - {\Vmu}). -因此我们能够解释一种类似于\,EM\,算法的学习算法,其中我们轮流迭代两步,一步是用\,MAP\,推断估计出$\Vh^*$,另一步是更新$\Vtheta$来增大$\log p(\Vh^*,\Vv)$。 -从\,EM\,算法角度看,这也是对$\CalL$的一种形式的坐标上升,交替迭代时通过推断来优化关于$q$的$\CalL$以及通过参数更新来优化关于$\Vtheta$的$\CalL$。 +因此我们能够证明一种类似于~EM~算法的学习算法,其中我们轮流迭代两步,一步是用~MAP~推断估计出$\Vh^*$,另一步是更新$\Vtheta$来增大$\log p(\Vh^*,\Vv)$。 +从~EM~算法角度看,这也是对$\CalL$的一种形式的坐标上升,交替迭代时通过推断来优化关于$q$的$\CalL$以及通过参数更新来优化关于$\Vtheta$的$\CalL$。 作为一个整体,这个算法的正确性可以得到保证,因为$\CalL$是$\log p(\Vv)$的下界。 -在\,MAP\,推断中,这个保证是无效的,因为这个界会无限地松,由于\,Dirac分布的熵的微分趋近于负无穷。 +在~MAP~推断中,这个保证是无效的,因为~Dirac分布的熵的微分趋近于负无穷,使得这个界会无限地松。 然而,人为加入一些$\Vmu$的噪声会使得这个界又有了意义。 -MAP\,推断作为特征提取器以及一种学习机制被广泛地应用在了深度学习中。 -在稀疏编码模型中,它起到了关键作用。 +MAP~推断作为特征提取器以及一种学习机制被广泛地应用在了深度学习中。 +它主要用于稀疏编码模型中。 -我们回过头来看\sec?中的稀疏编码,稀疏编码是一种在隐藏单元上加上了鼓励稀疏的先验知识的线性因子模型。 +我们回过头来看\sec?中的稀疏编码,稀疏编码是一种在隐藏单元上加上了诱导稀疏性的先验知识的线性因子模型。 一个常用的选择是可分解的Laplace先验,表示为 \begin{align} p(h_i) = \frac{\lambda}{2} \exp(-\lambda \vert h_i \vert). @@ -256,18 +258,18 @@ p(\Vv\mid\Vh) = \CalN(\Vv;{\MW}\Vh + \Vb,\beta^{-1}{\MI}). 每一对$h_i$, $h_j$变量都是$\Vv$的母节点。 这也意味着当$\Vv$可被观察时,图模型包含了一条连接$h_i$和$h_j$的活跃路径。 因此$p(\Vh \mid\Vv)$中所有的隐藏单元都包含在了一个巨大的团中。 -如果模型是高斯,那么这些相互作用关系可以通过协方差矩阵来高效地建模。 -然而稀疏型先验使得这些相互作用关系并不是高斯。 +如果是高斯模型,那么这些相互作用关系可以通过协方差矩阵来高效地建模。 +然而稀疏型先验使得这些相互作用关系并不服从高斯分布。 -分布$p(\Vx\mid\Vh)$的复杂性导致了似然函数的对数及其梯度也很难得到。 +分布$p(\Vx\mid\Vh)$的难处理性导致了对数似然及其梯度也很难得到。 因此我们不能使用精确的最大似然估计来进行学习。 -取而代之的是,我们通过MAP推断以及最大化由以$\Vh$为中心的\,Dirac分布所定义而成的\,ELBO\,来学习模型参数。 +取而代之的是,我们通过~MAP~推断以及最大化由以$\Vh$为中心的\,Dirac分布所定义而成的~ELBO~来学习模型参数。 -如果我们将训练集中所有的向量$\Vh$拼在一起并且记为$\MH$,并将所有的向量$\Vv$拼起来组成矩阵$\MV$,那么稀疏编码问题意味着最小化 +如果我们将训练集中所有的向量$\Vh$拼成矩阵$\MH$,并将所有的向量$\Vv$拼起来组成矩阵$\MV$,那么稀疏编码问题意味着最小化 \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} @@ -275,10 +277,10 @@ p(\Vv\mid\Vh) = \CalN(\Vv;{\MW}\Vh + \Vb,\beta^{-1}{\MI}). -我们可以通过交替迭代最小化$J$分别关于$\MH$和$\MW$的方式来最小化$J$。 +我们可以通过交替迭代,分别关于$\MH$和$\MW$最小化$J$的方式来最小化$J$。 两个子问题都是凸的。 事实上,关于$\MW$的最小化问题就是一个线性回归问题。 -然而关于这两个变量同时最小化$J$的问题并不是凸的。 +然而关于这两个变量同时最小化$J$的问题通常并不是凸的。 @@ -287,18 +289,18 @@ p(\Vv\mid\Vh) = \CalN(\Vv;{\MW}\Vh + \Vb,\beta^{-1}{\MI}). -# 变分推断和学习 +# 变分推断和变分学习 我们已经说明过了为什么证据下界 $\CalL(\Vv,\Vtheta,q)$是$\log p(\Vv;\Vtheta)$的一个下界、如何将推断看作是关于分布$q$最大化$\CalL$ 的过程以及如何将学习看作是关于参数$\Vtheta$最大化$\CalL$的过程。 -我们也讲到了\,EM\,算法在给定了分布$q$的条件下能够进行大学习步骤,而基于\,MAP\,推断的学习算法则是学习一个$p(\Vh \mid \Vv)$的点估计而非推断整个完整的分布。 +我们也讲到了~EM~算法在给定了分布$q$的条件下能够进行大学习步骤,而基于~MAP~推断的学习算法则是学习一个$p(\Vh \mid \Vv)$的点估计而非推断整个完整的分布。 在这里我们介绍一些变分学习中更加通用的算法。 - -变分学习的核心思想就是我们通过选择给定有约束的分布族中一个分布$q$来最大化$\CalL$。 + +变分学习的核心思想就是我们在一个关于$q$的有约束的分布族上最大化$\CalL$。 选择这个分布族时应该考虑到计算$\SetE_q \log p(\Vh,\Vv)$的难易度。 一个典型的方法就是添加分布$q$如何分解的假设。 @@ -327,10 +329,10 @@ p(\Vv\mid\Vh) = \CalN(\Vv;{\MW}\Vh + \Vb,\beta^{-1}{\MI}). 因为$\CalL(\Vv,\Vtheta,q)$被定义成$\log p(\Vv;\Vtheta) - D_{\text{KL}} (q(\Vh\mid\Vv) \Vert p(\Vh\mid\Vv;\Vtheta) )$,我们可以认为关于$q$最大化$\CalL$的问题等价于(关于$q$)最小化$D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv))$。 在这种情况下,我们要用$q$来拟合$p$。 -然而,与以前方法不同,我们使用\,KL散度的相反方向来拟合一个近似。 +然而,与以前方法不同,我们使用~KL散度的相反方向来拟合一个近似。 当我们使用最大似然估计来用模型拟合数据时,我们最小化$D_{\text{KL}}(p_{\text{data}} \Vert p_{\text{model}})$。 -如\fig?所示,这意味着最大似然促进模型在每一个数据达到更高概率的地方达到更高的概率,而基于优化的推断则促进了$q$在每一个真实后验分布概率较低的地方概率较小。 -这两种基于\,KL散度的方法都有各自的优点与缺点。 +如\fig?所示,这意味着最大似然鼓励模型在每一个数据达到高概率的地方达到高概率,而基于优化的推断则鼓励了$q$在每一个真实后验分布概率低的地方概率较小。 +这两种基于~KL散度的方法都有各自的优点与缺点。 选择哪一种方法取决于在具体每一个应用中哪一种性质更受偏好。 在基于优化的推断问题中,从计算角度考虑,我们选择使用$D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv))$。 具体地说,计算$D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv))$涉及到了计算分布$q$下的期望。 @@ -356,43 +358,41 @@ KL散度的相反方向需要计算真实后验分布下的期望。 在确定了如何表示分布$q$以后,我们只需要优化它的参数。 在离散型潜变量模型中,这是一个标准的优化问题。 -基本上分布$q$的选择可以通过任何优化算法解决,比如说梯度下降算法。 +基本上分布$q$的选择可以通过任何优化算法解决,比如梯度下降算法。 -这个优化问题可以很快求解,因为它在许多学习算法的内循环中出现。 +因为它在许多学习算法的内循环中出现,所以这个优化问题必须可以很快求解。 为了追求速度,我们通常使用特殊设计的优化算法。 这些算法通常能够在极少的循环内解决一些小而简单的问题。 一个常见的选择是使用不动点方程,换句话说,就是解关于$\hat{h}_i$的方程 -\begin{align} - \frac{\partial}{\partial \hat{h}_i}\CalL = 0. -\end{align} +\begin{equation} +\frac{\partial}{\partial \hat{h}_i}\CalL = 0. +\end{equation} 我们反复地更新$\hat{\Vh}$不同的元素直到满足收敛准则。 为了具体化这些描述,我们接下来会讲如何将变分推断应用到二值稀疏编码模型(这里我们所描述的模型是 {henniges2010binary} 提出的,但是我们采用了传统、通用的均值场方法,而原文作者采用了一种特殊设计的算法)中。 -推导过程在数学上非常详细,为希望完全了解我们描述过的变分推断和学习高级概念描述的读者所准备。 -而对于并不计划推导或者实现变分学习算法的读者来说,可以放心跳过,直接阅读下一节,这并不会导致新的高级概念的遗漏。 +数学推导过程非常详细,为希望完全了解我们描述过的变分推断和变分学习高级概念描述的读者所准备。 +而对于并不计划推导或者实现变分学习算法的读者来说,可以放心跳过,直接阅读下一节,这并不会遗漏新的高级概念。 建议那些从事二值稀疏编码研究的读者可以重新看一下\sec?中描述的一些经常在概率模型中出现的有用的函数性质。 我们在推导过程中随意地使用了这些性质,并没有特别强调它们。 在二值稀疏编码模型中,输入$\Vv\in\SetR^n$,是由模型通过添加高斯噪声到$m$个或有或无的不同成分的和而生成的。 -每一个成分可以是开或者关的,对应着隐藏单元 $\Vh \in\{0,1\}^m$: -\begin{align} - p(h_i = 1) = \sigma(b_i), -\end{align} +每一个成分可以是开或者关的,对应着隐藏单元~$\Vh \in\{0,1\}^m$: \begin{align} - p(\Vv\mid\Vh) = \CalN(\Vv;\MW \Vh,{\Vbeta}^{-1}), +p(h_i = 1) &= \sigma(b_i), \\ +p(\Vv\mid\Vh) &= \CalN(\Vv;\MW \Vh,{\Vbeta}^{-1}), \end{align} -其中$\Vb$是一个可以学习的偏差集合,$\MW$是一个可以学习的权值矩阵,${\Vbeta}$是一个可以学习的对角精度矩阵。 +其中$\Vb$是一个可以学习的偏置集合,$\MW$是一个可以学习的权值矩阵,${\Vbeta}$是一个可以学习的对角精度矩阵。 使用最大似然来训练这样一个模型需要对参数进行求导。 -我们考虑对其中一个偏差进行求导的过程: +我们考虑对其中一个偏置进行求导的过程: \begin{align} & \frac{\partial}{\partial b_i} \log p(\Vv) \\ = & \frac{\frac{\partial}{\partial b_i} p(\Vv)}{p(\Vv)}\\ @@ -408,7 +408,7 @@ KL散度的相反方向需要计算真实后验分布下的期望。 这需要计算$p(\Vh\mid\Vv)$下的期望。 不幸的是,$p(\Vh\mid\Vv)$是一个很复杂的分布。 关于$p(\Vh,\Vv)$和$p(\Vh\mid\Vv)$的图结构可以参考\fig?。 -隐藏单元的后验分布对应的是关于隐藏单元的完全图,所以相对于暴力算法,消元算法并不能有助于提高计算所需要的期望的效率。 +隐藏单元的后验分布对应的是关于隐藏单元的完全图,所以相对于暴力算法,变量消去算法并不能有助于提高计算期望的效率。 @@ -432,14 +432,14 @@ KL散度的相反方向需要计算真实后验分布下的期望。 我们可以做一个均值场近似: -\begin{align} +\begin{equation} q(\Vh\mid\Vv) = \prod_{i}^{}q(h_i\mid\Vv). -\end{align} +\end{equation} -二值稀疏编码中的潜变量是二值的,所以为了表示可分解的$q$我们假设对$m$个\,Bernoulli分布 $q(h_i\mid\Vv)$建模。 -表示\,Bernoulli分布的一种很自然的方法是使用一个概率向量$\hat{\Vh}$,满足$q(h_i\mid\Vv) = \hat{h}_i$。 +二值稀疏编码中的潜变量是二值的,所以为了表示可分解的$q$我们假设对$m$个~Bernoulli分布 $q(h_i\mid\Vv)$建模。 +表示~Bernoulli分布的一种很自然的方法是使用一个概率向量$\hat{\Vh}$,满足$q(h_i\mid\Vv) = \hat{h}_i$。 为了避免计算中的误差,比如说计算$\log \hat{h}_i$时,我们对$\hat{h}_i$添加一个约束,即$\hat{h}_i$不等于$0$或者$1$。 @@ -476,7 +476,7 @@ KL散度的相反方向需要计算真实后验分布下的期望。 原则上说,我们可以使用关于$\Vv$和$\Vh$的梯度上升。 -这会成为一个完美的组合的\footnote{译者注:推断算法和学习算法的组合}推断和学习算法。 +这会成为一个推断和学习算法的完美组合。%\footnote{译者注:推断算法和学习算法的组合} 但是,由于两个原因,我们往往不这么做。 第一点,对每一个$\Vv$我们需要存储$\hat{\Vh}$。 我们通常更加偏向于那些不需要为每一个样本都准备内存的算法。 @@ -494,9 +494,9 @@ KL散度的相反方向需要计算真实后验分布下的期望。 不动点方程的核心思想是我们寻找一个关于$\Vh$的局部极大点,满足$\nabla_{\Vh}\CalL(\Vv,\Vtheta,\hat{\Vh}) = 0$。 我们无法同时高效地计算所有$\hat{\Vh}$的元素。 然而,我们可以解决单个变量的问题: -\begin{align} +\begin{equation} \frac{\partial}{\partial \hat{h}_i} \CalL(\Vv,\Vtheta,\hat{\Vh}) = 0 . -\end{align} +\end{equation} @@ -560,7 +560,7 @@ KL散度的相反方向需要计算真实后验分布下的期望。 在这个例子中,我们已经推导出了每一次更新单个结点的更新规则。 如果能够同时更新更多的结点,那会更令人满意。 -某些图模型,比如\,DBM,我们可以同时解出$\hat{\Vh}$中的许多元素。 +某些图模型,比如深度玻尔兹曼机,我们可以同时解出$\hat{\Vh}$中的许多元素。 不幸的是,二值稀疏编码并不适用这种块更新。 取而代之的是,我们使用一种被称为衰减的启发式技巧来实现块更新。 在衰减方法中,对$\hat{\Vh}$中的每一个元素我们都可以解出最优值,然后对于所有的值都在这个方向上移动一小步。 @@ -677,7 +677,7 @@ KL散度的相反方向需要计算真实后验分布下的期望。 那最小化熵的概率密度函数是什么样的呢? 为什么我们无法发现对应着极小点的第二个临界点呢? 原因是没有一个特定的函数能够达到最小的熵值。 -当函数把越多的概率密度加到$x = \mu + \sigma$和$x = \mu - \sigma$两个点上和越少的概率密度到其他点上时,它们的熵值会减少,而方差却不变。 +当函数把越多的概率密度加到$x = \mu + \sigma$和$x = \mu - \sigma$两个点上,越少的概率密度到其他点上时,它们的熵值会减少,而方差却不变。 然而任何把所有的权重都放在这两点的函数的积分都不为$1$,不是一个有效的概率分布。 所以不存在一个最小熵的概率密度函数,就像不存在一个最小的正实数一样。 然而,我们发现存在一个收敛的概率分布的序列,收敛到权重都在两个点上。 @@ -685,7 +685,7 @@ KL散度的相反方向需要计算真实后验分布下的期望。 因为\,Dirac分布并不是一个单独的概率密度函数,所以\,Dirac分布或者混合\,Dirac分布并不能对应函数空间的一个点。 所以对我们来说,当寻找一个泛函导数为$0$的函数空间的点时,这些分布是不可见的。 这就是这种方法的局限之处。 -诸如\,Dirac分布这样的分布可以通过其他方法被找到,比如可以被猜到,然后证明它是满足条件的。 +诸如\,Dirac分布这样的分布可以通过其他方法被找到,比如可以先猜测一个解,然后证明它是满足条件的。 @@ -696,14 +696,14 @@ KL散度的相反方向需要计算真实后验分布下的期望。 -当我们的图模型包含连续型潜变量时,我们仍然可以通过最大化$\CalL$进行变分推断和学习。 +当我们的图模型包含连续型潜变量时,我们仍然可以通过最大化$\CalL$进行变分推断和变分学习。 然而,我们需要使用变分法来实现关于$q(\Vh\mid\Vv)$最大化$\CalL$。 在大多数情况下,研究者并不需要解决任何变分法的问题。 -取而代之的是,均值场固定点迭代更新有一种通用的方程。 +取而代之的是,均值场固定点迭代更新有一个通用的方程。 如果我们做了均值场近似: \begin{align} q(\Vh\mid\Vv) = \prod_i q(h_i \mid\Vv), @@ -747,7 +747,7 @@ KL散度的相反方向需要计算真实后验分布下的期望。 \propto & \exp \big(-\frac{1}{2} [h_1^2 + h_2^2 + (v-h_1w_1 - h_2w_2)^2]\big)\\ = & \exp \big( - \frac{1}{2} [h_1^2 + h_2^2 + v^2 + h_1^2w_1^2 + h_2^2w_2^2 - 2vh_1w_1 - 2vh_2w_2 + 2h_1w_1h_2w_2] \big). \end{align} -在上式中,我们发现由于带有$h_1,h_2$乘积项的存在,真实的后验并不能将$h_1,h_2$分开。 +在上式中,我们发现由于带有$h_1,h_2$乘积项的存在,真实的后验并不能关于$h_1,h_2$分解。 @@ -772,7 +772,8 @@ $\SetE_{\RSh_2\sim q(\RSh\mid\Vv)}[h_2]$和$\SetE_{\RSh_2\sim q(\RSh\mid\Vv)}[h_ 从这里,我们可以发现$\tilde{q}$的泛函形式满足高斯分布。 因此,我们可以得到$q(\Vh\mid\Vv) = \CalN(\Vh;\Vmu,\Vbeta^{-1})$,其中$\Vmu$和对角的$\Vbeta$是变分参数,我们可以使用任何方法来优化它。 -有必要再强调一下,我们并没有假设$q$是一个高斯分布,这个高斯的形式是使用变分法来最大化关于$\CalL$的分布$q$\footnote{此处似乎有笔误。}推导出的。 %?? 什么笔误啊。。。 最大化L关于q 还是 最大化q关于L + +有必要再强调一下,我们并没有假设$q$是一个高斯分布,这个高斯的形式是使用变分法来关于分布$q$最大化$\CalL$而推导出来的。 在不同的模型上应用相同的方法可能会得到不同泛函形式的分布$q$。 @@ -802,11 +803,11 @@ $\SetE_{\RSh_2\sim q(\RSh\mid\Vv)}[h_2]$和$\SetE_{\RSh_2\sim q(\RSh\mid\Vv)}[h_ 这种行为使得我们做的近似假设变得合理。 %这种行为使我们的近似假设成为自我实现。 -如果我们用单峰值近似后验来训练模型,我们将获得一个真实后验的模型,该模型比我们使用精确推断训练模型获得的模型更接近单峰值。 +如果我们用单峰值近似后验来训练模型,那么所得具有真实后验的模型会比我们使用精确推断训练模型获得的模型更接近单峰值。 %?? -因此,估计由于变分近似对模型的破坏程度是很困难的。 +因此,估计变分近似对模型的破坏程度是很困难的。 存在几种估计$\log p(\Vv)$的方式。 通常我们在训练模型之后估计$\log p(\Vv;\Vtheta)$,然后发现它和$\CalL(\Vv,\Vtheta,q)$的差距是很小的。 从这里我们可以得出结论,对于特定的从学习过程中获得的$\Vtheta$来说,变分近似是很准确的。 @@ -833,7 +834,8 @@ $\CalL(\Vv,\Vtheta,q)\approx \log p(\Vv;\Vtheta)$和$\log p(\Vv;\Vtheta)\ll \log ## 醒眠算法 - %?? wake_sleep 翻译成 醒眠 你斟酌下 + + 训练一个可以用$\Vv$来推断$\Vh$的模型的一个主要难点在于我们没有一个监督训练集来训练模型。 @@ -871,14 +873,14 @@ $\CalL(\Vv,\Vtheta,q)\approx \log p(\Vv;\Vtheta)$和$\log p(\Vv;\Vtheta)\ll \log 这种学成近似推断策略已经被应用到了其他模型中。 -{Salakhutdinov+Larochelle-2010}证明了在学成推断网络中的单一路径相比于在深度玻尔兹曼机中的迭代均值场不动点方程能够得到更快的推断。 +{Salakhutdinov+Larochelle-2010}证明了在学成推断网络中的单遍传递相比于在深度玻尔兹曼机中的迭代均值场不动点方程能够得到更快的推断。 其训练过程基于运行推断网络,然后运行一步均值场来改进其估计,并训练推断网络来输出这个更精细的估计以代替其原始估计。 我们已经在\sec?中看到,预测性的稀疏分解模型训练一个浅层编码器网络,从而预测输入的稀疏编码。 这可以被看作是自编码器和稀疏编码之间的混合。 -为模型设计概率语义是可能的,其中编码器可以被视为执行学成近似\,MAP\,推断。 +为模型设计概率语义是可能的,其中编码器可以被视为执行学成近似~MAP~推断。 由于其浅层的编码器,PSD不能实现我们在均值场推断中看到的单元之间的那种竞争。 然而,该问题可以通过训练深度编码器实现学成近似推断来补救,如ISTA技术~{cite?}。 @@ -890,7 +892,7 @@ $\CalL(\Vv,\Vtheta,q)\approx \log p(\Vv;\Vtheta)$和$\log p(\Vv;\Vtheta)\ll \log 我们将在\sec?中详细介绍这种模型。 -我们可以使用近似推断来训练和使用大量的模型。 +我们可以使用近似推断来训练和使用很多不同的模型。 其中许多模型将在下一章中描述。 diff --git a/docs/_posts/2016-12-20-Chapter20_deep_generative_models.md b/docs/_posts/2016-12-20-Chapter20_deep_generative_models.md index 2c6924a..2fa22c8 100644 --- a/docs/_posts/2016-12-20-Chapter20_deep_generative_models.md +++ b/docs/_posts/2016-12-20-Chapter20_deep_generative_models.md @@ -38,7 +38,7 @@ share: false 当不是所有变量都能被观察到时,玻尔兹曼机变得更强大。 在这种情况下,潜变量类似于多层感知机中的隐藏单元,并模拟可见单元之间的高阶交互。 -正如添加隐藏单元将逻辑回归转换为MLP,导致MLP成为函数的万能近似器,具有隐藏单元的玻尔兹曼机不再局限于建模变量之间的线性关系。 +正如添加隐藏单元将逻辑回归转换为~MLP,导致~MLP~成为函数的万能近似器,具有隐藏单元的玻尔兹曼机不再局限于建模变量之间的线性关系。 相反,玻尔兹曼机变成了离散变量上概率质量函数的万能近似器 {cite?}。 @@ -57,13 +57,13 @@ share: false 这意味着学习规则是"局部"的,这使得玻尔兹曼机的学习似乎在某种程度上是生物学合理的。 我们可以设想每个神经元都是玻尔兹曼机中随机变量的情况,那么连接两个随机变量的轴突和树突只能通过观察与它们物理上实际接触细胞的激发模式来学习。 特别地,正相期间,经常同时激活的两个单元之间的连接会被加强。 -这是Hebbian学习规则{cite?}的一个例子 ,经常总结为好记的短语——"fire together, wire together"。 -Hebbian学习规则是生物系统学习中最古老的假设性解释之一,直至今天仍然有重大意义 {cite?}。 +这是~Hebbian~学习规则{cite?}的一个例子 ,经常总结为好记的短语——"fire together, wire together"。 +Hebbian~学习规则是生物系统学习中最古老的假设性解释之一,直至今天仍然有重大意义 {cite?}。 不仅仅使用局部统计信息的其他学习算法似乎需要假设更多的学习机制。 例如,对于大脑在多层感知机中实现的反向传播,似乎需要维持一个辅助通信的网络,并借此向后传输梯度信息。 -已经有学者{cite?} 提出生物学上可行(和近似)的反向传播实现方案,但仍然有待验证,{Bengio-arxiv2015} 还将梯度的反向传播链接到类似于玻尔兹曼机(但具有连续潜变量)能量模型中的推断。 +已经有学者{cite?} 提出生物学上可行(和近似)的反向传播实现方案,但仍然有待验证,{Bengio-arxiv2015} 还将梯度的反向传播关联到类似于玻尔兹曼机(但具有连续潜变量)的能量模型中的推断。 从生物学的角度看,玻尔兹曼机学习中的负相阶段有点难以解释。 正如\sec?所主张的,人类在睡眠时做梦可能是一种形式的负相采样。 @@ -73,12 +73,12 @@ Hebbian学习规则是生物系统学习中最古老的假设性解释之一, # 受限玻尔兹曼机 受限玻尔兹曼机以簧风琴之名{cite?}面世之后,成为了深度概率模型中最常见的组件之一。 -我们之前在\sec?简要介绍了RBM。 +我们之前在\sec?简要介绍了~RBM。 在这里我们回顾以前的内容并探讨更多的细节。 -RBM是包含一层可观察变量和单层潜变量的无向概率图模型。 -RBM可以堆叠起来(一个在另一个的顶部)形成更深的模型。 +RBM~是包含一层可观察变量和单层潜变量的无向概率图模型。 +RBM~可以堆叠起来(一个在另一个的顶部)形成更深的模型。 \fig?展示了一些例子。 -特别地, \fig?a显示RBM本身的图结构。 +特别地, \fig?a显示~RBM~本身的图结构。 它是一个二分图,观察层或潜层中的任何单元之间不允许存在连接。 @@ -99,17 +99,17 @@ RBM可以堆叠起来(一个在另一个的顶部)形成更深的模型。 \end{tabular} \fi \caption{可以用受限玻尔兹曼机构建的模型示例。 -(a)受限玻尔兹曼机本身是基于二分图的无向图模型,在图的一部分具有可见单元,另一部分具有隐藏单元。可见单元之间没有连接,隐藏单元之间也没有任何连接。通常每个可见单元连接到每个隐藏单元,但也可以构造稀疏连接的RBM,如卷积RBM。 +(a)受限玻尔兹曼机本身是基于二分图的无向图模型,在图的一部分具有可见单元,另一部分具有隐藏单元。可见单元之间没有连接,隐藏单元之间也没有任何连接。通常每个可见单元连接到每个隐藏单元,但也可以构造稀疏连接的~RBM,如卷积~RBM。 (b)深度信念网络是涉及有向和无向连接的混合图模型。 -与RBM一样,它也没有层内连接。 -然而,DBN具有多个隐藏层,因此隐藏单元之间的连接在分开的层中。 -深度信念网络所需的所有局部条件概率分布都直接复制RBM的局部条件概率分布。 +与~RBM~一样,它也没有层内连接。 +然而,DBN~具有多个隐藏层,因此隐藏单元之间的连接在分开的层中。 +深度信念网络所需的所有局部条件概率分布都直接复制~RBM~的局部条件概率分布。 或者,我们也可以用完全无向图表示深度信念网络,但是它需要层内连接来捕获父节点间的依赖关系。 (c)深度玻尔兹曼机是具有几层潜变量的无向图模型。 -与RBM和DBN一样,DBM也缺少层内连接。 -DBM与RBM的联系不如DBN紧密。 -当从RBM堆栈初始化DBM时,有必要对RBM的参数稍作修改。 -某些种类的DBM可以直接训练,而不用先训练一组RBM。 +与~RBM~和~DBN~一样,DBM~也缺少层内连接。 +DBM~与~RBM~的联系不如~DBN~紧密。 +当从~RBM~堆栈初始化~DBM~时,有必要对~RBM~的参数稍作修改。 +某些种类的~DBM~可以直接训练,而不用先训练一组~RBM。 } \end{figure} @@ -139,7 +139,7 @@ RBM的能量函数由下给出 ## 条件分布 -虽然$P(\Vv)$难解,但RBM的二分图结构具有非常特殊的性质,其条件分布$P(\RVh \mid \RVv)$和$P(\RVv\mid\RVh)$是因子的,并且计算和采样是相对简单的。 +虽然$P(\Vv)$难解,但~RBM~的二分图结构具有非常特殊的性质,其条件分布$P(\RVh \mid \RVv)$和$P(\RVv\mid\RVh)$是因子的,并且计算和采样是相对简单的。 @@ -175,9 +175,10 @@ RBM的能量函数由下给出 ## 训练受限玻尔兹曼机 -因为RBM允许以高效MCMC采样(块吉布斯采样的形式)对$\tilde{P}(\Vv)$进行高效评估和求导,所以可以简单地使用\chap?中描述的任意训练具有难解配分函数模型的技术。 -这包括CD、SML(PCD)、比率匹配等。 -与深度学习中使用的其他无向模型相比,RBM可以相对直接地训练,因为我们可以以闭解形式计算$P(\RVh \mid \Vv)$。 + +因为~RBM~允许高效计算$\tilde{P}(\Vv)$的估计和微分,并且还允许高效地(以块吉布斯采样的形式)进行MCMC~采样,所以我们很容易使用\chap?中训练具有难以计算配分函数的模型的技术来训练~RBM。 +这包括~CD、\,SML(PCD)、比率匹配等。 +与深度学习中使用的其他无向模型相比,RBM~可以相对直接地训练,因为我们可以以闭解形式计算$P(\RVh \mid \Vv)$。 其他一些深度模型,如深度玻尔兹曼机,同时具备难处理的配分函数和难以推断的难题。 @@ -195,16 +196,16 @@ RBM的能量函数由下给出 深度信念网络是具有若干潜变量层的生成模型。 潜变量通常是二值的,而可见单元可以是二值或实数。 -尽管构造连接比较稀疏的DBN是可能的,但在一般的模型中,每层的每个单元连接到每个相邻层中的每个单元(没有层内连接)。 +尽管构造连接比较稀疏的~DBN~是可能的,但在一般的模型中,每层的每个单元连接到每个相邻层中的每个单元(没有层内连接)。 顶部两层之间的连接是无向的。 而所有其他层之间的连接是有向的,箭头指向最接近数据的层。 见\fig?b的例子。 -具有$l$个隐藏层的DBN包含$l$个权重矩阵:$\MW^{(1)},\ldots, \MW^{(l)}$。 +具有$l$个隐藏层的~DBN~包含$l$个权重矩阵:$\MW^{(1)},\ldots, \MW^{(l)}$。 同时也包含$l+1$个偏置向量: $\Vb^{(0)},\ldots,\Vb^{(l)}$,其中$\Vb^{(0)}$是可见层的偏置。 -DBN表示的概率分布由下式给出: +DBN~表示的概率分布由下式给出: \begin{align} P(\Vh^{(l)}, \Vh^{(l-1)}) \propto& \exp \big( \Vb^{(l)^\top} \Vh^{(l)} + \Vb^{(l-1)^\top} \Vh^{(l-1)} + \Vh^{(l-1)^\top} \MW^{(l)} \Vh^{(l)} \big), \\ @@ -219,12 +220,12 @@ P(v_i = 1 \mid \Vh^{(1)}) &= \sigma \big( b_i^{(0)} + \MW_{:,i}^{(1)^\top} \V \end{align} 为便于处理,$\Vbeta$为对角形式。 至少在理论上,推广到其他指数族的可见单元是直观的。 -只有一个隐藏层的DBN只是一个RBM。 +只有一个隐藏层的~DBN~只是一个~RBM。 -为了从DBN中生成样本,我们先在顶部的两个隐藏层上运行几个Gibbs采样步骤。 -这个阶段主要从RBM(由顶部两个隐藏层定义)中采一个样本。 +为了从~DBN~中生成样本,我们先在顶部的两个隐藏层上运行几个~Gibbs采样步骤。 +这个阶段主要从~RBM(由顶部两个隐藏层定义)中采一个样本。 然后,我们可以对模型的其余部分使用单次原始采样,以从可见单元绘制样本。 深度信念网络引发许多与有向模型和无向模型同时相关的问题。 @@ -235,44 +236,44 @@ P(v_i = 1 \mid \Vh^{(1)}) &= \sigma \big( b_i^{(0)} + \MW_{:,i}^{(1)^\top} \V 评估或最大化对数似然,不仅需要面对边缘化潜变量时难以处理的推断问题,而且还需要处理顶部两层无向模型内难处理的配分函数问题。 -为训练深度信念网络,我们可以先使用对比散度或随机最大似然方法训练RBM以最大化$ \SetE_{\RVv \sim p_{\text{data}}} \log p(\Vv)$。 -RBM的参数定义了DBN第一层的参数。 -然后,第二个RBM训练为近似最大化 +为训练深度信念网络,我们可以先使用对比散度或随机最大似然方法训练~RBM~以最大化$ \SetE_{\RVv \sim p_{\text{data}}} \log p(\Vv)$。 +\,RBM~的参数定义了~DBN~第一层的参数。 +然后,第二个~RBM~训练为近似最大化 \begin{align} \SetE_{\RVv \sim p_{\text{data}}} \SetE_{\RVh^{(1)} \sim p^{(1)}(\Vh^{(1)} \mid \Vv)} \log p^{(2)}(\Vh^{(1)}) , \end{align} -其中$p^{(1)}$是第一个RBM表示的概率分布,$p^{(2)}$是第二个RBM表示的概率分布。 -换句话说,第二个RBM被训练为模拟由第一个RBM的隐藏单元采样定义的分布,而第一个RBM由数据驱动。 -这个过程能无限重复,从而向DBN添加任意多层,其中每个新的RBM对前一个RBM的样本建模。 -每个RBM定义DBN的另一层。 -这个过程可以被视为提高数据在DBN下似然概率的变分下界{cite?}。 +其中$p^{(1)}$是第一个~RBM~表示的概率分布,$p^{(2)}$是第二个~RBM~表示的概率分布。 +换句话说,第二个~RBM~被训练为模拟由第一个~RBM~的隐藏单元采样定义的分布,而第一个~RBM~由数据驱动。 +这个过程能无限重复,从而向~DBN~添加任意多层,其中每个新的~RBM~对前一个~RBM~的样本建模。 +每个~RBM~定义~DBN~的另一层。 +这个过程可以被视为提高数据在~DBN~下似然概率的变分下界{cite?}。 -在大多数应用中,对DBN进行贪心逐层训练后,不需要再花功夫对其进行联合训练。 +在大多数应用中,对~DBN~进行贪心逐层训练后,不需要再花功夫对其进行联合训练。 然而,使用醒眠算法对其进行生成精调是可能的。 -训练好的DBN可以直接用作生成模型,但是DBN的大多数兴趣来自于它们改进分类模型的能力。 -我们可以从DBN获取权重,并使用它们定义MLP: +训练好的~DBN~可以直接用作生成模型,但是~DBN~的大多数兴趣来自于它们改进分类模型的能力。 +我们可以从~DBN~获取权重,并使用它们定义~MLP: \begin{align} \Vh^{(1)} &= \sigma \big( b^{(1)} + \Vv^\top \MW^{(1)} \big), \\ \Vh^{(l)} &= \sigma \big( b_i^{(l)} + \Vh^{(l-1)^\top}\MW^{(l)} \big) ~\forall l \in 2, \ldots, m. \end{align} -利用DBN的生成训练后获得的权重和偏置初始化该MLP之后,我们可以训练该MLP来执行分类任务。 -这种MLP的额外训练是判别性精调的示例。 +利用~DBN~的生成训练后获得的权重和偏置初始化该~MLP~之后,我们可以训练该~MLP~来执行分类任务。 +这种~MLP~的额外训练是判别性精调的示例。 -与\chap?中从基本原理导出的许多推断方程相比,这种特定选择的MLP有些随意。 -这个MLP是一个启发式选择,似乎在实践中效果不错,并在文献中一贯使用。 -许多近似推断技术是由它们在一些约束下在对数似然上找到最大\emph{紧}变分下界的能力所驱动的。 -我们可以使用DBN中MLP定义的隐藏单元的期望,构造对数似然的变分下界,但这对于隐藏单元上的\emph{任何}概率分布都是如此,并没有理由相信该MLP提供了一个特别的紧界。 -特别地,MLP忽略了DBN图模型中许多重要的相互作用。 -MLP将信息从可见单元向上传播到最深的隐藏单元,但不向下或侧向传播任何信息。 -DBN图模型解释了同一层内所有隐藏单元之间的相互作用以及层之间的自顶向下的相互作用。 +与\chap?中从基本原理导出的许多推断方程相比,这种特定选择的~MLP~有些随意。 +这个~MLP~是一个启发式选择,似乎在实践中效果不错,并在文献中一贯使用。 +许多近似推断技术是由它们在一些约束下,并在对数似然上找到最大\emph{紧}变分下界的能力所驱动的。 +我们可以使用~DBN~中~MLP~定义的隐藏单元的期望,构造对数似然的变分下界,但这对于隐藏单元上的\emph{任何}概率分布都是如此,并没有理由相信该~MLP~提供了一个特别的紧界。 +特别地,MLP~忽略了~DBN~图模型中许多重要的相互作用。 +MLP~将信息从可见单元向上传播到最深的隐藏单元,但不向下或侧向传播任何信息。 +DBN~图模型解释了同一层内所有隐藏单元之间的相互作用以及层之间的自顶向下的相互作用。 -虽然DBN的对数似然是难处理的,但它可以使用AIS近似{cite?}。 +虽然~DBN~的对数似然是难处理的,但它可以使用~AIS~近似{cite?}。 通过近似,可以评估其作为生成模型的质量。 @@ -280,7 +281,7 @@ DBN图模型解释了同一层内所有隐藏单元之间的相互作用以及 这个术语应特指最深层中具有无向连接,而在所有其他连续层之间存在向下有向连接的模型。 这个术语也可能导致一些混乱,因为术语"信念网络"有时指纯粹的有向模型,而深度信念网络包含一个无向层。 -深度信念网络也与动态贝叶斯网络(dynamic Bayesian networks) {cite?}共享首字母缩写DBN,动态贝叶斯网络表示马尔可夫链的贝叶斯网络。 +深度信念网络也与动态贝叶斯网络(dynamic Bayesian networks) {cite?}共享首字母缩写~DBN,动态贝叶斯网络表示马尔可夫链的贝叶斯网络。 @@ -290,8 +291,8 @@ DBN图模型解释了同一层内所有隐藏单元之间的相互作用以及 深度玻尔兹曼机 {cite?}是另一种深度生成模型。 与深度信念网络不同的是,它是一个完全无向的模型。 -与RBM不同的是,DBM有几层潜变量(RBM只有一层)。 -但是像RBM一样,每一层内的每个变量是相互独立的,并条件于相邻层中的变量。 +与~RBM~不同的是,DBM~有几层潜变量(RBM~只有一层)。 +但是像~RBM~一样,每一层内的每个变量是相互独立的,并条件于相邻层中的变量。 见\fig?中的图结构。 深度玻尔兹曼机已经被应用于各种任务,包括文档建模{cite?}。 @@ -306,22 +307,22 @@ DBN图模型解释了同一层内所有隐藏单元之间的相互作用以及 没有层内连接。} \end{figure} -与RBM和DBN一样,DBM通常仅包含二值单元 (正如我们为简化模型的演示而假设的),但很容易就能扩展到实值可见单元。 +与~RBM~和~DBN~一样,DBM~通常仅包含二值单元 (正如我们为简化模型的演示而假设的),但很容易就能扩展到实值可见单元。 -DBM是基于能量的模型,这意味着模型变量的联合概率分布由能量函数 $E$参数化。 +DBM~是基于能量的模型,这意味着模型变量的联合概率分布由能量函数 $E$参数化。 在一个深度玻尔兹曼机包含一个可见层$\Vv$和三个隐藏层 $\Vh^{(1)},\Vh^{(2)}$和$\Vh^{(3)}$的情况下,联合概率由下式给出: \begin{align} P(\Vv, \Vh^{(1)}, \Vh^{(2)}, \Vh^{(3)}) = \frac{1}{Z(\Vtheta)} \exp \big( -E(\Vv, \Vh^{(1)}, \Vh^{(2)}, \Vh^{(3)}; \Vtheta) \big). \end{align} 为简化表示,下式省略了偏置参数。 -DBM能量函数定义如下: +DBM~能量函数定义如下: \begin{align} E(\Vv, \Vh^{(1)}, \Vh^{(2)}, \Vh^{(3)}; \Vtheta) = -\Vv^\top \MW^{(1)}\Vh^{(1)} - \Vh^{(1)^\top}\MW^{(2)}\Vh^{(2)}- \Vh^{(2)^\top}\MW^{(3)}\Vh^{(3)}. \end{align} -与RBM的能量函数(\eqn?)相比,DBM能量函数以权重矩阵($\MW^{(2)}$和$\MW^{(3)}$)的形式表示隐藏单元(潜变量)之间的连接。 +与~RBM~的能量函数(\eqn?)相比,DBM~能量函数以权重矩阵($\MW^{(2)}$和$\MW^{(3)}$)的形式表示隐藏单元(潜变量)之间的连接。 正如我们将看到的,这些连接对模型行为以及我们如何在模型中进行推断都有重要的影响。 @@ -335,14 +336,14 @@ DBM能量函数定义如下: \caption{深度玻尔兹曼机,重新排列后显示为二分图结构。} \end{figure} -与全连接的玻尔兹曼机(每个单元连接到其他每个单元)相比,DBM提供了类似于RBM的一些优点。 +与全连接的玻尔兹曼机(每个单元连接到其他每个单元)相比,DBM~提供了类似于~RBM~的一些优点。 -具体来说, 如\fig?所示,DBM的层可以组织成一个二分图,其中奇数层在一侧,偶数层在另一侧。 +具体来说, 如\fig?所示,DBM~的层可以组织成一个二分图,其中奇数层在一侧,偶数层在另一侧。 容易发现,当我们条件于偶数层中的变量时,奇数层中的变量变得条件独立。 当然,当我们条件于奇数层中的变量时,偶数层中的变量也会变得条件独立。 -DBM的二分图结构意味着我们可以应用之前用于RBM条件分布的相同式子来确定DBM中的条件分布。 -在给定相邻层值的情况下,层内的单元彼此条件独立,因此二值变量的分布可以由Bernoulli参数(描述每个单元的激活概率)完全描述。 +DBM~的二分图结构意味着我们可以应用之前用于~RBM~条件分布的相同式子来确定~DBM~中的条件分布。 +在给定相邻层值的情况下,层内的单元彼此条件独立,因此二值变量的分布可以由~Bernoulli~参数(描述每个单元的激活概率)完全描述。 在具有两个隐藏层的示例中,激活概率由下式给出: \begin{align} P(v_i=1 \mid \Vh^{(1)}) &= \sigma \big( \MW_{i,:}^{(1)}\Vh^{(1)} \big), \\ @@ -356,13 +357,13 @@ P(h_k^{(2)} =1 \mid \Vh^{(1)}) = \sigma \big(\Vh^{(1)\top} \MW_{:,k}^{(2)} \bi -二分图结构使Gibbs采样能在深度玻尔兹曼机中高效采样。 +二分图结构使~Gibbs采样能在深度玻尔兹曼机中高效采样。 Gibbs采样的方法是一次只更新一个变量。 -RBM允许所有可见单元以一个块的方式更新,而所有隐藏单元在另一个块上更新。 -我们可以简单地假设具有$l$层的DBM需要$l+1$次更新,每次迭代更新由某层单元组成的块。 +RBM~允许所有可见单元以一个块的方式更新,而所有隐藏单元在另一个块上更新。 +我们可以简单地假设具有$l$层的~DBM~需要$l+1$次更新,每次迭代更新由某层单元组成的块。 然而,我们可以仅在两次迭代中更新所有单元。 Gibbs采样可以将更新分成两个块,一块包括所有偶数层(包括可见层),另一个包括所有奇数层。 -由于DBM二分连接模式,给定偶数层,关于奇数层的分布是因子的,因此可以作为块同时且独立地采样。 +由于~DBM~二分连接模式,给定偶数层,关于奇数层的分布是因子的,因此可以作为块同时且独立地采样。 类似地,给定奇数层,可以同时且独立地将偶数层作为块进行采样。 高效采样对使用随机最大似然算法的训练尤其重要。 @@ -372,45 +373,45 @@ Gibbs采样可以将更新分成两个块,一块包括所有偶数层(包括 深度玻尔兹曼机具有许多有趣的性质。 -DBM在DBN之后开发。 -与DBN相比,DBM的后验分布$P(\Vh \mid \Vv)$更简单。 +DBM~在~DBN~之后开发。 +与~DBN~相比,DBM~的后验分布$P(\Vh \mid \Vv)$更简单。 有点违反直觉的是,这种后验分布的简单性允许更加丰富的后验近似。 -在DBN的情况下,我们使用启发式的近似推断过程进行分类,其中我们可以通过MLP(使用sigmoid激活函数并且权重与原始DBN相同)中的向上传播猜测隐藏单元合理的均匀场期望值。 +在~DBN~的情况下,我们使用启发式的近似推断过程进行分类,其中我们可以通过~MLP(使用~sigmoid~激活函数并且权重与原始~DBN~相同)中的向上传播猜测隐藏单元合理的均匀场期望值。 \emph{任何}分布$Q(\Vh)$可用于获得对数似然的变分下界。 因此这种启发式的过程让我们能够获得这样的下界。 但是,该界没有以任何方式显式优化,所以该界可能是远远不紧的。 特别地,$Q$的启发式估计忽略了相同层内隐藏单元之间的相互作用以及更深层中隐藏单元对更接近输入的隐藏单元自顶向下的反馈影响。 -因为DBN中基于启发式MLP的推断过程不能考虑这些相互作用,所以得到的$Q$想必远不是最优的。 -DBM中,在给定其他层的情况下,层内的所有隐藏单元都是条件独立的。 +因为~DBN~中基于启发式~MLP~的推断过程不能考虑这些相互作用,所以得到的$Q$想必远不是最优的。 +DBM~中,在给定其他层的情况下,层内的所有隐藏单元都是条件独立的。 这种层内相互作用的缺失使得通过不动点方程优化变分下界并找到真正最佳的均匀场期望(在一些数值容差内)变得可能的。 -使用适当的均匀场允许DBM的近似推断过程捕获自顶向下反馈相互作用的影响。 +使用适当的均匀场允许~DBM~的近似推断过程捕获自顶向下反馈相互作用的影响。 这从神经科学的角度来看是有趣的,因为根据已知,人脑使用许多自上而下的反馈连接。 -由于这个性质,DBM已被用作真实神经科学现象的计算模型 {cite?}。 +由于这个性质,DBM~已被用作真实神经科学现象的计算模型 {cite?}。 -DBM一个不理想的特性是从中采样是相对困难的。 -DBN只需要在其顶部的一对层中使用MCMC采样。 +DBM~一个不理想的特性是从中采样是相对困难的。 +DBN~只需要在其顶部的一对层中使用~MCMC~采样。 其他层仅在采样过程末尾涉及,并且只需在一个高效的原始采样过程。 -要从DBM生成样本,必须在所有层中使用MCMC,并且模型的每一层都参与每个马尔可夫链转移。 +要从~DBM~生成样本,必须在所有层中使用~MCMC,并且模型的每一层都参与每个马尔可夫链转移。 ## DBM均匀场推断 -给定相邻层,一个DBM层上的条件分布是因子的。 -在有两个隐藏层的DBM的示例中,这些分布是$P(\Vv \mid \Vh^{(1)}), P(\Vh^{(1)} \mid \Vv, \Vh^{(2)})$和$P(\Vh^{(2)} \mid \Vh^{(1)})$。 +给定相邻层,一个~DBM~层上的条件分布是因子的。 +在有两个隐藏层的~DBM~的示例中,这些分布是$P(\Vv \mid \Vh^{(1)}), P(\Vh^{(1)} \mid \Vv, \Vh^{(2)})$和$P(\Vh^{(2)} \mid \Vh^{(1)})$。 因为层之间的相互作用,\emph{所有}隐藏层上的分布通常不是因子的。 在有两个隐藏层的示例中,由于$\Vh^{(1)}$和$\Vh^{(2)}$之间的交互权重$\MW^{(2)}$使得这些变量相互依赖, $ P(\Vh^{(1)} \mid \Vv, \Vh^{(2)})$不是因子的。 -与DBN的情况一样,我们还是要找出近似DBM后验分布的方法。 -然而,与DBN不同,DBM在其隐藏单元上的后验分布(复杂的) 很容易用变分近似来近似(如\sec?所讨论),具体是一个均匀场近似。 +与~DBN~的情况一样,我们还是要找出近似~DBM~后验分布的方法。 +然而,与~DBN~不同,DBM~在其隐藏单元上的后验分布(复杂的) 很容易用变分近似来近似(如\sec?所讨论),具体是一个均匀场近似。 均匀场近似是变分推断的简单形式,其中我们将近似分布限制为完全因子的分布。 -在DBM的情况下,均匀场方程捕获层之间的双向相互作用。 -在本节中,我们推导出由{SalHinton09}最初引入的迭代近似推断过程。 +在~DBM~的情况下,均匀场方程捕获层之间的双向相互作用。 +在本节中,我们推导出由~{SalHinton09}最初引入的迭代近似推断过程。 @@ -436,11 +437,11 @@ DBN只需要在其顶部的一对层中使用MCMC采样。 \log \Big( \frac{Q(\Vh^{(1)}, \Vh^{(2)} \mid \Vv)}{P(\Vh^{(1)}, \Vh^{(2)} \mid \Vv)} \Big). \end{align} -一般来说,我们不必提供参数形式的近似分布,除了要保证独立性假设。 +一般来说,除了要保证独立性假设,我们不必提供参数形式的近似分布。 变分近似过程通常能够恢复近似分布的函数形式。 然而,在二值隐藏单元(我们在这里推导的情况)的均匀场假设的情况下,不会由于预先固定模型的参数而损失一般性。 -我们将$Q$作为Bernoulli分布的乘积进行参数化,即我们将$\Vh^{(1)}$每个元素的概率与一个参数相关联。 +我们将$Q$作为~Bernoulli分布的乘积进行参数化,即我们将$\Vh^{(1)}$每个元素的概率与一个参数相关联。 具体来说,对于每个$j$,$\hat h_j^{(1)} = Q(h_j^{(1)}=1 \mid \Vv)$,其中$\hat h_j^{(1)} \in [0,1]$。 另外,对于每个$k$,$\hat h_k^{(2)} = Q(h_k^{(2)}=1 \mid \Vv)$,其中$\hat h_k^{(2)} \in [0,1]$。 因此,我们有以下近似后验: @@ -449,7 +450,7 @@ DBN只需要在其顶部的一对层中使用MCMC采样。 &= \prod_j (\hat h_j^{(1)})^{h_j^{(1)}}(1-\hat h_j^{(1)})^{(1-h_j^{(1)})} \times \prod_k (\hat h_k^{(2)})^{h_k^{(2)}}(1-\hat h_k^{(2)})^{(1-h_k^{(2)})} . \end{align} -当然,对于具有更多层的DBM,近似后验的参数化可以通过明显的方式扩展,即利用图的二分结构,遵循Gibbs采样相同的调度,同时更新所有偶数层,然后同时更新所有奇数层。 +当然,对于具有更多层的~DBM,近似后验的参数化可以通过明显的方式扩展,即利用图的二分结构,遵循~Gibbs采样相同的调度,同时更新所有偶数层,然后同时更新所有奇数层。 @@ -467,14 +468,14 @@ DBN只需要在其顶部的一对层中使用MCMC采样。 在该方程组的不动点处,我们具有变分下界$\CalL(Q)$的局部最大值。 因此,这些不动点更新方程定义了迭代算法,其中我们交替更新$h_{j}^{(1)} $ (使用\eqn?)和$h_{k}^{(2)} $ (使用\eqn?)。 对于诸如MNIST的小问题,少至10次迭代就足以找到用于学习的近似正相梯度,而50次通常足以获得要用于高精度分类的单个特定样本的高质量表示。 -将近似变分推断扩展到更深的DBM是直观的。 +将近似变分推断扩展到更深的~DBM~是直观的。 -## DBM的参数学习 +## DBM~的参数学习 -DBM中的学习必须面对难解配分函数的挑战(使用\chap?中的技术),以及难解后验分布的挑战(使用\chap?中的技术)。 +DBM~中的学习必须面对难解配分函数的挑战(使用\chap?中的技术),以及难解后验分布的挑战(使用\chap?中的技术)。 如\sec?中所描述的,变分推断允许构建近似难处理的$P(\Vh \mid \Vv)$的分布$Q(\Vh \mid \Vv)$。 然后通过最大化$\CalL(\Vv, Q, \Vtheta)$(难处理的对数似然的变分下界$\log P(\Vv; \Vtheta)$)学习。 @@ -492,22 +493,22 @@ DBM中的学习必须面对难解配分函数的挑战(使用\chap?中的技 这意味着评估玻尔兹曼机的概率质量函数需要近似方法,如退火重要采样。 同样,训练模型需要近似对数配分函数的梯度。 见\chap?对这些方法的一般性描述。 -DBM通常使用随机最大似然训练。 +DBM~通常使用随机最大似然训练。 \chap?中描述的许多其他技术都不适用。 诸如伪似然的技术需要评估非归一化概率的能力,而不是仅仅获得它们的变分下界。 对于深度玻尔兹曼机,对比散度是缓慢的,因为它们不能在给定可见单元时对隐藏单元进行高效采样——反而,每当需要新的负相样本时,对比散度将需要磨合一条马尔可夫链。 非变分版本的随机最大似然算法已经在\sec?讨论过。 -\alg?给出了应用于DBM的变分随机最大似然算法。 -回想一下,我们描述的是DBM的简化变体(缺少偏置参数); 很容易推广到包含偏置参数的情况。 +\alg?给出了应用于~DBM~的变分随机最大似然算法。 +回想一下,我们描述的是~DBM~的简化变体(缺少偏置参数); 很容易推广到包含偏置参数的情况。 \begin{algorithm}%[!ht] \caption{用于训练具有两个隐藏层的DBM的变分随机最大似然算法} \begin{algorithmic} \STATE 设步长 $\epsilon$ 为一个小正数 \STATE 设定吉布斯步数 $k$,大到足以让$p(\Vv,\Vh^{(1)},\Vh^{(2)}; \Vtheta + \epsilon \Delta_{\Vtheta})$的马尔可夫链能磨合 (从来自 $p(\Vv,\Vh^{(1)},\Vh^{(2)}; \Vtheta)$ 的样本开始)。 -\STATE 初始化三个矩阵,$\tilde{\MV}$, $\tilde{\MH}^{(1)}$ 和 $\tilde{\MH}^{(2)}$ 每个都将 $m$行设为随机值(例如,来自Bernoulli分布,边缘分布大致与模型匹配)。 +\STATE 初始化三个矩阵,$\tilde{\MV}$, $\tilde{\MH}^{(1)}$ 和 $\tilde{\MH}^{(2)}$ 每个都将 $m$行设为随机值(例如,来自~Bernoulli分布,边缘分布大致与模型匹配)。 \WHILE{没有收敛(学习循环)} \STATE 从训练数据采包含$m$个样本的小批量,并将它们排列为设计矩阵$\MV$的行。 \STATE 初始化矩阵 $\hat{\MH}^{(1)}$ 和 $\hat{\MH}^{(2)}$,使其大致符合模型的边缘分布。 % ?? @@ -549,19 +550,19 @@ DBM通常使用随机最大似然训练。 ## 逐层预训练 -不幸的是,随机初始化后使用随机最大似然训练(如上所述)的DBM通常导致失败。 +不幸的是,随机初始化后使用随机最大似然训练(如上所述)的~DBM~通常导致失败。 在一些情况下,模型不能学习如何充分地表示分布。 -在其他情况下,DBM可以很好地表示分布,但是没有比仅使用RBM获得更高的似然。 -除第一层之外,所有层都具有非常小权重的DBM与RBM表示大致相同的分布。 +在其他情况下,DBM~可以很好地表示分布,但是没有比仅使用~RBM~获得更高的似然。 +除第一层之外,所有层都具有非常小权重的~DBM~与~RBM~表示大致相同的分布。 如\sec? 所述,目前已经开发了允许联合训练的各种技术。 -然而,克服DBM的联合训练问题最初和最流行的方法是贪心逐层预训练。 -在该方法中,DBM的每一层被单独视为RBM,进行训练。 +然而,克服~DBM~的联合训练问题最初和最流行的方法是贪心逐层预训练。 +在该方法中,DBM~的每一层被单独视为~RBM,进行训练。 第一层被训练为对输入数据进行建模。 -每个后续RBM被训练为对来自前一RBM后验分布的样本进行建模。 -在以这种方式训练了所有RBM之后,它们可以被组合成DBM。 -然后可以用PCD训练DBM。 -通常,PCD训练将仅使模型的参数、由数据上的对数似然衡量的性能、或区分输入的能力发生微小的变化。 +每个后续~RBM~被训练为对来自前一~RBM~后验分布的样本进行建模。 +在以这种方式训练了所有~RBM~之后,它们可以被组合成~DBM。 +然后可以用~PCD~训练~DBM。 +通常,PCD~训练将仅使模型的参数、由数据上的对数似然衡量的性能、或区分输入的能力发生微小的变化。 见\fig?展示的训练过程。 \begin{figure}[!htb] @@ -591,49 +592,49 @@ DBM通常使用随机最大似然训练。 这两种方法是不同的,因为贪心逐层训练过程中,我们在每个步骤都使用了不同的目标函数。 -DBM的贪心逐层预训练与DBN的贪心逐层预训练不同。 -每个单独的RBM的参数可以直接复制到相应的DBN。 -在DBM的情况下,RBM的参数在包含到DBM中之前必须修改。 -RBM栈的中间层仅使用自底向上的输入进行训练,但在栈组合形成DBM后,该层将同时具有自底向上和自顶向下的输入。 -为了解释这种效应,{SalHinton09}提倡在将其插入DBM之前,将所有RBM(顶部和底部RBM除外)的权重除2。 -另外,必须使用每个可见单元的两个"副本"来训练底部RBM,并且两个副本之间的权重约束为相等。 +DBM~的贪心逐层预训练与~DBN~的贪心逐层预训练不同。 +每个单独的~RBM~的参数可以直接复制到相应的~DBN。 +在~DBM~的情况下,RBM~的参数在包含到~DBM~中之前必须修改。 +RBM~栈的中间层仅使用自底向上的输入进行训练,但在栈组合形成~DBM~后,该层将同时具有自底向上和自顶向下的输入。 +为了解释这种效应,{SalHinton09}提倡在将其插入~DBM~之前,将所有~RBM(顶部和底部~RBM~除外)的权重除2。 +另外,必须使用每个可见单元的两个"副本"来训练底部~RBM,并且两个副本之间的权重约束为相等。 这意味着在向上传播时,权重能有效地加倍。 -类似地,顶部RBM应当使用最顶层的两个副本来训练。 +类似地,顶部~RBM~应当使用最顶层的两个副本来训练。 -为了使用深度玻尔兹曼机获得最好结果,我们需要修改标准的SML算法,即在联合PCD训练步骤的负相期间使用少量的均匀场 {cite?}。 +为了使用深度玻尔兹曼机获得最好结果,我们需要修改标准的~SML~算法,即在联合~PCD~训练步骤的负相期间使用少量的均匀场 {cite?}。 具体来说,应当相对于其中所有单元彼此独立的均匀场分布来计算能量梯度的期望。 这个均匀场分布的参数应该通过运行一次均匀场不动点方程获得。 -{Goodfellow-et-al-NIPS2013}比较了在负相中使用和不使用部分均匀场的中心化DBM的性能。 +{Goodfellow-et-al-NIPS2013}比较了在负相中使用和不使用部分均匀场的中心化~DBM~的性能。 ## 联合训练深度玻尔兹曼机 -经典DBM需要贪心无监督预训练,并且为了更好的分类,需要在它们提取的隐藏特征之上,使用独立的基于MLP的分类器。 +经典~DBM~需要贪心无监督预训练,并且为了更好的分类,需要在它们提取的隐藏特征之上,使用独立的基于~MLP~的分类器。 这种方法有一些不理想的性质。 -因为我们不能在训练第一个RBM时评估完整DBM的属性,所以在训练期间难以跟踪性能。 +因为我们不能在训练第一个~RBM~时评估完整~DBM~的属性,所以在训练期间难以跟踪性能。 因此,直到相当晚的训练过程,我们都很难知道我们的超参数表现如何。 -DBM的软件实现需要很多不同的模块,如用于单个RBM的CD训练、完整DBM的PCD训练以及基于反向传播的MLP训练。 -最后,玻尔兹曼机顶部的MLP失去了玻尔兹曼机概率模型的许多优点,例如当某些输入值丢失时仍能够进行推断的优点。 +DBM~的软件实现需要很多不同的模块,如用于单个~RBM~的~CD~训练、完整~DBM~的~PCD~训练以及基于反向传播的~MLP~训练。 +最后,玻尔兹曼机顶部的~MLP~失去了玻尔兹曼机概率模型的许多优点,例如当某些输入值丢失时仍能够进行推断的优点。 主要有两种方法可以处理深度玻尔兹曼机的联合训练问题。 -第一个是\textbf{中心化深度玻尔兹曼机}(centered deep Boltzmann machine) {cite?},通过重参数化模型使其在开始学习过程时代价函数的Hessian具有更好的条件数。 +第一个是\textbf{中心化深度玻尔兹曼机}(centered deep Boltzmann machine) {cite?},通过重参数化模型使其在开始学习过程时代价函数的~Hessian~具有更好的条件数。 这个模型不用经过贪心逐层预训练阶段就能训练。 这个模型在测试集上获得出色的对数似然,并能产生高质量的样本。 -不幸的是,作为分类器,它仍然不能与适当正则化的MLP竞争。 +不幸的是,作为分类器,它仍然不能与适当正则化的~MLP~竞争。 联合训练深度玻尔兹曼机的第二种方式是使用多预测深度玻尔兹曼机 {cite?}。 -该模型的训练准则允许反向传播算法,以避免使用MCMC估计梯度的问题。 -不幸的是,新的准则不会导致良好的似然性或样本,但是相比MCMC方法,它确实会导致更好的分类性能和良好的推断缺失输入的能力。 +该模型的训练准则允许反向传播算法,以避免使用~MCMC~估计梯度的问题。 +不幸的是,新的准则不会导致良好的似然性或样本,但是相比~MCMC~方法,它确实会导致更好的分类性能和良好的推断缺失输入的能力。 如果我们回到玻尔兹曼机的一般观点,即包括一组权重矩阵$\MU$和偏置 $\Vb$的单元$\Vx$,玻尔兹曼机中心化技巧是最容易描述的。 回顾\eqn?,能量函数由下式给出 \begin{align} E(\Vx) = -\Vx^\top \MU \Vx - \Vb^\top \Vx. \end{align} -在权重矩阵$\MU$中使用不同的稀疏模式,我们可以实现不同架构的玻尔兹曼机,如RBM或具有不同层数的DBM。 +在权重矩阵$\MU$中使用不同的稀疏模式,我们可以实现不同架构的玻尔兹曼机,如~RBM~或具有不同层数的~DBM。 将$\Vx$分割成可见和隐藏单元并将$\MU$中不相互作用的单元的归零可以实现这些架构。 中心化玻尔兹曼机引入了一个向量$\Vmu$,并从所有状态中减去: \begin{align} @@ -642,9 +643,9 @@ DBM的软件实现需要很多不同的模块,如用于单个RBM的CD训练、 通常$\Vmu$在开始训练时固定为一个超参数。 当模型初始化时,通常选择为$\Vx - \Vmu \approx 0$。 这种重参数化不改变模型可表示的概率分布的集合,但它确实改变了应用于似然的随机梯度下降的动态。 -具体来说,在许多情况下,这种重参数化导致更好条件数的Hessian矩阵。 -{melchior2013center}通过实验证实了Hessian矩阵条件数的改善,并观察到中心化技巧等价于另一个玻尔兹曼机学习技术——\textbf{增强梯度}(enhanced gradient) {cite?}。 -即使在困难的情况下,例如训练多层的深度玻尔兹曼机,Hessian矩阵条件数的改善也能使学习成功。 +具体来说,在许多情况下,这种重参数化导致更好条件数的~Hessian~矩阵。 +{melchior2013center}通过实验证实了~Hessian~矩阵条件数的改善,并观察到中心化技巧等价于另一个玻尔兹曼机学习技术——\textbf{增强梯度}(enhanced gradient) {cite?}。 +即使在困难的情况下,例如训练多层的深度玻尔兹曼机,Hessian~矩阵条件数的改善也能使学习成功。 @@ -671,37 +672,37 @@ DBM的软件实现需要很多不同的模块,如用于单个RBM的CD训练、 未用作推断过程输入的数据变量成为目标,以灰色阴影表示。 我们可以将每个样本的推断过程视为循环网络。 为了使其在给定输入后能产生正确的目标,我们使用梯度下降和反向传播训练这些循环网络。 -这可以训练MP-DBM均匀场过程产生准确的估计。 -图改编自{Goodfellow-et-al-NIPS2013}。 +这可以训练~MP-DBM~均匀场过程产生准确的估计。 +图改编自~{Goodfellow-et-al-NIPS2013}。 } \end{figure} 这种用于近似推断,通过计算图进行反向传播的一般原理已经应用于其他模型~{cite?}。 -在这些模型和MP-DBM中,最终损失不是似然的下界。 +在这些模型和~MP-DBM~中,最终损失不是似然的下界。 相反,最终损失通常基于近似推断网络对缺失值施加的近似条件分布。 这意味着这些模型的训练有些启发式。 -如果我们检查由MP-DBM学习出来的玻尔兹曼机表示$p(\Vv)$,在Gibbs采样产生较差样本的意义下,它倾向于有些缺陷。 +如果我们检查由~MP-DBM~学习出来的玻尔兹曼机表示$p(\Vv)$,在~Gibbs采样产生较差样本的意义下,它倾向于有些缺陷。 通过推断图的反向传播有两个主要优点。 首先,它以模型真正使用的方式训练模型 —— 使用近似推断。 -这意味着在MP-DBM中,进行如填充缺失的输入或执行分类(尽管存在缺失的输入)的近似推断比在原始DBM中更准确。 -原始DBM不会自己做出准确的分类器; 使用原始DBM的最佳分类结果是基于DBM提取的特征训练独立的分类器,而不是通过使用DBM中的推断来计算关于类标签的分布。 -MP-DBM中的均匀场推断作为分类器,不需要进行特殊修改就获得良好的表现。 +这意味着在~MP-DBM~中,进行如填充缺失的输入或执行分类(尽管存在缺失的输入)的近似推断比在原始~DBM~中更准确。 +原始~DBM~不会自己做出准确的分类器; 使用原始~DBM~的最佳分类结果是基于~DBM~提取的特征训练独立的分类器,而不是通过使用~DBM~中的推断来计算关于类标签的分布。 +MP-DBM~中的均匀场推断作为分类器,不需要进行特殊修改就获得良好的表现。 通过近似推断反向传播的另一个优点是反向传播计算损失的精确梯度。 -对于优化而言,比SML训练中具有偏差和方差的近似梯度更好。 -这可能解释了为什么MP-DBM可以联合训练,而DBM需要贪心逐层预训练。 +对于优化而言,比~SML~训练中具有偏差和方差的近似梯度更好。 +这可能解释了为什么~MP-DBM~可以联合训练,而~DBM~需要贪心逐层预训练。 近似推断图反向传播的缺点是它不提供一种优化对数似然的方法,而提供广义伪似然的启发式近似。 -MP-DBM启发了对NADE框架的扩展NADE-$k$~{cite?} ,我们将在\sec?中描述。 +MP-DBM~启发了对NADE框架的扩展NADE-$k$~{cite?} ,我们将在\sec?中描述。 -MP-DBM与Dropout有一定联系。 -Dropout在许多不同的计算图之间共享相同的参数,每个图之间的差异是包括还是排除每个单元。 -MP-DBM还在许多计算图之间共享参数。 -在MP-DBM的情况下,图之间的差异是每个输入单元是否被观察到。 -当没有观察到单元时,MP-DBM不会像Dropout那样将其完全删除。 -相反,MP-DBM将其视为要推断的潜变量。 -我们可以想象将Dropout应用到MP-DBM,即额外去除一些单元而不是将它们变为潜变量。 +MP-DBM~与~Dropout~有一定联系。 +Dropout~在许多不同的计算图之间共享相同的参数,每个图之间的差异是包括还是排除每个单元。 +MP-DBM~还在许多计算图之间共享参数。 +在~MP-DBM~的情况下,图之间的差异是每个输入单元是否被观察到。 +当没有观察到单元时,MP-DBM~不会像~Dropout~那样将其完全删除。 +相反,MP-DBM~将其视为要推断的潜变量。 +我们可以想象将~Dropout~应用到~MP-DBM,即额外去除一些单元而不是将它们变为潜变量。 @@ -721,9 +722,9 @@ MP-DBM还在许多计算图之间共享参数。 ## Gaussian-Bernoulli RBM 受限玻尔兹曼机可以用于许多指数族的条件分布 {cite?}。 -其中,最常见的是具有二值隐藏单元和实值可见单元的RBM,其中可见单元上的条件分布是高斯分布(均值为隐藏单元的函数)。 +其中,最常见的是具有二值隐藏单元和实值可见单元的~RBM,其中可见单元上的条件分布是高斯分布(均值为隐藏单元的函数)。 -有很多方法可以参数化Gaussian-Bernoulli RBM。 +有很多方法可以参数化~Gaussian-Bernoulli RBM。 首先,我们可以选择协方差矩阵或精度矩阵来参数化高斯分布。 这里,我们介绍选择精度矩阵的情况。 我们可以通过简单的修改获得协方差的形式。 @@ -763,7 +764,7 @@ MP-DBM还在许多计算图之间共享参数。 是否包括该偏置项不影响模型可以表示的分布族(假设我们包括隐藏单元的偏置参数),但是它确实会影响模型的学习动态。 包括该项可以帮助隐藏单元(即使权重在幅度上快速增加时)保持合理激活。 -因此,在Gaussian-Bernoulli RBM上定义能量函数的一种方式: +因此,在~Gaussian-Bernoulli RBM~上定义能量函数的一种方式: \begin{align} E(\Vv, \Vh) = \frac{1}{2} \Vv^\top (\Vbeta \odot \Vv) - (\Vv \odot \Vbeta)^\top\MW \Vh - \Vb^\top \Vh, \end{align} @@ -772,7 +773,7 @@ MP-DBM还在许多计算图之间共享参数。 在这个推导中,我们没有在可见单元上添加偏置项,但添加这样的偏置是容易的。 -Gaussian-Bernoulli RBM参数化一个最终变化的来源是如何处理精度矩阵的选择。 +Gaussian-Bernoulli RBM~参数化一个最终变化的来源是如何处理精度矩阵的选择。 它可以被固定为常数(可能基于数据的边缘精度估计)或学习出来。 它也可以是标量乘以单位矩阵,或者是一个对角矩阵。 在此情况下,由于一些操作需要对矩阵求逆,我们通常不允许非对角的精度矩阵,因为高斯分布的一些操作需要对矩阵求逆,一个对角矩阵可以非常容易地被求逆。 @@ -783,31 +784,31 @@ Gaussian-Bernoulli RBM参数化一个最终变化的来源是如何处理精度 ## 条件协方差的无向模型 -虽然高斯RBM已成为实值数据的标准能量模型, {Ranzato2010a}认为高斯RBM感应偏置不能很好地适合某些类型的实值数据中存在的统计变化,特别是自然图像。 +虽然高斯RBM~已成为实值数据的标准能量模型, {Ranzato2010a}认为高斯RBM~感应偏置不能很好地适合某些类型的实值数据中存在的统计变化,特别是自然图像。 问题在于自然图像中的许多信息内容嵌入于像素之间的协方差而不是原始像素值中。 换句话说,图像中的大多数有用信息在于像素之间的关系,而不是其绝对值。 -由于高斯RBM仅对给定隐藏单元的输入条件均值建模,所以它不能捕获条件协方差信息。 +由于高斯RBM~仅对给定隐藏单元的输入条件均值建模,所以它不能捕获条件协方差信息。 为了回应这些评论,已经有学者提出了替代模型,设法更好地考虑实值数据的协方差。 这些模型包括均值和协方差RBM\footnote{术语"mcRBM"根据字母M-C-R-B-M发音;"mc"不是"McDonald's"中的"Mc"的发音。}、学生$t$分布均值乘积模型和尖峰和平板RBM。 -\paragraph{均值和协方差RBM} mcRBM使用隐藏单元独立地编码所有可观察单元的条件均值和协方差。 -mcRBM的隐藏层分为两组单元:均值单元和协方差单元。 +\paragraph{均值和协方差RBM} mcRBM~使用隐藏单元独立地编码所有可观察单元的条件均值和协方差。 +mcRBM~的隐藏层分为两组单元:均值单元和协方差单元。 建模条件均值的那组单元是简单的高斯RBM。 另一半是协方差RBM {cite?},对条件协方差的结构进行建模(如下所述)。 -具体来说,在二值均值的单元$\Vh^{(m)}$和二值协方差单元$\Vh^{(c)}$的情况下,mcRBM模型被定义为 +具体来说,在二值均值的单元$\Vh^{(m)}$和二值协方差单元$\Vh^{(c)}$的情况下,mcRBM~模型被定义为 两个能量函数的组合: \begin{align} E_{\text{mc}}(\Vx, \Vh^{(m)}, \Vh^{(c)}) = E_{\text{m}}(\Vx, \Vh^{(m)}) + E_{\text{c}}(\Vx, \Vh^{(c)}), \end{align} -其中$E_{\text{m}}$为标准的Gaussian-Bernoulli RBM能量函数\footnote{这个版本的Gaussian-Bernoulli RBM能量函数假定图像数据的每个像素具有零均值。考虑非零像素均值时,可以简单地将像素偏移添加到模型中。}, +其中$E_{\text{m}}$为标准的~Gaussian-Bernoulli RBM~能量函数\footnote{这个版本的~Gaussian-Bernoulli RBM~能量函数假定图像数据的每个像素具有零均值。考虑非零像素均值时,可以简单地将像素偏移添加到模型中。}, E_{\text{m}}(\Vx, \Vh^{(m)}) = \frac{1}{2}\Vx^\top \Vx - \sum_j \Vx^\top \MW_{:,j} h_j^{(m)} - \sum_j b_j^{(m)} h_j^{(m)}, \end{align} -$E_{\text{c}}$是cRBM建模条件协方差信息的能量函数: +$E_{\text{c}}$是~cRBM~建模条件协方差信息的能量函数: \begin{align} E_{\text{c}}(\Vx, \Vh^{(c)}) = \frac{1}{2} \sum_j h_j^{(c)} \big( \Vx^\top \Vr^{(j)}\big)^2 - \sum_j b_j^{(c)} h_j^{(c)}. @@ -825,23 +826,23 @@ $E_{\text{c}}$是cRBM建模条件协方差信息的能量函数: \Bigg). \end{align} 注意协方差矩阵$\MC_{\Vx \mid \Vh}^{\,\text{mc}} = \Big( \sum_j h_j^{(c)} \Vr^{(j)} \Vr^{(j)T} + \MI -\Big)^{-1}$是非对角的,且$\MW$是与建模条件均值的高斯RBM相关联的权重矩阵。 -由于非对角的条件协方差结构,难以通过对比散度或持续性对比散度来训练mcRBM。 -CD和PCD需要从$\Vx,\Vh^{(m)},\Vh^{(c)}$的联合分布中采样,这在标准RBM中可以通过Gibbs采样在条件分布上采样实现。 -但是,在mcRBM中,从$ p_{\text{mc}}(\Vx \mid \Vh^{(m)}, \Vh^{(c)}) $中抽样需要在学习的每个迭代计算$(\MC^{\,\text{mc}})^{-1}$。 +\Big)^{-1}$是非对角的,且$\MW$是与建模条件均值的高斯RBM~相关联的权重矩阵。 +由于非对角的条件协方差结构,难以通过对比散度或持续性对比散度来训练~mcRBM。 +CD~和~PCD~需要从$\Vx,\Vh^{(m)},\Vh^{(c)}$的联合分布中采样,这在标准RBM~中可以通过~Gibbs采样在条件分布上采样实现。 +但是,在~mcRBM~中,从$ p_{\text{mc}}(\Vx \mid \Vh^{(m)}, \Vh^{(c)}) $中抽样需要在学习的每个迭代计算$(\MC^{\,\text{mc}})^{-1}$。 这对于更大的观察数据可能是不切实际的计算负担。 -{Ranzato2010b-short}通过使用mcRBM自由能上的哈密尔顿(混合)蒙特卡罗~{cite?}直接从边缘$p(\Vx)$采样,避免了直接从条件$ p_{\text{mc}}(\Vx \mid \Vh^{(m)}, \Vh^{(c)}) $抽样。 +{Ranzato2010b-short}通过使用~mcRBM~自由能上的哈密尔顿(混合)蒙特卡罗~{cite?}直接从边缘$p(\Vx)$采样,避免了直接从条件$ p_{\text{mc}}(\Vx \mid \Vh^{(m)}, \Vh^{(c)}) $抽样。 % -- 670 -- \paragraph{学生$t$分布均值乘积} -学生$t$分布均值乘积模型~{cite?}以类似mcRBM扩展cRBM的方式扩展PoT模型~{cite?}。 -通过添加类似高斯RBM中隐藏单元的非零高斯均值来实现。 -与mcRBM一样,观察值上的PoT条件分布是多元高斯(具有非对角的协方差)分布; 然而,不同于mcRBM,隐藏变量的互补条件分布是由条件独立的Gamma分布给出。 +学生$t$分布均值乘积模型~{cite?}以类似~mcRBM~扩展~cRBM~的方式扩展PoT模型~{cite?}。 +通过添加类似高斯RBM~中隐藏单元的非零高斯均值来实现。 +与~mcRBM~一样,观察值上的PoT条件分布是多元高斯(具有非对角的协方差)分布; 然而,不同于~mcRBM~,隐藏变量的互补条件分布是由条件独立的~Gamma分布给出。 Gamma分布 $\CalG(k, \theta)$是关于正实数且均值为$k\theta$的概率分布。 -我们只需简单地了解Gamma分布就足以理解mPoT模型的基本思想。 +我们只需简单地了解~Gamma分布就足以理解~mPoT~模型的基本思想。 -mPoT的能量函数为: +mPoT~的能量函数为: \begin{align} &E_{\text{mPoT}}(\Vx, \Vh^{(m)}, \Vh^{(c)}) \\ &= E_{\text{m}}(\Vx, \Vh^{(m)}) + \sum_j \Big( h_j^{(c)} \big( 1+\frac{1}{2}(\Vr^{(j)T}\Vx)^2 \big) @@ -849,29 +850,29 @@ mPoT的能量函数为: \end{align} 其中$\Vr^{(j)}$是与单元$h_j^{(c)}$相关联的协方差权重向量,$E_m(\Vx, \Vh^{(m)})$如\eqn?所定义。 -正如mcRBM一样,mPoT模型能量函数指定一个多元高斯分布,其中关于$\Vx$的条件分布具有非对角的协方差。 -mPoT模型中的学习(也像mcRBM ) 由于无法从非对角高斯条件分布$p_{\text{mPoT}}(\Vx \mid \Vh^{(m)}, \Vh^{(c)}) $采样而变得复杂。 -因此{ranzato+mnih+hinton:2010-short} 也倡导通过哈密尔顿(混合)蒙特卡罗~{cite?}直接采样$p(\Vx)$。 +正如~mcRBM~一样,mPoT~模型能量函数指定一个多元高斯分布,其中关于$\Vx$的条件分布具有非对角的协方差。 +mPoT~模型中的学习(也像~mcRBM ) 由于无法从非对角高斯条件分布$p_{\text{mPoT}}(\Vx \mid \Vh^{(m)}, \Vh^{(c)}) $采样而变得复杂。 +因此~{ranzato+mnih+hinton:2010-short} 也倡导通过哈密尔顿(混合)蒙特卡罗~{cite?}直接采样$p(\Vx)$。 \paragraph{尖峰和平板RBM} 尖峰和平板RBM{cite?}提供对实值数据的协方差结构建模的另一种方法。 -与mcRBM相比,ssRBM具有既不需要矩阵求逆也不需要哈密尔顿蒙特卡罗方法的优点。 +与~mcRBM~相比,ssRBM~具有既不需要矩阵求逆也不需要哈密尔顿蒙特卡罗方法的优点。 -就像mcRBM和mPoT模型,ssRBM的二值隐藏单元通过使用辅助实值变量来编码跨像素的条件协方差。 +就像~mcRBM~和~mPoT~模型,ssRBM~的二值隐藏单元通过使用辅助实值变量来编码跨像素的条件协方差。 -尖峰和平板RBM有两类隐藏单元:二值\textbf{尖峰}(spike)单元$\RVh$和实值\textbf{平板}(slab)单元$\RVs$。 +尖峰和平板RBM~有两类隐藏单元:二值\,\textbf{尖峰}(spike)单元$\RVh$和实值\,\textbf{平板}(slab)单元$\RVs$。 条件于隐藏单元的可见单元均值由$(\Vh \odot \Vs)\MW^\top$给出。 换句话说,每一列$\MW_{:,i}$定义当$h_i=1$时可出现在输入中的分量。 相应的尖峰变量$\RSh_i$确定该分量是否存在。 如果存在的话,相应的平板变量$\RSs_i$确定该分量的强度。 当尖峰变量激活时,相应的平板变量将沿着$\MW_{:,i}$定义的轴的输入增加方差。 这允许我们对输入的协方差建模。 -幸运的是,使用Gibbs采样的对比散度和持续性对比散度仍然适用。 +幸运的是,使用~Gibbs采样的对比散度和持续性对比散度仍然适用。 此处无需对任何矩阵求逆。 -形式上,ssRBM模型通过其能量函数定义: +形式上,ssRBM~模型通过其能量函数定义: \begin{align} E_{\text{ss}}(\Vx, \Vs, \Vh) &= - \sum_i \Vx^\top \MW_{:,i} s_i h_i + \frac{1}{2} \Vx^\top \Bigg( \VLambda + \sum_i \VPhi_i h_i \Bigg) \Vx \\ @@ -884,7 +885,7 @@ mPoT模型中的学习(也像mcRBM ) 由于无法从非对角高斯条件分 每个$\mu_i$是平板变量$s_i$的均值参数。 -利用能量函数定义的联合分布,能相对容易地导出ssRBM条件分布。 +利用能量函数定义的联合分布,能相对容易地导出~ssRBM~条件分布。 例如,通过边缘化平板变量$\Vs$,给定二值尖峰变量$\Vh$,关于观察量的条件分布由下式给出 \begin{align} p_{\text{ss}} (\Vx \mid \Vh) &= \frac{1}{P(\Vh)} \frac{1}{Z} \int \exp\{ -E(\Vx, \Vs, \Vh) \} d\Vs \\ @@ -900,26 +901,26 @@ mPoT模型中的学习(也像mcRBM ) 由于无法从非对角高斯条件分 -相比mcRBM和mPoT模型,ssRBM以明显不同的方式参数化观察量的条件协方差。 -mcRBM和mPoT都通过 $\big( \sum_j h_j^{(c)} \Vr^{(j)} \Vr^{(j)\top} + \MI \big)^{-1}$建模观察量的协方差结构,使用 $\Vh_j > 0$的隐藏单元的激活来对方向$\Vr^{(j)}$的条件协方差施加约束。 -相反,ssRBM使用隐藏尖峰激活$h_i = 1$来指定观察的条件协方差,以沿着由相应权重向量指定的方向捏合精度矩阵。 -ssRBM条件协方差与一个不同模型给出的类似:概率主成分分析的乘积(PoPPCA)~{cite?}。 -在过完备的设定下,ssRBM参数化的稀疏激活仅允许在稀疏激活$h_i$的所选方向上有显著方差(高于由$\VLambda^{-1}$给出的近似方差)。 -在mcRBM或mPoT模型中,过完备的表示意味着,要在捕获观察空间中特定方向的变化需要在该方向上的正交投影下去除潜在的所有约束。 +相比~mcRBM~和~mPoT~模型,ssRBM~以明显不同的方式参数化观察量的条件协方差。 +mcRBM~和~mPoT~都通过 $\big( \sum_j h_j^{(c)} \Vr^{(j)} \Vr^{(j)\top} + \MI \big)^{-1}$建模观察量的协方差结构,使用 $\Vh_j > 0$的隐藏单元的激活来对方向$\Vr^{(j)}$的条件协方差施加约束。 +相反,ssRBM~使用隐藏尖峰激活$h_i = 1$来指定观察结果的条件协方差,以沿着由相应权重向量指定的方向捏合精度矩阵。 +ssRBM~条件协方差与一个不同模型给出的类似:概率主成分分析的乘积(PoPPCA){cite?}。 +在过完备的设定下,ssRBM~参数化的稀疏激活仅允许在稀疏激活$h_i$的所选方向上有显著方差(高于由$\VLambda^{-1}$给出的近似方差)。 +在~mcRBM~或~mPoT~模型中,过完备的表示意味着,捕获观察空间中特定方向上的变化需要在该方向上的正交投影下去除潜在的所有约束。 这表明这些模型不太适合于过完备设定。 -尖峰和平板RBM的主要缺点是参数的一些设置会对应于非正定的协方差矩阵。 +尖峰和平板RBM~的主要缺点是参数的一些设置会对应于非正定的协方差矩阵。 这种协方差矩阵会在离均值更远的值上放置更大的未归一化概率,导致所有可能结果上的积分发散。 通常这个问题可以通过简单的启发式技巧来避免。 理论上还没有任何令人满意的解决方法。 使用约束优化来显式地避免概率未定义的区域(不过分保守是很难做到的),并且这还会阻止模型到达参数空间的高性能区域。 -定性地,ssRBM的卷积变体能产生自然图像的优秀样本。 +定性地,ssRBM~的卷积变体能产生自然图像的优秀样本。 \fig?中展示了一些样例。 -ssRBM允许几个扩展, +ssRBM~允许几个扩展, 包括平板变量的高阶交互和平均池化{cite?} 使得模型能够在标注数据稀缺时为分类器学习到出色的特征。 -向能量函数添加一项能防止配分函数在稀疏编码模型下变得不确定,如尖峰和平板稀疏编码{cite?},也称为S3C。 +向能量函数添加一项能防止配分函数在稀疏编码模型下变得不确定,如尖峰和平板稀疏编码~{cite?},也称为S3C。 @@ -929,7 +930,7 @@ ssRBM允许几个扩展, 如\chap?所示,超高维度输入(如图像)会对机器学习模型的计算、 内存和统计要求造成很大的压力。 通过使用小核的离散卷积来替换矩阵乘法是解决具有空间平移不变性或时间结构的输入问题的标准方式。 -{Desjardins-2008} 表明这种方法应用于RBM时效果很好。 +{Desjardins-2008} 表明这种方法应用于~RBM~时效果很好。 深度卷积网络通常需要池化操作,使得每个连续层的空间大小减小。 前馈卷积网络通常使用池化函数,例如池化元素的最大值。 @@ -939,7 +940,7 @@ ssRBM允许几个扩展, 对于小的$3\times3$池化区域,每个池化单元需要评估$2^9 = 512$个能量函数! -~{HonglakL2009} 针对这个问题,开发了一个称为\textbf{概率最大池化}(probabilistic max pooling)的解决方案(不要与"随机池化"混淆,"随机池化"是用于隐含地构建卷积前馈网络集成的技术)。 +~{HonglakL2009} 针对这个问题,开发了一个称为\,\textbf{概率最大池化}(probabilistic max pooling)的解决方案(不要与"随机池化"混淆,"随机池化"是用于隐含地构建卷积前馈网络集成的技术)。 概率最大池化背后的策略是约束检测器单元,使得一次最多只有一个可以处于活动状态。 这意味着仅存在$n + 1$个总状态($n$个检测器单元中某一个状态为开和一个对应于所有检测器单元关闭的附加状态)。 当且仅当检测器单元中的一个开启时,池化单元打开。 @@ -994,22 +995,22 @@ ssRBM允许几个扩展, 视频游戏和电影工业中一个重要序列建模任务是建模用于渲染3-D人物骨架关节角度的序列。 这些序列通常通过记录角色移动的运动捕获系统收集。 人物运动的概率模型允许生成新的(之前没见过的)但真实的动画。 -为了解决这个序列建模任务,{Taylor+2007} 针对小的$m$引入了条件RBM建模$p(\Vx^{(t)} \mid \Vx^{(t-1)}, \dots, \Vx^{(t-m)})$。 -该模型是$p(\Vx^{(t)})$上的RBM,其偏置参数是$\Vx$前面$m$个值的线性函数。 -当我们条件于$\Vx^{(t-1)}$的不同值和更早的变量时, 我们会得到一个关于$\RVx$的新RBM。 -RBM关于$\RVx$的权重不会改变,但是条件于不同的过去值, 我们可以改变RBM中的不同隐藏单元处于活动状态的概率。 +为了解决这个序列建模任务,{Taylor+2007} 针对小的$m$引入了条件~RBM~建模$p(\Vx^{(t)} \mid \Vx^{(t-1)}, \dots, \Vx^{(t-m)})$。 +该模型是$p(\Vx^{(t)})$上的~RBM,其偏置参数是$\Vx$前面$m$个值的线性函数。 +当我们条件于$\Vx^{(t-1)}$的不同值和更早的变量时, 我们会得到一个关于$\RVx$的新~RBM。 +RBM~关于$\RVx$的权重不会改变,但是条件于不同的过去值, 我们可以改变~RBM~中的不同隐藏单元处于活动状态的概率。 通过激活和去激活隐藏单元的不同子集,我们可以对$\RVx$上诱导的概率分布进行大的改变。 -条件RBM的其他变体 {cite?} 和使用条件RBM进行序列建模的其他变体是可能的 {cite?}。 +条件~RBM~的其他变体 {cite?} 和使用条件~RBM~进行序列建模的其他变体是可能的 {cite?}。 另一个序列建模任务是对构成歌曲音符序列的分布进行建模。 {Boulanger-et-al-ICML2012} 引入了\textbf{RNN-RBM}序列模型并应用于这个任务。 -RNN-RBM由RNN(产生用于每个时间步的RBM参数)组成,是帧序列$\Vx^{(t)}$的生成模型。 -与之前只有RBM的偏置参数会在一个时间步到下一个发生变化的方法不同,RNN-RBM使用RNN来产生RBM的所有参数(包括权重)。 -为了训练模型,我们需要能够通过RNN反向传播损失函数的梯度。 -损失函数不直接应用于RNN输出。 -相反,它应用于RBM。 -这意味着我们必须使用对比散度或相关算法关于RBM参数进行近似的微分。 -然后才可以使用通常的通过时间反向传播算法通过RNN反向传播该近似梯度。 +RNN-RBM由~RNN(产生用于每个时间步的~RBM~参数)组成,是帧序列$\Vx^{(t)}$的生成模型。 +与之前只有~RBM~的偏置参数会在一个时间步到下一个发生变化的方法不同,RNN-RBM使用~RNN~来产生~RBM~的所有参数(包括权重)。 +为了训练模型,我们需要能够通过~RNN~反向传播损失函数的梯度。 +损失函数不直接应用于~RNN~输出。 +相反,它应用于~RBM。 +这意味着我们必须使用对比散度或相关算法关于~RBM~参数进行近似的微分。 +然后才可以使用通常的通过时间反向传播算法通过~RNN~反向传播该近似梯度。 @@ -1020,13 +1021,13 @@ RNN-RBM由RNN(产生用于每个时间步的RBM参数)组成,是帧序列$\Vx^ 玻尔兹曼机可以用不同的训练准则扩展。 我们专注于训练为大致最大化生成标准$\log p(\Vv)$的玻尔兹曼机。 -相反,旨在最大化$\log p(y \mid \Vv)$来训练判别的RBM也是有可能的{cite?}。 +相反,旨在最大化$\log p(y \mid \Vv)$来训练判别的~RBM~也是有可能的{cite?}。 当使用生成性和判别性标准的线性组合时,该方法通常表现最好。 -不幸的是,至少使用现有的方法来看,RBM似乎并不如MLP那样的监督学习器强大。 +不幸的是,至少使用现有的方法来看,RBM~似乎并不如~MLP~那样的监督学习器强大。 在实践中使用的大多数玻尔兹曼机在其能量函数中仅具有二阶相互作用,意味着它们的能量函数是许多项的和,并且每个单独项仅包括两个随机变量之间的乘积。 这种项的一个例子是$v_iW_{i,j}h_j$。 -我们还可以训练高阶玻尔兹曼机{cite?} ,其中能量函数项涉及许多变量的乘积。 +我们还可以训练高阶玻尔兹曼机~{cite?} ,其中能量函数项涉及许多变量的乘积。 隐藏单元和两个不同图像之间的三向交互可以建模从一个视频帧到下一个帧的空间变换 {cite?}。 通过one-hot类别变量的乘法可以根据存在哪个类来改变可见单元和隐藏单元之间的关系{cite?}。 使用高阶交互的一个最近的示例是具有两组隐藏单元的玻尔兹曼机,一组同时与可见单元$\Vv$和类别标签$y$交互,另一组仅与输入值$\Vv$交互{cite?}。 % ? @@ -1093,13 +1094,13 @@ RNN-RBM由RNN(产生用于每个时间步的RBM参数)组成,是帧序列$\Vx^ 要求$f$是连续可微的,当然需要$\Vy$是连续的。 -如果我们希望通过产生离散值样本的采样过程进行反向传播,则可以使用强化学习算法(如REINFORCE算法{cite?}的变体)来估计$\Vomega$上的梯度,这将在\sec?中讨论。 +如果我们希望通过产生离散值样本的采样过程进行反向传播,则可以使用强化学习算法(如~REINFORCE~算法{cite?}的变体)来估计$\Vomega$上的梯度,这将在\sec?中讨论。 在神经网络应用中,我们通常选择从一些简单的分布中采样$\Vz$,如单位均匀分布或单位高斯分布,并通过网络的确定性部分重塑其输入来实现更复杂的分布。 通过随机操作扩展梯度或优化的想法可追溯到二十世纪中叶~{cite?},并且首先在强化学习~{cite?}的情景下用于机器学习。 最近,它已被应用于变分近似~{cite?} 和随机生成神经网络~{cite?}。 -许多网络,如去噪自编码器或使用Dropout的正则化网络,也被自然地设计为将噪声作为输入,而不需要任何特殊的重参数化就能使噪声独立于模型。 +许多网络,如去噪自编码器或使用~Dropout~的正则化网络,也被自然地设计为将噪声作为输入,而不需要任何特殊的重参数化就能使噪声独立于模型。 @@ -1118,12 +1119,12 @@ RNN-RBM由RNN(产生用于每个时间步的RBM参数)组成,是帧序列$\Vx^ 大问题是导数在阶跃边界之间的区域几乎处处为零。 因此,任何代价函数 $J(\Vy)$的导数无法给出如何更新模型参数$\Vtheta$的任何信息。 -REINFORCE算法 (REward Increment $=$ nonnegative Factor $\times$ Offset Reinforcement $\times$ Characteristic Eligibility)提供了定义一系列简单而强大解决方案的框架{cite?}。 +REINFORCE~算法(REward Increment $=$ nonnegative Factor $\times$ Offset Reinforcement $\times$ Characteristic Eligibility)提供了定义一系列简单而强大解决方案的框架{cite?}。 其核心思想是,即使$J(f(\Vz;\Vomega))$是具有无用导数的阶跃函数,期望代价$\SetE_{\RVz \sim p(\RVz)} J(f(\Vz;\Vomega))$通常是服从梯度下降的光滑函数。 虽然当 $\Vy$是高维(或者是许多离散随机决策组合的结果)时,该期望通常是难解的,但我们可以使用蒙特卡罗平均进行无偏估计。 -梯度的随机估计可以与SGD或其他基于随机梯度的优化技术一起使用。 +梯度的随机估计可以与~SGD~或其他基于随机梯度的优化技术一起使用。 -通过简单地微分期望成本,我们可以推导出REINFORCE最简单的版本: +通过简单地微分期望成本,我们可以推导出~REINFORCE~最简单的版本: \begin{align} \SetE_{\Vz}[J(\Vy)] &= \sum_{\Vy} J(\Vy) p(\Vy), \\ \frac{\partial \SetE[J(\Vy)]}{\partial \Vomega} &= \sum_{\Vy} J(\Vy) @@ -1142,10 +1143,10 @@ $\frac{\partial\log p(\Vy)}{\partial \Vomega} = \frac{1}{p(\Vy)} 在本节中我们写的$p(\Vy)$,可以等价地写成$p(\Vy \mid \Vx)$。 这是因为$p(\Vy)$由$\Vomega$参数化,并且如果$\Vx$存在,$\Vomega$包含$\Vtheta$和$\Vx$两者。 -简单REINFORCE估计的一个问题是其具有非常高的方差,需要采$\Vy$的许多样本才能获得对梯度的良好估计,或者等价地,如果仅绘制一个样本,SGD将收敛得非常缓慢并将需要较小的学习率。 +简单~REINFORCE~估计的一个问题是其具有非常高的方差,需要采$\Vy$的许多样本才能获得对梯度的良好估计,或者等价地,如果仅绘制一个样本,SGD~将收敛得非常缓慢并将需要较小的学习率。 通过使用方差减小方法~{cite?},可以地减少该估计的方差。 想法是修改估计量,使其预期值保持不变,但方差减小。 -在REINFORCE的情况下提出的方差减小方法,涉及计算用于偏移$J(\Vy)$的\textbf{基线}(baseline)。 +在~REINFORCE~的情况下提出的方差减小方法,涉及计算用于偏移$J(\Vy)$的\,\textbf{基线}(baseline)。 注意,不依赖于$\Vy$的任何偏移$b(\Vw)$都不会改变估计梯度的期望,因为 \begin{align} E_{p(\Vy)} \Bigg[ \frac{\partial\log p(\Vy)}{\partial \Vomega} \Bigg] &= @@ -1183,11 +1184,11 @@ $E_{p(\Vy)}[\frac{\partial\log p(\Vy)^2}{\partial \omega_i}]$。 在强化学习背景下引入的方差减小方法{cite?}, {Dayan-1990}推广了二值奖励的前期工作。 -可以参考 {bengio2013estimating}、{Mnih+Gregor-ICML2014}、{Ba+Mnih-arxiv2014}、{Mnih2014}或 {Xu-et-al-ICML2015} 中在深度学习的背景下使用减少方差的REINFORCE算法的现代例子。 -除了使用与输入相关的基线$b(\Vomega)$,{Mnih+Gregor-ICML2014}发现可以在训练期间调整$(J(\Vy)) - b(\Vomega))$的尺度(即除以训练期间的移动平均估计的标准差 ),即作为一种适应性学习率,可以抵消训练过程中该量大小发生的重要变化的影响。 +可以参考 {bengio2013estimating}、{Mnih+Gregor-ICML2014}、{Ba+Mnih-arxiv2014}、{Mnih2014}或 {Xu-et-al-ICML2015} 中在深度学习的背景下使用减少方差的~REINFORCE~算法的现代例子。 +除了使用与输入相关的基线$b(\Vomega)$,{Mnih+Gregor-ICML2014}发现可以在训练期间调整$(J(\Vy) - b(\Vomega))$的尺度(即除以训练期间的移动平均估计的标准差 ),即作为一种适应性学习率,可以抵消训练过程中该量大小发生的重要变化的影响。 {Mnih+Gregor-ICML2014} 称之为启发式\textbf{方差归一化}(variance normalization)。 -基于REINFORCE的估计器可以被理解为将$\Vy$的选择与$J(\Vy)$的对应值相关联来估计梯度。 +基于~REINFORCE~的估计器可以被理解为将$\Vy$的选择与$J(\Vy)$的对应值相关联来估计梯度。 如果在当前参数化下不太可能出现$\Vy$的良好值,则可能需要很长时间来偶然获得它,并且获得所需信号的配置应当被加强。 @@ -1195,7 +1196,7 @@ $E_{p(\Vy)}[\frac{\partial\log p(\Vy)^2}{\partial \omega_i}]$。 如\chap?所讨论的,有向图模型构成了一类突出的图模型。 -虽然有向图模型在更大的机器学习社群中非常流行,但在较小的深度学习社群中,大约直到2013年它们都掩盖在无向模型(如RBM)的光彩之下。 +虽然有向图模型在更大的机器学习社群中非常流行,但在较小的深度学习社群中,大约直到2013年它们都掩盖在无向模型(如~RBM)的光彩之下。 在本节中,我们回顾一些传统上与深度学习社群相关的标准有向图模型。 @@ -1210,8 +1211,8 @@ $E_{p(\Vy)}[\frac{\partial\log p(\Vy)^2}{\partial \omega_i}]$。 ## sigmoid信念网络 -sigmoid信念网络 {cite?} 是一种具有特定条件概率分布的有向图模型的简单形式。 -一般来说,我们可以将sigmoid信念网络视为具有二值向量的状态$\Vs$,其中状态的每个元素都受其祖先影响: +sigmoid信念网络 {cite?}是一种具有特定条件概率分布的有向图模型的简单形式。 +一般来说,我们可以将~sigmoid信念网络视为具有二值向量的状态$\Vs$,其中状态的每个元素都受其祖先影响: \begin{align} p(s_i) = \sigma \Bigg( \sum_{j -VAE框架已不仅仅扩展到传统的变分下界,还有\textbf{重要加权自编码器}(importance-weighted autoencoder){cite?}的目标: +VAE~框架已不仅仅扩展到传统的变分下界,还有\,\textbf{重要加权自编码器}(importance-weighted autoencoder){cite?}的目标: \begin{align} \CalL_k(\Vx, q) = \SetE_{\RVz^{(1)},\dots,\RVz^{(k)} \sim q(\Vz \mid \Vx)} \Bigg[ \log \frac{1}{k} \sum_{i=1}^k @@ -1391,10 +1392,10 @@ VAE框架已不仅仅扩展到传统的变分下界,还有\textbf{重要加权 重要加权自编码器目标也是$\log p_{\text{model}}(\Vx)$的下界,并且随着$k$增加而变得更紧。 -变分自编码器与MP-DBM和其他涉及通过近似推断图的反向传播方法有一些有趣的联系 {cite?}。 +变分自编码器与~MP-DBM~和其他涉及通过近似推断图的反向传播方法有一些有趣的联系 {cite?}。 这些以前的方法需要诸如均匀场不动点方程的推断过程来提供计算图。 变分自编码器被定义为任意计算图,这使得它能适用于更广泛的概率模型族,因为它不需要将模型的选择限制到具有易处理的均匀场不动点方程的那些模型。 -变分自编码器还具有增加模型对数似然边界的优点,而MP-DBM和相关模型的准则更具启发性,并且除了使近似推断的结果准确外很少有概率的解释。 +变分自编码器还具有增加模型对数似然边界的优点,而~MP-DBM~和相关模型的准则更具启发性,并且除了使近似推断的结果准确外很少有概率的解释。 变分自编码器的一个缺点是它仅针对一个问题学习推断网络,即给定$\Vx$ 推断 $\Vz$。 较老的方法能够在给定任何其他变量子集的情况下对任何变量子集执行近似推断,因为均匀场不动点方程指定如何在所有这些不同问题的计算图之间共享参数。 @@ -1418,8 +1419,8 @@ VAE框架已不仅仅扩展到传统的变分下界,还有\textbf{重要加权 \caption{由变分自编码器学习的高维流形在2维坐标系中的示例{cite?}。 我们可以在纸上直接绘制两个可视化的维度,因此可以使用2维潜在编码训练模型来了解模型的工作原理(即使我们认为数据流形的固有维度要高得多)。 图中所示的图像不是来自训练集的样本,而是仅仅通过改变2维"编码"$\Vz$,由模型$p(\Vx \mid \Vz)$实际生成的图像$\Vx$(每个图像对应于"编码"$\Vz$位于2维均匀网格的不同选择)。 -\emph{(左)}Frey人脸流形的2维映射。 其中一个维度(水平)已发现大致对应于面部的旋转,而另一个(垂直)对应于情绪表达。 -\emph{(右)}MNIST流形的2维映射。 +\emph{(左)}~Frey~人脸流形的2维映射。 其中一个维度(水平)已发现大致对应于面部的旋转,而另一个(垂直)对应于情绪表达。 +\emph{(右)}~MNIST~流形的2维映射。 } \end{figure} @@ -1455,12 +1456,12 @@ $v$的默认选择是 然后就可以丢弃判别器。 -设计GAN的主要动机是学习过程既不需要近似推断也不需要配分函数梯度的近似。 +设计~GAN~的主要动机是学习过程既不需要近似推断也不需要配分函数梯度的近似。 当$\max_d v(g,d)$在$\Vtheta^{(g)}$中是凸的(例如,在概率密度函数的空间中直接执行优化的情况)时,该过程保证收敛并且是渐近一致的。 -不幸的是,在实践中由神经网络表示的$g$和$d$以及$\max_d v(g, d)$不凸时,GAN中的学习可能是困难的。 -{Goodfellow-ICLR2015} 认为不收敛可能会引起GAN的欠拟合问题。 +不幸的是,在实践中由神经网络表示的$g$和$d$以及$\max_d v(g, d)$不凸时,GAN~中的学习可能是困难的。 +{Goodfellow-ICLR2015}认为不收敛可能会引起~GAN~的欠拟合问题。 一般来说,同时对两个玩家的成本梯度下降不能保证达到平衡。 例如,考虑价值函数$v(a,b) = ab$,其中一个玩家控制$a$并产生成本$ab$,而另一玩家控制$b$并接收成本$-ab$。 如果我们将每个玩家建模为无穷小的梯度步骤,每个玩家以另一个玩家为代价降低自己的成本,则$a$和$b$进入稳定的圆形轨迹,而不是到达原点处的平衡点。 @@ -1468,21 +1469,21 @@ $v$的默认选择是 相反,它们是同时最小化的两个玩家成本的点。 这意味着它们是$v$的鞍点,相对于第一个玩家的参数是局部最小值,而相对于第二个玩家的参数是局部最大值。 两个玩家可以永远轮流增加然后减少$v$,而不是正好停在玩家没有能力降低其成本的鞍点。 -目前不知道这种不收敛的问题会在多大程度上影响GAN。 +目前不知道这种不收敛的问题会在多大程度上影响~GAN。 -{Goodfellow-ICLR2015} 确定了另一种替代的形式化收益公式,其中博弈不再是零和,每当判别器最优时, 具有与最大似然学习相同的预期梯度。 -因为最大似然训练收敛,这种GAN博弈的重述在给定足够的样本时也应该收敛。 +{Goodfellow-ICLR2015}确定了另一种替代的形式化收益公式,其中博弈不再是零和,每当判别器最优时, 具有与最大似然学习相同的预期梯度。 +因为最大似然训练收敛,这种~GAN~博弈的重述在给定足够的样本时也应该收敛。 不幸的是,这种替代的形式化似乎并没有提高实践中的收敛,可能是由于判别器的次优性或围绕期望梯度的高方差。 -在真实实验中,GAN博弈的最佳表现形式既不是零和也不等价于最大似然,而是{Goodfellow-et-al-NIPS2014-small}引入的带有启发式动机的不同形式化。 +在真实实验中,GAN~博弈的最佳表现形式既不是零和也不等价于最大似然,而是{Goodfellow-et-al-NIPS2014-small}引入的带有启发式动机的不同形式化。 在这种最佳性能的形式中,生成器旨在增加判别器发生错误的对数概率,而不是旨在降低判别器进行正确预测的对数概率。 这种重述仅仅是观察的结果,即使在判别器确信地拒绝所有生成器样本的情况下,它也能导致生成器代价函数的导数相对于判别器的对数保持很大。 -稳定GAN学习仍然是一个开放的问题。 -幸运的是,当仔细选择模型架构和超参数时,GAN学习效果很好。 -{radford2015unsupervised}设计了一个深度卷积GAN(DCGAN),在图像合成的任务上表现非常好,并表明其潜在的表示空间能捕获到变化的重要因素,如\fig?所示。 +稳定~GAN~学习仍然是一个开放的问题。 +幸运的是,当仔细选择模型架构和超参数时,GAN~学习效果很好。 +{radford2015unsupervised}设计了一个深度卷积~GAN(DCGAN),在图像合成的任务上表现非常好,并表明其潜在的表示空间能捕获到变化的重要因素,如\fig?所示。 \fig?展示了DCGAN生成器生成的图像示例。 \begin{figure}[!htb] @@ -1497,21 +1498,21 @@ $\vcenter{\hbox{ \includegraphics[width=0.45\figwidth]{Chapter20/figures/lsun_small.png} }}$ \fi -\caption{在LSUN数据集上训练后,由GAN生成的图像。 +\caption{在LSUN数据集上训练后,由~GAN~生成的图像。 \emph{(左)}由DCGAN模型生成的卧室图像,经{radford2015unsupervised}许可转载。 \emph{(右)}由LAPGAN模型生成的教堂图像,经 {denton2015deep}许可转载。 } \end{figure} -GAN学习问题也可以通过将生成过程分成许多级别的细节来简化。 -我们可以训练有条件的GAN{cite?},并学习从分布$p(\Vx \mid \Vy)$中采样,而不是简单地从边缘分布$p(\Vx)$中采样。 -{denton2015deep} 表明一系列的条件GAN可以被训练为首先生成非常低分辨率的图像,然后增量地向图像添加细节。 -由于使用拉普拉斯金字塔来生成包含不同细节水平的图像,这种技术被称为LAPGAN模型。 -LAPGAN生成器不仅能够欺骗判别器网络,而且能够欺骗人类观察者,实验主体将高达40%的网络输出识别为真实数据。 -请看\fig?中LAPGAN生成器生成的图像示例。 +GAN~学习问题也可以通过将生成过程分成许多级别的细节来简化。 +我们可以训练有条件的~GAN~{cite?},并学习从分布$p(\Vx \mid \Vy)$中采样,而不是简单地从边缘分布$p(\Vx)$中采样。 +{denton2015deep} 表明一系列的条件~GAN~可以被训练为首先生成非常低分辨率的图像,然后增量地向图像添加细节。 +由于使用拉普拉斯金字塔来生成包含不同细节水平的图像,这种技术被称为~LAPGAN~模型。 +LAPGAN~生成器不仅能够欺骗判别器网络,而且能够欺骗人类观察者,实验主体将高达40%的网络输出识别为真实数据。 +请看\fig?中~LAPGAN~生成器生成的图像示例。 -GAN训练过程中一个不寻常的能力是它可以拟合向训练点分配零概率的概率分布。 +GAN~训练过程中一个不寻常的能力是它可以拟合向训练点分配零概率的概率分布。 生成器网络学习跟踪其点在某种程度上类似于训练点的流形,而不是最大化特定点的对数概率。 有点矛盾的是,这意味着模型可以将负无穷大的对数似然分配给测试集,同时仍然表示人类观察者判断为能捕获生成任务本质的流形。 这不是明显的优点或缺点,并且只要向生成器网络最后一层所有生成的值添加高斯噪声,就可以保证生成器网络向所有点分配非零概率。 @@ -1519,14 +1520,14 @@ GAN训练过程中一个不寻常的能力是它可以拟合向训练点分配 -Dropout似乎在判别器网络中很重要。 +Dropout~似乎在判别器网络中很重要。 特别地,在计算生成器网络的梯度时,单元应当被随机地丢弃。 使用权重除以二的确定性版本的判别器的梯度似乎不是那么有效。 -同样,从不使用Dropout似乎会产生不良的结果。 +同样,从不使用~Dropout~似乎会产生不良的结果。 -虽然GAN框架被设计为用于可微生成器网络,但是类似的原理可以用于训练其他类型的模型。 -例如,\textbf{自监督提升}( self-supervised boosting)可以用于训练RBM生成器以欺骗逻辑回归判别器~{cite?}。 +虽然~GAN~框架被设计为用于可微生成器网络,但是类似的原理可以用于训练其他类型的模型。 +例如,\textbf{自监督提升}( self-supervised boosting)可以用于训练~RBM~生成器以欺骗逻辑回归判别器~{cite?}。 @@ -1535,7 +1536,7 @@ Dropout似乎在判别器网络中很重要。 生成矩匹配网络{cite?}是另一种基于可微生成器网络的生成模型。 -与VAE和GAN不同,它们不需要将生成器网络与任何其他网络配对,如不需要与用于VAE的推断网络配对,也不需要与GAN的判别器网络。 +与~VAE~和~GAN~不同,它们不需要将生成器网络与任何其他网络配对,如不需要与用于~VAE~的推断网络配对,也不需要与~GAN~的判别器网络。 生成矩匹配网络使用称为矩匹配的技术训练。 @@ -1553,12 +1554,12 @@ Dropout似乎在判别器网络中很重要。 例如,如果我们想匹配形式为$x_ix_j$的所有矩,那么我们需要最小化在$\Vx$的维度上是二次的多个值之间的差。 此外,甚至匹配所有第一和第二矩将仅足以拟合多变量高斯分布,其仅捕获值之间的线性关系。 我们使用神经网络的野心是捕获复杂的非线性关系,这将需要更多的矩。 -GAN通过使用动态更新的判别器避免了穷举所有矩的问题,该判别器自动将其注意力集中在生成器网络最不匹配的统计量上。 +GAN~通过使用动态更新的判别器避免了穷举所有矩的问题,该判别器自动将其注意力集中在生成器网络最不匹配的统计量上。 相反,我们可以通过最小化一个被称为最大平均偏差{cite?}的代价函数来训练生成矩匹配网络。 该代价函数通过向核函数定义的特征空间隐式映射,在无限维空间中测量第一矩的误差,使得对无限维向量的计算变得可行。 -当且仅当所比较的两个分布相等时,MMD代价为零。 +当且仅当所比较的两个分布相等时,MMD~代价为零。 从可视化方面看,来自生成矩匹配网络的样本有点令人失望。 幸运的是,它们可以通过将生成器网络与自编码器组合来改进。 @@ -1566,21 +1567,21 @@ GAN通过使用动态更新的判别器避免了穷举所有矩的问题,该 接下来, 自编码器的编码器用于将整个训练集转换到编码空间。 然后训练生成器网络以生成编码样本, 这些编码样本可以经解码器映射到视觉上令人满意的样本。 -与GAN不同,代价函数仅关于一批同时来自训练集和生成器网络的实例定义。 +与~GAN~不同,代价函数仅关于一批同时来自训练集和生成器网络的实例定义。 我们不可能将训练更新作为一个训练样本或仅来自生成器网络的一个样本的函数。 这是因为必须将矩计算为许多样本的经验平均值。 -当批量大小太小时,MMD可能低估采样分布的真实变化量。 +当批量大小太小时,MMD~可能低估采样分布的真实变化量。 有限的批量大小都不足以大到完全消除这个问题, 但是更大的批量大小减少了低估的量。 当批量大小太大时,训练过程就会慢得不可行,因为计算单个小梯度步长必须一下子处理许多样本。 -与GAN一样,即使生成器网络为训练点分配零概率,仍可以使用MMD训练生成器网络。 +与~GAN~一样,即使生成器网络为训练点分配零概率,仍可以使用~MMD~训练生成器网络。 ## 卷积生成网络 -当生成图像时,将卷积结构的引入生成器网络通常是有用的(见{Goodfellow-et-al-NIPS2014-small}或{dosovitskiy2015learning}的例子)。 +当生成图像时,将卷积结构的引入生成器网络通常是有用的(见~{Goodfellow-et-al-NIPS2014-small}或~{dosovitskiy2015learning}的例子)。 为此,我们使用卷积算子的"转置",如\sec?所述。 这种方法通常能产生更逼真的图像,并且比不使用参数共享的全连接层使用更少的参数。 @@ -1593,7 +1594,7 @@ GAN通过使用动态更新的判别器避免了穷举所有矩的问题,该 而生成器网络似乎需要添加信息。 由于大多数池化函数不可逆,我们不能将池化层求逆后放入生成器网络。 更简单的操作是仅仅增加表示的空间大小。 -似乎可接受的方法是使用{dosovitskiy2015learning}引入的"去池化"。 +似乎可接受的方法是使用~{dosovitskiy2015learning}引入的"去池化"。 该层对应于某些简化条件下最大池化的逆操作。 首先,最大池化操作的步幅被约束为等于池化区域的宽度。 其次,每个池化区域内的最大输入被假定为左上角的输入。 @@ -1612,8 +1613,8 @@ GAN通过使用动态更新的判别器避免了穷举所有矩的问题,该 这些模型中的条件概率分布由神经网络表示(有时是极简单的神经网络,例如逻辑回归)。 这些模型的图结构是完全图。 它们可以通过概率的链式法则分解观察变量上的联合概率,从而获得形如$P(x_d \mid x_{d-1},\dots, x_1)$条件概率的乘积。 -这样的模型被称为\textbf{完全可见的贝叶斯网络}(fully-visible Bayes networks, FVBN),并成功地以许多形式使用,首先是对每个条件分布逻辑回归~{cite?} ,然后是带有隐藏单元的神经网络~{cite?}。 -在某些形式的自回归网络中, 例如在\sec?中描述的NADE~{cite?},我们可以引入参数共享的一种形式,它能带来统计优点(较少的唯一参数)和计算优势 (较少计算量)。 +这样的模型被称为\,\textbf{完全可见的贝叶斯网络}(fully-visible Bayes networks, FVBN),并成功地以许多形式使用,首先是对每个条件分布逻辑回归~{cite?} ,然后是带有隐藏单元的神经网络~{cite?}。 +在某些形式的自回归网络中, 例如在\sec?中描述的~NADE~{cite?},我们可以引入参数共享的一种形式,它能带来统计优点(较少的唯一参数)和计算优势 (较少计算量)。 这是深度学习中反复出现的主题——\emph{特征重用}的另一个实例。 @@ -1633,7 +1634,7 @@ GAN通过使用动态更新的判别器避免了穷举所有矩的问题,该 \centerline{\includegraphics{Chapter20/figures/fvbn}} \fi \caption{完全可见的信念网络从前$i-1$个变量预测第$i$个变量。 -\emph{(上)}FVBN的有向图模型。 +\emph{(上)}~FVBN的有向图模型。 \emph{(下)}对数FVBN相应的计算图,其中每个预测由线性预测器作出。 } \end{figure} @@ -1681,7 +1682,7 @@ GAN通过使用动态更新的判别器避免了穷举所有矩的问题,该 如在\sec?中讨论的,使神经网络的输出预测$x_i$条件分布的\emph{参数},每个$P(x_i \mid x_{i-1}, \dots, x_1)$就可以表示一个条件分布。 -虽然原始神经自回归网络最初是在纯粹离散多变量数据(带有sigmoid输出的Bernoulli变量或softmax输出的Multinoulli变量)的背景下评估,但我们可以自然地将这样的模型扩展到连续变量或同时涉及离散和连续变量的联合分布。 +虽然原始神经自回归网络最初是在纯粹离散多变量数据(带有~sigmoid~输出的~Bernoulli~变量或~softmax~输出的~Multinoulli~变量)的背景下评估,但我们可以自然地将这样的模型扩展到连续变量或同时涉及离散和连续变量的联合分布。 @@ -1690,7 +1691,7 @@ GAN通过使用动态更新的判别器避免了穷举所有矩的问题,该 神经自回归密度估计器是最近非常成功的神经自回归网络的一种形式 {cite?}。 -与{Bengio+Bengio-NIPS2000}的原始神经自回归网络中的连接相同,但NADE引入了附加的参数共享方案,如\fig?所示。 +与~{Bengio+Bengio-NIPS2000}的原始神经自回归网络中的连接相同,但~NADE~引入了附加的参数共享方案,如\fig?所示。 不同组$j$的隐藏单元的参数是共享的。 从第$i$个输入$x_i$到第$j$组隐藏单元的第$k$个元素$h_k^{(j)} ~(j \geq i)$的权重$W_{j,k,i}^{'}$是组内共享的: @@ -1706,27 +1707,27 @@ GAN通过使用动态更新的判别器避免了穷举所有矩的问题,该 \else \centerline{\includegraphics{Chapter20/figures/NADE}} \fi -\caption{神经自回归密度估计器(NADE)的示意图。 +\caption{神经自回归密度估计器(NADE)的示意图。 隐藏单元被组织在组$\Vh^{(j)}$中,使得只有输入$x_1,\dots,x_i$参与计算$\Vh^{(i)}$和预测$P(x_j \mid x_{j-1},\dots,x_1)$(对于$j> i$)。 -NADE使用特定的权重共享模式区别于早期的神经自回归网络:$W_{j,k,i}^{'} = W_{k,i}$被共享于所有从$x_i$到任何$j \geq i$组中第$k$个单元的权重(在图中使用相同的线型表示复制权重的每个实例)。 +NADE~使用特定的权重共享模式区别于早期的神经自回归网络:$W_{j,k,i}^{'} = W_{k,i}$被共享于所有从$x_i$到任何$j \geq i$组中第$k$个单元的权重(在图中使用相同的线型表示复制权重的每个实例)。 注意向量$(W_{1,i}, W_{2,i},\dots,W_{n,i})$记为$\MW_{:,i}$。 } \end{figure} -{Larochelle+Murray-2011-small} 选择了这种共享方案,使得NADE模型中的正向传播与在均匀场推断中执行的计算大致相似,以填充RBM中缺失的输入。 -这个均匀场推断对应于运行具有共享权重的循环网络,并且该推断的第一步与NADE中的相同。 -使用NADE的唯一区别是,连接隐藏单元到输出的输出权重独立于连接输入单元和隐藏单元的权重进行参数化。 -在RBM中,隐藏到输出的权重是输入到隐藏权重的转置。 -NADE架构可以扩展为不仅仅模拟均匀场循环推断的一个时间步,而是$k$步。 -这种方法称为NADE-$k${cite?}。 +{Larochelle+Murray-2011-small} 选择了这种共享方案,使得~NADE~模型中的正向传播与在均匀场推断中执行的计算大致相似,以填充~RBM~中缺失的输入。 +这个均匀场推断对应于运行具有共享权重的循环网络,并且该推断的第一步与~NADE~中的相同。 +使用~NADE~的唯一区别是,连接隐藏单元到输出的输出权重独立于连接输入单元和隐藏单元的权重进行参数化。 +在~RBM~中,隐藏到输出的权重是输入到隐藏权重的转置。 +NADE~架构可以扩展为不仅仅模拟均匀场循环推断的一个时间步,而是$k$步。 +这种方法称为~NADE-$k$~{cite?}。 如前所述,自回归网络可以被扩展成处理连续数据。 用于参数化连续密度的特别强大和通用的方法是混合权重为$\alpha_i$(组$i$的系数或先验概率),每组条件均值为$\mu_i$和每组条件方差为$\sigma_i^2$的高斯混合体。 -一个称为RNADE的模型{cite?} 使用这种参数化将NADE扩展到实值。 -与其他混合密度网络一样,该分布的参数是网络的输出,由softmax单元产生混合的权量概率以及参数化的方差,因此可使它们为正的。 +一个称为~RNADE~的模型{cite?} 使用这种参数化将~NADE~扩展到实值。 +与其他混合密度网络一样,该分布的参数是网络的输出,由~softmax~单元产生混合的权量概率以及参数化的方差,因此可使它们为正的。 由于条件均值$\mu_i$和条件方差$\sigma_i^2$之间的相互作用,随机梯度下降在数值上可能会表现不好。 为了减少这种困难, {Benigno-et-al-NIPS2013-small}在后向传播阶段使用伪梯度代替平均值上的梯度。 @@ -1742,9 +1743,9 @@ NADE架构可以扩展为不仅仅模拟均匀场循环推断的一个时间步 在同一篇文章中,作者提出了深度版本的架构,但不幸的是,这立即使计算成本像原始神经自回归网络一样高{cite?}。 -第一层和输出层仍然可以在$\CalO(nh)$的乘法-加法操作中计算,如在常规NADE中,其中$h$是隐藏单元的数量(\fig?和\fig?中的组$h_i$的大小),而它在{Bengio+Bengio-NIPS2000}中是$\CalO(n^2h)$。 -然而,对于其他隐藏层的计算量是$\CalO(n^2 h^2)$(假设在每个层存在$n$组$h$个隐藏单元, 且在$l$层的每个"先前"组参与预测$l+1$层处的"下一个"组)。 -如在{Uria+al-ICML2014}中, 使$l+1$层上的第$i$个组仅取决于第$i$个组,$l$层处的计算量将减少到$\CalO(nh^2)$,但仍然比常规NADE差$h$倍。 +第一层和输出层仍然可以在$\CalO(nh)$的乘法-加法操作中计算,如在常规~NADE~中,其中$h$是隐藏单元的数量(\fig?和\fig?中的组$h_i$的大小),而它在~{Bengio+Bengio-NIPS2000}中是$\CalO(n^2h)$。 +然而,对于其他隐藏层的计算量是$\CalO(n^2 h^2)$(假设在每个层存在$n$组$h$个隐藏单元,且在$l$层的每个"先前"组参与预测$l+1$层处的"下一个"组)。 +如在~{Uria+al-ICML2014}中, 使$l+1$层上的第$i$个组仅取决于第$i$个组,$l$层处的计算量将减少到$\CalO(nh^2)$,但仍然比常规~NADE~差$h$倍。 @@ -1757,7 +1758,7 @@ NADE架构可以扩展为不仅仅模拟均匀场循环推断的一个时间步 我们还没有讨论如何从这样的模型中采样。 某些类型的自编码器,例如变分自编码器,明确地表示概率分布并且允许直接的原始采样。 -而大多数其他类型的自编码器则需要MCMC采样。 +而大多数其他类型的自编码器则需要~MCMC~采样。 收缩自编码器被设计为恢复数据流形切面的估计。 这意味着使用注入噪声的重复编码和解码将引起沿着流形表面的随机游走{cite?}。 @@ -1772,7 +1773,7 @@ NADE架构可以扩展为不仅仅模拟均匀场循环推断的一个时间步 上述讨论留下了一个开放问题——注入什么噪声和从哪获得马尔可夫链(可以根据自编码器估计的分布生成样本)。 -{Bengio-et-al-NIPS2013-small} 展示了如何构建这种用于\textbf{广义去噪自编码器}(generalized denoising autoencoder)的马尔可夫链。 +{Bengio-et-al-NIPS2013-small}展示了如何构建这种用于\textbf{广义去噪自编码器}(generalized denoising autoencoder)的马尔可夫链。 广义去噪自编码器由去噪分布指定,给定损坏输入后,对干净输入的估计进行采样。 根据估计分布生成的马尔可夫链的每个步骤由以下子步骤组成,如\fig?所示: @@ -1782,7 +1783,7 @@ NADE架构可以扩展为不仅仅模拟均匀场循环推断的一个时间步 + 解码$\Vh$以获得$p(\RVx \mid \Vomega = g(\Vh)) = p(\RVx \mid \tilde{\Vx})$的参数$\Vomega = g(\Vh)$。 + 从$p(\RVx \mid \Vomega = g(\Vh)) = p(\RVx \mid \tilde{\Vx})$采样下一状态$\Vx$。 \end{enumerate} -{Bengio-et-al-ICML-2014}表明,如果自编码器 $p(\RVx \mid \tilde{\Vx})$形成对应真实条件分布的一致估计量,则上述马尔可夫链的平稳分布形成数据生成分布$\RVx$的一致估计量(虽然是隐式的)。 +{Bengio-et-al-ICML-2014} 表明,如果自编码器 $p(\RVx \mid \tilde{\Vx})$形成对应真实条件分布的一致估计量,则上述马尔可夫链的平稳分布形成数据生成分布$\RVx$的一致估计量(虽然是隐式的)。 \begin{figure}[!htb] \ifOpenSource @@ -1794,7 +1795,7 @@ NADE架构可以扩展为不仅仅模拟均匀场循环推断的一个时间步 每个步骤包括:(a)通过损坏过程$C$向状态$\Vx$注入噪声产生$\tilde{\Vx}$,(b)用函数$f$对其编码,产生$\Vh = f(\tilde{\Vx})$,(c)用函数$g$解码结果, 产生用于重构分布的参数$\Vomega$,(d)给定$\Vomega$,从重构分布$p(\RVx \mid \Vomega = g(f(\tilde{\Vx})))$采样新状态。 在典型的平方重构误差情况下,$g(\Vh) = \hat{\Vx}$,并估计$\SetE [ \Vx \mid \tilde{\Vx}]$,损坏包括添加高斯噪声,并且从$p(\RVx | \Vomega)$的采样包括第二次向重构 $\hat{\Vx}$添加高斯噪声。 后者的噪声水平应对应于重构的均方误差,而注入的噪声是控制混合速度以及估计器平滑经验分布程度的超参数{cite?}。 -在这所示的例子中,只有$C$和$p$条件是随机步骤($f$和$g$是确定性计算),我们也可以在自编码器内部注入噪声,如生成随机网络{cite?}。 +在这所示的例子中,只有$C$和$p$条件是随机步骤($f$和$g$是确定性计算),我们也可以在自编码器内部注入噪声,如生成随机网络~{cite?}。 } \end{figure} @@ -1804,10 +1805,10 @@ NADE架构可以扩展为不仅仅模拟均匀场循环推断的一个时间步 ## 夹合与条件采样 -与玻尔兹曼机类似,去噪自编码器及其推广(例如下面描述的GSN)可用于从条件分布$p(\RVx_f \mid \RVx_o)$中采样,只需夹合\emph{观察}单元$\RVx_f$并在给定$\RVx_f$和采好的潜变量(如果有的话)下仅重采样\emph{自由}单元$\RVx_o$。 -例如,MP-DBM可以被解释为去噪自编码器的一种形式,并且能够采样丢失的输入。 -GSN随后将MP-DBM中的一些想法推广以执行相同的操作~{cite?}。 -{Alain-et-al-arxiv2015} 从{Bengio-et-al-ICML-2014}的命题1中发现了一个缺失条件,即转移算子(由从链的一个状态到下一个状态的随机映射定义)应该满足细致平衡的属性, 表明无论转移算子正向或反向运行,马尔可夫链都将保持平衡。 +与玻尔兹曼机类似,去噪自编码器及其推广(例如下面描述的~GSN)可用于从条件分布$p(\RVx_f \mid \RVx_o)$中采样,只需夹合\emph{观察}单元$\RVx_f$并在给定$\RVx_f$和采好的潜变量(如果有的话)下仅重采样\emph{自由}单元$\RVx_o$。 +例如,MP-DBM~可以被解释为去噪自编码器的一种形式,并且能够采样丢失的输入。 +GSN~随后将~MP-DBM~中的一些想法推广以执行相同的操作~{cite?}。 +{Alain-et-al-arxiv2015} 从~{Bengio-et-al-ICML-2014}的命题1中发现了一个缺失条件,即转移算子(由从链的一个状态到下一个状态的随机映射定义)应该满足细致平衡的属性, 表明无论转移算子正向或反向运行,马尔可夫链都将保持平衡。 在\fig?中展示了夹合一半像素(图像的右部分)并在另一半上运行马尔可夫链的实验。 @@ -1818,14 +1819,14 @@ GSN随后将MP-DBM中的一些想法推广以执行相同的操作~{cite?}。 \centerline{\includegraphics[width=0.8\textwidth]{Chapter20/figures/inpainting1500-half_croppedhalf__with_nearest}} \fi \caption{在每步仅重采样左半部分,夹合图像的右半部分并运行马尔可夫链的示意图。 -这些样本来自重构MNIST数字的GSN(每个时间步使用回退过程)。 +这些样本来自重构~MNIST数字的~GSN(每个时间步使用回退过程)。 } \end{figure} ## 回退训练过程 -回退训练过程由{Bengio-et-al-NIPS2013-small} 等人提出,作为一种加速去噪自编码器生成训练收敛的方法。 +回退训练过程由~{Bengio-et-al-NIPS2013-small} 等人提出,作为一种加速去噪自编码器生成训练收敛的方法。 不像执行一步编码-解码重建,该过程有代替的多个随机编码-解码步骤组成(如在生成马尔可夫链中),以训练样本初始化(正如在\sec?中描述的对比散度算法),并惩罚最后的概率重建(或沿途的所有重建)。 训练$k$个步骤与训练一个步骤是等价的(在实现相同稳态分布的意义上),但是实际上可以更有效地去除来自数据的伪模式。 @@ -1837,43 +1838,43 @@ GSN随后将MP-DBM中的一些想法推广以执行相同的操作~{cite?}。 生成随机网络 {cite?} 是去噪自编码器的推广,除可见变量(通常表示为$\RVx$)之外,在生成马尔可夫链中还包括潜变量 $\RVh$。 -GSN由两个条件概率分布参数化, 指定马尔可夫链的一步: +GSN~由两个条件概率分布参数化, 指定马尔可夫链的一步: \begin{enumerate} + $p(\RVx^{(k)} \mid \RVh^{(k)} )$指示在给定当前潜在状态下如何产生下一个可见变量。 - 这种"重建分布"也可以在去噪自编码器、 RBM、DBN和DBM中找到。 + 这种"重建分布"也可以在去噪自编码器、 RBM、DBN~和~DBM~中找到。 + $p(\RVh^{(k)} \mid \RVh^{(k-1)}, \RVx^{(k-1)})$指示在给定先前的潜在状态和可见变量下如何更新潜在状态变量。 \end{enumerate} -去噪自编码器和GSN不同于经典的概率模型(有向或无向),它们自己参数化生成过程而不是通过可见和潜变量的联合分布的数学形式。 +去噪自编码器和~GSN~不同于经典的概率模型(有向或无向),它们自己参数化生成过程而不是通过可见和潜变量的联合分布的数学形式。 相反,后者\emph{如果存在则隐式}地定义为生成马尔可夫链的稳态分布。 -存在稳态分布的条件是温和的,并且需要与标准MCMC方法相同的条件(见\sec?)。 +存在稳态分布的条件是温和的,并且需要与标准~MCMC~方法相同的条件(见\sec?)。 这些条件是保证链混合的必要条件,但它们可能被某些过渡分布的选择(例如,如果它们是确定性的)所违反。 -我们可以想象GSN不同的训练准则。 -由{Bengio-et-al-ICML-2014} 提出和评估的只对可见单元上对数概率的重建,如应用于去噪自编码器。 +我们可以想象~GSN~不同的训练准则。 +由~{Bengio-et-al-ICML-2014} 提出和评估的只对可见单元上对数概率的重建,如应用于去噪自编码器。 通过将$\RVx^{(0)} = \Vx$ 夹合到观察到的样本并且在一些后续时间步处使生成$\Vx$的概率最大化,即最大化$\log p(\RVx^{(k)} = \Vx \mid \RVh^{(k)})$, 其中给定$\RVx^{(0)} = \Vx$后,$\RVh^{(k)}$从链中采样。 为了估计相对于模型其他部分的$\log p(\RVx^{(k)} = \Vx \mid \RVh^{(k)})$的梯度,{Bengio-et-al-ICML-2014}使用了在\sec?中介绍的重参数化技巧。 -回退训练过程(在\sec?中描述)可以用来改善训练GSN的收敛性{cite?} 。 +回退训练过程(在\sec?中描述)可以用来改善训练~GSN~的收敛性~{cite?} 。 -## 判别性GSN +## 判别性\,GSN GSN的原始公式{cite?} 用于无监督学习和对观察数据$\RVx$的$p(\RVx)$的隐式建模,但是我们可以修改框架来优化$p(\RVy \mid \Vx)$。 -例如, {Zhou+Troyanskaya-ICML2014} 以如下方式推广GSN,只反向传播输出变量上的重建对数概率,并保持输入变量固定。 +例如, {Zhou+Troyanskaya-ICML2014} 以如下方式推广~GSN,只反向传播输出变量上的重建对数概率,并保持输入变量固定。 他们将这种方式成功应用于建模序列(蛋白质二级结构),并在马尔可夫链的转换算子中引入(一维)卷积结构。 重要的是要记住,对于马尔可夫链的每一步,我们需要为每个层生成新序列,并且该序列用于在下一时间步计算其他层的值(例如下面一个和上面一个)的输入。 因此,马尔可夫链确实不只是输出变量(与更高层的隐藏层相关联),并且输入序列仅用于条件化该链,其中反向传播使得它能够学习输入序列如何条件化由马尔可夫链隐含表示的输出分布。 -因此这是在结构化输出中使用GSN的一个例子。 +因此这是在结构化输出中使用~GSN~的一个例子。 -{Zohrer+Pernkopf-NIPS2014-small} 引入了一个混合模型,通过简单地添加(使用不同的权重)监督和非监督成本即$\RVy$和$\RVx$的重建对数概率, 组合了监督目标(如上面的工作)和无监督目标(如原始的GSN)。 -{Larochelle+Bengio-2008-small}以前在RBM中就提出了这样的混合标准。 +{Zohrer+Pernkopf-NIPS2014-small} 引入了一个混合模型,通过简单地添加(使用不同的权重)监督和非监督成本即$\RVy$和$\RVx$的重建对数概率, 组合了监督目标(如上面的工作)和无监督目标(如原始的~GSN)。 +{Larochelle+Bengio-2008-small}以前在~RBM~中就提出了这样的混合标准。 他们展示了在这种方案下分类性能的提升。 @@ -1881,16 +1882,16 @@ GSN的原始公式{cite?} 用于无监督学习和对观察数据$\RVx$的$p(\RV # 其他生成方案 -目前为止我们已经描述的方法,使用MCMC采样、原始采样或两者的一些混合来生成样本。 +目前为止我们已经描述的方法,使用~MCMC~采样、原始采样或两者的一些混合来生成样本。 虽然这些是生成式建模中最流行的方法,但它们绝不是唯一的方法。 -{Sohl-Dickstein-et-al-ICML2015} 开发了一种基于非平衡热力学学习生成模型的\textbf{扩散反演}(diffusion inversion)训练方案。 +{Sohl-Dickstein-et-al-ICML2015} 开发了一种基于非平衡热力学学习生成模型的\,\textbf{扩散反演}(diffusion inversion)训练方案。 该方法基于我们希望从中采样的概率分布具有结构的想法。 -这种结构会被扩散过程逐渐破坏,概率分布逐渐地变得具有更多的熵。 +这种结构会被递增地使概率分布具有更多熵的扩散过程逐渐破坏。 为了形成生成模型,我们可以反过来运行该过程,通过训练模型逐渐将结构恢复到非结构化分布。 通过迭代地应用使分布更接近目标分布的过程,我们可以逐渐接近该目标分布。 -在涉及许多迭代以产生样本的意义上,这种方法类似于MCMC方法。 +在涉及许多迭代以产生样本的意义上,这种方法类似于~MCMC~方法。 然而,模型被定义为由链的最后一步产生的概率分布。 在这个意义上,没有由迭代过程诱导的近似。 {Sohl-Dickstein-et-al-ICML2015} 介绍的方法也非常接近于去噪自编码器的生成解释(\sec?)。 @@ -1902,7 +1903,7 @@ GSN的原始公式{cite?} 用于无监督学习和对观察数据$\RVx$的$p(\RV 样本生成的另一种方法是近似贝叶斯计算框架{cite?}。 在这种方法中,样本被拒绝或修改以使样本选定函数的矩匹配期望分布的那些矩。 虽然这个想法与矩匹配一样使用样本的矩,但它不同于矩匹配,因为它修改样本本身,而不是训练模型来自动发出具有正确矩的样本。 -{BachmanP15} 展示了如何在深度学习的背景下使用ABC中的想法,即使用ABC来塑造, % ? 整GSN的MCMC轨迹。 +{BachmanP15} 展示了如何在深度学习的背景下使用~ABC~中的想法,即使用~ABC~来塑造, % ? 整~GSN~的~MCMC~轨迹。 我们期待更多其他等待发现的生成式建模方法。 @@ -1924,9 +1925,9 @@ GSN的原始公式{cite?} 用于无监督学习和对观察数据$\RVx$的$p(\RV 评估生成模型的另一个微妙之处是,评估指标往往是自身困难的研究问题。 可能很难确定模型是否被公平比较。 -例如,假设我们使用AIS来估计$\log Z$以便为我们刚刚发明的新模型计算$\log \tilde{p}(\Vx) - \log Z$。 -AIS计算经济的实现可能无法找到模型分布的几种模式并低估$Z$,这将导致我们高估$\log p(\Vx)$。 -因此可能难以判断高似然估计是否是良好模型或不好的AIS实现导致的结果。 +例如,假设我们使用~AIS~来估计$\log Z$以便为我们刚刚发明的新模型计算$\log \tilde{p}(\Vx) - \log Z$。 +AIS~计算经济的实现可能无法找到模型分布的几种模式并低估$Z$,这将导致我们高估$\log p(\Vx)$。 +因此可能难以判断高似然估计是否是良好模型或不好的~AIS~实现导致的结果。 机器学习的其他领域通常允许在数据预处理中有一些变化。 例如,当比较对象识别算法的准确性时,通常可接受的是对每种算法略微不同地预处理输入图像(基于每种算法具有何种输入要求)。 @@ -1987,6 +1988,6 @@ MNIST由灰度图像组成。 为了让模型理解表示在给定训练数据中的大千世界,训练具有隐藏单元的生成模型是一种有力方法。 通过学习模型$p_{\text{model}}(\Vx)$和表示$p_{\text{model}}(\Vh \mid \Vx)$,生成模型可以解答$\Vx$输入变量之间关系的许多推断问题, 并且可以在层次的不同层对$\Vh$求期望来提供表示$\Vx$的许多不同方式。 -生成模型承诺为AI系统提供它们需要理解的、所有不同直观概念的框架,让它们有能力在面对不确定性的情况下推理这些概念。 +生成模型承诺为~AI~系统提供它们需要理解的、所有不同直观概念的框架,让它们有能力在面对不确定性的情况下推理这些概念。 我们希望我们的读者能够找到增强这些方法的新途径,并继续探究学习和智能背后原理的旅程。