Machine learning 对逻辑回归进行编码时,成本函数是否重要

Machine learning 对逻辑回归进行编码时,成本函数是否重要,machine-learning,logistic-regression,Machine Learning,Logistic Regression,注意:当在函数中看到(0)时,它表示θ而不是零 我一直在学习Andrew Ng的机器学习课程,我有以下疑问: (简短的版本:如果要查看用于正向和反向传播的所有数学表达式/计算,那么在我看来,我们从来没有直接使用成本函数,而是使用其导数,那么成本函数及其选择的重要性是什么?它是否纯粹是为了评估我们的系统我们有过这样的感觉吗?) Andrew提到,对于逻辑回归,使用MSE(均方误差)成本函数 这不太好,因为将其应用于我们的Sigmoid函数将产生一个具有大量局部最优值的非凸成本函数,因此我们最好使

注意:当在函数中看到(0)时,它表示θ而不是零

我一直在学习Andrew Ng的机器学习课程,我有以下疑问:

(简短的版本:如果要查看用于正向和反向传播的所有数学表达式/计算,那么在我看来,我们从来没有直接使用成本函数,而是使用其导数,那么成本函数及其选择的重要性是什么?它是否纯粹是为了评估我们的系统我们有过这样的感觉吗?)

Andrew提到,对于逻辑回归,使用MSE(均方误差)成本函数

这不太好,因为将其应用于我们的Sigmoid函数将产生一个具有大量局部最优值的非凸成本函数,因此我们最好使用以下逻辑成本函数:

它将有两个图(一个用于y=0,一个用于y=1),它们都是凸的

我的问题如下,因为我们的目标是最小化成本函数(aka使导数达到0),我们通过使用梯度下降,使用成本函数的导数更新我们的权重,在这两种情况下(两个成本函数)都是相同的导数:

dJ=(h0(x(i))-y(i)).x(i)

那么,在这种情况下,代价函数的不同选择对我们的算法有何影响呢?因为在前向传播中,我们所需要的只是 h0(x(i))=乙状结肠(0Tx)
它可以在不需要计算成本函数的情况下进行计算,然后在反向传播和更新权重时,我们总是使用成本函数的导数,那么成本函数本身什么时候起作用呢?当我们想知道我们的网络做得如何时,这是必要的吗?(那么为什么不依赖导数来知道呢)

前向传播在任何方面都不需要代价函数,因为您只需将所有学习到的权重应用于相应的输入

成本函数通常用于通过将模型结果(因此将当前权重应用于输入)与输入的真实标签(在监督算法中)进行比较来衡量算法的优劣。因此,主要目标是将成本函数误差最小化为(在大多数情况下)你希望预测和真实标签的差异尽可能小。在优化中,如果你想优化的函数是凸的,这是非常有用的,因为它保证了如果你找到一个局部最小值,它同时是全局最小值


为了最小化成本函数,使用梯度下降迭代更新权重,使其接近最小值。这是通过对已学习的权重进行w.r.t来完成的,以便您能够更新模型的权重,以实现尽可能低的成本。使用反向传播算法,使用成本函数调整权重从技术上讲,你是正确的:我们没有在任何正向传播和反向传播的计算中明确使用成本函数

你问“成本函数及其选择的重要性是什么?”我有两个答案:

  • 成本函数非常重要,因为它的梯度允许我们更新权重。虽然我们实际上只计算成本函数的梯度,而不是成本函数本身,但选择不同的成本函数意味着我们将有不同的梯度,从而改变我们更新权重的方式

  • 成本函数允许我们评估我们的模型性能。通常的做法是绘制成本与时间的关系图,以了解成本是如何随时间降低的


  • 你的回答表明你基本上已经理解了所有这些,但我希望能澄清一点。谢谢!

    成本函数很重要,因为在反向传递中,梯度是使用成本函数计算的。这样学习就会发生。如果没有损失函数,你就无法应用梯度下降、反向传播及其计算对我来说,反向传播仍然有点模糊,但我已经意识到这是我的误解所在,我会确保我更好地理解它,谢谢你的评论反向传播的基础在论文中首先解释。我已经写了一篇中篇文章,作为论文和反向传播本质的演练。它包括有用的笔记本实现还有,也许会有帮助。非常感谢!我会马上开始的。我意识到我的误解与反向传播是如何计算/完成的有关。谢谢你的回复