随想:如果用强化学习的方法来求解方程,肯定也是可行的。毕竟强化学习归根结底是一个最优化问题,虽然不能用显示的方程来描述,但强化学习的求解过程与文中提到的迭代方法无异。以目前的算法及机器性能来看,强化可以求解复杂度很高的方程。如果以此来吸引数学家关注这一领域,那么强化将会得到长足发展。
打破线性方程求解速度极限,华人学者新算法获顶会最佳论文奖https://www.163.com/dy/article/G4LC98FF0511DSSR.html。以下为问题简单描述。
求解方程的全新的思路,靠“猜”,这种方法就是:猜测每个未知数的值,把它们代入方程后,查看结果与实际值相差有多大。然后,修正未知数的值,再猜一次。这种方法,在计算机方向上被称为迭代法。彭泱的这种迭代算法,在方程的数量变得极多、且每个方程涉及的未知数较少时,显示出了巨大的优势。也就是说,如果在一个系数矩阵属于“稀疏矩阵”——矩阵本身特别大,但相对地,系数为0的数量又非常多的时候,迭代法就会出现神奇的结果。
此前,没有人能够证明,“迭代法”对于稀疏矩阵而言,是否会比“矩阵乘法”更快。当然,这种算法并不只靠“猜”。彭泱设计的算法中,他们还会在给出多组随机数的同时,将这些随机数组并行计算。这就像是数百个人同时在山林中搜索宝藏,肯定比一个人反复搜索要更快。但这种算法的设计,还面临两个难点:
如何保证设计出来的数,足够随机、不偏向问题的任何一部分?
如何保证设计出来的这些随机数组,全面覆盖每一种可能性?
他们发现,正因为由随机数构造出的矩阵中,项数是随机的、且彼此之间有着某种关联,因此,这一矩阵本身就具有某种对称性。这就意味着,如果知道矩阵中某些具体的数值,就能推断出一整个矩阵的形状。这一发现,使得他们设计的算法,比未考虑矩阵对称性的那些算法,找到解的速度更快。事实证明,这种算法确实能够保证在O(n2.3316)复杂度以内,完成任何计算。这比之前的O(n2.37286),复杂度降低了不少,可以说是一个巨大的进步。
这一新发现,让彭泱和他的合作者获得了ACM-SIAM离散算法研讨会SODA 2021的最佳论文奖。
为什么要降低计算复杂度?
解一个二元一次方程,也就是2×2的矩阵,靠中学知识就能轻松搞定。然而当n变得越来越大,求解方程的计算量就会以3次方的速度迅速增加。这是什么概念?意味着如果线性问题中,要求解的未知数达到100甚至10000,那么计算量复杂度就会增加1000000、甚至1012倍。目前,机器学习、动力学模拟等问题,都会遇到超大规模线性方程组,如何降低计算复杂度,一直是学者们致力于解决的问题。要是计算复杂度居高不下,对于计算机而言,将会是一个巨大而沉重的负担。因此,数学家们一直在想方设法将线性问题的复杂度弄得更小一点,也就是让O(nω)中的ω变小。哪怕ω减小的量只有0.00001,对于上百万未知数的方程组来说也是一个巨大的进步。通过不断改善矩阵乘法,ω先是从3降低到2.81,历经多次研究后,被MIT和哈佛的数学家们降低到2.37286。然而,到这个阶段,数学家们倾尽全力所设计的新算法,也只是将ω降低了0.00001而已。有数学家进行过预测,ω可以无限接近于2,也就意味着这种线性问题的计算复杂度还能尽力向O(n²)靠拢。因此,彭泱他们的新算法,可以说是将这一研究向前推动了一大步