找回密码
 立即注册
查看: 820|回复: 20

越来越多的群体智能算法(蛙跳算法、猫群算法、蟑螂算法等等)有存在的必要吗?

[复制链接]
发表于 2021-10-7 17:58 | 显示全部楼层 |阅读模式
除去进化算法(遗传算法、差分进化算法等)系列、人工神经网络系列之外,群体智能算法作为一类算法近年越来越多。较为经典的粒子群、蚁群、人工鱼群、文化算法,到最近几年比较新的混合蛙跳算法、猫群算法、蟑螂算法等等。很多只是改变了一下个体的寻优方式(如蟑螂算法),或者混合了某些算法的特征(猫群很像是遗传算法和粒子群算法的简化版混合)。
这些新算法有存在必要吗?
创新到什么程度能算是创立了一种被人认可的新算法,而不是对原有算法的改进?
求小伙伴们帮忙修改添加话题,帮邀专业大神,谢谢~
发表于 2021-10-7 18:03 | 显示全部楼层
没什么卵用,在可微可导问题上被传统优化方法吊打,黑箱问题上,比起网格搜索貌似人们也不信任大多数fancy的群智能算法。举个栗子,群体算法离不开全局搜索和收敛能力的trade off。要想增强全局搜索能力,一个做法就是用小的邻域,但是,这么多个体通信要占用大量时间,算下来整个迭代过程用到的总个体数目也不比网格搜索用得少,小邻域内计算一些东西很麻烦,这些炫酷的看起来reasonable的改进远不如网格那样简单易上手,而且你还不能保证收敛。
当初众多群智能算法提出的目的是针对众多黑箱问题,不可微可导的问题,这些方法(包括但不限于进化计算,粒子群方法)可以作为一种零阶优化方法进行搜索。类似的应用场景包括现在大热的机器学习中的超参数搜索,结构搜索。
但是,就目前而言,超参数搜索中用到的更多的(绝大多数)是网格搜索。因为你可以去隔壁Evolutionary Computation和Swarm ,Evolutionary Computation看看,各种fancy的改版貌似除了听起来好听之外根本也不是网格搜索的对手,还难以应用。现在看到的唯一用处就是用进化计算暴力搜索更好的神经结构,而且用的还是最原始版本的。
这个领域比隔壁CV水太多了。貌似现在用来忽悠funding也不行了。不过这东西还是有好处的,就是帮我们鉴别垃圾。凡是博士硕士论文题目是"粒子群算法在##的应用"或者"改进的粒子群算法在##的应用",这样的大学学院有一个算一个,都是垃圾,垃圾,垃圾,垃圾场,屎坑。
发表于 2021-10-7 18:04 | 显示全部楼层
可以随便忽悠funding的领域真的是可怕. .
那种弄个诡异的公式/方法, 拿一些数据在上面跑一跑, 一个定理都不证明就能发paper真是爽翻了啊.

Kenneth Srensen就写了一篇文章来攻击这个领域. Metaheuristics - the Metaphor Exposed http://antor.ua.ac.be/system/files/mme.pdf
其中特别攻击了 @Tiger David 的"有良知的人"的所谓的"Novelty".
发表于 2021-10-7 18:12 | 显示全部楼层
@Chao Xu@Tiger David

“Kenneth Srensen就写了一篇文章来攻击这个领域. Metaheuristics - theMetaphor Exposed http://antor.ua.ac.be/system/files/mme.pdf
其中特别攻击了 @Tiger David 的"有良知的人"的所谓的"Novelty".”

上面这句话是错的,首先 Kenneth 就是metaheuristics 领域的,他并不是去攻击metaheuristics这个领域,而是反对领域中乱用metaphor这个现象,所谓爱之深,恨之切。同样的可以去看看Zbigniew Michalewicz 的两篇文章 “The Emperor is Naked: Evolutionary Algorithms for Real-WorldApplications” 和 “QuoVadis, Evolutionary Computation? On a Growing Gap between Theory and Practice”。这两篇文章也批评了演化算法或者群体智能领域的一些现象。

@Tiger David 所说的novelty 是一种 incrementalresearch,一个人提出算法,其他人再去慢慢改进和应用。这是无可厚非的,实际上也是通常的做法,新的东西都有弱点,往往不可能完全超越旧的


