R 中的 H2O - 自动数据处理
H2O in R - Automatic Data Processing
我注意到 H2O packages mentions that it:
preprocesses the data to be standardized for compatibility with the
activation functions (recall Table 1’s summary of each activation
function’s target space). Since the activation function does not
generally map into the full spectrum of real numbers, R, we first
standardize our data to be drawn from N (0, 1). Standardizing again
after network propagation allows us to compute more precise errors in
this standardized space, rather than in the raw feature space. For
autoencoding, the data is normalized (instead of standardized) to the
compact interval of mathcalU(−0.5, 0.5), to allow bounded activation
functions like Tanh to better reconstruct the data.
不过,我不是很明白。我的印象是 (here, and here) 分类变量应该被分解成 1-of-C 虚拟变量并且连续数据标准化 。 那么,一切都应该标准化为[-1,1]。
我也没有看到为读出层指定神经元的方法。我想如果我们有一个 categorical 输出变量然后我们想使用 softmax 激活函数(并编码为 1-of-C)/如果我们有一个 continuous 输出(例如价格)然后我们将其缩放到 [-1,1] 并使用 'tanh' / 如果我们有一个 单个二进制 输出那么我们可以使用逻辑并将其编码为 [0,1]
H2O达到了1-of-C虚拟编码的效果,没有成本。确切的细节因算法而异,但总有一个明显的算法优化可以提供虚拟编码的预测强度,而无需内存或速度成本。
悬崖
对于分类和回归(即监督模式),H2O 深度学习执行以下操作:
第一个神经网络层的输入确实是 1-of-C 个虚拟变量(0 或 1)用于分类特征。连续特征被标准化(未归一化):de-meaned 并按 1/方差缩放。
对于回归,响应变量也在内部标准化,以允许将(单个)输出神经元的激活值与其进行比较。但是,为了在评分期间向用户展示,预测是 de-standardized 到原始的 space。
对于分类,我们使用 Softmax 来获得 C 类 的概率,即使对于二进制分类也是如此。
您引用的文档还提到了无监督自动编码(通过启用自动编码器标志)。在这种情况下,输入被归一化(即按 1/(max-min) 缩放)而不是被标准化。这是允许 auto-encoder 具有完全重叠的输入和输出 spaces 所必需的。
我注意到 H2O packages mentions that it:
preprocesses the data to be standardized for compatibility with the activation functions (recall Table 1’s summary of each activation function’s target space). Since the activation function does not generally map into the full spectrum of real numbers, R, we first standardize our data to be drawn from N (0, 1). Standardizing again after network propagation allows us to compute more precise errors in this standardized space, rather than in the raw feature space. For autoencoding, the data is normalized (instead of standardized) to the compact interval of mathcalU(−0.5, 0.5), to allow bounded activation functions like Tanh to better reconstruct the data.
不过,我不是很明白。我的印象是 (here, and here) 分类变量应该被分解成 1-of-C 虚拟变量并且连续数据标准化 。 那么,一切都应该标准化为[-1,1]。
我也没有看到为读出层指定神经元的方法。我想如果我们有一个 categorical 输出变量然后我们想使用 softmax 激活函数(并编码为 1-of-C)/如果我们有一个 continuous 输出(例如价格)然后我们将其缩放到 [-1,1] 并使用 'tanh' / 如果我们有一个 单个二进制 输出那么我们可以使用逻辑并将其编码为 [0,1]
H2O达到了1-of-C虚拟编码的效果,没有成本。确切的细节因算法而异,但总有一个明显的算法优化可以提供虚拟编码的预测强度,而无需内存或速度成本。
悬崖
对于分类和回归(即监督模式),H2O 深度学习执行以下操作:
第一个神经网络层的输入确实是 1-of-C 个虚拟变量(0 或 1)用于分类特征。连续特征被标准化(未归一化):de-meaned 并按 1/方差缩放。
对于回归,响应变量也在内部标准化,以允许将(单个)输出神经元的激活值与其进行比较。但是,为了在评分期间向用户展示,预测是 de-standardized 到原始的 space。
对于分类,我们使用 Softmax 来获得 C 类 的概率,即使对于二进制分类也是如此。
您引用的文档还提到了无监督自动编码(通过启用自动编码器标志)。在这种情况下,输入被归一化(即按 1/(max-min) 缩放)而不是被标准化。这是允许 auto-encoder 具有完全重叠的输入和输出 spaces 所必需的。