社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

寻找机器学习的“热力学”:临界相变如何启发机器学习研究?

哲学园 • 1 月前 • 62 次点击  


导语


2024年诺贝尔物理学奖授予人工神经网络和机器学习的基础性研究,可以说是统计物理引发的机器学习革命。(古老的)统计物理与(年轻的)计算机科学有怎样的相似性?如何用统计物理来帮助理解大语言模型?在 Quanta Magazine 的这篇采访中,瑞士洛桑联邦理工学院(EPFL)计算统计物理实验室的科学家认为,18世纪人们为了理解蒸汽机发展了热力学,如今我们也需要寻找机器学习的“热力学”。

研究领域:统计物理,理论计算机科学,大语言模型,临界相变

John Pavlus | 作者

彭晨 | 译者

梁金 | 编辑



捷克科学家 Lenka Zdeborová 青少年时曾在艾萨克·阿西莫夫的小说中瞥见了自己的未来。阿西莫夫《基地》系列小说中的人物发明了一种被称为“心理史学”的数学方法,通过平均数十亿人的随机行为来预测银河帝国的命运和人类的未来。Zdeborová 回忆说,这个理念当初给她一种“迷人的感觉”,当后来遇到可以用于理解大量不可预测元素的方法时,她感到似曾相识。

”我意识到,‘哦天哪,阿西莫夫是在描述统计物理学,’”她说。统计物理学通过应用于单个分子的规则来描述物质的总体特性。在布拉格的查尔斯大学(Charles University)就读物理学硕士时,她陶醉于统计物理学的强大预测力。而后在博士期间,导师给她看了一篇文章,这篇文章将统计物理学技术应用于理论计算机科学——计算和算法行为的数学研究,那种熟悉的感觉又回来了。

Mézard, Marc, Giorgio Parisi, and Riccardo Zecchina. Analytic and algorithmic solution of random satisfiability problems. Science 297.5582 (2002): 812-815.
https://www.science.org/doi/abs/10.1126/science.1073287

Zdeborová说:“我完全被那篇论文迷住了。我之前一直认为,要做计算机科学,你必须是一名黑客,了解Linux系统的一切。但现在我意识到,理论计算机科学和理论物理一样迷人,于是我说,‘好吧,这就是我想做的。’”

Zdeborová 现在领导着瑞士洛桑联邦理工学院(EPFL)的计算统计物理实验室,主要关注物质相变的物理规则——比如水凝结成冰——如何启发算法行为的建模,尤其是用于机器学习的算法。

Lenka Zdeborová 

瑞士洛桑联邦理工计算统计物理实验室(Statistical Physics of Computation Laboratory)
https://www.epfl.ch/labs/spoc/

Quanta 杂志就水和算法之间的相似性,如何用物理学来理解大语言模型,以及追求不合理的科学目标三部分内容,与 Zdeborová 展开了讨论。下文是精简后的采访内容。




统计物理与计算机科学的相似性




Q:你的工作横跨很多学科,你认为自己是物理学家、计算机科学家还是数学家?

我认为以上都是。我感兴趣的问题主要在计算机科学和机器学习领域。在理论计算机科学中,一切都需要形式化证明,深入所有细节。但这个要求在今天的机器学习中不复存在了,因为它太复杂了。

所以从方法学的角度来看,我认为自己是理论物理学家,因为就像在物理学中一样,你可以试图用数学上严谨的理论来解释一些现象,即使这些理论可能还没有得到正式的数学证明。

Lenka Zdeborová 认为自己同时是物理学家、计算机科学家和数学家

Q:统计物理如何帮助你理解计算机科学?

理论计算机科学通常教导学生要关注最坏情况,也就是一些难以计算的问题。这个领域是这样开始的,并从中收获了丰硕的成果。但最坏情况和典型情况是有区别的,一个很明显的例子就是机器学习。在用机器学习处理即使非常高维的数据,例如我们想要从数百万像素的医学成像中检测疾病标记物,类似问题的计算难度通常不会到最坏情况的程度。

这就是统计物理发挥作用的地方,因为这个领域一直以来都在处理高维问题。当人们想描述许多分子同时相互作用的行为时,统计物理提出了概率分布。计算机科学中有类似的数学工具,用于描述在执行算法时数据位之间如何相互作用。然而,统计物理学在一个世纪前就开始了有关研究,那时计算机科学尚不存在。幸运的是,当我在2000年攻读博士学位时,这些学科的研究者们已经开始意识到它们之间的共同点。

