找回密码
 立即注册
查看: 567|回复: 5

为什么进化算法没有像深度学习一样火起来?

[复制链接]
发表于 2021-9-15 08:19 | 显示全部楼层 |阅读模式
是因为进化算法有哪些局限性吗?模型不够复杂?可解释性不高?
发表于 2021-9-15 08:28 | 显示全部楼层
这个问题很有意思,恰好我在这两方面都有过经历,可以肤浅的聊一聊。
首先你要知道进化算法其实很火的,偏理论一点的,比如组合优化问题,应用一点的,比如机器人路径规划,都比较流行进化算法,而计算机方面的,比如网络啥的,其实也会用到,详细你可以IEEE之类的搜索一下。
那么进化算法为什么不如深度学习火呢,首先得从他们的区别谈起。深度学习,机器学习,或者模式识别等等,看了《统计学习方法》的话你应该知道,他们包含三部分:表示(可以简单理解为模型结构),评价(你希望模型最终效果是什么样的),优化(把你模型里的参数算出来)。而进化算法,其实就是一种优化方法,和sgd等等是类似的,只不过思想和适用场景不太一样。所以其实你不能把深度学习和进化算法放到一起比较,你更应该问为什么sgd等方法比进化算法火这样的问题。
再回答上面这个问题之前,我们要知道为什么深度学习这么火。最重要的原因,就是机器学习深度学习啥的,挣钱,为企业带来利益。举几个例子,企业的运营部门需要数据分析吧,大数据系统需要自动化运维吧,你得精准投放广告吧,你拍照得需要美颜吧,机器学习深度学习又在这方面表现优秀,它不火谁火。
那么为什么sgd等方法比进化算法火呢,是因为深度学习火。神经网络因为sgd,效果突飞猛进,后来各种卷积网络模型在图像方面令人的表现,直接带动深度学习大火。深度学习都火了,你要学习深度学习,你肯定要学习sgd的。
那为啥不用进化算法优化深度学习模型参数,偏偏要用sgd呢。一方面进化算法就是加了限制条件的随机搜索,根据我的经验就是,效果并没有那么好,不稳定,还很慢。另一方面,针对神经网络来说,参数实在是太多了,随机搜索代价太大,总体来说不如sgd这种基于误差反向传播的方法更直接。所以sgd占优势,进化算法就只能留在组合优化相关领域大放异彩。当然进化算法其实可以被用在深度学习中,有很多文章在这样做,感兴趣自己搜。
额外的话就是,你可能是非计算机的,或者是跨考成功的研究生,我想告诉你的就是,和计算机相关的东西其实都是非常扎眼的,从我当年大学时候比较火的java和oracle,到后来的大数据开发,数据挖掘,机器学习,深度学习等等,只要某样东西开始挣钱了,基本你打开网页,都是这些广告。而我,也一步一步见证了大数据分析这个词被数据挖掘淹没,机器学习又抢了数据挖掘的风头,再到现在深度学习霸占眼球。你可能会认为其余的就不火了,只有深度学习火。真相就是,他们都很重要,非常火,而且还相辅相成。不但薪资很高,有的还跟缺人。
冷静看清楚事物的本质是什么,做了选择之后就一定要努力和坚定,别被无良商人绚丽的包装给迷惑了。
 楼主| 发表于 2021-9-15 08:31 | 显示全部楼层
如今,进化算法领域的许多人都认为进化算法受到了不公平的对待,尤其是当考虑到神经网络的快速发展时(神经网络也是一种软计算算法,并且缺乏数学证明)。许多人认为,进化算法的衰退可以归因于以下事实:在现实世界中,进化算法不是有效的优化算法,尤其是与基于梯度的搜索算法相比时。但是,我认为,进化算法的前景黯淡是由于我们还没有发现进化算法中的归纳偏差(inductive bias)。
众所周知,在机器学习领域,不存在可以解决所有问题的学习算法。例如,我们可以使用CNN解决图像识别问题。但是,很难使用CNN来解决欺诈预测问题。相比之下,XGBoost是解决此问题的良好学习算法。只有意识到这种情况,我们才能开发出一种有效的学习算法来掌握某一种类型的机器学习任务。
相反,在进化算法领域,归纳偏差非常罕见。大多数的进化算法都假定它们可以处理几乎所有类型的优化问题,这是不合理的。例如,在我的研究领域,当遇到组合优化问题时,我们仍然使用遗传算法(genetic algorithm)来解决新出现的问题,即使该算法与多层感知机一样古老。正如多层感知机不能在机器学习任务上获得令人满意的性能一样,进化算法不能达到出色的性能也就不足为奇了。
在进化算法领域,也有很多算法专注于解决特定类型的问题,例如NSGA-II(专注于解决多目标优化问题)和协作式协同进化算法(专注于解决高维优化问题)。但是,这种划分方式并不能解决根本问题。就像在机器学习领域一样,我们将问题分为回归问题和分类问题。在这种范式中划分问题对寻找归纳偏差没有任何帮助。在这种情况下,我认为未来演化算法领域应该专注于基于实际问题而不是人为Benchmark问题开发新算法。在我看来,为了在进化算法中找到归纳偏差,我们不应该追求能够解决各种基准问题的全能算法。从我的角度来看,开发一种可以有效解决某一种问题的进化算法,例如自动化机器学习或车间调度问题,可能是进化算法在人工智能时代复兴的唯一途径。
发表于 2021-9-15 08:34 | 显示全部楼层
同意“归纳偏差”的观点,和同学讨论后,我认为,演化计算领域下的群体智能算法(至少这一类型算法基本可以肯定是如此,对另外几个子领域的算法了解有限,不足以作出如此肯定的结论,故修改,原文为“演化计算领域算法”)的存在意义在于:通过人工尝试各种搜索公式、各种搜索算子、各种策略、各种算法结构的组合(很多情况下是排列组合),找到一种或几种在某一类优化问题上能够取得很好实验结果(表现出很好实验性能)的算法。

