Skip to content

Commit

Permalink
adjust 16
Browse files Browse the repository at this point in the history
Former-commit-id: 05c0c27cdfc4058d74aec73240cf778979f02825
  • Loading branch information
futianfan committed Jan 2, 2017
1 parent 0a5cc98 commit c74cdee
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 37 deletions.
2 changes: 1 addition & 1 deletion Chapter13/linear_factor_models.tex
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ \section{\glssymbol{PCA}的\glsentrytext{manifold}解释}
\label{eqn:1321}
\SetE[\Vert\Vx - \hat{\Vx}\Vert^2]
\end{align}
的线性\gls{encoder}和\gls{decoder}的选择对应着$\MV = \MW$${\Vmu} = \Vb = \SetE[\Vx]$$\MW$的列 形成一组正交基,这组基生成的子空间相同与主特征向量 对应的\gls{covariance}矩阵$\MC$
的线性\gls{encoder}和\gls{decoder}的选择对应着$\MV = \MW$${\Vmu} = \Vb = \SetE[\Vx]$$\MW$的列 形成一组正交基,这组基生成的子空间相同于主特征向量 对应的\gls{covariance}矩阵$\MC$
\begin{align}
\label{eqn:1322}
\MC = \SetE[(\Vx - {\Vmu})(\Vx - {\Vmu})^{\top}].
Expand Down
77 changes: 41 additions & 36 deletions Chapter16/structured_probabilistic_modelling.tex
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ \chapter{\glsentrytext{DL}中的\glsentrytext{structured_probabilistic_models}}
我们曾经在\secref{sec:structured_probabilistic_models_chap3}中简要讨论过\gls{structured_probabilistic_models}。
那个简单的介绍已经足够使我们充分了解如何使用\gls{structured_probabilistic_models}来描述第二部分中的某些算法。
现在在第三部分,\gls{structured_probabilistic_models}是许多\gls{DL}中重要的研究方向的重要组成部分。
作为讨论这些研究方向的预备知识,本章详细的描述了\gls{structured_probabilistic_models}。
本章中我们努力做到内容的自包含性
作为讨论这些研究方向的预备知识,本章详细地描述了\gls{structured_probabilistic_models}。
本章中我们努力做到内容的自洽性
在阅读本章之前读者不需要回顾之前的介绍。
% 549


\gls{structured_probabilistic_models}使用图来描述概率分布中随机变量之间的直接相互作用,从而描述一个概率分布。
在这里我们使用了图论(一系列的结点通过一系列的边来连接)中的图的概念,由于模型的结构是由图来定义的,所以这些模型也通常被叫做\firstgls{graphical_models}。
在这里我们使用了图论(一系列结点通过一系列边来连接)中图的概念,由于模型的结构是由图来定义的,所以这些模型也通常被叫做\firstgls{graphical_models}。
% 549


Expand All @@ -32,7 +32,7 @@ \chapter{\glsentrytext{DL}中的\glsentrytext{structured_probabilistic_models}}

在本章中,我们首先介绍了建立大尺度概率模型中面临的挑战。
之后,我们介绍了如何使用一个图来描述概率分布的结构。
尽管这个方法能够帮助我们解决许多的挑战和问题,它本身也有很多缺陷。
尽管这个方法能够帮助我们解决许多挑战和问题,它本身也有很多缺陷。
\gls{graphical_models}中的一个主要难点就是判断哪些变量之间存在直接的相互作用关系,也就是对于给定的问题哪一种图结构是最适合的。
\secref{sec:learning_about_dependencies}中,通过了解\firstgls{dependency},我们简要概括了解决这个难点的两种基本方法。
最后,在\secref{sec:the_deep_learning_approach_to_structured_probabilistic_models}中,我们讨论并强调了\gls{graphical_models}在\gls{DL}中的一些独特之处和一些特有的方法,作为本章的收尾。
Expand Down Expand Up @@ -61,7 +61,7 @@ \section{非结构化建模的挑战}
我们也可以使用概率模型来完成许多其它的任务。
这些任务通常比分类更加昂贵。
其中的一些任务需要产生多个输出。
大部分任务需要对输入数据的整个结构的完整理解,所以并不能舍弃数据的一部分。
大部分任务需要对输入数据整个结构的完整理解,所以并不能舍弃数据的一部分。
这些任务包括了以下几个:
\begin{itemize}
\item \textbf{估计密度函数}:给定一个输入$\Vx$\gls{ML}系统返回了一个对数据生成分布的真实密度函数$p(\Vx)$的估计。
Expand All @@ -70,20 +70,25 @@ \section{非结构化建模的挑战}
% 551 ok


