2013-01-10 46 views
1

编辑:我移动这cstheory.stackexchange.com为什么机器学习不能识别素数?

我想在整数的输入序列的二元决策。对于序列中的给定n,输出是否为素数。不要使用AKS,不要使用Miller Rabin,不要使用试验分区,甚至不要使用硬编码,因为最后一个数字必须是1,3,7,9,并且它必须与1或5一致modulo 6.

只能使用机器学习。我不确定,但我估计“一般共识”是机器学习技术(神经网络,支持向量机,二元分类器,聚类,贝叶斯推理等)将无法收缩这个问题?

人们认为什么?如果我们有一些带有一些有用信息的整数的矢量表示(未知),那么在机器学习能否将n分类为素数或复合数据的原则上,有任何主要的反对意见,因为我们可以“选择正确的功能”这么说?

让我们忽略矢量包含的简单情况,比如n的因式分解。

+2

http://cstheory.stackexchange。com/*可能也是一个问这个问题的地方。虽然我不确定。 – Mysticial

+0

好点。如果说到这一点,我会在那里“转移”它。 –

+1

我不明白为什么当有算法来确定素数时使用机器学习来做这样的事情。一切都不是机器学习。例如,我不会用它来解决线性代数问题。 – duffymo

回答

2

机器学习不是一切的答案。正如名字所说,机器学习从数据中学习。问题在于,为了学习某些东西,我们需要一个数据模式,以便我们可以教导算法学习。

顾名思义:素数是一个大于1的自然数,除1和它自身之外没有正数除数。

这里的基本困难在于素数

2,3,5,7,11,13,17,19,23的序列。 。 。

表现“不可预知”或“随机”,我们没有(有用的)第n个素数的精确公式!

即使您尝试训练算法,您也会得到一些近似解决方案。 您无法选择足够好的功能来预测解决方案。

比方说,硬盘的方式是使用这些功能来训练你的模型:

  • 任何以偶数结尾(除2)数是不是素数。
  • 任何数字加上所有数字等于3,6,9或其除数不是质数。
  • 任何以5结尾的数字都不是质数。 (5除外)
  • 具有相同数字的任何数字不是质数。 (除非以1结尾)

您最终以1,3,7或9结束所有素数,但并非全部是质数。

所以当我们想要一个确切的解决方案,并且已经有一个确切的方法来计算它时,没有必要找到一个近似的算法。

+0

不错的逻辑,但可能不够完整。你能走多远?例如,如果我们继续添加规则,那么我们无法得到一组素数的覆盖,例如用这个diophantine方程,http://op.to/primephantine+? –

相关问题