首页 > 解决方案 > 以下哪一项是验证学习算法是否正确运行的有用步骤?

问题描述

我无法回答这个问题(来自 Coursera 的 Andrew Ng 的机器学习课程)。请帮助我并解释答案背后的原因。

假设您正在使用梯度下降和反向传播来尝试最小化 J($\theta$)(J(Θ) 作为 $\theta$ 的函数)。以下哪一项是验证学习算法是否正确运行的有用步骤?

  1. 绘制 J($\theta$),以确保梯度下降正在走下坡路。

  2. 绘制 J($\theta$)。J(Θ) 作为迭代次数的函数,并确保它随着每次迭代而增加(或至少不减少)。

  3. 将 J($\theta$)J(Θ) 绘制为迭代次数的函数,并确保每次迭代它都在减少(或至少不增加)。

  4. 将 J($\theta$)J(Θ) 绘制为迭代次数的函数,以确保参数值在分类准确性方面有所提高。

标签: machine-learningdeep-learning

解决方案


让我们首先明确这个想法,J(Θ) 是我们试图通过优化器(梯度下降)最小化的模型的损失/成本,以便我们做出良好的预测。因此,理论上,当我们更新权重时,我们的损失应该随着每个时期/迭代而不断下降。您现在已经可以看到,如果我们的模型真的在学习一些东西,那么它应该在每个 epoch/迭代中产生越来越低的损失。

您现在可能会看到选项 1 无法帮助我们分析模型的改进。

在选项二中,我们的绘图没问题,我们在 y 轴上绘制 J(Θ),在 x 轴上绘制迭代,但我们不想确保它在增加,我们想做相反的事情。

在选项 4 中,我们的图再次正确,但是,我们不会监控权重值,它们可以是任何值,我们只是想要更低的损失,以便我们的准确度更高。

如您所见,正确的选项是 3,我们正在绘制 J(Θ)vsIteration 图并监控损失是否在减少(或至少没有增加,因为增加意味着我们没有学到任何东西,而是变得更糟)


推荐阅读