【问题标题】:Why can machine learning not recognise prime numbers? [closed]为什么机器学习不能识别素数? [关闭]
【发布时间】:2013-01-10 20:10:02
【问题描述】:

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

我想要对输入的整数序列进行二元决策。对于序列中给定的 n,无论它是否为素数。不要使用 AKS,不要使用 Miller Rabin,不要使用试除法,甚至不要硬编码,因为最后一位数字必须是 1、3、7、9 并且必须与 1 或 5 一致模 6。

仅使用机器学习。

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

人们怎么看?

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

让我们忽略向量包含 n 的因式分解的简单情况。

【问题讨论】:

  • cstheory.stackexchange.com 可能也是问这个的地方。不过我不确定。
  • 好点。如果是这样,我会在那里“转移”它。
  • 当有确定素数的算法时,我不明白为什么你会使用机器学习来做这样的事情。一切都不是机器学习。例如,我不会用它来解决线性代数问题。
  • 这不是我的问题,伙计。我有兴趣了解它为什么会失败。请阅读问题。
  • 那个“等”隐藏了真正的问题——定义之一。当然,您列出的特定技术可能无法做到这一点,但这并不意味着没有另一种机器学习技术可以做到这一点。谁会说Eurisko 的扩展或{那个程序被喂食?几何公理并提出新的定理} 不能为自己解决问题?如果一台机器自己提出了米勒·拉宾,这算不算机器学习的成功?

标签: math machine-learning primes


【解决方案1】:

机器学习并不是万能的。机器学习,顾名思义,就是从数据中学习。问题是,要学习一些东西,我们需要数据中的一种模式,我们可以教算法学习。

根据定义:素数是大于 1 且除 1 和自身之外没有正除数的自然数。

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

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

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

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

假设,最困难的方法是使用以下功能训练您的模型:

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

所有素数都以 1、3、7 或 9 结尾,但并非所有都是素数。

因此,当我们想要一个精确的解决方案并且已经有一个精确的方法来计算它时,没有必要找到一种算法来近似某些东西。

【讨论】:

  • 逻辑不错,但可能不够完整。你能走多远?例如,如果我们不断添加规则,我们不能得到素数集的覆盖吗,例如这个丢番图方程op.to/primephantine+ ?
猜你喜欢
  • 2011-02-06
  • 2018-01-30
  • 1970-01-01
  • 1970-01-01
  • 2018-12-21
  • 2011-05-03
  • 2019-05-23
  • 1970-01-01
  • 2019-01-19
相关资源
最近更新 更多