附上梯度下降算法的发展史
https://mp.weixin.qq.com/s/IMob7Xn-kcE6ZZHY-SSAsQ 大多数发表的学术论文都是以精度为导向的,很少去考虑运算量和计算所花费的时间
但是对于工程而言,更关注的是实时性和可靠性,一条流水线不会因为用GA来达到某个时刻的最优状态而停止工作几秒钟甚至几分钟,更多的可以参考工业界常用的Extremum Seeking和SPSA,在启发式算法可以参考以工程为导向的实时优化算法 天牛须搜索优化算法BAS:https://zhuanlan.zhihu.com/p/268821143 启发式算法就像他的名字,“收到自然现象启发设计的算法”。这类算法作为黑箱调优算法的一种很少有比较好的收敛性证明:黑箱调优算法在我见过最好的证明是贝叶斯优化的证明,简单可以概括为“当迭代次数接近无限的时候,算法可以达到目标最优值”(就我感觉这简直是废话,资源无限算法都把定义域取光了还找不到最优?),我们根本没法给出这个算法到底为了达到最优消耗多少资源。
凸优化方法相比之下给的上限就可靠多了,收敛结论是“迭代多少步,离最优解会差多远”,这意味着我能给出的精读和资源的期望。
当然现在很多伪装成凸优化的启发式算法,比如神经网络,很明显神经网络的既不凸,也有可能不利普希茨连续,在这上面强用凸优化显然是错的,最多勉强可以解释为“在一个凸的区间内找一个极值”,不过这种解释还是差强人意,所以很多主流解释都是正反传的启发式算法来模拟人脑受刺激。这种训练方法还真不一定有遗传算法好,据我所知有的组训练dnn模型还真的用的是遗传算法。 遗传算法是个弟弟啊 不同的问题用不同的方法,比如说在凸问题上用遗传算法大概就是脑子有病吧,能贪心就不用搜索了。。非常简单的道理。。
现有的应用中很多人并没看到那种多局部极值的问题,所以遗传算法就用不到了。。 谁说的,gradient free optimization一直被寄予厚望。 拉马克进化论和达尔文进化论的区别,注意看下迭代次数 SGD更适合干这个。 参数优化一般是高维的.遗传算法要撒很多点来估计损失最速降的方向,也就是损失对参数的偏导数.比如n维参数空间,为了估计局部的偏导数,至少要计算附近n个点的值(因为偏导数有n个变量,需要n个方程才能解).而梯度下降通过计算得到损失最速降的精确方向,只需要对一个点求导就可以得到.当n很大时,效率对比就很明显了. 。。。
页:
1
[2]