\item \textbf{\gls{denoising}}:给定一个受损的或者观察有误的输入数据$\tilde{\Vx}$\gls{ML}系统返回了一个对原始的真实$\Vx$的估计。
举个例子,有时候\gls{ML}系统需要从一张老相片中去除污渍或者抓痕。
这个系统会产生多个输出(对应着估计的干净样本$\Vx$的每一个元素),并且需要我们有一个对输入的整体理解(因为即使一个严重损害的区域也需要在最后的输出中恢复)。
\item
\textbf{\gls{denoising}}:给定一个受损的或者观察有误的输入数据$\tilde{\Vx}$\gls{ML}系统返回了一个对原始的真实$\Vx$的估计。
举个例子,有时候\gls{ML}系统需要从一张老相片中去除污渍或者抓痕。
这个系统会产生多个输出(对应着估计的干净样本$\Vx$的每一个元素),并且需要我们有一个对输入的整体理解(因为即使一个严重损害的区域也需要在最后的输出中恢复)。
% 551 ok

\item \textbf{缺失值的填补}:给定$\Vx$的某些元素作为观察值,模型被要求返回一个$\Vx$的一些或者全部未观察值的概率分布。
这个模型返回的也是多个输出。
由于这个模型需要恢复$\Vx$的每一个元素,所以它必须理解整个输入。
% 551 ok
\item
\textbf{缺失值的填补}:给定$\Vx$的某些元素作为观察值,模型被要求返回一个$\Vx$
一些或者全部未观察值的概率分布。
这个模型返回的也是多个输出。
由于这个模型需要恢复$\Vx$的每一个元素,所以它必须理解整个输入。
% 551 ok


\item \textbf{采样}: 模型从分布$p(\Vx)$中抽取新的样本。
应用包含了语音合成,即产生一个听起来很像人说话的声音。
这个模型也需要多个输出以及对输入整体的良好建模。
即使样本只有一个从错误分布中产生的元素,那么采样的过程也是错误的。
\item \textbf{采样}: 模型从分布$p(\Vx)$中抽取新的样本。
应用包含了语音合成,即产生一个听起来很像人说话的声音。
这个模型也需要多个输出以及对输入整体的良好建模。
即使样本只有一个从错误分布中产生的元素,那么采样的过程也是错误的。
% 551
\end{itemize}

\figref{fig:chap16_fig-ssrbm}中描述了一个使用较小的自然图片的采样任务。
Expand All @@ -106,7 +111,7 @@ \section{非结构化建模的挑战}
\label{fig:chap16_fig-ssrbm}
\end{figure}

对上千甚至是上百万的随机变量的分布建模,无论从计算上还是从统计意义上说,都是一个具有挑战性的任务。
对上千甚至是上百万随机变量的分布建模,无论从计算上还是从统计意义上说,都是一个具有挑战性的任务。
假设我们只想对二值的随机变量建模。
这是一个最简单的例子,但是仍然无能为力。
对一个小的$32\times 32$像素的彩色(RGB)图片来说,存在$2^{3072}$种可能的二值图片。
Expand All @@ -125,11 +130,11 @@ \section{非结构化建模的挑战}

\item \emph{统计的高效性}: 当模型中的参数个数增加的时候,使用随机估计时训练数据的量也需要相应的增加。
因为基于查表的模型拥有天文数字级别的参数,为了准确地拟合,相应的训练集的大小也是相同级别的。
任何这样的模型都会导致严重的\gls{overfitting},除非我们添加一些额外的假设来联系表格中的不同元素(正如\secref{sec:n_grams}中所举的back-off或者平滑过的\gls{n_gram}模型)。
任何这样的模型都会导致严重的\gls{overfitting},除非我们添加一些额外的假设来联系表格中的不同元素(正如\secref{sec:n_grams}中所举的\gls{backoff}或者平滑过的\gls{n_gram}模型)。
% 552 end

