Machine learning 机器学习算法能学会预测a吗;“随机”;发电机上的数字是否至少达到50%的准确度?

Machine learning 机器学习算法能学会预测a吗;“随机”;发电机上的数字是否至少达到50%的准确度?,machine-learning,Machine Learning,因为所有的随机数生成器都是伪随机数生成器,机器学习算法最终能否在有足够的测试数据的情况下,学会以50%的准确率预测下一个随机数?如果只生成随机位(0或1),那么任何方法都将得到50%,确切地说是任何,ML或不,不接受训练。除了直接利用底层随机数生成器之外的任何东西(比如读取种子,然后使用相同的随机数生成器作为预测器)。所以答案是肯定的 如果你考虑更多的“数字”,那么不,这是不可能的,除非你没有有效的随机数生成器。过程越弱,你试图学习的模型越好,就越容易预测发生了什么。例如,如果您确切地知道随机数

因为所有的随机数生成器都是伪随机数生成器,机器学习算法最终能否在有足够的测试数据的情况下,学会以50%的准确率预测下一个随机数?

如果只生成随机位(0或1),那么任何方法都将得到50%,确切地说是任何,ML或不,不接受训练。除了直接利用底层随机数生成器之外的任何东西(比如读取种子,然后使用相同的随机数生成器作为预测器)。所以答案是肯定的

如果你考虑更多的“数字”,那么不,这是不可能的,除非你没有有效的随机数生成器。过程越弱,你试图学习的模型越好,就越容易预测发生了什么。例如,如果您确切地知道随机数生成器是什么样子的,这只是一个带有一些参数f(x | params)的迭代函数,我们从一些随机种子s和参数params开始,然后x1=f(s | params),x2=f(x1 | params)。。。然后,您可以使用ML了解此类系统的状态,这只是关于查找“参数”,它适合于生成实际值。现在-f越复杂,问题就越复杂。对于典型的随机数生成器,f太复杂,无法学习,因为您无法观察到接近值之间的任何关系-如果您预测“5.8”,而答案是“5.81”,则模型中的下一个样本可能是“123”,而真实生成器中的样本可能是“-2”。这是一个完全混乱的过程

总而言之:这仅适用于非常简单的情况:

  • 要么只有2个值(那么就没有什么可学的,实际上任何不作弊的方法都会得到50%)
  • 或者随机数生成器有严重缺陷,您知道它是什么类型的缺陷,您可以设计一个参数化模型来近似这一点

属于定义预测下一个随机数!如果我们预测的是随机位,当然,因为随机猜测也在起作用(=50%的准确率)。有可能获得50%以上吗?我确实这么认为,至少在理论上,如果你的算法有足够的能力。他将近似基本的rng过程(一个足够大的神经网络能够做到这一点)。这适用于PRN和加密PRNG。但是在实践中,我很确定这是行不通的,因为有太多的非线性,学习太难,尤其是对于加密。你的措辞意味着,如果你随机生成一个数字的位,你将有50%的成功率,但我想你的意思是,如果你生成一个布尔值。除非这是你真正的意思,但这对我来说毫无意义,所以请解释一下。如果你正在生成一个32位随机数,那么你猜它的概率是(1/2)^32,对吗?对,我说的是生成一个位。在这个意义上,你有一个位序列,在每一个时间步你预测下一个会是什么。如果你的随机过程不是完全随机的,但它是以之前的过程为条件的(即使是在简单的马尔可夫意义上),那么你将能够获得比偶然更高的分数。在整个推理过程中,将输出字母表更改为更大的字母表不会改变除单个常量之外的任何内容,因此引入这种额外的复杂性没有任何意义。希望它能让事情变得更清楚。