Skip to content

Commit

Permalink
fix noise
Browse files Browse the repository at this point in the history
  • Loading branch information
SwordYork committed Mar 7, 2017
1 parent c2439fd commit 36e2ac6
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 29 deletions.
2 changes: 1 addition & 1 deletion Chapter18/confronting_the_partition_function.tex
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,7 @@ \section{\glsentrytext{denoising_score_matching}}
p_{\text{smoothed}}(\Vx) = \int p_{\text{data}} (\Vy) q( \Vx \mid \Vy) d \Vy
\end{equation}
而不是拟合真实分布$p_{\text{data}}$
分布$q(\Vx \mid \Vy)$是一个噪扰过程,通常在形成$\Vx$的过程中会向$\Vy$中添加少量\gls{noise}。
分布$q(\Vx \mid \Vy)$是一个损坏过程,通常在形成$\Vx$的过程中会向$\Vy$中添加少量\gls{noise}。


\gls{denoising_score_matching}非常有用,因为在实践中,通常我们不能获取真实的$p_{data}$,而只能得到其样本确定的\gls{empirical_distribution}。
Expand Down
4 changes: 2 additions & 2 deletions Chapter19/approximate_inference.tex
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ \section{\glsentrytext{MAP}推断和\glsentrytext{sparse_coding}}
\begin{align}
p(h_i) = \frac{\lambda}{2} \exp(-\lambda \vert h_i \vert).
\end{align}
可见的节点是由一个线性变化加上噪音生成的\footnote{此处似乎有笔误,$\Vx$应为$\Vv$}:
可见的节点是由一个线性变化加上噪声生成的\footnote{此处似乎有笔误,$\Vx$应为$\Vv$}:
\begin{align}
p(\Vx\mid\Vh) = \CalN(\Vv;{\MW}\Vh + \Vb,\beta^{-1}{\MI}).
\end{align}
Expand Down Expand Up @@ -377,7 +377,7 @@ \subsection{离散型\gls{latent_variable}}
% 632 head


\gls{binary_sparse_coding}模型中,输入$\Vv\in\SetR^n$是由模型通过添加高斯噪音到$m$个或有或无的成分。
\gls{binary_sparse_coding}模型中,输入$\Vv\in\SetR^n$是由模型通过添加高斯噪声到$m$个或有或无的成分。
每一个成分可以是开或者关的,对应着\gls{hidden_unit} $\Vh \in\{0,1\}^m$:
\begin{align}
p(h_i = 1) = \sigma(b_i),
Expand Down
2 changes: 1 addition & 1 deletion Chapter5/machine_learning_basics.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1913,7 +1913,7 @@ \subsection{\glsentrytext{manifold_learning}}
\else
\centerline{\includegraphics[width=0.7\textwidth]{Chapter5/figures/noise}}
\fi
\caption{随机地均匀抽取图像(根据均匀分布随机地选择每一个像素)会得到噪音图像。尽管在人工智能应用中生成一个脸或者其他物体的图像是非零概率的,但是实践中我们从来没有观察到这个现象。这也意味着人工智能应用中遇到的图像在所有图像空间中的占比是忽略不计的。}
\caption{随机地均匀抽取图像(根据均匀分布随机地选择每一个像素)会得到噪声图像。尽管在人工智能应用中生成一个脸或者其他物体的图像是非零概率的,但是实践中我们从来没有观察到这个现象。这也意味着人工智能应用中遇到的图像在所有图像空间中的占比是忽略不计的。}
\label{fig:chap5_noise}
\end{figure}

Expand Down
8 changes: 4 additions & 4 deletions Chapter7/regularization.tex
Original file line number Diff line number Diff line change
Expand Up @@ -455,9 +455,9 @@ \section{噪声鲁棒性}
\label{sec:noise_robustness}

\secref{sec:dataset_augmentation_chap7}已经启发将噪声作用于输入,作为数据集增强策略。
对于某些模型,在模型的输入加上方差极小的噪音等价于对权重施加范数惩罚\citep{Bishop1995,bishop95training}。
对于某些模型,在模型的输入加上方差极小的噪声等价于对权重施加范数惩罚\citep{Bishop1995,bishop95training}。
在一般情况下,噪声注入远比简单地收缩参数强大,特别是噪声被添加到\gls{hidden_unit}时更加强大。
\gls{hidden_unit}添加噪音是值得单独讨论重要的话题;在\secref{sec:dropout}所述\gls{dropout}算法是这种做法的主要发展方向。
\gls{hidden_unit}添加噪声是值得单独讨论重要的话题;在\secref{sec:dropout}所述\gls{dropout}算法是这种做法的主要发展方向。

