微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Logistic 回归成本函数随任何步长波动

如何解决Logistic 回归成本函数随任何步长波动

我完成了 Andrew Ng's ML course,只是我无法理解反向传播。因此,我正在按照 Neural Networks and Deep Learning 上的教程使用 Numpy 创建我自己的神经网络。但是无论步长是多少,我的逻辑回归训练成本函数都会波动很大(见最后方程中的alpha变量)我在梯度下降中使用.

我正在绘制训练成本(蓝色,波动的问题)和测试成本以创建学习曲线。我想弄清楚模型是否有高偏差或高方差。 奇怪的是,我的测试成本没有波动,尽管我对测试和训练成本使用了相同的逻辑回归成本函数(在任何一种情况下我都没有正则化)。

Test cost vs training cost learning curve


你可以自己运行我的代码on Kaggle here


这是我试图调试我的代码

  • 我尝试了 0.1 到 0.000000000001 范围内的 alpha,每次减少 10 倍
  • 我尝试增加批量大小(以 10 为增量从 20 增加到 70),以防训练成本的峰值是由于小批量导致的参数更新不准确造成的。
  • 我针对神经网络和深度学习中的 MUCH CLEANER implementation 再次检查了我的反向传播实现 :D 我能看到的唯一区别是他没有对所有示例的偏置偏导数求和?请参阅他的行 104 and 116 和我的 #Gradients to Return 部分。
  • 在学习 Andrew Ng 的机器学习课程时,我搜索了其他人关于实现神经网络的问题。这个 question 和这个 question 以及这个 question 在它们的实现中都存在编码问题。 这完全可能是我的实现中也有编码问题:-(这是我第二次尝试实现反向传播(上次我放弃了)。但我确实检查过我没有与这些问题相同的问题。

这些是我使用的理论方程:

Logistic Regression Cost Function

C 是 Cost,m 是训练样本的数量K输出类的数量y > 是一个 m by K 矩阵,每个示例的所有类都有真/假标签h一个 m > by K 矩阵,其中包含每个示例的所有类别的预测,theta一个包含所有参数(权重和偏差)的向量。

enter image description here

Alpha 是我正在缩小的“步长”,以最大程度地减少成本波动。 nabla 表示法是成本相对于 theta 的所有元素的偏导数。我用 Neural Networks and Deep Learning显示的方程计算这个。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。