我最近开始学习神经网络,我认为创建数独求解器将是 NN 的一个很好的应用。我开始用反向传播神经网络学习它们,但后来我发现有几十个神经网络。在这一点上,我发现很难学习所有这些,然后为我的目的选择一个合适的。因此,我在问什么是创建这个求解器的好选择。反向传播NN可以在这里工作吗?如果没有,你能解释一下原因并告诉我哪一个可以工作。 谢谢!
最佳答案
正如其他人已经指出的那样,神经网络似乎并不是解决数独问题的最佳方法。我认为更好(但也不是很好/有效)的方法是使用遗传算法。遗传算法与神经网络没有直接关系,但了解它们的工作原理非常有用。
更好(更好我的意思是更有可能是 sussessful 并且可能更好地让你学习新东西)想法包括:
如果您使用库:
玩转网络,尝试将它们训练到不同的数据集,也许是随机数,看看你得到了什么以及如何调整参数以获得更好的结果。
尝试编写一个图像生成器。我写了其中一些,它们仍然是我最喜欢的项目,其中一个我使用反向传播来教 NN 图像的 x/y 坐标具有哪种颜色,另一种方法将随机生成的图像与另一个(GAN/NEAT)。
尝试使用创建电影(系列图像)的网络学习创建图片。它将很好地向您展示反向传播的工作原理以及参数调整对结果的影响以及它如何改变网络获取结果的方式。
如果您不使用库:
尝试一个接一个地解决简单的问题。使用反向传播或遗传算法进行训练(无论您实现了什么)。
试着改进你的实现,改变一些别人不关心的事情,看看它如何改变结果。
您的网络的“任务”列表:
- XOR(基本上是 NN 的 hello world)
- 极平衡问题
- 乒乓球等简单游戏
- 更复杂的游戏,如 Flappy Bird、agar.io 等。
- 选择更多你觉得有趣的问题,也许你对图像识别感兴趣,也许是文本、音频,谁知道呢。想一想您可以/希望能够做的事情,并找到一种方法让您的计算机为您做这件事。
不建议只使用您自己的 NN 实现,因为它可能在前几次无法正常工作,您会感到沮丧。尝试使用库和您自己的实现。
找到几乎无穷无尽的资源的好方法: 使用谷歌搜索并在末尾添加“filetype:pdf”以便仅显示 pdf 文件。搜索神经网络、遗传算法、进化神经网络。
关于neural-network - 数独求解器的神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44397123/