为什么机器学习不能识别素数?

时间:2013-01-10 20:10:02

标签: math machine-learning primes

编辑:我正在将其移至cstheory.stackexchange.com

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

仅使用机器学习。

我不确定,但我评估“普遍共识”是/机器学习技术(神经网络,SVM,二元分类器,聚类,贝叶斯推理等)将无法处理这个问题问题

人们的想法是什么?

好的,其次,如果我们有一些带有一些有用信息的整数的向量表示,(未知),对于机器学习能否将n分类为素数或复合的任何主要的原则反对,我们可以“选择正确的功能”可以这么说吗?

让我们忽略一个简单的例子,其中向量包含n的分解。

1 个答案:

答案 0 :(得分:4)

机器学习不是一切的答案。顾名思义,机器学习是从数据中学习的。问题是,要学习一些东西,我们需要一个数据模式,我们可以教算法学习。

根据定义:素数是一个大于1的自然数,除了1和它本身之外没有正除数。

这里的基本困难是素数序列

2,3,5,7,11,13,17,19,23,.... 。

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

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

让我们说,艰难的方法是用这些功能训练你的模型:

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

你最终得到的所有素数都以1,3,7或9结尾,但不是全部都是素数。

因此,当我们需要精确的解决方案以及已经有一种精确的计算方法时,无需找到能够逼近某事的算法。