【问题标题】:Softmax layer, for discriminative restricted Boltzmann machineSoftmax 层,用于判别受限玻尔兹曼机
【发布时间】:2016-07-20 10:34:58
【问题描述】:
  1. 我正在使用 4 层 RBM 来创建 DBN。 (每层有21个节点)
  2. 在最后一层,我正在添加标签数据,具体来说,2个类。(这个DBN是一个二进制分类器。添加类标签数据后,我在顶层有21+2=23个节点)。李>
  3. 我正在将最后一层的输出与类标签输入组合成一个 2 单元向量。(位置 0 中的 1 表示类 0,位置 1 中的 1 表示类 1)。李>

问题 - 1. 这个softmax层需要用CD-k训练吗?意思是,我需要在输出层和最后(增强)层之间进行 CD 吗?

  1. 如何初始化最后一层到输出层连接的权重?

  2. 或者,是否需要训练顶层,现在是 21+2 个单元,CD-k 与底层相对?

谢谢。 我正在看这篇论文 - http://machinelearning.org/archive/icml2008/papers/601.pdf

【问题讨论】:

    标签: deep-learning softmax


    【解决方案1】:
    1. 是的,您使用 CD 将目标标签和输入特征联合训练为 RBM 中的可见层数据。
    2. 它是随机初始化的,您的“最后输出”权重矩阵是顶层 RBM 权重矩阵的一部分。如论文中的图所示,{x,y} 可以看作是 RBM 的单个可见层。
    3. 所以训练这个 {x,y}-h RBM 与训练一个普通的 v-h RBM 是一样的。

    最后,如果你想要一个单独的 softmax 层,你实际上是在寻找一个 DNN,它可以由你在这里训练的 DBN 初始化。但那是另一回事了。


    对于 2 类分类,您可以使用具有 1-of-2 编码 softmax 层的 2 个节点,或 1 个二进制节点(一个类为 0,另一类为 1)。

    【讨论】:

    • 非常感谢,尹。只是一些澄清 - 1. 那么,输出层(不是 softmax 层)将是 (21+2) 和 (1) 节点之间的 CD?我假设 (2) 个节点用于类标签,因为索引位置中的 1 将指示类。 (0 中的 1 表示 0 类,依此类推) 2. 不意味着头发分裂,所以最后的输出层只是添加一个(1)节点,用于类标签,而不是两个? 3. 在制作 CD 时,我是针对所有 23 人进行联合训练,而不是分别针对 21 人和 2 人进行训练,对吗?
    • 对于第 3 点,是的。对于其他人-我不了解您。您可能想提供有关 DBN 结构的更多详细信息 - 每层是如何连接的。是{x,y}-h1-h2-h3,其中x是特征向量,y是标签向量,h?是隐藏层,还是x-h1-h2-h3-y,{y,h2}是顶层RBM的可见层{y,h2}-h3
    • 我的错,让我澄清一下 - 我只在最后一层添加标签向量。所以我从 x 开始,然后转到 h1,然后是 h2,然后是 h3。这使得 3 个隐藏层。在 h3 处,我连接标签(在本例中为 2 个节点向量)。这使得 h3 有 (h3+2) 个节点。然后 h3+2 个节点都将其输出呈现给一个输出节点,即分类器输出。 I CD 在所有层之间。即使是顶层 - 即 (h3+2) 和 (output) ,他们也可以获得一张 CD。
    • 另外,(我刚刚阅读了您的编辑,我也可以使用 1-of-2 编码层进行分类,我现在已经注释掉了该代码)-再次感谢。跨度>
    • 另外,在顶层 ((h3+2) 和 (output)),我使用的是 p(y given x) 的方程,它位于第 2 页的右下角本文,用于分类 - machinelearning.org/archive/icml2008/papers/601.pdf 。只是想我也会提到这一点。
    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 2013-12-31
    • 1970-01-01
    • 2015-12-21
    • 2012-12-13
    • 2015-10-30
    相关资源
    最近更新 更多