至于原理,“为什么这些算法在这一类问题上能取得比较好的结果?”,无从解释。

同样,“那么它们是不是解决这一类优化问题最好的算法?”,无从证明,无从解释。

而之所以出现这种尴尬,原因在于发明这些算法的方法是非常原始、无理性的。

它们的发明,是基于人工混乱、随机地尝试各种排列组合,或者引入所谓“新的机制”。这种方式,和 炼金术师的实验 基本没什么区别。

有心人多读几篇这个领域的算法的论文便会发现,这些算法的发明,基本没有逻辑上的依据。因此才说,这样的研究,与其说是科学研究,不如说更像是炼金术实验。

或者更像是中二病的胡言乱语,或者虚构的魔幻小说中的各种魔法规则和魔法符号?

(与其问这个问题,不如去多找几篇这个领域的论文读一读,便很快就清楚原因了。)

(如果这样做了还不清楚,那只能说,这个程度的智慧,真的很适合做这种类型的研究。)

(另外:“大多数的进化算法都假定它们可以处理几乎所有类型的优化问题,……,人为Benchmark问题开发新算法”,则是纯粹的灌水了。)
<hr/>以上回答是调查进行到尾声时写就的,之后又延续了一部分调查,想着还是把自己最后写下的纯粹是满足自己求知欲的结论给po到这里。

补充:

又一次关于演化计算领域的存在意义的调查    5/16/2021

最先是偶然想起,有人和自己说过“最早提出PSO算法的J.Kennedy也发过一篇文章质疑说群体智能领域现在那么多的改进算法是否有意义”,于是着手寻找这篇文章,只找到J.Kennedy发过的疑似是这篇文章的论文:
Some Issues and Practices for Particle Swarms但里面表达的是乐观的情绪。
然后在知乎搜索“演化计算 算法 质疑”:
演化计算 - 搜索结果 - 知乎有人提到了这本书,于是去调查了这本书:
售价910元!周志华等人英文新书《演化学习》出炉!_AI科技大本营-CSDN博客这篇博客引了这一段话:


去找NIPS 2017的那篇文章,估计是:
Subset Selection under Noise找到了那本书的资源。
最后又仔细读了一遍俞扬这段话,修改这个回答的上面部分,并作下结论:
【调查结论:俞扬说的这段话是重点,如果他们NIPS 2017的工作真的能回答“有什么问题能证明是以往算法做不到而演化算法能做到的”这个问题,那么演化计算领域还是有科学界继续研究的价值的。相反,则没有科学界继续研究的价值,这个大领域和它下面群体智能的子领域一样,仅仅是披着科学外衣的炼金术(人类手工进行的混乱、随机的排列组合实验)罢了】

至此,调查结束

(也许应该 @ 俞扬 ?)
(这个问题,@ 他们不是很合适么,何必让其他网友解答……)

本帖子中包含更多资源

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

×
发表于 2021-9-15 08:38 | 显示全部楼层
因为它没有框架,没有gpu加速,没有大厂带领。
最大还是由于它非常非常慢,难以得到结果。
感觉深度学习的automl也面临这种情况。
发表于 2021-9-15 08:39 | 显示全部楼层
这本书可能会部分回答题主问题,或许会带来稍有不同的认识:《演化学习:理论与算法进展》(周志华,俞扬,钱超)【摘要 书评 试读】- 京东图书
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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