1:Alex的回答
链接:https://www.zhihu.com/question/612293139/answer/3120669858
大致来说,运筹学的人更在乎modelling,比如机器学习就是一种modelling,机器学习的人更在乎在机器学习这个框架下的整体的generalization error,优化的人更在乎training error。
在机器学习里面,人们一般在乎的是整体效果好不好,整体效果可以从三个角度来看
函数空间是否能够逼近真实场景 也就是approximation error
函数空间的优化能否找到全局最优解 也就是optimization error
通过数据找到的解能否在新的数据上较好的泛化 也就是generalization error
在approximation error的层面,人们一般考虑的是比如说:设计什么样的神经网络,用不用resnet,transformer,或者LSTM,diffusion model,在损失函数层面用l1 loss 还是用l2 loss等等。这个approximation反应了这些函数对于现实的模拟。
在确定了用什么approximation之后,整个问题就转变成为了找到这个approximation问题在某一个数据集上的最优解,这个部分确实是最优化算法和运筹学关注的地方。找这个最优解,根据approximation function的不同,可以有不同的优化算法,机器学习里面常说的optimizer,比如ADAM,SGD,Adagrad,甚至一些最近新出的零阶求解器和二阶求解器,都可以看成是不同的优化算法。至于哪个好哪个差,众说纷纭。设计这些优化算法,往往是做最优化理论里面搞adaptive first order method的人在做。
剩下的步骤大家都很熟悉,训练。训练和找最优解并不是一致的。训练的核心是使training error下降的同时,也就是找某个数据集上最优解的同时,不断在同一个数据集的另一组数据上看generalize的效果怎么样。也就是要同时平衡training和generalization error。这个generalization error的部分,一般是搞统计的人在做。最近也有一些优化领域的人专门分析一些特定求解器的generalization效果。
举例来说明,比如说,personalized federated learning这个领域,关注的问题是如何在不交换用户数据的情况下从所有用户的数据中学习一个好的模型,并且对每个用户进行个性化的定制。
一开始modelling的部分可以算是运筹学的人关注的问题。在model的时候,一般常见的两种modelling可以比较好的反应做机器学习的和做优化的区别。
第一种model是说
第二种model是说
看上去第一种更像是优化出身的人会想到的而第二种更像是机器学习出身的人会想到的,因为第二种更在乎generalization error。
同样的思想还出现在fine-tuning和meta-learning上面,一开始大家都在用fine tune类似第一个objective,然后Finn说,我要做meta learning,提出了Model agnostic meta learning (MAML),其实从fine tune到meta learning最核心的想法就是同步考虑train和test的表现。
当然一开始的MAML并没有写成第二种bilevel optimization的形式,而是把modelling和一阶算法结合起来了,可以看成是第二个objective每次对lower level做一步更新。这也算是机器学习和优化的区别吧,优化和运筹很在乎到底在解什么问题,而机器学习并不一定拘泥于一定要有一个objective,可以把objective和算法流程结合起来。
总的来说,做运筹学的更关注应该把一个想解决的实际问题写成什么样的形式然后怎么去解。做优化的人大部分更关心找最优解的第二步,做机器学习的最优化的人更关心如何组合这里所有的内容让第三步的generalization效果更好。
2:SigmaGo的回答
链接:
https://www.zhihu.com/question/612293139/answer/3135934504
姑且理解这个问题的中心是优化。恰好siopt才结束没多久,来随便聊聊。
倘若现在还是在主要做传统意义上的优化的组(指理论、算法),应该也会感觉到优化和所谓“运筹”的关联并没有这么大了。与其说把机器学习的优化和运筹学的优化相并列,我更乐意把关心运筹的优化理解为优化针对一类问题的应用。优化发展到今天,理论的发展已经到了相对完善的程度(当然nonconvex领域仍旧有相当一部分有趣的工作),更多的工作都在下潜到各个领域去解决具体的问题和模型。运筹学是其中一个,只不过这个branch主要是问题的多样性、constr的多样性;也就是高赞回答说的关心model。而另外一个下潜领域,由于实在太火以至于长久占据main stream的,就是ML。而做传统优化的其实意外的已经不多了,有人在做nonconvex,有人在对特定相对general的结构做细致的算法;大多数人还是去研究更有实践意义的具体问题所适应的优化算法了。
就个人感觉来看,优化在ML的发展到如今已经非常关心实践了。高赞回答提到了generalization;不假,四五年前这是这个field研究的中心,有太多文章写出来论证某个算法在某些理论更generalize,但这么多年下来这个问题都没有(或许也没办法)settle down perfectly;个人感觉一个可能的原因是在advanced的industry,并非人人都用adam,更不一定用vanilla sgd,而是也会考虑稍微原始一些的、针对问题fine-tune的某个算法。在如今的眼光看来,或许generalization也不是像原来一样这么central,因为解决一个实际的问题,只要够efficient差不多就好;ML问题这么noisy,geometry没有太多性质,这些所谓的理论很难完美凑效。
所以如果去看今年siopt的新工作,跟industry紧密联系的adpative method,都是基于一些或多或少不那么solid但和传统有那么点儿联系的idea,来对现有的算法修修补补;你可以argue这些改动有多少不make sense,但人家发出来一个更efficient的plot,并且告诉你everything work well,你也只能接受。关心新工作的人肯定也了解前阵子刚出的sophia,谈起idea也就是传统的二阶算法观念,但用一阶方法逼近,着实不新;事实上他们的实验也展现不出来二阶或者quasi-newton的order。但作者称他们的算法比正常的sota快两倍;如果看了paper会发现他们说的不假,但其实两倍是指收敛的tail。如果对于传统做优化做收敛的人、哪怕是做OR的人来说,这肯定不make sense,但这代表sophia没有价值吗?我个人认为不是,因为文章也明白说了他们针对LLM,而LLM正是现在关心的主要问题,而且未来会有越来越多和LLM scale近似的问题。在这个情境下,sophia非常好的实现了效能的大提升。
这俩例子都在说明ML的优化现在也在足够下潜到具体问题,甚至也不大focus generalization这些所谓的基本理论了。当然,generalization有关的有趣工作也有,不过我近期看到的很多都来自stochastic analysis或者dynamics。更早的例子还有RL里面的TRPO,倘若你翻开Toint, Gould和Conn的那一大本trust region,怕是也能感叹TRPO里的TR和传统优化里面精细研究的TR根本都快不是一回事了吧...
杂谈,多少跑题。
2:babyquant的回答
链接:
https://www.zhihu.com/question/612293139/answer/3139774075
微信公众号后台回复
加群:加入全球华人OR|AI|DS社区硕博微信学术群
资料:免费获得大量运筹学相关学习资料
人才库:加入运筹精英人才库,获得独家职位推荐
电子书:免费获取平台小编独家创作的优化理论、运筹实践和数据科学电子书,持续更新中ing...
加入我们:加入「运筹OR帷幄」,参与内容创作平台运营
知识星球:加入「运筹OR帷幄」数据算法社区,免费参与每周「领读计划」、「行业inTalk」、「OR会客厅」等直播活动,与数百位签约大V进行在线交流

文章须知
文章作者:Alex、SigmaGo、babyquant等
责任编辑:疑疑
微信编辑:疑疑
文章由『运筹OR帷幄』转载发布
如需转载请在公众号后台获取转载须知
关注我们
FOLLOW US
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