python - 使用 MNIST 实现逻辑回归 - 不收敛?

标签 python numpy machine-learning logistic-regression mnist

我希望有人能帮助我。我从头开始实现了逻辑回归(所以没有库,除了 Python 中的 numpy)。

我用了MNIST dataset作为输入,并决定尝试(因为我正在进行二进制分类)仅对两个数字进行测试:1 和 2。我的代码可以在这里找到

https://github.com/michelucci/Logistic-Regression-Explained/blob/master/MNIST%20with%20Logistic%20Regression%20from%20scratch.ipynb

笔记本应该在安装了必要库的任何系统上运行。

不知何故,我的成本函数没有收敛。我收到错误,因为我的 A(我的 sigmoid)变得等于 1,因为 z 变得非常大。

我尝试了一切,但没有看到我的错误。如果我错过了一些明显的事情,有人可以看一下并告诉我吗?这里的重点不是获得高精度。让模型收敛到某个东西;)

提前致谢,翁贝托

最佳答案

我读了你的代码。一切看起来都很好。唯一的问题是你的学习率很高。我知道 0.005 是一个很小的数字,但在这种情况下,它对于算法收敛来说太高了。从成本的增加就可以看出这一点。成本会下降一段时间,然后很快就会开始变成负数。这个想法是让成本接近于零。这里负数并不意味着成本较小。你必须看到其规模。我使用 0.000008 作为学习率,效果很好。

关于python - 使用 MNIST 实现逻辑回归 - 不收敛?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45954289/

相关文章:

python - 使用 __set__ 获得类级别类型描述符的方法

Python3 unpickle 字节对象的字符串表示

python - 如何用 Pandas 替换数据框的所有行?

python - Numpy:对应于唯一坐标位置的值的平均值

python - 如何在 Python 中使用 conda/meta.yaml 指定外部软件需求?

python - 根据两个不同列中的相应值在 DataFrame 中创建新列

python - numpy.tile 非整数次数

python - 计算卷积神经网络中特征图的维度

machine-learning - 贝叶斯超参数优化

R 中多类分类的 ROC 曲线