Skip to content

Commit

Permalink
add space between gls and variable
Browse files Browse the repository at this point in the history
Former-commit-id: 168718acea9bc4da62227d1fdb63f504b4c5f8cb
  • Loading branch information
SwordYork committed Jan 14, 2017
1 parent c425621 commit 3256b55
Show file tree
Hide file tree
Showing 33 changed files with 484 additions and 449 deletions.
12 changes: 6 additions & 6 deletions Chapter11/practical_methodology.tex
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ \section{\glsentrytext{performance_metrics}}
每当这个值超过某个阈值时,我们报告检测结果。
通过调整阈值,我们能以\gls{precision}换\gls{recall}。
在很多情况下,我们希望用一个数而不是曲线来概括分类器的性能。
要做到这一点,我们可以转换\gls{precision}$p$\gls{recall}$r$\textbf{F-score}
要做到这一点,我们可以转换\gls{precision} $p$\gls{recall} $r$\textbf{F-score}
\begin{equation}
F = \frac{2pr}{p+r}.
\end{equation}
Expand Down Expand Up @@ -385,7 +385,7 @@ \subsection{\glsentrytext{grid_search}}
通常,\gls{grid_search}大约会在\firstgls{logarithmic_scale}下挑选合适的值,例如,一个学习率的取值集合是$\{0.1,0.01,10^{-3},10^{-4},10^{-5}\}$,或者\gls{hidden_unit}数目的取值集合$\{50,100,200,500,1000,2000\}$

通常重复进行\gls{grid_search}时,效果会最好。
例如,假设我们在集合$\{-1,0,1\}$\gls{grid_search}\gls{hyperparameter}$\alpha$
例如,假设我们在集合$\{-1,0,1\}$\gls{grid_search}\gls{hyperparameter} $\alpha$
如果找到的最佳值是$1$,那么说明我们低估了最优值$\alpha$所在的范围,应该扩大搜索范围,例如在集合$\{1,2,3\}$中搜索。
如果最佳值是$0$,那么我们不妨通过细化搜索范围以改进估计,在集合$\{-0.1,0,0.1\}$上进行\gls{grid_search}。

Expand Down Expand Up @@ -460,7 +460,7 @@ \section{调试策略}

另一个难点是,大部分\gls{ML}模型有多个自适应的部分。
如果一个部分失效了,其他部分仍然可以自适应,并获得大致可接受的性能。
例如,假设我们正在训练多层神经网络,其中参数为权重$\MW$\gls{bias_aff}$\Vb$
例如,假设我们正在训练多层神经网络,其中参数为权重$\MW$\gls{bias_aff} $\Vb$
进一步假设,我们单独手动实现了每个参数的梯度下降规则。
而我们在偏置更新时犯了一个错误:
\begin{equation}
Expand Down Expand Up @@ -536,7 +536,7 @@ \section{调试策略}

通常,我们会测试向量值函数$g:\SetR^m \to \SetR^n$的梯度或\gls{jacobian}矩阵。
令人遗憾的是,\gls{finite_difference}只允许我们每次计算一个导数。
我们既可以运行\gls{finite_difference}$mn$次评估$g$的所有偏导数,又可以将该测试应用于一个输入输出都是$g$的随机投影的新函数。
我们既可以运行\gls{finite_difference} $mn$次评估$g$的所有偏导数,又可以将该测试应用于一个输入输出都是$g$的随机投影的新函数。
例如,我们可以用导数实现去测试函数$f(x) = \Vu^T g(\Vv x)$,其中$\Vu$$\Vv$是随机向量。
正确计算$f'(x)$要求能够正确地通过$g$反向传播,但是使用\gls{finite_difference}能够很有效地计算,因为$f$只有一个输入和一个输出。
在多个$\Vu$值和$\Vv$值上重复这个测试通常是个好主意,可以减少测试忽略了垂直于随机投影的几率。
Expand Down Expand Up @@ -587,8 +587,8 @@ \section{示例:多位数字识别}
具体地,目标是达到人类水平,$98\%$\gls{accuracy}。
这种程度的\gls{accuracy}并不是总能达到。
为了达到这个级别的\gls{accuracy},街景\gls{transcription_system}牺牲了\gls{coverage}。
因此在保持\gls{accuracy}$98\%$的情况下,\gls{coverage}成了这个项目优化的主要\gls{performance_metrics}。
随着卷积网络的改进,能够降低网络拒绝转录输入的置信度阈值,最终超出了\gls{coverage}$95\%$的目标。
因此在保持\gls{accuracy} $98\%$的情况下,\gls{coverage}成了这个项目优化的主要\gls{performance_metrics}。
随着卷积网络的改进,能够降低网络拒绝转录输入的置信度阈值,最终超出了\gls{coverage} $95\%$的目标。

