神经网络学习模拟数据集中类的分布,而不是使用来自输入的信号 [关闭]

Neural network learns to mimic distribution of classes in dataset instead of using signal from input [closed]

提问人:Jan Grzybek 提问时间:11/17/2023 更新时间:11/17/2023 访问量:7

问:


这个问题似乎与帮助中心定义的范围内的编程无关。

2天前关闭。

我正在尝试实现 Hinton 等人撰写的一篇名为“通过反向传播错误学习表示”的经典 AI 论文中的示例。

示例旨在训练网络能够在小型人工数据集中以三元组(person_0、关系、person_1)预测第三项。神经网络由 5 个具有 sigmoid 激活的 FC 层组成。有 24 个输入单元用于编码person_0,12 个输入单元用于编码关系。24 个输出单元中的每一个都对应于两个家谱中的特定人 (person_1)。详情请见本文:http://www.cs.utoronto.ca/~hinton/absps/naturebp.pdf

发生的情况是,网络不再学习预测正确的三元组第三项(通过在正确的输出单元中产生 ~0.8 个值,在错误的输出单元中产生 ~0.2 个值),而是对输入变得漠不关心,并且总是返回相同的输出——这显然代表了第三项在训练集中的分布。

我不确定为什么我不能从纸上复制发现。论文中的其他示例工作正常 + 此示例发生了一些学习的事实(损失 ~350 -> ~50)让我觉得这里的反向传播代码没有错误。

任何帮助都非常感谢。

我正在使用的代码 + 问题的更详细描述可在此处获得: https://github.com/jan-grzybek/papers/tree/main/3236088

谢谢!

这些想法已经尝试过:

  • 多次运行以遇到幸运权重初始化 - 从未发生过
  • 将权重初始化范围从 -0.3 <> 0.3 更改为 -1.0 <> 1.0 - 没有帮助
  • 将输入编码从 [0.0, 1.0] 更改为 [-1.0, 1.0] - 无区别
  • 添加偏见(论文中没有提到它们存在,但仍然尝试过) - 没有效果
  • 更改 epsilon 和 alpha 参数,禁用权重衰减,禁用 [0.2, 0.8] 激活截止 - 无
神经网络 人工智能 反向传播 感知器

评论


答: 暂无答案