请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

mnist 逻辑回归不收敛

昨天晚上尝试了mnist数据集,但是训练了两次都不收敛,第一次觉得迭代次数不够,但第二次失败应该是η太大导致梯度下降法失效?接下来应该怎么做呢?图片描述

正在回答

1回答

liuyubobobo 2020-01-29 13:24:37

我使用最新的 sklearn 基于 LogisticRegression 在 MNIST 上进行了一下实验,代码如下:https://git.imooc.com/coding-169/coding-169/src/master/09-Logistic-Regression/Optional-03-MNIST-in-LogisticRegression/Optional-03-MNIST-in-LogisticRegression.ipynb


整体,看你的训练时间,近乎一定没有做 PCA。对于图像数据来说,数据冗余还是很大的,最好做一下 PCA。否则本身也会遭遇维度灾难的问题。


PCA 以后,进行标准化,然后使用 solver="newton-cg" ,我的测试结果没有收敛问题。可以尝试在你的环境下运行一下我的代码,看是不是有问题?如果没有问题,仔细比对一下,看看自己的代码问题在哪里?


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 MrZLeo #1
    尝试了PCA和归一化,之后果然顺畅多了,也可以得到跟老师一样的结果。
    仔细查看了老师的代码,老师在使用logistics regression之前先对数据进行了预处理,极大地加快了计算的速度,这一点非常重要。
    
    但是,我还有一个问题,即便没对数据进行预处理,增大的不应该只是计算时间吗?为什么会导致无法收敛这种情况发生呢?
    
    btw,老师的代码在Standardization进行fit的时候传入了y_train,这个应该是不需要的吧?
    回复 有任何疑惑可以回复我~ 2020-01-29 14:40:04
  • liuyubobobo 回复 提问者 MrZLeo #2
    就是因为维度灾难啊。巨大的维度使得搜索空间巨大,对应或者搜索时间超长,或者由于搜索空间太广袤了,中间搜索步骤不知道去哪里更好,因为似乎去哪里都不够好!P.S. y_train 可以不传。
    回复 有任何疑惑可以回复我~ 2020-01-29 14:42:33
  • 提问者 MrZLeo #3
    非常感谢老师!新年快乐呀!
    回复 有任何疑惑可以回复我~ 2020-01-29 14:52:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信