Kenneth 所反对的是metaphor 隐喻 的滥用和误用,并举了两个例子。第一个是 酒瓶装新酒 harmonysearch,Keneth认为harmonysearch 就是一种(\mu+ 1)的evolution strategies。一个旧的东西,换个名字,加个隐喻重新发表出来,这种“创新”的确是应该反对的。(当然,这也是演化计算中一个不好的现象,有的人论文没有读过几篇,就随意的去改参数,加operator,在测试算法上跑结果,去挑选结果,然后发表。这种现象的确存在,但是也是应该抵制的)。第二个例子是 隐喻的滥用,在一篇算法流程图中,全是 colonies,empire,imperialist 等,这将会降低算法的可读性和精确性。作者的结论是“renaming existing concepts doesnot count as a contribution.”

-----------------------------------------
演化算法,或者说metaheuristics 是一个即复杂又简单的领域。简单是算法代码都不长,实现方便,很容易就写出来,改改参数,有个结果,某些会议也能发表,学生也能毕业。复杂是演化算法很难分析,算法的参数对结果影响较大,确定地说明某类算法最适合某类问题也基本不可能。

对于这些层出不穷的新算法,容易让人眼花缭乱。但是对于一个研究者,还是不要被这些表象所迷住。算法的基础分析,例如为什么算法会适用于某些问题,算法和问题之间的联系;算法的实际应用等,用算法去解决实际的问题,而不是在一些benchmarkproblems上改来改去。

对于新算法,作到被人广为接受,其实非常非常非常难。如果是为了本科或者硕士毕业,从此不在从事算法研究,那么得过且过,也就罢了。如果做研究,基本是死路一条。新算法的推广非常非常难,有那个算法推广能力,不如投身工业界,“不用多久,你就会升职加薪、当上总经理、出任CEO、迎娶白富美、走上人生巅峰”。。。
发表于 2021-10-7 18:18 | 显示全部楼层
完全同意 @Chao Xu 同学的观点.
看到这样的问题真是五味杂陈.
我敢说我开始是做进化算法的么?
不能说没用, random search, 有时候挺有用的.
但是这一块可以说是人工智能中最水的一块了, 已经被编排出花了.
主要是出去拿funding特别容易, 外行一听名字, 太拉风了, 人工智能和生物的结合, 批~
发文章也容易, 因为是random search, 不需要 也没办法有任何数学基础/模型/证明, 随便一小改, 加点隐形的针对问题的heuristic, 弄个performance improvement就是一篇文章啊.
市场经济的优越性就此体现, 有需就有供.
慢慢的, 就形成了一个自给自足, 互相cite, 联合忽悠的圈子.

但是我能说人工智能, 哪至计算机专业对这块多少有些鄙视么?
我和其他方向的老师关系一直挺好(本科就是他们手下的学生).
我读了这个之后, 他们一直问"这个到底有什么意义, 我一直想不明白, 你给我解释一下".
人品好啊, 不敢直接说"这就是个忽悠".

ps. 我后来改方向了. 之后发现, 就我这140的智商, 想做出点有用的东西太难了.
我认为这个智商属于"理解性智商". 就是你给我啥, 给我点时间, 我都能整明白, 都能用顺溜.
但是在如此复杂程度上改进创新, 真是赤裸裸的智商不够啊. 有时真怀念进化算法的好混.
最后为毕业还是水了. 在新领域做了这种换汤不换药的水文...
我现在的体会是, 大部分的所谓科研, 其实是让大学教师保持知识的新鲜度.
对教书育人没有兴趣的人, 要想实现人生价值, 还是去工业界.

那啥, 要问突破性的算法, 最近的restricted boltzmann machine算一个:)
发表于 2021-10-7 18:24 | 显示全部楼层
首先要说一下,水论文骗funding的行为在哪个研究方向上都是存在的。

    群体智能算法的研究套路
