提问人:Jan Grzybek 提问时间:11/17/2023 更新时间:11/17/2023 访问量:7
神经网络学习模拟数据集中类的分布,而不是使用来自输入的信号 [关闭]
Neural network learns to mimic distribution of classes in dataset instead of using signal from input [closed]
问:
我正在尝试实现 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] 激活截止 - 无
答: 暂无答案
评论