Skip to content

Commit

Permalink
Merge branch 'master' of github.com:exacity/deeplearningbook-chinese
Browse files Browse the repository at this point in the history
Former-commit-id: 7527c95131c481756c0c1bb45b0d1e0bed90295a
  • Loading branch information
SwordYork committed Jan 6, 2017
2 parents a0bd68e + 1cd9222 commit a318955
Show file tree
Hide file tree
Showing 7 changed files with 247 additions and 242 deletions.
239 changes: 121 additions & 118 deletions Chapter15/representation_learning.tex

Large diffs are not rendered by default.

188 changes: 94 additions & 94 deletions Chapter18/confronting_the_partition_function.tex

Large diffs are not rendered by default.

34 changes: 17 additions & 17 deletions Chapter19/approximate_inference.tex
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ \section{\glsentrytext{EM}}
这种解释并不仅仅适用于\glssymbol{EM}算法。
比如说,使用\gls{GD}来最大化似然函数的对数这种方法也利用了相同的性质。
计算对数似然函数的梯度需要对隐含节点的后验分布来求期望。
\glssymbol{EM}算法的另一个关键的性质是当我们移动到另一个$\Vtheta$时候,我们仍然可以使用旧的$q$
\glssymbol{EM}算法另一个关键的性质是当我们移动到另一个$\Vtheta$时候,我们仍然可以使用旧的$q$
在传统\gls{ML}中,这种特有的性质在推导M步更新时候得到了广泛的应用。
\gls{DL}中,大多数模型太过于复杂以致于在M步中很难得到一个最优解。
所以\glssymbol{EM}算法的第二个特质较少被使用。
Expand Down Expand Up @@ -207,7 +207,7 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}}
q(\Vh\mid\Vv) = \delta(\Vh - {\Vmu}).
\end{align}
这也意味着我们可以通过$\Vmu$来完全控制$q$
通过将$\CalL$中不随$\Vmu$变化的项丢弃,剩下的我们遇到的是一个优化问题:
通过将$\CalL$中不随$\Vmu$变化的项丢弃,<bad>剩下的我们遇到的是一个优化问题:
\begin{align}
\Vmu^* = \underset{\Vmu}{\arg\max}\ \log p(\Vh = \Vmu,\Vv).
\end{align}
Expand All @@ -221,8 +221,8 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}}


因此我们能够解释一种类似于\glssymbol{EM}算法的学习算法,其中我们轮流迭代两步,一步是用\gls{MAP}推断估计出$\Vh^*$,另一步是更新$\Vtheta$来增大$\log p(\Vh^*,\Vv)$
\glssymbol{EM}算法角度看,这也是一种形式的对$\CalL$的坐标上升\glssymbol{EM}算法的坐标上升中,交替迭代的时候通过推断来优化$\CalL$关于$q$以及通过参数更新来优化$\CalL$关于$\Vtheta$
整体上说,这个算法的正确性可以被保证因为$\CalL$$\log p(\Vv)$的下界。
\glssymbol{EM}算法角度看,这也是一种形式的对$\CalL$\gls{coordinate_ascent}\glssymbol{EM}算法的\gls{coordinate_ascent}中,交替迭代的时候通过推断来优化$\CalL$关于$q$以及通过参数更新来优化$\CalL$关于$\Vtheta$
整体上说,这个算法的正确性可以得到保证,因为$\CalL$$\log p(\Vv)$的下界。
\gls{MAP}推断中,这个保证是无效的,因为这个界会无限的松,由于\gls{dirac_distribution}的熵的微分趋近于负无穷。
然而,人为加入一些$\Vmu$的噪声会使得这个界又有了意义。
% 628
Expand All @@ -237,7 +237,7 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}}
我们回过头来看\secref{sec:sparse_coding}中的\gls{sparse_coding},\gls{sparse_coding}是一种在隐含节点上加上了鼓励稀疏的先验知识的\gls{linear_factor}。
一个常用的选择是可分解的拉普拉斯先验,表示为
\begin{align}
p(h_i) = \frac{\lambda}{2} \exp(-\lambda\mid h_i\mid).
p(h_i) = \frac{\lambda}{2} \exp(-\lambda \vert h_i \vert).
\end{align}
可见的节点是由一个线性变化加上噪音生成的\footnote{此处似乎有笔误,$\Vx$应为$\Vv$}:
\begin{align}
Expand All @@ -252,7 +252,7 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}}
每一对$h_i$$h_j$变量都是$\Vv$的母节点。
这也意味着当$\Vv$是可观察时,\gls{graphical_models}包含了连接$h_i$$h_j$的路径。
因此在$p(\Vh \mid\Vv)$中所有的隐含节点都包含在了一个巨大的\gls{clique}中。
如果模型是高斯的,那么这些关系可以通过协方差矩阵来高效的建模
如果模型是高斯,那么这些关系可以通过协方差矩阵来高效地建模
然而稀疏型先验使得模型并不是高斯。
% 629 head