\item \emph{运行时间}:推断的开销。
假设我们需要完成一个推断的任务,其中我们需要使用联合分布$P(\Vx)$来计算某些其它的分布,比如说边缘分布$P(x_1)$或者是条件分布$P(x_2\mid x_1)$
假设我们需要完成一个推断的任务,其中我们需要使用联合分布$P(\RVx)$来计算某些其它的分布,比如说边缘分布$P(\RSx_1)$或者是条件分布$P(\RSx_2\mid \RSx_1)$
计算这样的分布需要对整个表格的某些项进行求和操作,因此这样的操作的运行时间和上述高昂的内存开销是一个级别的。
% 553 head

Expand Down Expand Up @@ -157,12 +162,12 @@ \section{非结构化建模的挑战}
我们可以用连续变量来建模他们每个人完成的时间。
因为Alice第一个跑,所以她的完成时间并不依赖于其它的人。
Bob的完成时间依赖于Alice的完成时间,因为Bob只能在Alice跑完以后才能开始跑。
如果Alice跑的更快,那么Bob也会完成的更快
如果Alice跑得更快,那么Bob也会完成得更快
所有的其它关系都可以被类似地推出。
最后,Carol的完成时间依赖于她的两个队友。
如果Alice跑得很慢,那么Bob也会完成的更慢
如果Alice跑得很慢,那么Bob也会完成得更慢
结果,Carol将会更晚开始跑步,因此她的完成时间也更有可能更晚。
然而,在给定Bob的完成时间的时候Carol的完成时间只是间接的依赖于Alice的完成时间
然而,在给定Bob完成时间的情况下Carol的完成时间只是间接地依赖于Alice的完成时间
如果我们已经知道了Bob的完成时间,知道Alice的完成时间对估计Carol的完成时间并无任何帮助。
这意味着可以通过仅仅两个相互作用来建模这个接力赛。
这两个相互作用分别是Alice的完成时间对Bob的完成时间的影响和Bob的完成时间对Carol的完成时间的影响。
Expand All @@ -188,9 +193,9 @@ \section{使用图来描述模型结构}
% 554


使用图来描述概率分布中的相互作用的方法不止一种
使用图来描述概率分布中相互作用的方法不止一种
在下文中我们会介绍几种最为流行和有用的方法。
\gls{graphical_models}可以被大致的分为两类:基于模型的有向无环图,和基于模型的\gls{undirected_model}。
\gls{graphical_models}可以被大致分为两类:基于模型的有向无环图,和基于模型的\gls{undirected_model}。
% 554


Expand Down Expand Up @@ -223,8 +228,8 @@ \subsection{\glsentrytext{directed_model}}
\centerline{\includegraphics{Chapter16/figures/relay_race_graph}}
\fi
\caption{一个描述接力赛例子的\gls{directed_graphical_model}。
Alice的完成时间$t_0$影响了Bob的完成时间$t_1$,因为Bob会在Alice完成比赛后才开始。
类似的,Carol也只会在Bob完成之后才开始,所以Bob的完成时间$t_1$直接影响了Carol的完成时间$t_2$。}
Alice的完成时间$\RSt_0$影响了Bob的完成时间$\RSt_1$,因为Bob会在Alice完成比赛后才开始。
类似的,Carol也只会在Bob完成之后才开始,所以Bob的完成时间$\RSt_1$直接影响了Carol的完成时间$\RSt_2$。}
\label{fig:relay_race_graph}
\end{figure}

