找回密码
 立即注册
楼主: TheLudGamer

遗传算法写的这么厉害,为什么在最优化理论里面罕见有应用,还是以梯度下降为主呢?

[复制链接]
发表于 2021-7-14 18:08 | 显示全部楼层
你了解优化算法吗?
附上梯度下降算法的发展史
https://mp.weixin.qq.com/s/IMob7Xn-kcE6ZZHY-SSAsQ
发表于 2021-7-14 18:15 | 显示全部楼层
大多数发表的学术论文都是以精度为导向的,很少去考虑运算量和计算所花费的时间
但是对于工程而言,更关注的是实时性和可靠性,一条流水线不会因为用GA来达到某个时刻的最优状态而停止工作几秒钟甚至几分钟,更多的可以参考工业界常用的Extremum Seeking和SPSA,在启发式算法可以参考以工程为导向的实时优化算法 天牛须搜索优化算法BAS:https://zhuanlan.zhihu.com/p/268821143
发表于 2021-7-14 18:20 | 显示全部楼层
启发式算法就像他的名字,“收到自然现象启发设计的算法”。这类算法作为黑箱调优算法的一种很少有比较好的收敛性证明:黑箱调优算法在我见过最好的证明是贝叶斯优化的证明,简单可以概括为“当迭代次数接近无限的时候,算法可以达到目标最优值”(就我感觉这简直是废话,资源无限算法都把定义域取光了还找不到最优?),我们根本没法给出这个算法到底为了达到最优消耗多少资源。


凸优化方法相比之下给的上限就可靠多了,收敛结论是“迭代多少步,离最优解会差多远”,这意味着我能给出的精读和资源的期望。


当然现在很多伪装成凸优化的启发式算法,比如神经网络,很明显神经网络的既不凸,也有可能不利普希茨连续,在这上面强用凸优化显然是错的,最多勉强可以解释为“在一个凸的区间内找一个极值”,不过这种解释还是差强人意,所以很多主流解释都是正反传的启发式算法来模拟人脑受刺激。这种训练方法还真不一定有遗传算法好,据我所知有的组训练dnn模型还真的用的是遗传算法。
发表于 2021-7-14 18:29 | 显示全部楼层
遗传算法是个弟弟啊
发表于 2021-7-14 18:37 | 显示全部楼层
不同的问题用不同的方法,比如说在凸问题上用遗传算法大概就是脑子有病吧,能贪心就不用搜索了。。非常简单的道理。。
现有的应用中很多人并没看到那种多局部极值的问题,所以遗传算法就用不到了。。
发表于 2021-7-14 18:47 | 显示全部楼层
谁说的,gradient free optimization一直被寄予厚望。
发表于 2021-7-14 18:50 | 显示全部楼层
拉马克进化论和达尔文进化论的区别,注意看下迭代次数
发表于 2021-7-14 18:59 | 显示全部楼层
SGD更适合干这个。
 楼主| 发表于 2021-7-14 19:08 | 显示全部楼层
参数优化一般是高维的.遗传算法要撒很多点来估计损失最速降的方向,也就是损失对参数的偏导数.比如n维参数空间,为了估计局部的偏导数,至少要计算附近n个点的值(因为偏导数有n个变量,需要n个方程才能解).而梯度下降通过计算得到损失最速降的精确方向,只需要对一个点求导就可以得到.当n很大时,效率对比就很明显了.
发表于 2021-7-14 19:12 | 显示全部楼层
。。。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-22 16:29 , Processed in 0.092173 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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