线性回归

此功能处于 Alpha 阶段。有关功能层级的更多信息,请参阅 API 层级

线性回归是一种基础的监督学习回归方法。它通过最小化一个取决于权重矩阵和训练数据的损失函数来训练模型。例如,可以使用梯度下降法来最小化损失。Neo4j 图数据科学使用 Adam 优化器,这是一种梯度下降类型的算法。

权重以特征大小的向量 w 和偏差 b 的形式表示。损失函数定义为

MSE(wx + b)

其中 MSE均方误差

为了避免过拟合,还可以向损失中添加一个 正则化 项。Neo4j 图数据科学支持 l2 正则化选项,该选项可以使用 penalty 参数进行配置。

调优超参数

为了平衡模型的偏差与方差、训练速度与内存消耗等因素,GDS 提供了多个可供调优的超参数。每个参数的说明如下。

在基于梯度下降的训练中,我们试图为模型找到最佳权重。在每个周期中,我们处理所有训练样本以计算损失和权重的梯度。然后使用这些梯度来更新权重。对于更新,我们使用 Adam 优化器,如 https://arxiv.org/pdf/1412.6980.pdf 中所述。

训练统计信息在 Neo4j 调试日志中报告。

最大周期数

此参数定义了训练的最大周期数。无论模型质量如何,训练都将在达到此周期数后终止。请注意,如果损失收敛,训练也可以提前停止(请参阅耐心值容差)。

设置此参数有助于限制模型的训练时间。限制计算预算可以起到正则化的作用,并缓解过拟合问题,而过拟合在周期数较多时会成为一个风险。

最小周期数

此参数定义了训练的最小周期数。无论模型质量如何,训练都将至少运行这么多周期。

设置此参数有助于避免提前停止,但也会增加模型的最小训练时间。

耐心值

此参数定义了连续无产出周期的最大数量。如果一个周期未能使训练损失至少改善当前损失的 tolerance 比例,则该周期是无产出的。

假设训练已运行了 minEpochs,此参数定义了训练何时收敛。

设置此参数可以使训练更稳健,并避免像 minEpochs 那样提前终止。然而,过高的耐心值可能导致运行超出必要的周期数。

根据我们的经验,patience 的合理值在 13 之间。

容差

此参数定义何时一个周期被认为是无产出的,并与 patience 一起定义训练的收敛标准。如果一个周期未能使训练损失至少改善当前损失的 tolerance 比例,则该周期是无产出的。

较低的容差会使训练更敏感,从而更有可能训练更长时间。较高的容差意味着训练不那么敏感,因此导致更多周期被计为无产出。

学习率

更新权重时,我们根据损失函数的梯度,沿着 Adam 优化器指定的方向移动。每次权重更新的移动量,可以通过 learningRate 参数进行配置。

批量大小

此参数定义了单个批次中包含多少个训练样本。

梯度是在批次上使用 concurrency 数量的线程并行计算的。在每个周期结束时,梯度会进行求和并缩放,然后用于更新权重。batchSize 不会影响模型质量,但可以用于调整训练速度。更大的 batchSize 会增加计算的内存消耗。

© . All rights reserved.