0

我注意到 H2O包提到它

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

然而,我并不完全明白。我的印象是(这里这里分类变量应该被分解为 1-of-C 虚拟变量,并且连续数据标准化然后,一切都应该标准化为 [-1,1]

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

4

2 回答 2

1

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

悬崖

于 2016-01-19T22:32:57.253 回答
1

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

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

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

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

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

于 2016-01-19T22:56:58.043 回答