类别

版本

深度学习(水)

剧情简介

使用H2O 3.30.0.1执行深度学习算法。

描述

请注意,这个算法是确定的,只有当可再生的参数设置为true。在这种情况下,算法只使用1个线程。

深度学习基于一个多层前馈人工神经网络,该网络使用反向传播的随机梯度下降方法进行训练。该网络可以包含大量由具有tanh、rectifier和maxout激活函数的神经元组成的隐藏层。先进的功能,如自适应学习率,速率退火,动量训练,辍学和L1或L2正则化,使高预测精度。每个计算节点通过多线程(异步)在其本地数据上训练全局模型参数的副本,并通过网络上的模型平均定期贡献给全局模型。

操作员启动一个1节点的本地H2O集群,并在其上运行算法。虽然它使用一个节点,但执行是并行的。您可以通过更改设置/首选项/通用/线程数设置来设置并行级别。默认情况下,它使用系统的推荐线程数。只有集群的一个实例被启动,它保持运行,直到您关闭RapidMiner Studio。

输入

  • 训练集(数据表)

    输入端口需要一个带标签的ExampleSet。

输出

  • 模型

    深度学习分类或回归模型从这个输出端口交付。这种分类或回归模型可以应用于未知的数据集,以预测标签属性。

  • 榜样(数据表)

    作为输入给出的ExampleSet不会通过该端口更改为输出。这通常用于在进一步的操作符中重用相同的ExampleSet,或者在结果工作区中查看ExampleSet。

  • 权重(权重)

    该端口下发与label属性相关的属性权重。

