做了 5 年机器学习研究,我发现了这 7 个真相

2023-05-26 0 610

做了 5 年机器学习研究,我发现了这 7 个真相

在Mindsdb专门从事 3 年手动机器学习组织工作后,我请辞了,最少我不会在短时期内专门从事任何与机器学习相关的业余组织工作。毛冬青,我已经做了 5 年机器学习科学研究,但直至那时,我才终于弄清楚了很多自己之前不晓得的表达方式,甚至我还可能察觉到一些自己不晓得的东西。

责任编辑归纳了我专门从事机器学习组织工作以来归纳到的斩获,请不要将这当做“研究者归纳”,你能把它想像成旁观者的两件画作——两个对时代特征进行了非同寻常的深入科学研究,却没有成为“街道社区”一部分的某一人的斩获。

机器学习科学研究的促进作用是什么?

早在 5 天前,我就曾碰触过机器学习科学研究。但直至那时,机器学习科学研究的促进作用对我来说依然是个谜。

绝大多数科学子应用领域(真正的应用领域)都能宣称,它们是两个方法论构筑和统计数据搜集的多重过程。更多的方法论应用领域,比如说那些紧紧围绕微积分和软件工程这两个名词进行的应用领域,取得的不断进步几乎完全来自基本概念微观。这些基本概念是如此基础,似乎不大可能被替代,比如说射影原素之类。

但机器学习正处于两个怪异的交叉点。即使他们宣称它和理论物理学一样具有方法论上的检视学习,它依然缺少不朽的试验检视。这并不原因在于参加者缺少情操,只是它科学研究的第一类是两个终端的目标,而不是两个具体的现实生活。

人们最多能提出这样的不朽提倡:

取值<某时硬体>,能在 ImageNet 的<某时部分统计数据集>上赢得<某时精确度>。

取值<X>统计数据集,并使用整个统计数据集留存两个 CV,他们能赢得这类精确度表达式的 x/y/z 的新一代值。

取值容许电子电路全权与之可视化的<Y>环境,他们能在循环式/惩处/时间/检视 & 奖赏/科学知识/认知行列式上达到 x/y/z 点。

但这些并不是方法论本身所紧紧围绕的那种提倡,机器学习带来的易于验证且不朽的斩获在方法论上是无趣的。最多能说,他们对在特定任务中的数字硬体性能设定了下限。

此外,机器学习也没有强有力的方法论保证作为后盾。虽然有一些“小”的方法论保证能帮助他们进行更广泛的试验,例如证明在特定范围内的可微性之类。但在理想化条件下,一些方法论保证最多能指向潜在的试验路径。

可能有人会认为机器学习是两个非常模糊的应用领域,甚至绝大多数统计数据都是假的,绝大多数发表的论文都是为了在更广泛的学术论文引用游戏中获胜。

然例外,但整体而言还是比较少的。

更重要的是,与微积分和软件工程应用领域不同,机器学习中的重复科学研究不是留给十几位有大量空闲时间的研究者的。如果你想验证一篇新一代的 NLP 论文,你只需要掌握 CS101 科学知识就可以了。但在微积分等应用领域,这是不可能的。因为在微积分应用领域,现代“定理”(有时写在一本厚厚的书上)的有效性取决于少数研究者的一致意见,而不是两个手动化的定理证明器。

事实上,机器学习中的许多实际组织工作都是由圈外人完成的,他们没有相关的学术背景,或者几乎没有学术背景。这与其他应用领域正相反。在其他应用领域中,证书主义是绝对的权威,并且人们也习惯于按资排辈。

什么是软件能做,而硬体做不到的?

广义上,机器学习科学研究包括基于 LA 库或集群工具的组织工作,这些科学研究似乎总是倾向于重蹈覆辙。机器学习中的主要现代技术,似乎能被称为对 20、30 甚至 50 天前想法的轻微基本概念重构。

试问一下,70 年代以来,机器学习的不断进步中有多少是软件,多少是硬体?很遗憾,科学研究类似问题的论文少的惊人。因为众所周知,在任何语言任务中,试图用某种 T5 等价计算在一定规模上训练一颗巨大的决策树,都不会与 T5 相匹配,而且调整算法的任务也不简单。

这个问题本身是两个没有实际意义的问题,因为总是需要一些科学研究来开发最适合硬体发展的软件。两个更好的问题可能是:如果机器学习科学研究的数量减少了 1000 倍,会对性能或可处理任务的广度产生任何影响吗?

直觉告诉我,未来的绝大多数不断进步都会是硬体产生的结果,而对于他们这些更喜欢专注于软件的人来说,能做的是:

