diff --git a/new/handson-dl-arch-py/3.md b/new/handson-dl-arch-py/3.md index 51c73e0296f5e8149c038f881ccf106d9c52be69..a2dc73f20c72383fae31dc05521d56b04e9470de 100644 --- a/new/handson-dl-arch-py/3.md +++ b/new/handson-dl-arch-py/3.md @@ -28,7 +28,7 @@ RBM 是一种生成型随机神经网络。 通过说生成式,它表明网络 ![](img/7e117abf-04cc-407c-b57b-1683118b2ea8.png) -通常,RBM 由一个输入层组成,该输入层通常称为可见层(**`v[1]`** , **v2** , **v3** , **v4** 和一个隐藏层(**`h[1]`** , **h2** ,`h`[HTG18 例如,] 3 ,`h``4`。 RBM 模型由与可见层和隐藏层之间的连接相关的权重 *W = {* ![](img/c025997f-d7cf-4dd4-af22-951256ebeee8.png) *}* 以及偏差 *a = [ ![](img/48726e5d-90ac-4c3b-be13-9f3ddfe1db4c.png)* 用于可见层,偏置 *b = ![](img/1a0d6ec3-c9b8-41fc-bbf5-f0e6aa8a39a5.png)* 用于隐藏层。 +通常,RBM 由一个输入层组成,该输入层通常称为可见层(`v[1], v[2], v[3], v[4]`)和一个隐藏层(`h[1], h[2], h[3], h[4]`)。 RBM 模型由与可见层和隐藏层之间的连接相关的权重`W = {w[ij]}, 1 <= i <= |V|, 1 <= j <= |H|`以及偏差`a = {a[i]}, 1 <= i <= |V|`用于可见层,偏置`b = {b[j]}, 1 <= j <= |H|`用于隐藏层。 RBM 中显然没有输出层,因此学习与前馈网络中的学习有很大不同,如下所示: @@ -72,23 +72,23 @@ RBM 中显然没有输出层,因此学习与前馈网络中的学习有很大 为了使学习 Boltzmann 机器模型更容易,Paul Smolensky 于 1986 年首次发明了一种称为 Harmonium 的连接受限的版本。 在 2000 年中期,Geoffrey Hinton 和其他研究人员发明了一种效率更高的体系结构,该体系结构仅包含一个隐藏层,并且不允许隐藏单元之间进行任何内部连接。 从那时起,RBM 被应用于各种有监督的学习任务中,包括: -* 图像分类,(*使用判别受限的 Boltzmann 机器进行分类*,由 H. Larochelle 和 Y. Bengio 撰写,第 25 届国际机器学习会议论文集,2008:536-543) -* 语音识别(*,使用 N. Jaitly 和 G.Hinton,使用受限的 Boltzmann 机器*学习语音声波的更好表示,国际声学,语音和信号处理会议,2011:5884-5887) +* 图像分类(《使用判别受限的 Boltzmann 机器进行分类》) +* 语音识别(《使用受限的 Boltzmann 机器学习语音声波的更好表示》) 它们也已应用于无人监督的学习任务,包括以下内容: -* 降维(*使用神经网络降低数据的维数*,G。Hinton 和 R.Salakhutdinov,科学,2006 年 7 月:504-507) -* 特征学习(A.Coates 等人,国际人工智能与统计会议 2011:215-223,无监督特征学习中的单层网络分析 *n),当然还有协作过滤和推荐系统 ,我们将在本节之后进行处理* +* 降维(《使用神经网络降低数据的维数》) +* 特征学习(《无监督特征学习中的单层网络分析》),当然还有协作过滤和推荐系统 ,我们将在本节之后进行处理 -您可能会注意到,RBM 有点*浅*,只有一个隐藏层。 Geoffrey Hinton 在 2006 年推出了称为[DBN]的*深*版本的 RBM。DBN 可以看作是堆叠在一起的一组 RBM,其中一个 RBM 的隐藏层是下一个 RBM 的可见层。 隐藏层充当分层特征检测器。 DBN 的一般图如下所示: +您可能会注意到,RBM 有点*浅*,只有一个隐藏层。 Geoffrey Hinton 在 2006 年推出了称为 DBN 的*深*版本的 RBM。DBN 可以看作是堆叠在一起的一组 RBM,其中一个 RBM 的隐藏层是下一个 RBM 的可见层。 隐藏层充当分层特征检测器。 DBN 的一般图如下所示: ![](img/51a6bfe7-88bd-47ad-b74b-3bd214cce072.png) DBN 也有许多有趣的应用程序,例如: -* 电话识别(*用于电话识别的深度信念网络*,由 A. Mohamed 等人在 NIPS 语音识别和相关应用深度学习研讨会的论文集中进行,2009 年) -* 脑电信号(*脑电图的深层信念网络:对近期贡献和未来展望的回顾*,作者:F。Movahedi 等人,在 IEEE Biomedical and Health Informatics,2018 年 5 月; 22(3):642- 652) -* 自然语言理解(*深度信念网络对自然语言理解*的应用,作者 R. Sarikaya 等人,在 IEEE / ACM 音频,语音和语言处理交易中,2014 年 4 月; 22(4):778 -784) +* 电话识别(《用于电话识别的深度信念网络》) +* 脑电信号(《脑电图的深层信念网络:对近期贡献的回顾和未来展望》) +* 自然语言理解(《深度信念网络在自然语言理解上的应用》) 按照承诺,我们现在将详细研究 RBM 及其深版本 DBN,然后将其应用于实际问题。 @@ -166,7 +166,7 @@ DBN 也有许多有趣的应用程序,例如: ... return v0, prob_h_v0, vk, prob_h_vk ``` -给定输入向量 *vk* ,吉布斯采样开始于计算`P(h | v)`。 然后执行 Gibbs 步骤。 在每个吉布斯步骤中,隐藏层`h`是根据`P(h | v)`通过伯努利采样获得的; 计算条件概率`P(v | h)`并用于生成可见矢量`v`的重建版本; 并根据最新的可见矢量更新条件概率`P(h | v)`。 最后,它返回 Gibbs 采样之前和之后的可见向量,以及 Gibbs 采样之前和之后的条件概率`P(h | v)`。 +给定输入向量`vk`,吉布斯采样开始于计算`P(h | v)`。 然后执行 Gibbs 步骤。 在每个吉布斯步骤中,隐藏层`h`是根据`P(h | v)`通过伯努利采样获得的; 计算条件概率`P(v | h)`并用于生成可见矢量`v`的重建版本; 并根据最新的可见矢量更新条件概率`P(h | v)`。 最后,它返回 Gibbs 采样之前和之后的可见向量,以及 Gibbs 采样之前和之后的条件概率`P(h | v)`。 现在,我们实现了条件概率`P(v | h)`和`P(h | v)`的计算,以及伯努利采样: @@ -294,7 +294,7 @@ DBN 也有许多有趣的应用程序,例如: ![](img/166067d5-6d17-45ad-9449-6dbb6edad311.png) -在此示例中,输入内容包括六部电影,其中三部被点赞(用`1`表示),两部不喜欢(用`0`表示),而另一部未分级(用 **?**)。 该模型接受输入并对其进行重构,包括*缺少的*电影。 +在此示例中,输入内容包括六部电影,其中三部被点赞(用`1`表示),两部不喜欢(用`0`表示),而另一部未分级(用`?`表示)。 该模型接受输入并对其进行重构,包括*缺少的*电影。 因此,模型如何知道丢失的单位应为`0`(或`1`)? 回忆每个隐藏的单元都连接到所有可见的单元。 在训练过程中,一个隐藏的单位试图发现一个潜在因素,该潜在因素可以解释数据中的一个属性,或本例中的所有电影。 例如,一个隐藏的二元单位可以了解电影类型是否是喜剧电影,是否属于正义电影,主题是否为复仇电影或其他任何捕捉到的东西。 在重构阶段,将为输入分配一个新值,该值是根据代表所有这些潜在因素的隐藏单位计算得出的。 @@ -325,7 +325,7 @@ DBN 也有许多有趣的应用程序,例如: 我们可以建立 RBM 模型,根据用户和其他人的电影评分推荐用户尚未观看的电影。 -您可能会注意到输入额定值不是二进制的。 我们如何将它们提供给 RBM 模型? 最简单的解决方法是二进制化,例如,将大于三的等级转换为`1`(类似),否则将其转换为`0`(不喜欢)。 但是,这可能会导致信息丢失。 或者,在我们的解决方案中,我们将原始评级缩放到`[0,1]`范围,并将每个重新缩放的评级视为获得`1`的概率。 也就是说,`v`= *P(v = 1 | h)*,不需要伯努利采样。 +您可能会注意到输入额定值不是二进制的。 我们如何将它们提供给 RBM 模型? 最简单的解决方法是二进制化,例如,将大于三的等级转换为`1`(类似),否则将其转换为`0`(不喜欢)。 但是,这可能会导致信息丢失。 或者,在我们的解决方案中,我们将原始评级缩放到`[0,1]`范围,并将每个重新缩放的评级视为获得`1`的概率。 也就是说,`v = P(v = 1 | h)`,不需要伯努利采样。 现在,让我们加载数据集并构建训练数据集。 不要忘了跟踪已分级的电影,因为并非所有电影都已分级: @@ -398,7 +398,7 @@ Number of 1.0 ratings: 226309 ... return v0, prob_h_v0, vk, prob_h_vk ``` -我们采用 *v = P(v = 1 | h)*并使用`0`恢复等级,如下所示: +我们采用`v = P(v = 1 | h)`并使用`0`恢复等级,如下所示: ```py >>> def _optimize(self, v): @@ -747,13 +747,13 @@ AE 和 RBM 都旨在最小化重构误差,但是 AE 与 RBM 在以下方面有 《无监督预训练的一种方法》首次引入自编码器作为神经网络中模块化学习。 然后《通过多层感知器进行的自动关联和奇异值分解》将它们用于降维,《自编码器,最小描述长度和亥姆霍兹 *F* 能量》将其用于线性特征学习。 -自编码器随着时间的推移而发展,在过去的十年中提出了几种变体。 在 2008 年,P。Vincent 等人。 *中介绍了**去噪自编码器**(**DAE**),并使用降噪自编码器*构成了稳健的功能(第 25 届国际机器学习会议论文集,1096-1103), 网络被迫从损坏的版本中重建输入数据,以便他们可以学习更强大的功能。 +自编码器随着时间的推移而发展,在过去的十年中提出了几种变体。 在 2008 年,P。Vincent 等人。 《使用降噪自编码器提取和构成稳健特征》介绍了**去噪自编码器**(**DAE**), 网络被迫从损坏的版本中重建输入数据,以便他们可以学习更强大的功能。 -I.Goodfellow 等。 2009 年,开发了**稀疏自编码器**,它通过引入稀疏约束来扩大隐藏表示。 可以在*测量深度网络中的不变性*中找到详细信息(神经信息处理系统的最新进展 22,NIPS 2009,646-654)。 +I.Goodfellow 等开发了**稀疏自编码器**,它通过引入稀疏约束来扩大隐藏表示。 可以在《测量深度网络中的不变性》中找到详细信息。 -**压缩自编码器**由 S. Rifai 在*压缩自编码器中提出:* E *特征提取期间的 xplicit 不变性*(第 28 届国际机器学习会议论文集,2011 年 ; 833-840)。 将惩罚项添加到成本函数,以便网络能够提取对输入数据周围的微小变化不太敏感的表示形式。 +**压缩自编码器**由 S. Rifai 在《压缩自编码器:特征提取期间的显式不变性》中提出。 将惩罚项添加到成本函数,以便网络能够提取对输入数据周围的微小变化不太敏感的表示形式。 -2013 年,在*自编码变体贝叶斯*中,提出了一种称为**变分自编码器**(**VAE**)的特殊类型(作者:D。Kingma 和 M. Welling, 第二届国际学习表示会议),其中考虑了潜在变量的概率分布。 +2013 年,在《自编码变分贝叶斯》中,提出了一种称为**变分自编码器**(**VAE**)的特殊类型,其中考虑了潜在变量的概率分布。 我们将在 Keras 中实现 AE 的几种变体,并使用它们来解决信用卡欺诈检测问题。 @@ -1275,4 +1275,4 @@ Area under precision-recall curve: 0.8311662962345293 感谢 Shyong Lam 和 Jon Herlocker 清理并生成了 MovieLens 数据集: -F. Maxwell Harper 和 Joseph A. Konstan。 2015 年。 *MovieLens 数据集:历史和上下文。 ACM 交互式智能系统交易*(TiiS)5、4,第 19 条(2015 年 12 月),共 19 页。 DOI = http://dx.doi.org/10.1145/2827872 \ No newline at end of file +`F. Maxwell Harper and Joseph A. Konstan. 2015. The MovieLens Datasets: History and Context. ACM Transactions on Interactive Intelligent Systems (TiiS) 5, 4, Article 19 (December 2015), 19 pages. DOI=http://dx.doi.org/10.1145/2827872` \ No newline at end of file