Expand All @@ -264,11 +264,11 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}}
% 629


如果我们将训练集中的所有的$\Vh$向量拼在一起并且记为$\MH$,并将所有的$\Vv$向量拼起来组成矩阵$\MV$,那么\gls{sparse_coding}问题意味着最小化
如果我们将训练集中所有的$\Vh$向量拼在一起并且记为$\MH$,并将所有的$\Vv$向量拼起来组成矩阵$\MV$,那么\gls{sparse_coding}问题意味着最小化
\begin{align}
J(\MH,\MW) = \sum_{i,j}^{}\vert H_{i,j}\vert + \sum_{i,j}^{}\Big(\MV - \MH \MW^{\top}\Big)^2_{i,j}.
\end{align}
为了避免如极端小的$\MH$和极端大的$\MW$这样的病态的解,许多\gls{sparse_coding}的应用包含了权值衰减或者$\MH$的列的范数的限制
为了避免如极端小的$\MH$和极端大的$\MW$这样的病态的解,许多\gls{sparse_coding}的应用包含了权值衰减或者对$\MH$列的范数的限制
% 629


Expand All @@ -288,15 +288,15 @@ \section{变分推断和学习}
% 629


我们已经说明过了为什么\glssymbol{ELBO}是$\log p(\Vv;\Vtheta)$的一个下界, 如何将推断看做是 关于$q$分布最大化$\CalL$ 的过程以及如何将学习看做是关于参数$\Vtheta$最大化$\CalL$的过程。
我们已经说明过了为什么\gls{ELBO}是$\log p(\Vv;\Vtheta)$的一个下界, 如何将推断看做是 关于$q$分布最大化$\CalL$ 的过程以及如何将学习看做是关于参数$\Vtheta$最大化$\CalL$的过程。
我们也讲到了\glssymbol{EM}算法在给定了$q$分布的条件下进行学习,而\glssymbol{MAP}推断的算法则是学习一个$p(\Vh \mid \Vv)$的点估计而非推断整个完整的分布。
在这里我们介绍一些变分学习中更加通用的算法。
% 629


变分学习的核心思想就是我们通过选择给定的分布族中的一个$q$分布来最大化$\CalL$
选择这个分布族的时候应该考虑到计算$\SetE_q \log p(\Vh,\Vv)$的简单性。
一个典型的方法就是添加一些假设诸如$q$可以分解
一个典型的方法就是添加一些假设诸如$q$分布可以分解
% 630 head


Expand All @@ -311,19 +311,19 @@ \section{变分推断和学习}