另一种\gls{regularization}模型的噪声使用方式是将其加到的权重。
这项技术主要用于\gls{RNN}\citep{JimGilesHorne1996,Graves-2011}。
Expand Down Expand Up @@ -1208,7 +1208,7 @@ \section{\glsentrytext{dropout}}
\gls{dropout_boosting}训练整个\gls{ensemble}以最大化训练集上的似然。
在相同意义上,传统的\gls{dropout}类似于\gls{bagging},这种方式类似于\gls{boosting}。
如预期一样,比较单一模型训练整个网络的情况,\gls{dropout_boosting}几乎没有\gls{regularization}效果。
这表明,\gls{dropout} \gls{bagging}的解释超过\gls{dropout}作为稳健性噪音的解释
这表明,\gls{dropout} \gls{bagging}的解释超过\gls{dropout}作为稳健性噪声的解释
当随机抽样的\gls{ensemble}成员相互独立地训练好后,\gls{bagging}\gls{ensemble}的\gls{regularization}效果才能达到。

\gls{dropout}启发其他以随机方法训练指数量级的共享权重的\gls{ensemble}。
Expand Down Expand Up @@ -1256,7 +1256,7 @@ \section{\glsentrytext{dropout}}
% -- 260 --

另一种\gls{DL}算法——\gls{batch_normalization},在训练时向\gls{hidden_unit}引入加性和乘性噪声重参数化模型。
\gls{batch_normalization}的主要目的是改善优化,但噪音具有\gls{regularization}的效果,有时使\gls{dropout}变得没有必要。
\gls{batch_normalization}的主要目的是改善优化,但噪声具有\gls{regularization}的效果,有时使\gls{dropout}变得没有必要。
\gls{batch_normalization}将会在\secref{sec:batch_normalization}更详细地讨论。


Expand Down
34 changes: 17 additions & 17 deletions Chapter8/optimization_for_training_deep_models.tex
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ \chapter{\glsentrytext{deep_model}中的优化}

% 267 mid
如果你不熟悉基于梯度的优化的基础,我们建议您查看\chapref{chap:numerical_computation}。
该章简要概述了一般的\gls{nume_optimization}。
该章简要概述了一般的\gls{nume_optimization}