% -- 428 --

Expand Down
4 changes: 2 additions & 2 deletions Chapter12/applications.tex
Original file line number Diff line number Diff line change
Expand Up @@ -702,7 +702,7 @@ \subsection{高维输出}
对于专门的\gls{loss_function},可以有效地计算梯度 \citep{Vincent2015},但是应用于传统\ENNAME{softmax}输出层的标准\gls{cross_entropy}损失时会出现了许多困难。

假设$\Vh$是用于预测输出概率$\hat \Vy$的顶部隐藏层。
如果我们使用学到的权重$\MW$和学到的\gls{bias_aff}$\Vb$参数化从$\Vh$$\hat \Vy$的变换,则仿射\ENNAME{softmax}输出层执行以下计算:
如果我们使用学到的权重$\MW$和学到的\gls{bias_aff} $\Vb$参数化从$\Vh$$\hat \Vy$的变换,则仿射\ENNAME{softmax}输出层执行以下计算:
\begin{align}
\label{eq:softmax-over-words}
a_i &= b_i + \sum_j W_{ij} h_j \;\;\; \forall i \in \{1,\ldots,|\SetV|\}, \\
Expand Down Expand Up @@ -839,7 +839,7 @@ \subsubsection{\glsentrytext{importance_sampling}}
\begin{align}
\sum_{i=1}^{|\SetV|} P(i \mid C) \frac{\partial a_i}{\partial \theta} \approx \frac{1}{m} \sum_{i=1}^m w_i \frac{\partial a_{n_i}}{\partial \theta}.
\end{align}
\gls{unigram}或\gls{bigram}分布与\gls{proposal_distribution}$q$工作得一样好。
\gls{unigram}或\gls{bigram}分布与\gls{proposal_distribution} $q$工作得一样好。
从数据估计这种分布的参数是很容易。
在估计参数之后,也可以非常高效地从这样的分布采样。

Expand Down
6 changes: 3 additions & 3 deletions Chapter13/linear_factor_models.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ \chapter{\glsentrytext{linear_factor}}

许多深度学习的研究前沿涉及到了构建输入的概率模型$p_{\text{model}}(\Vx)$
原则上说,给定任何其他变量的情况下,这样的模型可以使用概率推断来预测其环境中的任何变量。
许多这样的模型还具有\gls{latent_variable}$\Vh$,其中$p_{\text{model}}(\Vx) = \SetE_{\Vh} p_{\text{model}}(\Vx\mid\Vh)$
许多这样的模型还具有\gls{latent_variable} $\Vh$,其中$p_{\text{model}}(\Vx) = \SetE_{\Vh} p_{\text{model}}(\Vx\mid\Vh)$
这些\gls{latent_variable}提供了表示数据的另一种方式。
基于\gls{latent_variable}的分布式表示可以有很多优点,这些我们在\gls{deep_feedforward_network}和\gls{RNN}中已经发现。
% 479
Expand Down Expand Up @@ -61,7 +61,7 @@ \section{\glsentrytext{PPCA}和\glsentrytext{FA}}
\label{sec:probabilistic_PCA_and_factor_analysis}
% 480

