让我们看一下距现在约30年的未来。让我们保持乐观,并假设与机器学习相关的领域正在像过去十年中一样迅速发展。那会很好,但是在这样的未来,传统算法将扮演什么角色呢?
在这里,通过“传统算法”,我指的是我们在TCS中遵循的通常过程:形式化定义明确的计算问题,设计用于解决该问题的算法,并证明形式上的性能保证。
现在,将来我们也必须在哪些应用领域中使用传统算法设计和分析,并且机器学习的任何进步都将使传统算法几乎不再相关是极不可能的?
起初,这似乎是一个愚蠢的问题:当然,将来我们还需要能够进行排序,搜索,索引等工作!当然,我们将需要能够高效地进行傅立叶变换,乘以大矩阵,找到最短路径,解决线性优化问题!
但话又说回来,一旦您开始更深入地研究我们传统上使用设计算法的应用程序,则完全不清楚传统算法的设计和分析是否可以正确解决此类问题:在与搜索相关的应用程序中,通常,我们感兴趣的是找到在某种模糊不清的意义上(例如语义相似性)与人类紧密匹配的事物,而不是在数学意义上(例如最小编辑距离)最优的事物。在与路线计划有关的应用中,通常我们会对基于示例(例如,其他人更喜欢)的路线找到感兴趣的路线感兴趣,而不是在某些数学意义上(例如,最短距离或最便宜的价格)找到最佳路线。而且,一旦您在图片中出现一些模糊不清的人为成分,可能是我们最好尝试教导计算机根据示例生成好的答案,而不是让TCS研究人员提出来我们可以通过传统的算法设计和分析来解决形式化的计算问题。
那么,在哪些应用领域(最好是实际的和直接的工业应用)中,绝对清楚的是,我们过去在算法学领域所做的工作也将是正确的方法(也是唯一可能的方法),从而在未来?
在机器学习技术中用作子例程的算法看起来很像是面向未来的候选方法,但这在很大程度上取决于我们使用的特定机器学习技术,正如我们在过去十年左右的时间里看到的那样,这种情况可能会迅速改变。 。