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

从零实现Logistic Regression时Cost Function未下降问题排查求助

逻辑回归实现中损失函数不下降的问题排查

我尝试从零实现逻辑回归,但损失函数(Cost Function)并未呈现持续下降趋势,反而上下波动。损失函数数组为:
J_all = [0.6931471785599453,0.7013523852395079,1.0799382321159159,1.4184962890456663,1.2090967630312366,1.3564457452734269,1.2571265595127734,1.2870719263130037,1.306411844446772,1.229356753355045,1.3446092043800832,1.1813483789340946,1.372813359239384,1.1431300497707213,1.391357334040078,1.1143844952172193,1.4016419750913938, ...]

以下是我的实现代码:

def logistic_regression(X, Y, iterations, learning_rate):
    X = X.to_numpy()
    Y = Y.to_numpy()

    m = X.shape[0]
    n = X.shape[1]

    print(X.shape)
    print(Y.shape)

    print(m, n, sep = " ")

    W = np.zeros(n)
    B = 0

    print(W.shape)

    J_all = []

    for i in range(iterations):
        print(W)
        print(B)
        Z = (np.dot(X, W)) + B

        print(Z.shape)

        F = sigmoid(Z)

        print(F.shape)
        
        print(Z)
        print(F)
        
        epsilon = 1e-9  # Small epsilon value to avoid division by zero

        E = np.sum(Y * np.log(F + epsilon) + (1 - Y) * np.log(1 - F + epsilon))

        print(E)

        J = (-(1/m)) * E

        print(J)

        DW = np.dot(X.T, (F - Y))
        DB = (F - Y)

        W = W - (learning_rate/m) * (DW)
        B = B - (learning_rate/m) * np.sum(DB)

        J_all.append(J)

    return J_all, W, B

问题排查与修复方案
  • 学习率过大:损失函数上下波动最常见的原因是学习率过高,参数更新时会在最优值附近来回震荡,无法收敛。建议逐步缩小学习率,比如从0.1调整到0.01、0.001,找到能让损失平稳下降的数值。

  • 缺失特征归一化:逻辑回归对特征尺度敏感,如果输入特征的数值范围差异悬殊(比如一个特征是0-1,另一个是0-1000),会导致梯度更新不稳定,引发损失波动。需要对特征做标准化处理:

    from sklearn.preprocessing import StandardScaler
    scaler = StandardScaler()
    X = scaler.fit_transform(X.to_numpy())  # 适配原代码的转numpy操作
    
  • 梯度计算验证:虽然代码中梯度公式逻辑正确,但可以用小批量数据手动验证梯度是否准确,或者对比sklearn官方实现的梯度方向,排除计算错误。

  • 迭代次数不足:若调整学习率后仍有波动,可能是迭代次数不够,模型还未收敛到平稳阶段。可以适当增大iterations的值,观察损失函数后期是否趋于稳定。

  • 冗余打印优化:循环内的大量print语句会拖慢训练速度,也不利于观察整体趋势,建议移除或仅在调试时保留。


内容的提问来源于stack exchange,提问作者harsh bijwe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 13:15:05