【问题标题】:How to train a multiplier with MLP?如何用 MLP 训练乘法器?
【发布时间】:2018-08-18 15:46:55
【问题描述】:

我是神经网络的新手。我试图了解多层感知器可以学习实现什么样的解决方案。

是否可以通过仅给出离散数量的示例来训练 MLP 进行乘法运算?

我可以教它如何对某些数字(当然是来自训练数据集的数字)进行乘法运算,但它无法正确估计其他乘法。

我使用了 1 个隐藏层(TanH,10 个单元)和 1 个输出层(Identity),隐藏层和输出层都有偏差,并使用 Momentum 优化器进行了训练。

数据集

0, 5 = 0
1, 1 = 1
2, 3 = 6
3, 7 = 21
4, 3 = 12
5, 9 = 45 
7,7 = 49
13,13 = 169

它为此数据集提供了正确的结果,但例如计算 5 * 5 会给出错误的数字,例如 32

我是否对 MLP 期望过高?我应该给网络什么数据集(或层设置)才能乘以任何给定的数字?

【问题讨论】:

    标签: neural-network deep-learning perceptron multi-layer


    【解决方案1】:

    是的,你期望太高了。 MLP 不够“智能”,无法从少数特定示例中抽象出方法。它是基于输入的权重的线性组合;从这些示例中推断出二次关系是一个比 MLP 术语可以表达的更深层次的概念。

    一般来说,如果您的研究还没有为给定问题找到标准解决方案类,那么您就会陷入范围广泛的实验中。我的第一个想法是尝试使用 RNN 执行此操作,希望将乘法抽象作为反馈循环的副作用。

    【讨论】:

    • 感谢您的回答。神经网络是一个有趣的领域。我想我还有很长的路要走。
    猜你喜欢
    • 2016-03-04
    • 2016-12-07
    • 2016-10-01
    • 2021-11-17
    • 2016-03-26
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2021-04-18
    相关资源
    最近更新 更多