Expand Down Expand Up @@ -255,7 +260,7 @@ \subsection{\glsentrytext{directed_model}}
假设我们采用从第$0$分钟到第$10$分钟每$6$秒一块的方式离散化地表示时间。
这使得$\RSt_0$$\RSt_1$$\RSt_2$都是一个有$100$个取值可能的离散变量。
如果我们尝试着用一个表来表示$p(\RSt_0,\RSt_1,\RSt_2)$,那么我们需要存储$999,999$个值
$\RSt_0$的取值100 $\times$ $\RSt_1$的取值100 $\times$ $\RSt_2$的取值100 减去1,所有的概率的和为1,所以其中有1个值的存储是多余的)。
$\RSt_0$的取值100 $\times$ $\RSt_1$的取值100 $\times$ $\RSt_2$的取值100 减去1,所有的概率的和为$1$,所以其中有$1$个值的存储是多余的)。
反之,如果我们用一个表来记录每一种条件概率分布,那么记录$\RSt_0$的分布需要存储$99$个值,给定$\RSt_0$情况下$\RSt_1$的分布需要存储9900个值,给定$\RSt_1$情况下$\RSt_2$的分布也需要存储$9900$个值。
加起来总共需要存储$19, 899$个值。
这意味着使用\gls{directed_graphical_model}将需要存储的参数的个数减少了超过$50$倍!
Expand All @@ -278,7 +283,7 @@ \subsection{\glsentrytext{directed_model}}
决定那些信息需要被包含在图中而哪些不需要是很重要的。
如果许多变量可以被假设为是条件独立的,那么这个\gls{graphical_models}可以被大大简化。
当然也存在其它的简化\gls{graphical_models}的假设。
比如说,我们可以假设无论Alice的表现如何,Bob总是跑的一样快
比如说,我们可以假设无论Alice的表现如何,Bob总是跑得一样快
(实际上,Alice的表现很大概率会影响Bob的表现,这取决于Bob的性格,
如果在之前的比赛中Alice跑得特别快,这有可能鼓励Bob更加努力,当然这也有可能使得Bob懒惰)。
那么Alice对Bob的唯一影响就是在计算Bob的完成时间时需要加上Alice的时间。
Expand Down Expand Up @@ -960,7 +965,7 @@ \section{学习\glsentrytext{dependency}关系}
% 572 end

一个好的不包含任何\gls{latent_variable}$\RVv$的模型需要在\gls{bayesian_network}中的每个节点具有大量父节点或在\gls{markov_network}中具有非常大的\gls{clique}。
但是代表这些高阶的相互作用是昂贵的,首先从计算角度上,存储在存储器中的参数的数量是\gls{clique}中的成员的数量的指数级别,接着在统计学意义上,因为这个指数数量的参数需要大量的数据来准确估计。
但是代表这些高阶的相互作用是昂贵的,首先从计算角度上,存储在存储器中的参数数量是\gls{clique}中成员数量的指数级别,接着在统计学意义上,因为这个指数数量的参数需要大量的数据来准确估计。
% 573 head


Expand Down Expand Up @@ -1007,11 +1012,11 @@ \section{推断和近似推断}
\log p(\Vv) = \SetE_{\RVh \sim p(\RVh\mid \Vv)} [\log p(\Vh,\Vv) - \log p(\Vh\mid\Vv)]
\end{align}
学习过程中,我们经常想要计算$p(\RVh\mid\Vv)$
所有这些都是\firstgls{inference}问题的例子,其中我们必须预测给定其他变量的情况下一些变量的值,或者在给定其他变量的值的情况下预测一些变量的概率分布
所有这些都是\firstgls{inference}问题的例子,其中我们必须预测给定其他变量的情况下一些变量的值,或者在给定其他变量值的情况下预测一些变量的概率分布
% 574

不幸的是,对于大多数有趣的深层模型,这些推断问题都是难以处理的,即使我们使用结构化的\gls{graphical_models}来简化它们。
图结构允许我们用合理数量的参数来表示复杂的高维分布,但是用于\gls{DL}的\gls{graphical_models}并不满足这样的条件,从而难以实现高效的推断
图结构允许我们用合理数量的参数来表示复杂的高维分布,但是用于\gls{DL}的\gls{graphical_models}并不满足这样的条件,从而难以实现高效地推断
% 574


Expand Down Expand Up @@ -1079,14 +1084,14 @@ \section{结构化概率模型的\glsentrytext{DL}方法}

