You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带L2正则化的Logistic Regression实现成本异常问题咨询

代码存在多处错误,当前输出不符合正常梯度下降的预期,问题点如下:

  • 变量名不统一
    函数形参定义为xtr、ytr,但函数内部计算样本数m和特征数n时调用了全局变量xtrain,如果传参和全局变量的维度不一致,会直接导致梯度计算逻辑错误,需要把函数内所有xtrain、ytrain替换为形参xtr、ytr。
  • L2正则的成本公式错误
    L2正则的惩罚项应为(lamda/(2*m)) * np.sum(np.square(W)),你当前写的lamda*np.sum(W)是错误的:既没有对W取平方,也没有匹配缩放系数,完全不符合L2正则的设计逻辑。
  • 成本和梯度的正则项不匹配
    你梯度计算里的正则项是(lamda/(2*m))*W,和成本里的正则项完全不对应,导致梯度下降的优化方向和成本下降的方向不一致,这是首次迭代成本直接飙升的核心原因。
  • 特征未做归一化(潜在问题)
    如果输入特征没有做标准化/归一化,不同特征的数值范围差异过大,即使学习率看起来不大,也可能出现第一次迭代步长太长、成本跳升的情况。

修复方案

  1. 统一函数内的变量名,全部使用传入的xtr、ytr计算维度
  2. 修改成本计算行的正则部分:
    cost=-(1/m)*np.sum(ytr.T*np.log(a)+(1-ytr.T)*np.log(1-a)) + (lamda/(2*m))*np.sum(np.square(W))
    
  3. 确认输入特征已做归一化,如果修复后还是出现首次迭代成本上升,可把学习率下调至0.0001再测试。

内容的提问来源于stack exchange,提问作者nooona alnon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:36:02