Skip to content

Commit

Permalink
latent/hidden fix; qita fix; update contributor
Browse files Browse the repository at this point in the history
Former-commit-id: 9ef44f8328b96823d2a64f2000789a400c7e3641
  • Loading branch information
SwordYork committed Jan 19, 2017
1 parent 1e6e044 commit fcf6130
Show file tree
Hide file tree
Showing 33 changed files with 376 additions and 356 deletions.
10 changes: 5 additions & 5 deletions Chapter1/introduction.tex
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ \chapter{前言}
许多诸如说话口音这样的变化因素,只能对数据进行复杂的、接近人类水平的理解来辨识。
这几乎与获得原问题的\gls{representation}一样困难,因此,乍一看,\gls{representation_learning}似乎并不能帮助我们。

\firstgls{DL}通过其它较简单的\gls{representation}来表达复杂\gls{representation},解决了\gls{representation_learning}中的核心问题。
\firstgls{DL}通过其他较简单的\gls{representation}来表达复杂\gls{representation},解决了\gls{representation_learning}中的核心问题。

\begin{figure}[!htb]
\ifOpenSource
Expand Down Expand Up @@ -200,7 +200,7 @@ \chapter{前言}
这是因为系统对较简单概念的理解在给出更复杂概念的信息后可以进一步细化。
例如,一个\glssymbol{AI}系统观察其中一只眼睛在阴影中的脸部图像时,它最初可能只看到一只眼睛。
但当检测到脸部的存在后,系统可以推断第二只眼睛也可能是存在的。
在这种情况下,概念的图仅包括两层(关于眼睛的层和关于脸的层),但如果我们根据每个概念给出的其它$n$次估计进行细化,计算的图将包括$2n$层。
在这种情况下,概念的图仅包括两层(关于眼睛的层和关于脸的层),但如果我们根据每个概念给出的其他$n$次估计进行细化,计算的图将包括$2n$层。

% -- 7 --

Expand Down Expand Up @@ -306,7 +306,7 @@ \subsection{神经网络的众多名称和命运变迁}
\caption{根据Google图书中短语``\gls{cybernetics}''``\gls{connectionism}''``\gls{NN}''频率衡量的\gls{ANN}研究的历史浪潮(图中展示了三次浪潮的前两次,第三次最近才出现)。
第一次浪潮开始于20世纪40年代到20世纪60年代的\gls{cybernetics},随着生物学习理论的发展\citep{McCulloch43,Hebb49}
和第一个模型的实现(如感知机~\citep{Rosenblatt-1958}) ,能实现单个神经元的训练。
第二次浪潮开始于1980-1995年间的\gls{connectionism}方法,可以使用反向传播\citep{Rumelhart86b-small} 训练具有一两个隐藏层的神经网络
第二次浪潮开始于1980-1995年间的\gls{connectionism}方法,可以使用反向传播\citep{Rumelhart86b-small} 训练具有一两个\gls{hidden_layer}的神经网络
当前第三次浪潮,也就是深度学习,大约始于2006年\citep{Hinton06,Bengio-nips-2006-small,ranzato-07-small},并且现在在2016年以书的形式出现。
另外两次浪潮类似地出现在书中的时间比相应的科学活动晚得多。
}
Expand Down Expand Up @@ -398,7 +398,7 @@ \subsection{神经网络的众多名称和命运变迁}
连接主义者开始研究实际能基于神经实现的认知模型\citep{Touretzky1985},其中很多复苏的想法可以追溯到心理学家\ENNAME{Donald Hebb}在20世纪40年代的工作\citep{Hebb49}。

\gls{connectionism}的中心思想是,当网络将大量简单计算单元连接在一起时可以实现智能行为。
这种见解同样适用于与计算模型中隐藏单元作用类似的生物神经系统中的神经元
这种见解同样适用于与计算模型中\gls{hidden_unit}作用类似的生物神经系统中的神经元

在上世纪80年代的\gls{connectionism}期间形成的几个关键概念在今天的\gls{DL}中仍然是非常重要的。

