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

实现异或(XOR)门近似的神经网络全输入输出0.5、损失饱和问题求助

问题代码排查结果

存在的核心问题

  • 权重初始化错误:你在初始化权重时将随机生成的权重乘以了0.001,导致初始权重极小。对于ReLU激活层来说,极小的输入会让大量神经元输出为0,反向传播时梯度直接被截断,网络无法有效更新参数,一直处于随机猜测状态(输出0.5对应交叉熵损失约0.69,正好是二分类随机猜测的损失值)。
  • 超参数设置不合理:当前0.01的学习率过小,1000轮的训练轮次也不足以让小权重网络收敛。

修复方案

你只需要修改以下两处即可正常收敛:

  1. 调整权重初始化逻辑,去掉*0.001,可以直接使用标准正态分布初始化,也可以用适配ReLU的He初始化:
# 原代码
paramters['W' + str(i)] = np.random.randn(layer_dims[i], layer_dims[i-1]) * 0.001
# 修改为(标准正态初始化即可满足XOR训练需求)
paramters['W' + str(i)] = np.random.randn(layer_dims[i], layer_dims[i-1])
# 也可以用He初始化效果更好
# paramters['W' + str(i)] = np.random.randn(layer_dims[i], layer_dims[i-1]) * np.sqrt(2 / layer_dims[i-1])
  1. 调大学习率、增加训练轮次:
# 原参数
epochs = 1000
learning_rate = 0.01
# 修改为
epochs = 10000
learning_rate = 0.1

修改后运行网络,损失会逐步下降到接近0,最终输出会接近[0, 1, 1, 0],符合XOR门的预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 01:27:02