另一个明显的区别是\gls{DL}方法中经常使用的连接类型。
深度图模型通常具有大的与其它单元组全连接的单元组,使得两个组之间的相互作用可以由单个矩阵描述。
传统的\gls{graphical_models}具有非常少的连接,并且每个变量的连接的选择可以单独设计
传统的\gls{graphical_models}具有非常少的连接,并且每个变量的连接选择可以单独设计
模型结构的设计与推断算法的选择紧密相关。
\gls{graphical_models}的传统方法通常旨在保持精确推断的可追踪性。
当这个约束太强的时候,我们可以采用一种流行的被称为是\firstgls{loopy_belief_propagation}的近似推断算法。
这两种方法通常在连接非常稀疏的图上有很好的效果。
相比之下,在\gls{DL}中使用的模型倾向于将每个可见单元$\RSv_i$连接到非常多的隐藏单元$\RSh_j$上,从而使得$\RVh$可以获得一个$\RSv_i$的分布式表示(也可能是其他几个可观察变量)。
分布式表示具有许多优点,但是从\gls{graphical_models}和计算复杂性的观点来看,分布式表示有一个缺点就是对于精确推断和循环信任传播等传统技术来说不能产生足够稀疏的图。
结果,\gls{graphical_models}和深度图模型的最大的区别之一就是\gls{DL}中从来不会使用\gls{loopy_belief_propagation}。
结果,\gls{graphical_models}和深度图模型最大的区别之一就是\gls{DL}中从来不会使用\gls{loopy_belief_propagation}。
相反的,许多\gls{DL}模型可以用来加速\gls{gibbs_sampling}或者变分推断。
此外,\gls{DL}模型包含了大量的\gls{latent_variable},使得高效的数值计算代码显得格外重要。
除了选择高级推断算法之外,这提供了另外的动机,用于将结点分组成层,相邻两层之间用一个矩阵来描述相互作用。
Expand All @@ -1098,8 +1103,8 @@ \section{结构化概率模型的\glsentrytext{DL}方法}
最后,\gls{graphical_models}的\gls{DL}方法的一个主要特征在于对未知量的较高容忍度。
与简化模型直到它的每一个量都可以被精确计算不同的是,我们让模型保持了较高的自由度,以增强模型的威力。
我们一般使用边缘分布不能计算但是可以简单的从中采样的模型。
我们经常训练具有难以处理的目标函数的模型,我们甚至不能在合理的时间内近似,但是如果我们能够高效地获得这样的函数的梯度的估计,我们仍然能够近似训练模型。
深度学习方法通常是找出我们绝对需要的最小量的信息,然后找出如何尽快得到该信息的合理近似。
我们经常训练具有难以处理的目标函数的模型,我们甚至不能在合理的时间内近似,但是如果我们能够高效地获得这样的函数的梯度估计,我们仍然能够近似训练模型。
深度学习方法通常是找出我们绝对需要的最小量信息,然后找出如何尽快得到该信息的合理近似。
% 577 head


Expand All @@ -1121,7 +1126,7 @@ \subsection{实例:\glsentrytext{RBM}}
\label{eqn:1610}
E(\Vv,\Vh) = -\Vb^{\top}\Vv - \Vc^{\top}\Vh - \Vv^{\top}\MW\Vh
\end{align}
其中$\Vb,\Vc$$\MW$都是无限制的实值的可学习参数
其中$\Vb,\Vc$$\MW$都是无约束的实值的可学习参数
我们可以看到,模型被分成两组单元:$\Vv$$\Vh$,它们之间的相互作用由矩阵$\MW$来描述。
该模型在\figref{fig:rbm}中图示。
如该图所示,该模型的一个重要方面是在任何两个可见单元之间或任何两个隐藏单元之间没有直接的相互作用(因此称为``受限'',一般的\gls{BM}可以具有任意连接)。
Expand Down
9 changes: 9 additions & 0 deletions terminology.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2708,6 +2708,15 @@
sort={graphical model},
}


\newglossaryentry{backoff}
{
name=回退,
description={back-off},
sort={back-off},
}


\newglossaryentry{directed}
{
name=有向,
Expand Down

0 comments on commit c74cdee

Please sign in to comment.