问题 - 我有10张牌数值为1到10.现在我必须安排卡片,加上5张牌给我36张剩下的5张牌给我360.
我成功地在GA中解决了卡问题。现在我想用神经网络解决同样的问题。是否可以通过NN解决这个问题?我应该采取什么方法?
答案 0 :(得分:4)
这个问题很难用神经网络直接解决。神经网络不会有总和或产品的概念,因此他们无法直接区分有效和无效的解决方案。
如果您创建了足够的示例并进行了标记,那么神经网络可以通过记忆它们来学习分辨“好”和“坏”的安排。但这样做的效率非常低且不准确,而且有点没有意义 - 你必须有一个单独的程序知道如何解决问题,以便创建数据来训练神经网络。 / p>
P.S。我认为你有点幸运,你设法让GA工作 - 我怀疑它只有用,因为问题足够小,GA可以在答案附近尝试大多数可能的解决方案,因此,它会在不久之前偶然发现一个正确的答案。
答案 1 :(得分:1)
为了跟进@ mikera关于为什么神经网络(NN)可能不是最适合这项任务的评论,考虑如何使用NN是很有用的。
NN通常用于监督学习任务。也就是说,实现者提供了许多输入示例以及与该输入一起的正确输出。 NN然后找到一个通用函数,它捕获所提供的输入/输出对,并希望能够捕获许多其他以前看不见的输入/输出对。
在你的问题中,你正在解决一个特定的优化,所以没有太多的训练要做。只有一个(或多个)正确的答案。因此,NN并非真正针对此类问题而设计。
请注意,没有和/产品的概念不一定会伤害NN。您只需创建自己的输入图层,其中包含总和和产品功能,以便NN可以直接从这些功能中学习。但是,在这个问题上它无济于事。
另请注意,您的问题非常小,即使是所有组合(10!= 3,628,800)的天真枚举也应该在最多几秒内完成。