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

神经网络无法学习input0³>input1任务,收敛至平均输出求助

问题

我用C#实现了一个神经网络,隐藏层采用ReLu激活函数,输出层采用Sigmoid激活函数。我试图训练它学习判断input0³ > input1,但网络始终无法有效学习,仅能随机输出false或给出“53.1%确定为true”的结果。

我尝试调整了学习率(当前不是0.03)、训练迭代次数(现为1000次)以及网络规模(当前为2输入,4、5、3个隐藏节点,1输出),但除了收敛的数值略有变化外,整体效果无明显改善。

我的训练方式是根据效果优劣对权重/偏置进行上调、下调或保持不变,相关代码如下:

// Current settings
int[] dimensions = {2, 4, 5, 3, 1};
const double trainDelta = 0.03;
const int trainingIterations = 1000;
... // In the tweaker
if (best == lowerError) return;
if (best == originalError) network.Tweak(delta, layer, node, postion);
else network.Tweak(2*delta, layer, node, postion);
...// How I get my correct answers
return y > Math.Pow(x, 3) ? 1 : 0;
... // My activation function
double output = bias;
for (int i = 0; i < inputs; i++)
    output += weights[i] * input[i];
if (type != NodeType.HiddenNode) return(1 / (1 + Math.Exp(-output))); // Sigmoid
if (output > 0) return output; // ReLu
return 0;

请问有什么方法能让这个神经网络有效学习目标任务?

解决方案

  • 替换自定义权重调整策略为反向传播算法
    当前用的试错式权重调整本质是随机搜索,效率极低,几乎不可能收敛到能解决问题的权重组合。必须改用反向传播算法:通过计算损失函数对每个权重、偏置的梯度,用梯度下降(或Adam等优化器)更新参数,这是神经网络训练的标准方法,能精准指导参数向减小误差的方向调整。

  • 优化训练数据集

    • 确保数据集覆盖足够多的样本,input0要包含正负值(因为x³在正负区间的变化规律不同),input1也要对应覆盖x³上下的取值,避免数据分布偏向某一区域。
    • 样本量要充足,建议生成至少5000-10000个随机样本,避免网络因数据量不足无法学到规律。
  • 使用合适的损失函数
    输出层用Sigmoid激活时,应搭配二元交叉熵损失,而不是简单的误差比较。二元交叉熵能更好地匹配Sigmoid的输出特性,梯度计算更稳定,能有效驱动权重更新。

  • 简化网络结构并优化激活函数

    • input0³ > input1属于非线性但复杂度不高的任务,当前3层隐藏层过于冗余,容易导致过拟合或训练效率低下。建议简化为1-2层隐藏层,比如2输入→6隐藏节点→1输出的结构。
    • 普通ReLU存在“死亡ReLU”问题(部分神经元因输入始终为负而永久失活),可以改用LeakyReLU,给负区间设置一个极小的斜率(比如0.01),保持神经元的活性。
  • 调整学习率与迭代次数

    • 学习率可以尝试动态调整:初始用0.01-0.1的范围,随着迭代次数增加逐渐衰减(比如每1000次迭代乘以0.9),避免后期震荡。
    • 1000次迭代对于反向传播来说可能不足,建议增加到10000次以上,直到损失值稳定不再下降。
  • 修正代码细节

    • 确认标签生成逻辑正确:return y > Math.Pow(x, 3) ? 1 : 0;中x对应input0、y对应input1,不要搞反输入顺序。
    • 检查Sigmoid输出的误差计算逻辑,确保损失计算与标签(0/1)对应正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:52:57