Q:统计物理和计算机科学有哪些共同点?

这两种情况下,从微观描述中提炼出系统的宏观行为都十分困难。牛顿定律和量子力学给出了水分子如何相互作用的详细描述,可是如何据此推导出水的冰点是0摄氏度呢?这并非显而易见!即使到了20世纪40年代,科学家们依然没有弄清楚。并且,还有很多关于水相变的问题没有解决,特别是在高压条件下。

类似地,在计算机科学中,可以用简单的算法来清晰定义一些问题,但我们不知道算法发挥作用的具体条件。在我的博士论文中,我们研究了5岁小孩都能理解的图着色问题。图由一些点组成,部分点之间有边相连。现在需要在三种颜色中选取一种给每个点上色,要求是如果两个点相连,它们的颜色不能相同。你能给图着色吗?

解决这个问题的任何算法,你都可以理解它,编写它,并且可以运行。但如果问:“你能告诉我这个算法什么时候发挥作用,什么时候不起作用吗?”对于大多数算法,我们不知道答案。这就是理论计算机科学的现状:即使解决这么简单的问题,当开始问关于算法行为本质的问题时,我们通常无法回答

Lenka Zdeborová 的研究在探索统计物理与计算机科学之间的相似性





物理学如何帮助理解大语言模型?




Q:如果完全理解算法如此困难,相变可以提供什么帮助呢

我们研究的相变不是物理上的相变,比如水变成冰。和物理相变类似,我们研究的是在某些条件下,系统行为会发生急剧、突然变化的现象。以神经网络为例,首先要提到的一种相变是训练样本量对学习效率的影响。

取一个从高维数据中学习的神经网络,例如有数百万像素的图像,然后分析在某些简化设定下,需要多少训练样本可以学习达到一定的精度。分析过程中会得到一个如上所述的相变,即系统最优性能的突然变化。这些结果可以告诉我们神经网络学习的难易程度,以及是否需要寻找更好的算法。

Q:这种方法是否帮助学习有关复杂系统的新知识?

近期的工作中,我们在一个简化版本的大语言模型的性能中发现了相变现象,同样有趣的是相变点附近两相的性质。

Cui, Hugo, et al. A phase transition between positional and semantic learning in a solvable model of dot-product attention. arXiv preprint arXiv:2402.03902 (2024). https://arxiv.org/abs/2402.03902

物理学中相变的数学描述会使用序参量(order parameter)。这帮助我们理解相变的本质,例如磁性是用来描述原子磁矩方向的一致性:在磁性相中,整体磁矩方向一致,而在非磁性相中,磁矩方向不一致。

这也是语言模型的数学描述中出现的美妙现象。模型中有两个序参量,每个都有明确含义:其中一个是判断学习过程是否在很大程度上依赖于单词在句子中的位置,另一个序参量则是明确关于每个单词的含义,即语义。

当观察相变现象时,我们发现当训练样本量在某个阈值以下,只有位置发挥作用,语义并没有。当样本量超过该阈值,只有语义发挥作用。所以,从某种意义上说,这是一种位置学习和语义学习之间的新相变,可以用一个简化的语言模型来描述。这是理解大语言模型中涌现性质的一小步,比如它突然能够做算术,用希腊语回答问题等等。





寻找机器学习的“热力学”




Q:你认为积累足够多的小进步最终会将你引向何方?

我很喜欢用热力学来类比。我们在18世纪有了蒸汽机,它随后引发了工业革命:铁路、公司和许多东西都在蒸汽机上运行,而这些都不需要理解热力学。理解热力学是几十年后的事情,但这一切都来源于人们想要理解蒸汽机,许多其他物理学发现由此产生。

这可能是一个完全不合理的目标,但必须有人提出“机器学习的热力学”。我很想成为那样的人。如果不是我,而是别人,那也很好。但我一定会朝着这个目标努力。


本文翻译自Quanta Magazine。
原文链接:https://www.quantamagazine.org/the-computer-scientist-who-builds-big-pictures-from-small-details-20241007/

名读书会

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/175051
 
62 次点击