Expand Down Expand Up @@ -637,7 +637,7 @@ \subsection{与日俱增的精度、复杂度和对现实世界的冲击}
现代对象识别网络能处理丰富的高分辨率照片,并且不需要在被识别的对象附近进行裁剪\citep{Krizhevsky-2012}。
类似地,最早的网络只能识别两种对象(或在某些情况下,单类对象的存在与否),而这些现代网络通常能够识别至少\NUMTEXT{1000}个不同类别的对象。
对象识别中最大的比赛是每年举行的ImageNet大型视觉识别挑战(ILSVRC)。
\gls{DL}迅速崛起的激动人心的一幕是卷积网络第一次大幅赢得这一挑战,将最高水准的前5错误率从\NUMTEXT{26.1\%}降到\NUMTEXT{15.3\%}\citep{Krizhevsky-2012},这意味着该卷积网络针对每个图像的可能类别生成一个顺序列表,除了15.3\%的测试样本,其它测试样本的正确类别都出现在此列表中的前5项里
\gls{DL}迅速崛起的激动人心的一幕是卷积网络第一次大幅赢得这一挑战,将最高水准的前5错误率从\NUMTEXT{26.1\%}降到\NUMTEXT{15.3\%}\citep{Krizhevsky-2012},这意味着该卷积网络针对每个图像的可能类别生成一个顺序列表,除了15.3\%的测试样本,其他测试样本的正确类别都出现在此列表中的前5项里
此后,深度卷积网络连续地赢得这些比赛,截至写本书时,\gls{DL}的最新结果将这个比赛中的前5错误率降到了\NUMTEXT{3.6\%}, 如\figref{fig:chap1_imagenet_color}所示。

\begin{figure}[!htb]
Expand Down
16 changes: 8 additions & 8 deletions Chapter12/applications.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
\chapter{应用}
\label{chap:applications}

本章,我们将介绍如何使用\gls{DL}解决\gls{CV}、\gls{SR}、\gls{NLP}以及其它商业领域中的应用
本章,我们将介绍如何使用\gls{DL}解决\gls{CV}、\gls{SR}、\gls{NLP}以及其他商业领域中的应用
首先我们讨论在许多最重要的\glssymbol{AI}应用中所需的大规模\gls{NN}的实现。
接着,我们回顾\gls{DL}已经成功应用的几个特定领域。
尽管\gls{DL}的一个目标是设计能够处理各种任务的算法,然而截止目前应用\gls{DL}仍然需要一定程度的特殊化。
Expand Down Expand Up @@ -38,7 +38,7 @@ \subsection{快速的CPU实现}
通过调整\gls{fixed_point_arithmetic}的实现方式,\citet{Vanhoucke-et-al-2011}获得了相对一个很强的\gls{float_point_arithmetic}系统3倍的加速。
因为各个新型CPU都有各自不同的特性,所以有时候采用\gls{float_point_arithmetic}实现会更快。
一条重要的准则就是通过特殊设计的数值运算可以获得巨大的回报。
除了选择\gls{fixed_point_arithmetic}或者\gls{float_point_arithmetic}以外,还包括其它的策略,如通过优化数据结构避免高速缓存缺失、使用向量指令等。
除了选择\gls{fixed_point_arithmetic}或者\gls{float_point_arithmetic}以外,还包括其他的策略,如通过优化数据结构避免高速缓存缺失、使用向量指令等。
如果模型规模不会限制模型表现(不会影响模型精度)时,\gls{ML}的研究者们一般忽略这些实现的细节。
% 432

Expand Down Expand Up @@ -111,7 +111,7 @@ \subsection{GPU 实现}
例如,\gls{ML}库Pylearn2 \citep{pylearn2_arxiv_2013}通过调用Theano \citep{bergstra+al:2010-scipy-short,Bastien-2012}和cuda-convnet \citep{Krizhevsky2010tr}提供的高性能操作,囊括了许多\gls{ML}算法。
这种分解方法还可以简化对多种硬件的支持。
例如,同一个Theano程序可以在CPU或者\glssymbol{GPU}上运行,而不需要改变调用Theano的方式。
其它库如Tensorflow\citep{tensorflow}和Torch\citep{Torch-2011}也提供了类似的功能。
其他库如Tensorflow\citep{tensorflow}和Torch\citep{Torch-2011}也提供了类似的功能。
% 434 end


Expand Down Expand Up @@ -141,7 +141,7 @@ \subsection{大规模的分布式实现}
这个问题可以使用\firstgls{ASGD}\citep{Bengio+Bengio96,Recht-et-al-NIPS2011}解决。
在这个方法中,几个处理器的核共用存有参数的内存。
每一个核在无锁情况下读取了这些参数,然后计算对应的梯度,然后在无锁状态下更新了这些参数。
这种方法减少了每一个\gls{GD}所获得的平均提升,因为一些核把其它的核所更新的参数(写)覆盖了。
这种方法减少了每一个\gls{GD}所获得的平均提升,因为一些核把其他的核所更新的参数(写)覆盖了。
但因为更新步数的速率增加,总体上还是加快了学习过程。
\citet{Dean-et-al-NIPS2012}率先提出了多机器无锁的\gls{GD}方法,其中参数是由\firstgls{parameter_server}管理而非存储在共用的内存中。
分布式的异步\gls{GD}方法依然是训练\gls{DNN}的基本方法,被工业界很多\gls{ML}组所使用\citep{chilimbi2014project,Wu-et-al-arXiv2015}。
Expand Down Expand Up @@ -177,7 +177,7 @@ \subsection{\glsentrytext{model_compression}}
为了更加充分地利用了这个新的小模型的\gls{capacity},最好能够从一个类似于真实的测试数据(后面会用到)的分布中采样$\Vx$
这个过程可以通过损坏训练样本或者从原始训练数据训练的生成模型中采样完成。