本章主要关注这一类特定的优化问题:寻找\gls{NN}上的一组参数$\Vtheta$,它能显著地降低\gls{cost_function} $J(\Vtheta)$,该\gls{cost_function}通常包括整个\gls{training_set}上的性能评估和额外的\gls{regularization}。
Expand Down Expand Up @@ -113,7 +113,7 @@ \subsection{\glsentrytext{surrogate_loss_function}和\glsentrytext{early_stoppin

在某些情况下,\gls{surrogate_loss_function}能比原函数学习到更多。
例如,使用对数似然替代函数时,在\gls{training_set}上的$0-1$损失达到$0$之后,\gls{test_set}上的$0-1$损失还能持续下降很长一段时间。
这是因为即使$0-1$损失期望是零时,我们还能拉开不同类别的距离以改进分类器的鲁棒性,获得一个更强壮的、值得信赖的分类器,从而,相较于简单地最小化\gls{training_set}上的平均$0-1$损失,它能够从训练数据中抽取了更多信息。
这是因为即使$0-1$损失期望是零时,我们还能拉开不同类别的距离以改进分类器的鲁棒性,获得一个更强壮的、值得信赖的分类器,从而,相对于简单地最小化\gls{training_set}上的平均$0-1$损失,它能够从训练数据中抽取了更多信息。
% 270 head


Expand Down Expand Up @@ -475,7 +475,7 @@ \subsection{高原、\glsentrytext{saddle_points}和其他平坦区域}

% -- 279 mid

\gls{saddle_points}对于训练算法来说有哪些影响呢
\gls{saddle_points}扩散对于训练算法来说有哪些影响呢
对于只使用梯度信息的一阶优化算法而言,目前情况还不清楚。
\gls{saddle_points}附近的梯度通常会非常小。
另一方面,实验中\gls{GD}似乎可以在许多情况下逃离\gls{saddle_points}。
Expand Down Expand Up @@ -560,7 +560,7 @@ \subsection{悬崖和\glsentrytext{explode_gradient}}
不管我们是从上还是从下接近悬崖,情况都很糟糕,但幸运的是可以用使用\secref{sec:clipping_gradients}介绍的启发式\firstgls{gradient_clipping}来避免其主要缺点。
其基本想法源自考虑到梯度并没有指明最佳步长,只是说明在无限小区域内的最佳方向。
当传统的\gls{GD}算法提议更新很大一步时,启发式\gls{gradient_clipping}会干涉去减小步长,从而使其不太可能走出梯度近似为\gls{steepest}方向的悬崖区域。
悬崖结构在\gls{RNN}的\gls{cost_function}中很常见,因为这类模型会涉及到多个因素的相乘,每个因素对应了一个 \gls{time_step}。
悬崖结构在\gls{RNN}的\gls{cost_function}中很常见,因为这类模型会涉及到多个因子的相乘,每个因子对应了一个 \gls{time_step}。
因此,长期时间序列会产生大量相乘。
% 281 mid

Expand All @@ -569,7 +569,7 @@ \subsection{悬崖和\glsentrytext{explode_gradient}}
\subsection{\glsentrytext{long_term_dependency}}
\label{sec:long_term_dependencies}
\gls{computational_graph}变得极深时,\gls{NN}优化算法会面临的另外一个难题就是\gls{long_term_dependency}问题——由于变深的结构使模型丧失了学习到先前信息的能力,让优化变得极其困难。
深层的\gls{computational_graph}不仅\gls{feedforward_network}中存在,在会介绍的\gls{recurrent_network}(在\chapref{chap:sequence_modeling_recurrent_and_recursive_nets}中描述)结构中也是一样的,因为要在很长时间序列的各时刻重复操作相同的网络模块,并且模型参数共享,这使问题更加凸显。
深层的\gls{computational_graph}不仅\gls{feedforward_network}中存在,在会介绍的\gls{recurrent_network}(在\chapref{chap:sequence_modeling_recurrent_and_recursive_nets}中描述)结构中也是一样的,因为要在很长时间序列的各个时刻重复操作相同的网络模块,并且模型参数共享,这使问题更加凸显。

% 282 head

Expand Down Expand Up @@ -642,7 +642,7 @@ \subsection{局部和全局结构间的弱对应}
甚至,这些\gls{critical_points}不一定存在。
例如,\gls{loss_function} $-\log p(y\mid\Vx;\Vtheta)$ 可以没有\gls{global_minimum},而是当随着训练模型逐渐稳定后,收敛于某个值。
对于具有离散的$y$\ENNAME{softmax}分布$p(y\mid\Vx)$的分类器而言,若模型能够正确分类\gls{training_set}上的每个样本,则负对数似然可以无限趋近但不会等于零。
同样地,实值模型$p(y\mid\Vx) = \mathcal{N}(y;f(\Vtheta),\beta^{-1})$的负对数似然会趋向于负无穷——如果$f(\Vtheta)$能够正确预测所有\gls{training_set}中的目标$y$学习算法会无边界地增加$\beta$
同样地,实值模型$p(y\mid\Vx) = \mathcal{N}(y;f(\Vtheta),\beta^{-1})$的负对数似然会趋向于负无穷——如果$f(\Vtheta)$能够正确预测所有\gls{training_set}中的目标$y$学习算法会无限制地增加$\beta$
\figref{fig:chap8_bad_global}给出了一个失败的例子,即使没有\gls{local_minima}和\gls{saddle_points},该例还是不能从局部优化中找到一个良好的\gls{cost_function}值。

% 283 end
Expand Down Expand Up @@ -677,7 +677,7 @@ \subsection{局部和全局结构间的弱对应}
\gls{GD}和基本上所有有效训练\gls{NN}的学习算法,都是基于局部较小更新。
先前的小节主要集中于为何这些局部范围更新的正确方向难以计算。
我们也许能计算\gls{objective_function}的一些性质,如近似的有偏梯度或正确方向估计的方差。
在这些情况下,局部下降不确定能不能找到有效解的短路径,我们并不能真的遵循局部下降的路径
在这些情况下,难以确定局部下降能否定义通向有效解的足够短的路径,但我们并不能真的遵循局部下降的路径
\gls{objective_function}可能有诸如\gls{poor_conditioning}或不连续梯度的问题,使得梯度为\gls{objective_function}提供较好近似的区间非常小。
在这些情况下,步长为$\epsilon$的局部下降可能定义了一个寻求解法的合理的短路经,但是我们只能计算步长为$\delta \ll \epsilon$的局部下降方向。
在这些情况下,局部下降或许能定义一个寻求解法的路径,但是该路径包含很多次更新,因此遵循该路径会带来很高的计算代价。
Expand All @@ -689,7 +689,7 @@ \subsection{局部和全局结构间的弱对应}
% 285 head

不管哪个问题最重要,如果存在一个区域,我们遵循\gls{local_descent}便能合理地直接到达解决方案,并且我们能够在该良好区域上初始化学习,那么这些问题都可以避免。
最终的观点还是建议在传统优化算法上研究怎样选择更佳的初始化点,来实现目标更切实可行
最终的观点还是建议在传统优化算法上研究怎样选择更佳的初始化点,以此来实现目标更切实可行

% 285 mid

Expand All @@ -706,8 +706,8 @@ \subsection{优化的理论限制}
其他结果表明,寻求给定规模的网络的一个解决方案是不可解的,
但是,在实际情况中,我们通过设置更多参数,很容易发现针对大型\gls{NN}来说还不错的解决方案。
此外,在\gls{NN}训练中,我们通常不关注某个函数的精确\gls{minimum},而只关注将其值下降到足够小以获得一个很好的\gls{generalization_error}。
想要对优化算法是否能完成此目标进行理论分析是非常困难的
因此,在现实中研究优化算法的性能上界仍然是学术界的一个重要目标
对优化算法是否能完成此目标进行理论分析是非常困难的
因此,研究优化算法更现实的性能上界仍然是学术界的一个重要目标

% 285 end

Expand Down Expand Up @@ -784,16 +784,16 @@ \subsection{\glsentrytext{SGD}}
% 287 mid

\gls{learning_rate}可通过试验和误差来选取,通常最好的选择方法是画出\gls{objective_function}值随时间变化的学习曲线。
与其说是科学,这更像是一门艺术,应该谨慎地参考这个问题的大部分指导
与其说是科学,这更像是一门艺术,我们应该谨慎地参考关于这个问题的大部分指导
使用线性策略时,需要选择的参数为$\epsilon_0$$\epsilon_\tau$$\tau$
通常$\tau$被设为需要反复遍历\gls{training_set}几百次的迭代次数。
通常$\epsilon_\tau$应设为大约$\epsilon_0$$1\%$
主要问题是如何设置$\epsilon_0$
$\epsilon_0$太大,学习曲线将会剧烈振荡,\gls{cost_function}值通常会明显增加。
温和的振荡是良好的,容易在训练随机\gls{cost_function}(例如由信号丢失引起的\gls{cost_function})时出现。
如果\gls{learning_rate}太小,那么学习进程会很缓慢
如果\gls{learning_rate}太小,那么学习过程会很缓慢
如果初始\gls{learning_rate}太低,那么学习可能会卡在一个相当高的\gls{cost}值。
通常,就总训练时间和最终\gls{cost}值而言,最优初始\gls{learning_rate}的效果会好于大约迭代$100$次左右后最佳的\gls{learning_rate}
通常,就总训练时间和最终\gls{cost}值而言,最优初始\gls{learning_rate}的效果会好于大约迭代$100$次左右后最佳的效果
因此,通常最好是检测最早的几轮迭代,选择一个比在效果上表现最佳的\gls{learning_rate}更大的\gls{learning_rate},但又不能太大导致严重的震荡。

% 287 mid
Expand Down Expand Up @@ -1191,15 +1191,15 @@ \section{参数初始化策略}


除了这些初始化模型参数的简单固定或随机方法,还有可能使用\gls{ML}初始化模型参数。
本书第III部分讨论的常用策略是初始化监督模型的参数为无监督模型训练于相同的输入上学习出的参数
在本书第三部分讨论的一个常用策略是使用相同的输入数据集,用无监督模型训练出来的参数来初始化监督模型
我们也可以在相关问题上使用监督训练。
即使是运行监督训练在一个不相关的任务上,有时也能得到一个比随机初始化具有更快收敛率的初始值。
这些初始化策略有些能够得到更快的收敛率和更好的\gls{generalization_error},因为它们编码了模型初始参数分布的信息。
其他策略显然效果不错的原因主要在于它们设置参数为正确的数值范围,或是设置不同单元计算互相不同的函数。
% 298 mid


\section{具有自适应\glsentrytext{learning_rate}的算法}
\section{自适应\glsentrytext{learning_rate}算法}
\label{sec:algorithms_with_adaptive_learning_rates}
\gls{NN}研究员早就意识到\gls{learning_rate}肯定是难以设置的\gls{hyperparameter}之一,因为它对模型的性能有显著的影响。
正如我们在\secref{sec:gradient_based_optimization}和\secref{sec:challenges_in_neural_network_optimization}中探讨的,损失通常高度敏感于参数空间中的某些方向,而不敏感于其他。
Expand Down Expand Up @@ -1366,9 +1366,9 @@ \subsection{选择正确的优化算法}

遗憾的是,目前在这一点上没有达成共识。
\cite{Schaul2014_unittests}展示了许多优化算法在大量学习任务上的价值比较。
虽然结果表明,具有自适应\gls{learning_rate}(由RMSProp和AdaDelta代表)的算法族表现得相当鲁棒,但没有单一的算法表现为最好的
虽然结果表明,具有自适应\gls{learning_rate}(由RMSProp和AdaDelta代表)的算法族表现得相当鲁棒,不分伯仲,但没有哪个算法能脱颖而出

目前,最流行的活跃使用的优化算法包括SGD,\gls{momentum}的SGDRMSProp\gls{momentum}的RMSPropAdaDelta和Adam。
目前,最流行并且使用很高的优化算法包括SGD、\gls{momentum}的SGDRMSProp\gls{momentum}的RMSPropAdaDelta和Adam。
此时,选择哪一个算法似乎主要取决于使用者对算法的熟悉程度(以便调节\gls{hyperparameter})。

\section{二阶近似方法}
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
| [第五章 机器学习基础](https://via.hypothes.is/https://exacity.github.io/deeplearningbook-chinese/Chapter5_machine_learning_basics/) | @liber145 | @wheaio, @ZhiweiYang | @fairmiracle, @linzhp | 等待合并 |
| [第六章 深度前馈网络](https://via.hypothes.is/https://exacity.github.io/deeplearningbook-chinese/Chapter6_deep_feedforward_networks/) | @KevinLee1110 | @angrymidiao | @minoriwww@linzhp | 需要校对 |
| [第七章 深度学习的正则化](https://via.hypothes.is/https://exacity.github.io/deeplearningbook-chinese/Chapter7_regularization/) | @swordyork | @TonyHan0915 | @dfcv24 | 需要校对 |
| [第八章 深度模型中的优化](https://via.hypothes.is/https://exacity.github.io/deeplearningbook-chinese/Chapter8_optimization_for_training_deep_models/) | @liber145 | @zhangyafeikimi | @codeVerySlow, @huangpingchun | 需要校对 |
| [第八章 深度模型中的优化](https://exacity.github.io/deeplearningbook-chinese/Chapter8_optimization_for_training_deep_models/) | @liber145 | @zhangyafeikimi, @happynoom, @codeVerySlow | @huangpingchun | 完成合并 |
| [第九章 卷积神经网络](https://via.hypothes.is/https://exacity.github.io/deeplearningbook-chinese/Chapter9_convolutional_networks/) | @KevinLee1110 | @TonyHan0915, @zhaoyu611, @corenel | @zhiding | 等待合并 |
| [第十章 序列建模:循环和递归网络](https://exacity.github.io/deeplearningbook-chinese/Chapter10_sequence_modeling_rnn/) | @swordyork | lc | @zhaoyu611, @yinruiqing | 完成合并 |
| [第十一章 实践方法论](https://exacity.github.io/deeplearningbook-chinese/Chapter11_practical_methodology/) | @liber145 | | | 完成合并 |
Expand Down
6 changes: 3 additions & 3 deletions terminology.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5110,22 +5110,22 @@

\newglossaryentry{NCE}
{
name=噪扰对比估计,
name=噪声对比估计,
description={noise-contrastive estimation},
sort={noise-contrastive estimation},
symbol={NCE}
}

\newglossaryentry{noise_distribution}
{
name=噪扰分布,
name=噪声分布,
description={noise distribution},
sort={noise distribution},
}

\newglossaryentry{noise}
{
name=噪扰,
name=噪声,
description={noise},
sort={noise},
}
Expand Down

0 comments on commit 36e2ac6

Please sign in to comment.