多项式回归中的正则化系数
Regularization Coefficient in Polynomial Regression
Regularization Term
多项式回归中的过度拟合,比较训练集的均方根误差和验证集的均方根误差。
Graph of the root-mean-square-error vs lnλ for the M=9 polynomial
我没有正确理解这张图。在训练模型以学习参数时,我们必须设置 λ = 0,因为已经 select λ 的值没有意义,然后继续进行训练。 那么当我们改变 λ 的值时,训练误差如何变化?我们将数据集分为valid和train,这样我们在training set中训练模型,然后通过valid set验证validation。
你可能会混淆这里的概念。
为什么要损失函数?
您对损失函数应用了收缩惩罚。
这将推动您的模型找到更接近于零的权重。哪个可以,例如有助于通过用偏差交易方差来进行正则化(参见 “统计学习简介” 中的 Ridge 回归,作者是 Witten 等人)
如何训练?
在训练后设置项 λ 应该不会影响你训练的模型。从线性回归的角度考虑:一旦你拟合了线性回归函数,你的误差函数就不再重要了。您只需应用线性回归函数。
因此,你必须在训练时设置λ参数。
否则,您的模型将在没有正则化项的情况下优化参数,因此不会缩小权重之和。因此,你实际上是在没有正则化的情况下训练你的模型。
如何找到合适的 λ 值?
你要区分多个步骤:
Training:您训练一个模型,将 λ 设置为训练数据的固定值。 λ 在训练期间不会改变,但不能为零(如果你想进行正则化)。
这次训练将产生一个模型;我们称它为模型 λ1。
单一验证运行:您验证模型 λ1 在验证集上的执行情况。这会告诉您 λ 如何以及是否改进了您的模型,但不会告诉您是否有更好的 λ。
交叉验证思路:训练多个模型并使用验证运行来评估它们的性能以找到最佳的 λ。换句话说,您使用不同的 λ 值训练多个模型(例如模型 λ2 .. λ10)。然后你可以比较他们的验证集性能,看看哪个 λ 值最好(在验证集上)。
为什么要进行 3 组拆分(训练/验证/测试):如果您使用此过程选择最终模型(例如模型 λ3),您仍然不知道如何你的模型很好地概括了,因为你一直在使用验证集来为 λ 找到一个好的值。因此,您会期望您的模型在验证集上表现得相当好。
因此,您在您的模型从未见过的测试集上评估您的最终模型,并且您从未执行过任何类型的参数优化。您衡量的性能是模型的最终性能。重要的是,您不要在训练集上评估多个模型,然后 select 最好的,因为那样的话,您将再次优化训练集上的性能。
如何解读剧情?
如果不对您正在处理的问题有更多了解,这实际上很难。
乍一看,您的模型似乎对较小的 λ 值过度拟合,并且由于正则化而提高了其在较大值的验证集上的性能。
Regularization Term
多项式回归中的过度拟合,比较训练集的均方根误差和验证集的均方根误差。
Graph of the root-mean-square-error vs lnλ for the M=9 polynomial
我没有正确理解这张图。在训练模型以学习参数时,我们必须设置 λ = 0,因为已经 select λ 的值没有意义,然后继续进行训练。 那么当我们改变 λ 的值时,训练误差如何变化?我们将数据集分为valid和train,这样我们在training set中训练模型,然后通过valid set验证validation。
你可能会混淆这里的概念。
为什么要损失函数?
您对损失函数应用了收缩惩罚。 这将推动您的模型找到更接近于零的权重。哪个可以,例如有助于通过用偏差交易方差来进行正则化(参见 “统计学习简介” 中的 Ridge 回归,作者是 Witten 等人)
如何训练?
在训练后设置项 λ 应该不会影响你训练的模型。从线性回归的角度考虑:一旦你拟合了线性回归函数,你的误差函数就不再重要了。您只需应用线性回归函数。
因此,你必须在训练时设置λ参数。 否则,您的模型将在没有正则化项的情况下优化参数,因此不会缩小权重之和。因此,你实际上是在没有正则化的情况下训练你的模型。
如何找到合适的 λ 值?
你要区分多个步骤:
Training:您训练一个模型,将 λ 设置为训练数据的固定值。 λ 在训练期间不会改变,但不能为零(如果你想进行正则化)。
这次训练将产生一个模型;我们称它为模型 λ1。
单一验证运行:您验证模型 λ1 在验证集上的执行情况。这会告诉您 λ 如何以及是否改进了您的模型,但不会告诉您是否有更好的 λ。
交叉验证思路:训练多个模型并使用验证运行来评估它们的性能以找到最佳的 λ。换句话说,您使用不同的 λ 值训练多个模型(例如模型 λ2 .. λ10)。然后你可以比较他们的验证集性能,看看哪个 λ 值最好(在验证集上)。
为什么要进行 3 组拆分(训练/验证/测试):如果您使用此过程选择最终模型(例如模型 λ3),您仍然不知道如何你的模型很好地概括了,因为你一直在使用验证集来为 λ 找到一个好的值。因此,您会期望您的模型在验证集上表现得相当好。
因此,您在您的模型从未见过的测试集上评估您的最终模型,并且您从未执行过任何类型的参数优化。您衡量的性能是模型的最终性能。重要的是,您不要在训练集上评估多个模型,然后 select 最好的,因为那样的话,您将再次优化训练集上的性能。
如何解读剧情?
如果不对您正在处理的问题有更多了解,这实际上很难。 乍一看,您的模型似乎对较小的 λ 值过度拟合,并且由于正则化而提高了其在较大值的验证集上的性能。