此外,我们还可以仅在原始训练数据上训练一个更小的模型,但只是为了复制模型的其它特征,比如在不正确的类上的后验分布\citep{Hinton-dark-2014,hinton2015distilling}。
此外,我们还可以仅在原始训练数据上训练一个更小的模型,但只是为了复制模型的其他特征,比如在不正确的类上的后验分布\citep{Hinton-dark-2014,hinton2015distilling}。
% 436

\subsection{\glsentrytext{dynamic_structure}}
Expand All @@ -191,7 +191,7 @@ \subsection{\glsentrytext{dynamic_structure}}
% 436

\gls{dynamic_structure}计算是一种基础的计算机科学方法,广泛应用于软件工程项目。
应用于神经网络的最简单的\gls{dynamic_structure}基于决定神经网络(或者其它\gls{ML}模型)中的哪些子集需要应用于特定的输入。
应用于神经网络的最简单的\gls{dynamic_structure}基于决定神经网络(或者其他\gls{ML}模型)中的哪些子集需要应用于特定的输入。
% 437

在分类器中加速推断的可行策略是使用\firstgls{cascade}的分类器。
Expand Down Expand Up @@ -539,7 +539,7 @@ \section{\glsentrytext{SR}}
这个领域第一个主要的突破是\citet{Graves-et-al-ICASSP2013},其中训练了一个深度的\gls{LSTM}\gls{RNN}(见\secref{sec:the_long_short_term_memory_and_other_gated_rnns}),使用了帧-\gls{phoneme}排列的\glssymbol{MAP}推断,就像\citet{chapter-gradient-document-2001}以及CTC框架~\citep{Graves-et-al-2006,Graves-book2012}中一样。
一个深度\gls{RNN}~\citep{Graves-et-al-ICASSP2013}每个\gls{time_step}各层都有状态变量,有两种\gls{unfolded_graph}的方式:一种是根据层的堆叠,另一种是时间\gls{unfolding}。
这个工作把TIMIT数据集上\gls{phoneme}的错误率降到了记录的新低$17.7$\%
关于应用于其它领域的深度\gls{RNN}的变种可以参考\citet{Pascanu-et-al-ICLR2014,Chung-et-al-NIPSDL2014-small}。
关于应用于其他领域的深度\gls{RNN}的变种可以参考\citet{Pascanu-et-al-ICLR2014,Chung-et-al-NIPSDL2014-small}。
% 448

另一个\gls{end_to_end}\gls{DL}\gls{SR}方向的最新方法是让系统学习如何利用\firstgls{phonetic}层级的信息``排列''\firstgls{acoustic}层级的信息~\citep{Chorowski-et-al-arxiv2014,llu_is2015b}。
Expand Down Expand Up @@ -1225,7 +1225,7 @@ \subsubsection{知识、联系和回答}
\gls{memory_network}首先被提出解决一个玩具问答任务\citep{Weston2014}。
\citet{Kumar-et-al-arxiv2015} 提出了一种扩展,使用GRU\gls{recurrent_network}将输入读入存储器并且在给定存储器的内容后产生回答。

\gls{DL}已经应用于其它许多应用(除了这里描述的应用以外),并且肯定会在此之后应用于更多的场景。
\gls{DL}已经应用于其他许多应用(除了这里描述的应用以外),并且肯定会在此之后应用于更多的场景。
我们不可能一下子描述全面覆盖主题的所有略微相似的应用 。
在本文写作之时,这项调查尽可能提供了有代表性的样本。