群体智能算法在最开始诞生的时候确实是具有很强创新性的,相信第一次看遗传算法的同学都会感叹生物进化的一些原理可以被搬到优化算法上来,着实让你感觉眼前一新。但是随着研究的深入,水论文的情况越来越多,原始创新性越来越小,所谓的新的群体智能算法一拥而上的都来了。可以说群体智能算法在一开始诞生的时候是很有价值的,现在已经变了味道,很多算法可能终究会死掉。
总结起来不单单是群体智能算法这个研究领域存在着这个问题,经典的数学优化也有类似问题,例如很多gap值从原来的1.1%改进了一下降低到1.0%,这就足以水一篇论文。近来大火的机器学习也都有类似问题。概况一下就是
Level 1: 原始创新(例如 遗传算法,粒子群算法 从无到有的创新)
Level 2: 模仿创新(例如 借鉴了遗传算法的套路 提出一个新的算法)
Level 3: 跟风创新(把在遗传算法上做过的改进在这个新提出的算法上全部再来一遍)
个人建议如果是初入一个新的研究方向或者是低年级的博士生做做Level 3的研究 即小改进一个算法,在实验数据上跑一跑发现结果不错就可以了,写一篇文章发表出来完全是可以的。毕竟我们是生活在现实社会中对吧,毕竟我们要拿论文毕业对吧,毕竟我们要有成果啊。正所谓理想很丰满,现实很骨感,饭都吃不饱还谈理想是不是有点眼高手低呢。
如果是高年级博士生或者在这个研究领域有很深的背景了,建议是更多的做Level 2 甚至 Level 1这些更有挑战性的研究。因为这个时候你已经具备很多基础了,同时你可能不缺论文数量了,这个时候就是更多的思考你所做的研究到底能有多少真正的意义的时候了,真正的去做一些开创性工作的时候了。正所谓做人没有理想和咸鱼有什么区别。

    群体智能算法的好学难精
另外有一点值得提出的是群体智能算法是一个入门门槛相对较低的研究领域,我周围的很多同学在看了两天数学优化的内容就放弃了,因为数学优化或者经典的运筹优化没有很好的数学基础是很难进行下去的,所以做数学优化需要一个较高的数学门槛。这个门槛直接就过滤掉了很多人,而群体智能算法没有这样的门槛,很多从工科出身的同学拿到一个实际应用问题中的优化问题,第一个想法是找到一种方法尽快解了它,这个时候多数都会选择群体智能算法。
PS 群体智能算法入门很快,但是同样的要发顶级的paper也是很难的。

    基于多目标的群体智能算法和数据驱动的进化优化
上面所述的都是主要针对单目标群体智能优化算法的,实际上群体智能优化算法这个领域的一些前驱研究者自身也在做一些改变和修正。群体智能优化算法里的前沿研究方向是集中在多目标优化问题,另外基于数据驱动的群体智能优化算法也是一个有潜力的研究方向。目前数学优化对于多目标还没有太好的工具去解决,所以当前多目标优化问题基本被群体智能算法所占据。同时由于天生的群体智能性质使得群体智能算法和机器学习等方法的结合显得自然而然。个人感觉在这两个方面群体智能算法的空间还是比较大的。
所以一开始如果是做博士的研究,研究方向还是要定位在一些前沿性有挑战性的方向上而不是随波逐流的去简单模仿。关于群体智能算法和数学优化孰优孰劣和数据驱动的进化优化我在之前的文章都有详细的介绍
欢迎参考 【学界】数据+进化算法=数据驱动进化优化?进化计算PK 数学优化
发表于 2021-10-7 18:27 | 显示全部楼层
作为曾经在该领域扑腾过也发过文章的半罐水(boss也是该领域的名人了),部分同意@Tiger David 的微创新的说法,例如进化算法系列其实就是在一系列微创新基础上最终搭成的一个framework,不过如果陷入这种纯粹heuristic的算法的微创新,那可能就有问题了:很可能陷入为创新而创新的误区,而这种heuristic的东西简直就是随便你发明,要多少有多少,最终调调参数总能让你的仿真或者benchmark的结果满足要求。

借用两句名言来总结下该领域,第一句是:Essentially,all models are wrong, but some are useful -- George E. P. Box,第二句是:no free lunch theorem,简单说就是平均意义下这些优化算法都并不比纯随机搜索更好。这两句话其实说的是同一个事情,no free lunch要从反方向来理解:那就是对于具有某种结构的问题总有相应的更好的算法来实现,例如凸函数就可以用牛顿法快速求解。所以说,无论是传统的operation research的算法,还是这种heuristic算法,都需要回答的问题是:Why this algorithm is more effective in this class of problem? 或者换句话 What assumptions should be satisfied to make it more effective? 退一步讲,heuristic算法在理论上要回答这个问题并有相应的定理证明可能很难,但也至少有定性分析make sense吧。因此,要解决什么样的问题才是关键,而陷入到方法的创新就走入歧途了。