先弄清楚硬体的不断进步能够让两个人在 2-4 年内做什么,寻求资金,紧紧围绕这些突然出现的机会创建一家公司;试图寻找范式转变,修复浪费 99%资源的瓶颈,这些瓶颈深深扎根于他们的思维中,他们甚至无法看到它们。计算出 99%的可用计算能力正在/实际上/没有被使用,并且能使用这个很酷的技巧。想出两个简单的抽象,在任何可用的任务上单独执行接近于 SOTA。

手动化机器学习

过去几年,我的大部分组织工作都是紧紧围绕手动化机器学习的,所以我带有偏见地认为,手动化机器学习是机器学习中很重要的一部分。事实上,无论是学术界还是产业界,在机器学习应用领域组织工作的大部分人,似乎都在专门从事手动化边缘的组织工作。

相关的学术论文能归结为以下几个步骤:

架构。对超参数进行一些小的修改。在几个统计数据K568运行基准测试。证明一些方法论保证,这些保证通常不适用于任何现实生活世界的训练场景,并且能通过经验证明(例如,当统计数据符合某种理想分布时,可微性、一致收敛性)添加足够的填料。

而统计数据科学家和机器学习工程师的组织工作也能归结为以下几个步骤:

尝试一些易于使用的模型,如果设置正确,这些模型不需要 100 行代码就能使用。在测试统计数据上尽量调优超参数的单元精确度,即使它在现实生活中有点糟糕,也依然值得部署到生产中。将其包装在某种 API 中供后端使用。如果需要,编写两个 cron 定时任务,时不时地对其进行训练。编写两个很长的 PPT,并向 5 个(有 P 开头或 C 开头职位头衔的)人演示,这样他们就能放心地容许你部署。

广义上讲,这似乎是两件非常容易手动化的事情。但似乎这些人的组织工作与第 1-4 步没有任何关系,也许模糊的方法论和幻灯片才是重点。

或许这是一种简化的思考方式,但换种角度来看,如果手动化机器学习真的这么好,为什么更多的 Kaggle 排行榜不是由使用这些软件包的人所主导?

机器学习中的基准和竞争

与论文发表量相比,大家对基准和竞争的兴趣似乎并不高。arxiv 上每天出现的与机器学习相关的论文数量远远超过 100 篇,而登上代码排行榜的论文数量却要小得多。

我认为大多数科学研究人员证明这一点的方式是,他们没有试图用他们的技术在任何事情上“竞争”,也没有试图提高某种精确度分数,而是试图为设计和思考模型提供有趣的方法论支持方向。

这本身没问题,但事实上,据我所知,没有任何两个突破性的技术是完全基于微积分保证的,并且需要数年才能成熟。通常的情况是,如果某一东西“起促进作用”并得到广泛采用,这原因在于它立即改善了结果。花费几年甚至几十年才能实现的突破是影响广泛的架构理念,但这种突破非常少。

现实生活情况是,人们在论文中假设“通用”技术,例如优化器或增强方法,手摇几个公式,然后在不到 12 个统计数据集的模型因变量(如优化器优化的架构、增强算法使用的估量器等)中,进行小到微不足道的基准测试。

这不是我对三流论文的批评。在我的脑海中,我能说出像 LightGBM、改进的 ADAM 和 lookahead 等方法论。对我和其他许多人来说,它们是游戏规则的改变者,已经证明了它们在许多现实生活问题中的价值,并且它们最初是在几乎没有任何试验的论文中被提出来的。

我认为当前的问题归结为以下三点:

缺少“通用”基准测试套件。OpenML手动机器学习基准测试最接近通用基准测试,但其问题焦点非常狭窄,仅限于测试端到端的手动机器学习方案。理想的通用基准测试应该具有多对多的体系结构到统计数据集的映射,容许替换这类组件,以便作为更大整体的一部分评估新技术。在某种程度上,我曾幻想将 Mindsdb 基准测试套件构筑成这样,但我怀疑是否有人真的想要这种解决方案,因为没有激励结构。缺少竞争。我的意思是,像 Kaggle 这样的网站和十几个特定行业的克隆网站,它们的格式对用户提出了很多要求,并且竞赛颁发的奖赏也比较吝啬。上述 2 个问题的两个潜在组合是,机器学习中最“有价值的”问题甚至很难进行基准测试或竞争。翻译、文本嵌入生成和手动驾驶等任务是各种级别的难以用一些指标进行检测来客观判断的任务。

这又回到了一种观点,即:如果你做技术开发组织工作,你最好专注于范式转变或产品化,除非你明确地得到报酬去做其它事情。

机器学习在特定应用领域是否达到了“最先进水平”?

另两个有趣的问题是,机器学习在特定应用领域是否达到了“最先进水平”?这种问题能包含在两个.csv 文件中,使用 0 到 1 的精确度表达式进行评估,并在速度、微积分保证和“可解释性”方面发生了很大变化。

