【问题标题】:H2O in R - Automatic Data ProcessingR 中的 H2O - 自动数据处理
【发布时间】:2016-04-24 19:53:27
【问题描述】:

我注意到 H2O packages mentions that it:

预处理要标准化的数据以兼容 激活函数(回忆表 1 对每个激活函数的总结 函数的目标空间)。由于激活函数不 通常映射到实数的全谱 R,我们首先 标准化我们的数据以从 N (0, 1) 中提取。再次标准化 在网络传播之后,我们可以计算更精确的误差 这个标准化空间,而不是原始特征空间。为了 自动编码,数据被标准化(而不是标准化)到 mathcalU(−0.5, 0.5) 的紧凑区间,以允许有界激活 像 Tanh 这样的函数来更好地重建数据。

但是,我并不完全理解。我的印象是(herehere分类变量应该被分解为 1-of-C 虚拟变量和连续数据标准化那么,一切都应该标准化为 [-1,1]

我也看不到为读出层指定神经元的方法。我认为如果我们有一个 categorical 输出变量,那么我们想要使用 softmax 激活函数(并编码为 1-of-C)/如果我们有一个 continuous 输出(例如价格)然后我们将其缩放到 [-1,1] 并使用 'tanh' / 如果我们有 single binary 输出,那么我们可以使用逻辑并将其编码为 [0,1]

【问题讨论】:

    标签: r machine-learning neural-network deep-learning h2o


    【解决方案1】:

    H2O 实现了 1-of-C 虚拟编码的效果,无需任何成本。确切的细节因算法而异,但总有一种明显的算法优化可以提供虚拟编码的预测强度,而不会产生内存或速度成本。

    悬崖

    【讨论】:

      【解决方案2】:

      对于分类和回归(即监督模式),H2O 深度学习执行以下操作:

      第一个神经网络层的输入确实是分类特征的 1-of-C 假人(0 或 1)。连续特征已标准化(未标准化):去均值并按 1/方差缩放。

      对于回归,响应变量也在内部进行了标准化,以允许将(单个)输出神经元的激活值与其进行比较。然而,为了在评分过程中呈现给用户,预测被去标准化到原始空间中。

      对于分类,我们使用 Softmax 来获得 C 类的概率,甚至是二元分类。

      您引用的文档还提到了无监督自动编码(通过启用自动编码器标志)。在这种情况下,输入是标准化的(即按 1/(max-min) 缩放)而不是标准化。这是允许自动编码器具有完全重叠的输入和输出空间所必需的。

      【讨论】:

      • 非常感谢!将二进制输入缩放为 (-1,1) - 在原点附近居中是否更有效,并且对于分类输入也是如此,例如:城市 = (0 1)、郊区 = (1 0) 和农村=(-1 -1)?或者有一个偏置单元是否意味着效果编码(-1 表示省略)等同于标准 1-of-(C-1) 编码?此外,由于连续特征只是标准化的,这并不意味着我们有一个输入范围为 0 到 1,另一个输入范围为 0 到 1,000,000,这导致它的“贡献”超过了微小的(0,1 )?
      • 我刚刚说到“如果您知道某些输入比其他输入更重要,它可能有助于扩展输入,以便更重要的输入具有更大的方差和/或范围”神经网络/第 2 部分/常见问题解答 看来,对连续输入进行归一化会给它们一个范围,例如(-10,10)与分类(0,1)相比,因此在神经网络中更重要?而如果它们也被归一化为 (0,1),那么我们所有的输入都是 (0,1),那么这似乎与使用 (-1,1) 更有效相矛盾。谢谢!困惑。
      • 对不起最后一件事:使用的归一化方法是否依赖于隐藏层中的激活函数?为了最小化偏差,我们想使用一个范围,该范围落在产生非平坦梯度的激活函数的输入范围内?那么 tanh 的范围比 sigmoid 的范围更广,而 ReLU 的范围比 tanh 的范围更广?所以对于 ReLU,我们希望输入 > 0?谢谢!
      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 2014-05-27
      • 2020-07-22
      • 1970-01-01
      • 2015-07-20
      相关资源
      最近更新 更多