最后, @Chao Xu 链接那篇文章非常好(我没全文阅读,快速看了下摘要结论),不仅仅是critism也提出了相应的建设性意见,如果你是做这方面研究的值得仔细看看。
发表于 2021-10-7 18:29 | 显示全部楼层
讲句公道话,目前大多数拥有奇怪名称的启发式算法都是一些非主流的学者在研究。无论国内外学者,其实大家都是不太支持这种现象的。例如有答主提到的抨击启发式算法乱象的经典之作《Metaheuristics—the metaphor exposed》,目前的引用量已经有700多了。
实际上,针对目前群体智能算法的乱象,2019年,一众大佬(包括TEVC现任主编Coello,Swarm and Evolutionary Computation现任主编Suganthan)共同撰写了一篇文章《Bio-inspired computation: Where we stand and what's next》,指出了群体智能算法未来的发展道路。



群体智能算法研究方向

该论文调研了Scopus数据库上近些年的群体智能论文,并对这些论文进行了归类。从图中可以看出,各种所谓的群体智能算法根本不属于主流群体智能算法的研究领域。真正的群体智能算法一定是问题驱动的,例如多维优化问题、多目标优化问题、高代价问题、多峰问题、大规模问题、组合优化问题,而每个问题我们都可以设计相应的算法。因此,回到题主的问题上,我的答案是“任何脱离了特定问题的算法设计都是没有意义的”。
其实,目前的群体智能算法和编程语言领域非常相似,大家都希望能通过发明各种新算法/新语言来在圈子内占据一席之地,但实际上其实大多数的新算法/新语言都会被历史湮灭。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-10-7 18:30 | 显示全部楼层
创新的程度跟新意无关,只跟疗效有关。关键是这个领域现在对疗效的评判有问题。

光说单目标静态无约束连续优化问题常用的benchmark少说就有三四十种。发文章的时候,一般写上在十来个函数上的对比结果审稿人也就会认为实验是比较充分的了(我就不说见到过大量只比较三四个函数就说性能优异的文章了)。最重要的是,一般的文章比较的时候通常不会跟最好的算法比,而是跟自己改进的算法比,(例如我要写一篇文章提出一种改进的PSO,那么就只需要跟PSO比,统计上显著比它好就行)。

这个领域的审稿人是我见过最单纯善良的审稿人。他们觉得,既然大家的算法是从自然启发而来,那么相互之间当然也会有可借鉴之处,值得发表。他们觉得,现有算法尽管还不成熟,但只要逐步改进,难保不会大器晚成改变世界,值得发表。他们觉得,既然没有免费的午餐,那么这个算法说不定总有一天会找到合适的问题发光发热,值得发表。

所以你问到的实际上不是这些算法的问题,而是这个领域的定位问题。

我的观点非常实用主义:如果一个算法可以在某类问题上(包括各种应用以及benchmark)的效果达到最好,那么无论它思想多么简朴,改进多么平凡,都是很有价值的工作。

跑benchmark可以,但要跟最好的比,如果你的算法性能全面地、统计地好于最好的进化算法(比方说CMA-ES),那么就是好算法。做其他应用也可以,但要跟最好的比,如果效果好于其他进化算法,并且比针对这个应用的其他所有方法都好,那么也是好算法。

这个期望现在看或许很高,将来看或许很低,但是希望能与大家共勉。

最后说几句题外话,我倒不觉得理论是这个领域最迫切需要的。现在这年头每篇文章没几个希腊字母的公式定理都不好意思见人,但是这些定理多是想出算法之后拼凑的平凡结论,没有多少真正指导了算法的设计和应用。如果有人确实分析清了某一类问题的结构或分布(也就是吃到了免费午餐),那么对他来说提出针对这一类问题的最优算法也不在话下,所以这个工作的价值最终还是落实到算法性能上面。要我说,Nothing is more theoritical than a good algorithm.
发表于 2021-10-7 18:37 | 显示全部楼层
提示:我并不是本专业的科班学者,并不能保证我的言论完全符合其学术领域的共识,我只是从我个人的角度提出观点。
以我个人的背景知识结构来说,这个问题可以分为两个
    多智能体算法目前所遇到的瓶颈与障碍是什么?演化论(演化动力系统)迁移至其他领域的困难是什么?