参数

  • 激活隐藏层神经元使用的激活函数(非线性)。
    • Tanh:双曲正切函数(与缩放移位的s型函数相同)。
    • 整流:整流线性单元:选择(0,x)的最大值,其中x为输入值。
    • Maxout:选择输入向量的最大坐标。
    • 表达式:指数整流线性单元函数。
    选择范围:
  • hidden_layer_sizes模型中每个隐藏层的数量和大小。例如,如果用户指定“100,200,100”,将生成一个具有3个隐藏层的模型,中间隐藏层将有200个神经元。范围:枚举
  • hidden_dropout_ratios为了提高泛化,每个隐藏层的一部分输入从训练中被省略。如果省略,每个隐藏层默认为0.5。仅当选择带有退出的激活功能时可见。范围:枚举
  • 可再生的在小数据上强制再现性(会很慢-只使用1个线程)。范围:布尔
  • use_local_random_seed指示是否应使用本地随机种子进行随机化。仅当可复制设置为true时可用。范围:布尔
  • local_random_seed用于随机生成的局部随机种子。此参数仅在use local random seed参数设置为true时可用。范围:整数
  • 时代数据集应该迭代(流化)多少次,可以是小数。范围:真正的
  • compute_variable_importances是否计算输入特征的变量重要度。实现的方法考虑连接输入特征到前两个隐藏层的权重。范围:布尔
  • train_samples_per_iteration每次迭代要处理的训练数据行数。请注意,与该参数无关,每一行都立即使用(在线)随机梯度下降来更新模型。该参数控制评分和模型取消发生的频率。特殊值为0表示每次迭代一个epoch, -1表示每次迭代处理最大数据量。特殊值-2开启自动模式(自动调谐)。范围:长
  • adaptive_rate实现的自适应学习率算法(ADADELTA)自动结合学习率退火和动量训练的优点,以避免缓慢的收敛。只指定两个参数(rho和epsilon)简化了超参数搜索。在某些情况下,手动控制(非自适应)学习率和动量规格可以产生更好的结果,但需要规格(和超参数搜索)多达7个参数。如果模型建立在具有许多局部最小值或长平台的拓扑结构上,则恒定的学习率可能会产生次优结果。学习率退火允许更深入地挖掘局部最小值,而速率衰减允许指定每层不同的学习率。当梯度在优化景观中的一个长山谷中估计时,较大的学习率会导致梯度振荡并向错误的方向移动。当梯度在一个相对平坦的表面上以较小的学习速率计算时,模型的收敛速度会远远低于必要的速度。范围:布尔
  • ε类似于初始训练时的学习率退火和后期阶段的动量退火,它允许向前发展。典型值在1e-10和1e-4之间。只有启用了自适应学习率,此参数才有效。范围:真正的
  • ρ与动量类似,与先前权重更新的记忆有关。典型值在0.9到0.999之间。只有启用了自适应学习率,此参数才有效。范围:真正的
  • 标准化如果启用,则自动标准化数据。如果禁用,用户必须提供适当缩放的输入数据。范围:布尔
  • learning_rate当自适应学习率被禁用时,权重更新的大小由用户指定的学习率(可能退火)决定,并且是预测值和目标值之间差异的函数。这个差,通常称为delta,只在输出层可用。为了校正每个隐藏层的输出,使用反向传播。动量通过允许先前的迭代影响当前更新来修改反向传播。使用动量参数可以帮助避免局部最小值和相关的不稳定性。太多的动量会导致不稳定,这就是为什么动量最好慢慢增加。该参数仅在禁用自适应学习率时有效。范围:真正的
  • rate_annealing学习率退火将学习率“冻结”到优化环境中的局部最小值。退火速率是将学习率减半所需的训练样本数量的倒数(例如,1e-6意味着需要1e6个训练样本才能将学习率减半)。该参数仅在禁用自适应学习率时有效。范围:真正的
  • rate_decay学习率衰减参数控制学习率跨层的变化。例如,假设rate参数设置为0.01,rate_decay参数设置为0.5。那么连接输入和第一隐藏层的权值学习率为0.01,连接第一和第二隐藏层的权值学习率为0.005,连接第二和第三隐藏层的权值学习率为0.0025,以此类推。该参数仅在禁用自适应学习率时有效。范围:真正的
  • momentum_startmomentum_start参数控制训练开始时的动量量。该参数仅在禁用自适应学习率时有效。范围:真正的
  • momentum_rampmomentum_ramp参数控制动量增加的学习量(假设momentum_stable大于动量start)。斜坡是用训练样本的数量来衡量的。该参数仅在禁用自适应学习率时有效。范围:真正的
  • momentum_stable参数momentum_stable控制着在momentum_ramp训练样本后得到的最终动量值。在达到这一点之后,用于培训的势头将保持不变。该参数仅在禁用自适应学习率时有效。范围:真正的
  • nesterov_accelerated_gradientNesterov加速梯度下降法是对传统凸函数梯度下降法的改进。该方法依赖于各点的梯度信息来建立一个多项式近似,在更少的下降迭代中最小化残差。该参数仅在禁用自适应学习率时有效。范围:布尔
  • L1一种正则化方法,它约束权重的绝对值,并具有从模型中删除一些权重(将它们设置为零)的净效果,以降低复杂性并避免过拟合。范围:真正的
  • L2约束权的平方和的正则化方法。这种方法在参数估计中引入了偏差,但由于估计方差减少,通常会在建模中产生可观的收益。范围:真正的
  • max_w2任意一个神经元的输入权值的平方和的最大值。此调优参数对于未绑定激活函数(如Maxout或Rectifier)特别有用。特殊值0表示无穷大。范围:真正的
  • loss_function模型要最小化的损失(误差)函数。Absolute、Quadratic和Huber适用于回归或分类,而CrossEntropy只适用于分类。Huber可以改进带有异常值的回归问题。当模型输出由独立的假设组成时,使用交叉熵损失,输出可以解释为每个假设为真的概率。当目标值为类标号时,特别是对于不平衡数据,推荐使用交叉熵损失函数。它强烈地惩罚了实际类标号预测中的错误。当模型输出是连续实值时使用二次损失,但也可以用于分类(它强调所有输出类的误差,而不仅仅是实际类的误差)。选择范围:
  • distribution_function训练数据的分布函数。对于某些功能(例如tweedie),可以通过专家参数实现进一步的调整
    • AUTO:自动选择。对标称标签使用多项,对数字标签使用高斯。
    • 伯努利分布。可用于二名或二类多名标签。
    • 高斯,波西翁,伽玛,特威迪,分位数,拉普拉斯:回归的分布函数。
    选择范围:
  • early_stopping如果为true,则需要指定提前停止的参数。范围:布尔
  • stopping_rounds基于stopping_metric收敛性的提前停车。如果stopping_metric的长度k的简单移动平均对于k:=stopping_rounds评分事件(0到禁用)没有改善,则停止。只有设置了early_stop后,该参数才可见。范围:整数
  • stopping_metric用于提前停止的度量。设置stopping_tolerance来调整它。只有设置了early_stop后,该参数才可见。
    • AUTO:自动选择。使用logloss进行分类,偏差进行回归。
    • deviance, logloss, MSE, AUC, lift_top_group, r2, misclassification, mean_per_class_error:用来决定是否应该停止算法的度量。
    选择范围:
  • stopping_tolerance基于度量的停止标准的相对容忍度(如果相对改进至少没有这么多,则停止)。只有设置了early_stop后,该参数才可见。范围:真正的
  • missing_values_handling处理缺失值。跳过或MeanImputation。
    • 跳过:跳过不存在的值。
    • MeanImputation:用平均值代替缺失值。
    选择范围:
  • max_runtime_seconds模型训练的最大允许运行时间(秒)。使用0禁用。范围:整数
  • expert_parameters这些参数是用来微调算法的。通常,默认值提供了一个不错的模型,但在某些情况下,更改它们可能是有用的。请为布尔参数使用真/假值,为列使用确切的属性名称。可以通过使用逗号(,)分隔值来提供数组。有关参数的更多信息可以在H2O文档中找到。
    • score_each_iteration:是否在模型训练的每次迭代中打分。类型:boolean,默认值:false
    • fold_assign:交叉验证折叠分配方案,如果没有指定fold_column。选项:自动,随机,模,分层。类型:枚举,默认值:AUTO
    • fold_column:每个观测值的交叉验证折叠索引分配的列名。类型:列,默认:无折叠列
    • offset_column:偏移列名称。类型:列,默认值:无偏移列
    • balance_classes:平衡训练数据类计数通过过采样/欠采样(不平衡数据)。类型:boolean,默认值:false
    • keep_cross_validation_predictions:保留交叉验证模型预测。类型:boolean,默认值:false
    • keep_cross_validation_fold_assignment:保持交叉验证折叠分配。类型:boolean,默认值:false
    • max_after_balance_size:平衡类计数后训练数据的最大相对大小(可以小于1.0)。需要balance_classes。类型:real,默认值:5.0
    • max_confusion_matrix_size:在日志中打印的混淆矩阵的最大大小(# classes)。类型:整型,默认值:20
    • quantile_alpha:分位数回归所需的分位数(从0.0到1.0)。类型:real,默认值:0.5
    • tweedie_power: Tweedie Power(介于1和2之间)。类型:real,默认值:1.5
    • class_sampling_factors:每个类的期望过采样/欠采样比率(按字典顺序排列)。如果未指定,将自动计算采样因子以在训练期间获得类平衡。需要balance_classes = true。类型:float array,默认值:空
    • input_dropout_ratio:为了提高泛化(维度采样),每个训练行要从训练中省略的特征的一部分。类型:real,默认值:0
    • score_interval:模型评分之间间隔的最小时间(以秒为单位)。实际间隔由每次迭代的训练样本数量和评分占空比决定。类型:整型,默认值:5
    • score_training_samples:用于评分的训练数据集点数。将被随机抽样。使用0选择整个训练数据集。类型:整型,默认值:10000
    • score_validation_samples:用于评分的验证数据集点的数量。可以随机抽样或分层(如果设置“平衡类”并将“分数验证抽样”设置为分层)。使用0选择整个训练数据集。类型:整型,默认值:0
    • score_duty_cycle:在训练和验证样本上的模型评分以及诊断(例如计算特征重要性)上花费的wall clock时间的最大比例(即,不在训练上)。低:训练多,高:得分多。类型:real,默认值:0.1
    • overwrite_with_best_model:如果启用,则在训练结束时将最佳模型存储在该模型的目标键下。类型:boolean,默认值:true。
    • initial_weight_distribution:要从中提取初始权重的分布。默认选项是考虑网络大小的优化初始化。“均匀”选项使用均值为0和给定间隔的均匀分布。“正态”选项从标准正态分布中提取权重,平均值为0,给定标准差。类型:枚举,选项:UniformAdaptive、Uniform、Normal。默认值:UniformAdaptive
    • initial_weight_scale:均匀分布或正态分布的分布函数的尺度。对于Uniform,值从-initial_weight_scale…initial_weight_scale统一绘制。对于正态分布,这些值取自一个标准偏差为initial_weight_scale的正态分布。类型:real,缺省值:1
    • classification_stop:以训练数据评分数据集的分类误差(1-准确率)为标准的停止标准。当误差等于或低于这个阈值时,训练停止。类型:real,默认值:0
    • regression_stop:根据训练数据评分数据集的回归误差(MSE)的停止标准。当误差等于或低于这个阈值时,训练停止。类型:real,默认值:1e-6。
    • score_validation_sampling:用于为评分对验证数据集进行抽样的方法。类型:枚举,选项:统一,分层。默认值:制服。
    • fast_mode:启用快速模式(反向传播中的小近似),应该不会显著影响结果。类型:boolean,默认值:true。
    • force_load_balance:通过将小数据集分成许多块来提高训练速度,以允许利用所有核心。类型:boolean,默认值:true。
    • shuffle_training_data:启用训练数据洗牌(在每个节点上)。如果训练数据在N个节点上复制,并且每次迭代的训练样本数量接近数据集大小的N倍,则建议使用此选项,其中所有节点训练将(几乎)所有数据。如果每次迭代的训练样本数量设置为-1(或设置为数据集大小的N倍或更大),则自动启用该功能。这个参数通常不需要设置,因为RapidMiner总是在一个节点上运行H2O。类型:boolean,默认值:false。
    • quiet_mode:启用静音模式,以减少对标准输出的输出。类型:boolean,默认值:false。
    • sparse:稀疏数据处理(对于大量0值的数据更有效)。类型:boolean,默认值:false。
    • average_activation:稀疏自编码器的平均激活(实验)类型:double,默认值:0.0。
    • sparsity_beta:稀疏正则化。(实验)类型:double,默认值:0.0。
    • max_categorical_features:马克斯。分类特征的数量,通过哈希强制(实验)类型:整数,默认值:2147483647。
    • export_weights_and_bias:是否导出神经网络权重和偏差到H2O帧。类型:boolean,默认值:false。
    • mini_batch_size:小批量大小(越小越适合,越大可以加速和泛化得更好)。类型:整数,默认值:1
    • elastic_averaging:计算节点之间的弹性平均可以提高分布式模型的收敛性。(实验)类型:boolean,默认值:false。
    • use_all_factor_levels:使用分类变量的所有因子级别。否则,省略第一个因子级别(不影响准确性)。可用于变量的重要性和自动启用的自动编码器。类型:boolean,默认值:true。
    • nfolds:交叉验证的折叠数。使用0关闭交叉验证。类型:整型,默认值:0
    范围:枚举

教程的过程

使用深度学习的分割验证分类

H2O深度学习算子用于预测泰坦尼克号样本数据集的幸存属性。由于标签是二名的,因此将执行分类。为了检查模型的质量,使用分割验证算子生成训练和测试数据集。深度学习操作符的参数为默认值。这意味着将构建2个隐藏层,每个隐藏层包含50个神经元。带标签的ExampleSet连接到一个Performance (Binominal Classification)操作符,该操作符计算精度度量。在深度学习模型的过程输出中,显示了标记的数据和性能向量。

使用深度学习的回归

H2O深度学习算子用于预测生成数据集的数字标签属性。因为标签是真实的,所以执行回归。生成数据,然后使用Split data操作符将数据分成两部分。第一个输出用作训练,第二个输出用作评分数据集。深度学习操作符使用自适应学习率选项(默认)。该算法根据epsilon和rho参数自动确定学习率。唯一的非默认参数是隐藏层大小,其中使用3层,每层有50个神经元。在应用于测试ExampleSet之后,标记的数据被连接到流程输出。