\firstgls{PPCA},\gls{FA}和其他\gls{linear_factor}是上述等式(\eqnref{eqn:131},\eqnref{eqn:132})的特殊情况,并且仅在对观测到$\Vx$之前的噪声分布和\gls{latent_variable}$\Vh$的先验的选择上不同。
\firstgls{PPCA},\gls{FA}和其他\gls{linear_factor}是上述等式(\eqnref{eqn:131},\eqnref{eqn:132})的特殊情况,并且仅在对观测到$\Vx$之前的噪声分布和\gls{latent_variable} $\Vh$的先验的选择上不同。
% 480

\firstgls{FA}\citep{Bartholomew-1987,Basilevsky94}中,\gls{latent_variable}的先验是一个方差为单位矩阵的\gls{gaussian_distribution}
Expand Down Expand Up @@ -102,7 +102,7 @@ \section{\glsentrytext{PPCA}和\glsentrytext{FA}}
% 481


\gls{PPCA}模型利用了这样一种观察的现象:除了一些小的\gls{reconstruction_error}$\sigma^2$,数据中的大多数变化可以由\gls{latent_variable}$\Vh$描述。
\gls{PPCA}模型利用了这样一种观察的现象:除了一些小的\gls{reconstruction_error} $\sigma^2$,数据中的大多数变化可以由\gls{latent_variable} $\Vh$描述。
通过\citet{tipping99mixtures}的研究可以发现,当$\sigma \xrightarrow{} 0$的时候,\gls{PPCA}等价于\glssymbol{PCA}。
在这种情况下,给定$\Vx$情况下的$\Vh$的条件期望等于将$\Vx - \Vb$投影到$\MW$$d$列的生成空间,与\glssymbol{PCA}一样。
% 481
Expand Down
20 changes: 10 additions & 10 deletions Chapter14/autoencoders.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ \chapter{\glsentrytext{AE}}
\label{chap:autoencoders}
\firstgls{AE}是\gls{NN}的一种,经过训练后能尝试将输入复制到输出。
\firstgls{AE}内部有一个隐含层$\Vh$,可以产生\firstgls{code}表示输入。
该网络可以看作由两部分组成:一个\gls{encoder}函数$ \Vh = f(\Vx)$和一个生成\gls{reconstruction}的\gls{decoder}$\Vr=g(\Vh)$
该网络可以看作由两部分组成:一个\gls{encoder}函数$ \Vh = f(\Vx)$和一个生成\gls{reconstruction}的\gls{decoder} $\Vr=g(\Vh)$
\figref{fig:chap14_autoencoder}展示了这种架构。
如果一个\gls{AE}学会简单地设置$g(f(\Vx)) =\Vx$,那么这个\gls{AE}就不会特别有用。
相反,\gls{AE}应该被设计成不能学会完美地复制。
Expand All @@ -28,7 +28,7 @@ \chapter{\glsentrytext{AE}}
\else
\centerline{\includegraphics{Chapter14/figures/autoencoder}}
\fi
\caption{\gls{AE}的一般结构,通过内部表示或\gls{code}$\Vh$将输入$\Vx$映射到输出(称为\gls{reconstruction})$\Vr$
\caption{\gls{AE}的一般结构,通过内部表示或\gls{code} $\Vh$将输入$\Vx$映射到输出(称为\gls{reconstruction})$\Vr$
\gls{AE}具有两个组件:\gls{encoder}~$f$(将$\Vx$映射到$\Vh$)和\gls{decoder}~$g$(将$\Vh$映射到$\Vr$)。
}
\label{fig:chap14_autoencoder}
Expand Down Expand Up @@ -59,7 +59,7 @@ \section{\glsentrytext{undercomplete}\glsentrytext{AE}}

因此拥有非线性编码函数$f$和非线性\gls{decoder}函数$g$\gls{AE}能够学习出更强大的\glssymbol{PCA}非线性推广。
不幸的是,如果\gls{encoder}和\gls{decoder}被赋予太大的\gls{capacity},\gls{AE}会执行复制任务而捕捉不到任何有关数据分布的有用信息。
从理论上说,我们可以想象只有一维\gls{code}的\gls{AE},但具有一个非常强大的非线性\gls{encoder},能够将每个训练数据$\Vx^{(i)}$表示为\gls{code}$~i$
从理论上说,我们可以想象只有一维\gls{code}的\gls{AE},但具有一个非常强大的非线性\gls{encoder},能够将每个训练数据$\Vx^{(i)}$表示为\gls{code} $~i$
\gls{decoder}可以学习将这些整数索引映射回特定训练样本的值。
这种特定情形不会在实践中发生,但它清楚地说明,如果\gls{AE}的\gls{capacity}太大,那训练来执行复制任务的\gls{AE}可能无法学习到数据集的任何有用信息。

Expand Down Expand Up @@ -250,7 +250,7 @@ \section{随机\glsentrytext{encoder}和\glsentrytext{decoder}}

\gls{AE}中,$\Vx$既是输入也是目标。
然而,我们仍然可以使用与之前相同的架构。
给定一个隐藏层\gls{code}$\Vh$,我们可以认为\gls{decoder}提供了一个条件分布$p_{\text{model}}(\Vx \mid \Vh)$
给定一个隐藏层\gls{code} $\Vh$,我们可以认为\gls{decoder}提供了一个条件分布$p_{\text{model}}(\Vx \mid \Vh)$
接着我们根据最小化$-\log p_{\text{decoder}}(\Vx \mid \Vh)$来训练\gls{AE}。
\gls{loss_function}的具体形式视$p_{\text{decoder}}$的形式而定。
就传统的\gls{feedforward_network}来说,我们通常使用线性输出单元参数化高斯分布的均值(如果$\Vx$是实的)。
Expand Down Expand Up @@ -299,7 +299,7 @@ \section{\glsentrytext{DAE}}
\item 从训练数据中采一个训练样本$\Vx$
\item$C(\tilde{\RVx} \mid \RVx=\Vx)$采一个损坏样本$\tilde \Vx$
\item$(\Vx, \tilde \Vx)$作为训练样本来估计\gls{AE}的\gls{reconstruction}分布
$p_{\text{reconstruct}} (\Vx \mid \tilde \Vx) = p_{\text{decoder}}(\Vx \mid\Vh)$,其中$\Vh$\gls{encoder}$f(\tilde \Vx)$的输出,$p_{\text{decoder}}$根据解码函数$g(\Vh)$定义。
$p_{\text{reconstruct}} (\Vx \mid \tilde \Vx) = p_{\text{decoder}}(\Vx \mid\Vh)$,其中$\Vh$\gls{encoder} $f(\tilde \Vx)$的输出,$p_{\text{decoder}}$根据解码函数$g(\Vh)$定义。
\end{enumerate}
通常我们可以简单地对负对数似然$-\log p_{\text{decoder}} (\Vx \mid \Vh)$进行基于梯度法(如\gls{minibatch}\gls{GD})的近似最小化。
只要\gls{encoder}是确定性的,\gls{DAE}就是一个\gls{feedforward_network},并且可以使用与其他\gls{feedforward_network}完全相同的方式进行训练。
Expand Down Expand Up @@ -351,7 +351,7 @@ \subsection{\glsentrytext{score}估计}
我们将训练样本$\Vx$表示为位于低维\gls{manifold}(粗黑线)附近的红叉。
我们用灰色圆圈表示等概率的损坏过程$C(\tilde \Vx \mid \Vx)$
灰色箭头演示了如何将一个训练样本转换为经过此损坏过程的样本。
当训练\gls{DAE}最小化平方误差$\| g(f(\tilde \Vx)) - \Vx \|^2$的平均值时,\gls{reconstruction}$g(f(\tilde \Vx))$估计$\SetE_{\RVx, \tilde{\RVx} \sim p_{\text{data}}(\RVx) C(\tilde{\RVx} \mid \RVx)}[\RVx \mid \tilde{\Vx}]$
当训练\gls{DAE}最小化平方误差$\| g(f(\tilde \Vx)) - \Vx \|^2$的平均值时,\gls{reconstruction} $g(f(\tilde \Vx))$估计$\SetE_{\RVx, \tilde{\RVx} \sim p_{\text{data}}(\RVx) C(\tilde{\RVx} \mid \RVx)}[\RVx \mid \tilde{\Vx}]$
$g(f(\tilde \Vx))$对可能产生$\tilde \Vx$的原始点$\Vx$的质心进行估计,所以向量$ g(f(\tilde \Vx)) - \tilde \Vx $近似指向\gls{manifold}上最近的点。
因此\gls{AE}可以学习由绿色箭头表示的向量场$ g(f( \Vx)) - \Vx $
<BAD>该向量场估计得分$\nabla_{\Vx} \log p_{\text{data}}(\Vx)$为乘法因子,即平均均方根\gls{reconstruction_error}。
Expand Down Expand Up @@ -473,7 +473,7 @@ \section{使用\glsentrytext{AE}学习\glsentrytext{manifold}}

所有\gls{AE}的训练过程涉及两种推动力的折衷:
\begin{enumerate}
\item 学习训练样本$\Vx$\gls{representation}$\Vh$使得$\Vx$能通过\gls{decoder}近似地从$\Vh$中恢复。
\item 学习训练样本$\Vx$\gls{representation} $\Vh$使得$\Vx$能通过\gls{decoder}近似地从$\Vh$中恢复。
$\Vx$是从训练数据挑出的事实是关键的,因为这意味着在\gls{AE}不需要成功\gls{reconstruction}不属于数据生成分布下的输入。
\item 满足约束或正则惩罚。
这可以是限制\gls{AE}\gls{capacity}的架构约束,也可以是加入到\gls{reconstruction}代价的一个正则项。
Expand Down Expand Up @@ -566,7 +566,7 @@ \section{使用\glsentrytext{AE}学习\glsentrytext{manifold}}

\section{\glsentrytext{CAE}}
\label{sec:contractive_autoencoders}
\gls{CAE}\citep{Rifai+al-2011-small,Salah+al-2011-small}在\gls{code}$\Vh = f(\Vx)$的基础上添加了显式的正则项,鼓励$f$的导数尽可能小:
\gls{CAE}\citep{Rifai+al-2011-small,Salah+al-2011-small}在\gls{code} $\Vh = f(\Vx)$的基础上添加了显式的正则项,鼓励$f$的导数尽可能小:
\begin{align}
\Omega(\Vh) = \lambda \Bigg\| \frac{\partial f(\Vx)}{\partial \Vx} \Bigg\|_F^2 .
\end{align}
Expand Down Expand Up @@ -668,7 +668,7 @@ \section{\glsentrytext{PSD}}
\firstall{PSD}是\gls{sparse_coding}和参数化\gls{AE}\citep{koray-psd-08}的混合模型。
参数化\gls{encoder}被训练为能预测迭代推断的输出。
\glssymbol{PSD}被应用于图片和视频中对象识别的\gls{unsupervised}特征学习\citep{Koray-08-small,koray-nips-10-small,Jarrett-ICCV2009-small,farabet-suml-11},在音频中也有所应用\citep{henaff-ismir-11-small}。
这个模型由一个\gls{encoder}$f(\Vx)$和一个\gls{decoder}$g(\Vh)$组成,并且都是参数化的。
这个模型由一个\gls{encoder} $f(\Vx)$和一个\gls{decoder} $g(\Vh)$组成,并且都是参数化的。
在训练过程中,$\Vh$由优化算法控制。
优化过程是最小化
\begin{align}
Expand All @@ -689,7 +689,7 @@ \section{\glsentrytext{PSD}}


\glssymbol{PSD}的实际应用中,迭代优化仅在训练过程中使用。
模型被部署后,参数\gls{encoder}$f$用于计算学习好的特征。
模型被部署后,参数\gls{encoder} $f$用于计算学习好的特征。
相比通过\gls{GD}推断$\Vh$,计算$f$是很容易的。
因为$f$是一个可微带参函数,\glssymbol{PSD}模型可堆叠,并用于初始化其他训练\gls{criterion}的深度网络。

Expand Down
Loading

0 comments on commit 3256b55

Please sign in to comment.