尽管如此,他们目前还是无法确定地回答这个问题。

我几乎能肯定回答的是,从学术研究人员到行业科学研究人员,再到普通的中型公司统计数据科学家,他们对赢得最先进结果的想法完全不感兴趣。

我很幸运地(或者不幸地)与几十个组织交流它们的机器学习实践,我的印象是,绝大多数“想要使用机器学习”的组织和项目,甚至还没达到机器学习的“统计数据驱动”阶段。它们希望从结论开始,凭空做出预测。他们对评估两个算法是否足以用于生产的想法令人目瞪口呆。

大约 30 天前,一位医生发表了一篇论文,在这篇论文中他重新发明了六年级微积分,试图找出如何评估他的糖尿病患者的方法。这发生在个人电脑普及的时代,人们会认为需要标准化计算的、生死攸关的决定肯定是由一台机器完成的,而不是两个连微积分都没听说的人。更糟糕的是,考虑到他们谈论的是两个实际发表论文的人,这就是当时该应用领域 0.1%的顶尖人物,只有神晓得其他人在干什么。

我有一种感觉,无论这个问题所描述的更广泛的现象是什么,它依然是机器学习对其它应用领域缺少影响的根本原因。通过舍入误差来提高这类问题的精确度,或者从方法论上保证算法是否在完美解的 0.3%以内,或者为了更容易解释而对参数进行精简,都不大可能有所帮助。

在我看来,人们在使用经典机器学习时的绝大多数问题都是人,没有多少科学研究能解决这个问题。

机器学习更像是外星人的大脑

另一方面,机器学习正越来越多地应用于“非经典”问题,例如语言问题或驾驶问题。在这个应用领域内,有监督和无监督的区别似乎消失了,人们试图将算法解释为简单的微积分,而不是基于约束的生成系统自我选择,变得像用大脑做这件事一样愚蠢。

宏观来讲,在某一方向上有一定的影响力会产生高度专业化的方法和算法,这些方法和算法能(作为文件或服务)在科学研究人员之间传播,作为构筑更高级别功能的基础。在 30 年后,机器学习似乎更像是巨大的无比复杂的外星大脑,控制着大部分社会,而不是做线性代数。

持怀疑论的人认为,在取值一行或两千行代码的情况下,机器能从头开始编写 GPT-{x},而且大部分组织工作都在并行化和易于试验的代码上,在实现数字百分比改进的技巧上。此外,缺少客观评估复杂任务的能力迟早会导致崩溃,这几乎是肯定的。

我不认为机器学习和手动驾驶的情境是相似的,他们已经在没有多少手动驾驶的情况下度过了很长时间。对我来说,从多元回归开始解释机器学习,似乎比预测编码和博弈论更好,后者奠定了更好的基础。但我肯定对机器学习所能取得的成就印象更深刻,同时也怀疑不断进步是否会以类似的速度缓慢前进。

机器学习的 3 个发展方向

目前,在机器学习分支下,我看到了 3 个有趣的方向,而且这些方向正在进一步分裂。

第两个方向是“经典的”机器学习方法。它们现在有足够的计算算力来处理绝大多数高维问题。其中的核心问题是提供更多的方法论保证,产生作为“因果”模型基础所需的那种“可解释性”,并引导时代特征远离直线、p 值和柏拉图式的形状。

第二个方向是行业应用。我认为这更多地涉及到典型的“手动化”组织工作,即统计数据争论、应用领域逻辑认知和政治活动。只是新一轮的手动化浪潮现在和以往一样,得到了更高级工具的支持。

最后两个方向是镀金类型的科学研究,这是由一些理想主义者和许多试图通过论文进入业余生涯轨道的学生进行的。这是最有趣的发现,它们隐藏在成堆无法操作或低影响的噪音中。我不确定在敞开的大门之外发生了什么,因为我没有足够的能力去过滤噪音。但从表面来看,抽象基本概念正在转移到以前被认为是强化学习的应用领域。

这三个方向任意两两组合,你会得到一些有趣的东西。比如说,AlphaFold 是Transformer 与科学应用领域专业科学知识的最后一分钟不断进步,以替代蛋白质折叠的“手动”模型;特斯拉手动驾驶是 SOTA 愿景、RL 和转移学习,与游说者、律师和营销人员联合起来,手动化减少了两位数的组织工作;一些科学研究危机复现的人似乎处于前两者之间,他们试图通过系统化来避免分析统计数据和审查证据时的人为错误,尽管我认为这样的科学研究为时过早。

虽然这是两个不完美的分类,但它帮助我了解整个应用领域。我认为这也是两个很好的范式,能用来思考应该解决什么问题,与谁合作,以及需要什么样的背景。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务