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

逻辑回归训练代价函数任意梯度下降步长下均波动问题问询

自定义Numpy神经网络训练代价剧烈波动问题

我完成了吴恩达机器学习课程的学习,仅对反向传播(backpropagation)的原理理解不够透彻,因此参考《神经网络与深度学习》的相关教程,尝试用Numpy实现自定义神经网络。但无论梯度下降中使用何种步长(参考后续公式中的alpha变量),我的逻辑回归训练代价函数波动都非常剧烈。

为了判断模型是高偏差还是高方差,我绘制了学习曲线,分别展示训练代价(蓝色,存在波动问题)和测试代价。奇怪的是,尽管训练和测试场景使用完全相同的逻辑回归代价函数,且均未添加正则化,测试代价却没有出现波动。

已尝试的代码调试手段

  • 测试alpha取值范围为0.1到0.000000000001,每次按10倍梯度下调
  • 尝试将batch size从20以步长10逐步提升到70,排除小batch导致参数更新不准确引发代价突增的可能
  • 对照《神经网络与深度学习》的官方简洁实现逐行核对反向传播代码,仅发现一处差异:官方实现未对所有样本的bias偏导数求和
  • 检索了跟随吴恩达机器学习课程实现神经网络的同类问题,已排查确认我的代码不存在上述同类问题中提到的实现错误。我仍不能排除存在其他代码错误的可能,这是我第二次尝试实现反向传播(上次中途放弃),已确认没有出现已知同类问题中的错误。

使用的理论公式

逻辑回归代价函数

C代表代价,m为训练样本数,K为输出类别数,y为m×K矩阵,存储每个样本对应所有类别的真假标签,h为m×K矩阵,存储每个样本对应所有类别的预测值,theta为包含所有权重和偏置的参数向量。

参数更新公式

Alpha是我用于降低代价波动的步长,nabla符号表示代价对所有theta元素的偏导数,我按照《神经网络与深度学习》中给出的公式计算该偏导数。

内容的提问来源于stack exchange,提问作者Madhav Malhotra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:33:02