我觉得,目前多智能体算法所遇到的最大的瓶颈其实是无法沟通宏观与微观之间的联系。一般的多智能体演化算法大多强调个体是如何如何决策的,并且在仿真实验之后,我们能够模拟出一个世界并且得出宏观指标进行分析。但是一般情况下,多智能体算法的“成功性”通常表现为能够与经典理论或者实证分析结果相拟合,那么...我们为什么要用算力与内存需求更大的多智能体算法而不是传统经典理论呢?如果多智能体算法的模拟结果无法与经典传统理论相拟合,那么我们能否提供具有说服性的解释,如何对现象进行有效地诠释,并且这套诠释是否能够让人容易理解呢?我觉得这是目前多智能体算法所很少能够做到的事情。这个缺陷的直观表现便是,宏观理论与微观理论之间的那个动力机制实际上成为一道厚厚的玻璃障壁将两者区隔开来。我们知道系统不能是元素的简单加总,系统整体大于部分之和,那么究竟多出来了什么东西,多出来的这些东西应该如何描述呢?我觉得这是多智能体算法要思考的理论建构问题
系统的超参数(这种超参数也有维度灾难的问题)与系统的结果之间的(定量甚至是定性)理论的匮乏有效的算法评价体系的匮乏,使得很多类似的仿真模拟实验只能变成炼丹大会。在没有对应惩罚项而只看在标准数据集上测试效果的算法评价指标下,哪怕研究人员本身不想让其算法过拟合也会被“劣币驱逐良币”...(某些学科的学生表示:经验科学,都可以经验科学)
或许,统计物理的认识论,而并非其他经典物理学科的本体论视角,能够给我们带来更多启发。
“我觉得不是我的有效市场假说错了,是你们没有用好模型。”
“你这个参数调整了多久?你的算法有普适性的意义吗?”
“你的结果跟xx的理论对不上,你这个结果有问题,你改一改吧,不然你没法毕业。”
这几个argument都有现实案例...
演化论迁移至其他领域的困难,则是目前我们很少有能够在复杂系统这个层面上进行对比分析的指标体系,哪怕有,目前这套体系恐怕也不会简单到让普通智人所能轻易理解的程度(对该对象的最简洁符号描述超过了一般智人在单位时间内所能理解信息的容量上限,之后我会写个大篇对这一点展开叙述)
这个可以从生物演化论和历史文学的角度来理解,你可以评价翼龙与鸟类的飞行能力,你也可以评价鸭嘴兽为什么是卵生哺乳动物,但是你很难评价,系统与物种的协同进化的必要充分条件,你也很难想象, 如果没有冰河时代和陨石坠落,现在的生态系统会是什么样子,会比现在更“好”还是“坏”。传统的事件分析方法,在复杂系统这个层次上,恐怕也不会如同人们所期望的那么好用。
这也是系统的演化路径之间的“不可通约性”,我们能够有一套体系来描述微观事物演化的路径是怎么样的,在一些干预之后会有何改变。但是当需要描述对象的复杂度上升到一定层次以后,我们不再有一套如同以前那么好用的工具来认识、把握和描述复杂系统的演化路径问题。我们如何比较美国金融衍生品市场与德国金融衍生品市场?我们固然可以说出一些区别来进行两个系统的区分,但是我们如何度量两者的复杂度,如何把握其市场参与者的拓扑结构,以及更进一步地如何描述和解释系统复杂度与内部拓扑结构的动态演变过程
同样地,很多时候经常会说历史不容假设。我们所能够“经历”的历史路径,有且仅有一条。虽然我们可以有很多围绕着历史的叙事,但是我们无法遍历甚至是经历其他的世界线,故而难以推断世界线整体的样本空间会如何变化,也就难以描绘某个特定历史事件改变以后的世界将会收敛至何处。历史信息被人类所持有的先验历史叙事吸收融合,历史信息被观测收敛的后验世界所传播、普及、再编码与再解码。面对初值可能极其敏感的巨复杂系统,站在此时此刻,我们并不敢以言说现在的我们是否陷入了局部最优的陷阱当中,我们更无法断言,地球本身是否会变成另一个“复活节岛”。
很多时候,不同的科学家在同一个科学问题上所持有的不同观点,并不单纯是学术观点的分歧,更表现了其持有的学术观点背后的世界观的差异。与其说,群体智能算法有什么样的问题,更不如说,群体智能算法背后的科学观、世界观、认识论究竟与我们当下的科学共同体内部的认识有着什么样的异同,这才是问题的关键。同样地,我们也可以思考,群体智能算法究竟会给科学共同体带来什么样的启发,从而重塑我们的科学观、世界观与认识论。相应地,我们也可以思考,人类究竟需要什么样的科学观、世界观、认识论与方法论才能够把握群体智能算法背后的思想,从而寻找或创造出合适的工具以解决相应的问题,唯有如此,才能推动一套方法论对另一套方法论的范式革命。
“不要问这个方法论能够为人类提供什么,要问我们人类能够为这套方法论提供什么。”
如今,人类终将要直面这个复杂度不断急速上升的世界,这是人类的宿命,也将会是人类的荣光。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 15:23 , Processed in 0.100885 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表