变分方法的优点是我们不需要为分布$q$设定一个特定的参数化的形式。
我们设定它如何分解,而优化问题中决定了在这些分解限制下的最优的概率分布
我们设定它如何分解,之后通过解决优化问题来找出在这些分解限制下的最优的概率分布
对离散型的\gls{latent_variable}来说,这意味着我们使用了传统的优化技巧来优化描述$q$分布的有限个数的变量。
对连续性的变量来说,这意味着我们使用了一个叫做\firstgls{calculus_of_variations}的数学分支来解决对一个空间的函数的优化问题。
然后决定哪一个函数来表示$q$
然后决定哪一个函数来表示$q$分布
\gls{calculus_of_variations}是``变分学习''或者``变分推断''这些名字的来历,尽管当\gls{latent_variable}是离散的时候\gls{calculus_of_variations}并没有用武之地。
当遇到连续的\gls{latent_variable}的时候,\gls{calculus_of_variations}是一种很有用的工具,只需要设定分布$q$如何分解,而不需要过多的人工选择模型,比如尝试着设计一个特定的能够精确的近似原后验分布的$q$
当遇到连续的\gls{latent_variable}的时候,\gls{calculus_of_variations}是一种很有用的工具,只需要设定分布$q$如何分解,而不需要过多的人工选择模型,比如尝试着设计一个特定的能够精确的近似原后验分布的$q$分布
% 630


因为$\CalL(\Vv,\Vtheta,q)$定义成$\log p(\Vv;\Vtheta) - D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv;\Vtheta))$,我们可以认为关于$q$最大化$\CalL$的问题等价于最小化$D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv))$
因为$\CalL(\Vv,\Vtheta,q)$定义成$\log p(\Vv;\Vtheta) - D_{\text{KL}} (q(\Vh\mid\Vv) \Vert p(\Vh\mid\Vv;\Vtheta) )$,我们可以认为关于$q$最大化$\CalL$的问题等价于最小化$D_{\text{KL}}(q(\Vh\mid\Vv)\Vert p(\Vh\mid\Vv))$
在这种情况下,我们要用$q$来拟合$p$
然而,我们并不是直接拟合一个近似,而是处理一个\gls{KL}的问题。
当我们使用\gls{MLE}来将数据拟合到模型的时候,我们最小化$D_{\text{KL}}(p_{\text{data}\Vert p_{\text{model}}})$
当我们使用\gls{MLE}来将数据拟合到模型的时候,我们最小化$D_{\text{KL}}(p_{\text{data}} \Vert p_{\text{model}})$
如同\figref{fig:chap3_kl_direction_color}中所示,这意味着\gls{MLE}促进模型在每一个数据达到更高概率的地方达到更高的概率,而基于优化的推断则促进了$q$在每一个真实后验分布概率较低的地方概率较小。
这两种方法都有各自的优点与缺点。
选择哪一种方法取决于在具体应用中哪一种性质更受偏好。
Expand Down Expand Up @@ -445,7 +445,7 @@ \subsection{离散\gls{latent_variable}}
% 633 end


\glssymbol{ELBO}可以表示为
\gls{ELBO}可以表示为
\begin{align}
\label{eqn:1936}
& \CalL(\Vv,\Vtheta,q)\\
Expand All @@ -462,7 +462,7 @@ \subsection{离散\gls{latent_variable}}

尽管从美学观点这些方程有些不尽如人意。
他们展示了$\CalL$可以被表示为少数的简单的代数运算。
因此\glssymbol{ELBO}是易于处理的。
因此\gls{ELBO}是易于处理的。
我们可以把$\CalL$看作是难以处理的似然函数的对数。
% 634 head

Expand Down
6 changes: 3 additions & 3 deletions Chapter2/linear_algebra.tex
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ \section{标量,向量,矩阵和张量}
\item \firstgls{tensor}:在某些情况下,我们会讨论不只两维坐标的数组。
一般地,一组数组中的元素分布在若干维坐标的规则网格中,我们将其称之为张量。
我们使用这种字体$\TSA$来表示张量``A''
张量$\TSA$中坐标为$(i,j,k)$的元素记作$\textsf{\emph{A}}_{i,j,k}$
张量$\TSA$中坐标为$(i,j,k)$的元素记作$\TEA_{i,j,k}$
\end{itemize}


Expand Down Expand Up @@ -531,7 +531,7 @@ \section{\glsentrytext{eigendecomposition}}
从这个表示中我们可以获得一些有用的信息,比如$12$不能被$5$整除,或者$12$的倍数可以被$3$整除。