Expand Down
14 changes: 7 additions & 7 deletions Chapter13/linear_factor_models.tex
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ \chapter{\glsentrytext{linear_factor}}
\else
\centerline{\includegraphics{Chapter13/figures/linear_factors}}
\fi
\caption{描述\gls{linear_factor}族的\gls{directed_graphical_model},其中我们假设一个观察到的数据向量$\Vx$是通过独立的隐含因子$\Vh$的线性组合获得的,加上一定的噪音。
\caption{描述\gls{linear_factor}族的\gls{directed_graphical_model},其中我们假设一个观察到的数据向量$\Vx$是通过独立的\gls{latent}因子$\Vh$的线性组合获得的,加上一定的噪音。
不同的模型,比如\gls{PPCA},\gls{FA}或者是\glssymbol{ICA},都是选择了不同形式的噪音以及先验$p(\Vh)$。}
\label{fig:linear_factors}
\end{figure}
Expand Down Expand Up @@ -126,14 +126,14 @@ \section{\glsentrytext{ICA}}

许多不同的具体方法被称为\gls{ICA}。
与我们本书中描述的其他\gls{generative_model}最相似的\gls{ICA}变种是训练完全参数化的\gls{generative_model}\citep{Pham-et-al-1992}。
隐含因子$\Vh$的先验$p(\Vh)$,必须由用户给出并固定。
\gls{latent}因子$\Vh$的先验$p(\Vh)$,必须由用户给出并固定。
接着模型确定性地生成$\Vx = \MW \Vh$
我们可以通过非线性变化(使用\eqnref{eqn:3.47})来确定$p(\Vx)$
然后通过一般的方法比如\gls{MLE}进行学习。
% 482 head


这种方法的动机是,通过选择一个独立的$p(\Vh)$我们可以尽可能恢复接近独立的隐含因子
这种方法的动机是,通过选择一个独立的$p(\Vh)$我们可以尽可能恢复接近独立的\gls{latent}因子
这是一种常用的方法,它并不是用来捕捉高级别的抽象的因果因子,而是恢复已经混合在一起的低级别信号。
在该设置中,每个训练样本对应一个时刻,每个$x_i$是一个传感器的对混合信号的观察值,并且每个$h_i$是单个原始信号的一个估计。
例如,我们可能有$n$个人同时说话。
Expand Down Expand Up @@ -184,7 +184,7 @@ \section{\glsentrytext{ICA}}

\gls{ICA}的另一个推广是通过在组内鼓励统计依赖关系在组之间抑制依赖关系来学习一组特征。
当相关单元的组不重叠时,这被称为\firstgls{ISA}。
还可以向每个隐藏单元分配空间坐标,并且空间上相邻的单元形成一定程度的重叠。
还可以向每个\gls{hidden_unit}分配空间坐标,并且空间上相邻的单元形成一定程度的重叠。
这能够鼓励相邻的单元学习类似的特征。
当应用于自然图像时,这种拓扑\gls{ICA}方法学习Gabor滤波器,从而使得相邻特征具有相似的定向,位置或频率。
在每个区域内出现类似Gabor函数的许多不同相位偏移,使得在小区域上的合并产生了平移不变性。
Expand Down Expand Up @@ -302,7 +302,7 @@ \section{\glsentrytext{sparse_coding}}
严格地说,术语``\gls{sparse_coding}''是指在该模型中推断$\Vh$的值的过程,而``稀疏建模''是指设计和学习模型的过程,但是通常这两个概念都可以用术语``\gls{sparse_coding}''描述。
% 486

像其它的\gls{linear_factor}一样,它使用了线性的\gls{decoder}加上噪音的方式获得一个$\Vx$的重构,就像\eqnref{eqn:132}描述的一样。
像其他的\gls{linear_factor}一样,它使用了线性的\gls{decoder}加上噪音的方式获得一个$\Vx$的重构,就像\eqnref{eqn:132}描述的一样。
更具体的说,\gls{sparse_coding}模型通常假设线性因子有一个各向同性的精度为$\beta$的高斯噪音:
\begin{align}
\label{eqn:1312}
Expand Down Expand Up @@ -409,7 +409,7 @@ \section{\glsentrytext{sparse_coding}}
因此这个模型也学习到了有用的特征。
问题在于特征的\gls{factorial}先验会导致特征子集合随机的组合。
一些这样的子集能够合成可识别的MNIST集上的数字。
这也促进了拥有更强大的隐含编码的\gls{generative_model}的发展。
这也促进了拥有更强大的\gls{latent}编码的\gls{generative_model}的发展。
此图是从\citet{Goodfeli-et-al-TPAMI-Deep-PrePrint-2013-small}中拷贝来的,并获得允许。}
\label{fig:s3c_samples}
\end{figure}
Expand Down Expand Up @@ -438,7 +438,7 @@ \section{\glssymbol{PCA}的\glsentrytext{manifold}解释}
\fi
\caption{平坦的高斯能够描述一个低维\gls{manifold}附近的概率密度。
此图表示了``\gls{manifold}平面''上的``馅饼''的上半部分并且穿过了它的中心。
正交于\gls{manifold}方向(指出平面的箭头)的方差非常小,可以被视作是``噪音''其它方向(平面内的箭头)的方差则很大,对应了``信号''以及低维数据的坐标系统。}
正交于\gls{manifold}方向(指出平面的箭头)的方差非常小,可以被视作是``噪音''其他方向(平面内的箭头)的方差则很大,对应了``信号''以及低维数据的坐标系统。}
\label{fig:PPCA_pancake}
\end{figure}

Expand Down
Loading

0 comments on commit fcf6130

Please sign in to comment.