正如我们可以通过分解质因数来发现一些关于整数的真实性质,我们也可以通过分解矩阵来获取矩阵表示成数组元素时不明显的函数性质
正如我们可以通过分解质因数来发现整数的一些内在性质,我们也可以通过分解矩阵来发现矩阵表示成数组元素时不明显的函数性质


\firstgls{eigendecomposition}是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值。
Expand All @@ -555,7 +555,7 @@ \section{\glsentrytext{eigendecomposition}}
类似地,我们也可以将特征值连接成一个向量$\Vlambda = [\lambda_1, \dots , \lambda_n]^\top$
因此$\MA$\firstgls{eigendecomposition}可以记作
\begin{equation}
\MA = \MV \text{diag}(\mathbf{\Vlambda}) \MV^{-1}.
\MA = \MV \text{diag}(\Vlambda) \MV^{-1}.
\end{equation}


Expand Down
8 changes: 3 additions & 5 deletions Chapter8/optimization_for_training_deep_models.tex
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,9 @@ \subsection{替代损失函数和\glsentrytext{early_stopping}}
这是因为即使$0-1$损失期望是零时,我们还能拉开不同类别的距离以改进分类器的鲁棒性,获得一个更强壮的,值得信赖的分类器。
因而,相较于简单地最小化训练集上的平均$0-1$损失,从训练数据中抽取了更多信息。

一般的优化和我们用于训练算法的优化的一个重要不同之处在于,训练算法通常不会停在一个局部最小处。
反之,机器学习通常会优化一个替代损失函数,并停止在基于\gls{early_stopping}(\secref{sec:early_stopping})的收敛条件满足的情况。
通常,\gls{early_stopping}是基于真实损失函数,如验证集上的$0-1$损失,并被设计用于将算法终止于过拟合发生之前。
训练过程通常终止于替代损失函数仍有较大的导数时,这和纯优化非常不同。
纯优化通常会考虑算法收敛到梯度很小的时候。
一般的优化和我们用于训练算法的优化的一个重要不同:训练算法通常不收敛在局部极小。
反之,机器学习通常优化替代损失函数,并可能基于\secref{sec:early_stopping}的收敛条件\gls{early_stopping}。
通常,\gls{early_stopping}使用真实损失函数,如验证集上的$0-1$损失函数,并在过拟合发生之前终止;与纯优化不同的是,\gls{early_stopping}时替代损失函数仍然有较大的导数,而纯优化终止时导数较小。

\subsection{批算法和\gls{minibatch}算法}
\label{sec:batch_and_minibatch_algorithms}
Expand Down
4 changes: 4 additions & 0 deletions acknowledgments_github.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,3 +144,7 @@
- @endymecy ==> Chapter14, 语句问题


2017年1月5日
---------------
- @tonyzeng2016 ==> Chapter8, 8.1.2最后一段翻译建议
- @zdx3578 ==> Chapter18, "intractable"翻译建议
10 changes: 5 additions & 5 deletions terminology.tex
Original file line number Diff line number Diff line change
Expand Up @@ -647,7 +647,7 @@

\newglossaryentry{estimator}
{
name=估计量,
name=估计,
description={estimator},
sort={estimator},
}
Expand Down Expand Up @@ -2174,7 +2174,7 @@

\newglossaryentry{score_matching}
{
name=分数匹配,
name=得分匹配,
description={score matching},
sort={score matching},
}
Expand Down Expand Up @@ -4287,7 +4287,7 @@

\newglossaryentry{score}
{
name=分数,
name=得分,
description={score},
sort={score},
}
Expand Down Expand Up @@ -4643,7 +4643,7 @@

\newglossaryentry{spurious_modes}
{
name=伪造模式,
name=虚假模态,
description={spurious modes},
sort={spurious modes},
}
Expand Down Expand Up @@ -4688,7 +4688,7 @@

\newglossaryentry{GSM}
{
name=广义分数匹配,
name=广义得分匹配,
description={generalized score matching},
sort={generalized score matching},
symbol={GSM}
Expand Down

0 comments on commit a318955

Please sign in to comment.