刚接触强化学习 发现与粒子群等群智能算法似乎有相似的地方 两者的逻辑似乎差不多 但是为什么很少见用强化学习做函数参数寻优的
有一种方法叫做Learning Automata,属于一种强化学习方法,可以与进化计算(如PSO、差分进化)、元胞自动机(CA)等算法结合起来,对某些问题进行优化,常见的是function optimization。可以参考下列文献:
1 Rezvanian A, Meybodi MR (2010) LACAIS: learning automata based cooperative artificial
immune system for function optimization. Contemporary computing. Springer, Berlin Heidelberg, pp 64–75
2 Hasanzadeh M, Meybodi MR, Ebadzadeh MM (2013) Adaptive cooperative particle swarm optimizer. Appl Intel 39:397–420
3 Moradabadi B, Beigy H (2014) A new real-coded Bayesian optimization algorithm based on a team of learning automata for continuous optimization. Genet Program Evolvable Mach 15:169–193
4 Mahdaviani M, Kordestani JK, Rezvanian A, Meybodi MR (2015) LADE: learning automata
based differential evolution. Int J Artif Intel Tools 24:1550023
5 Mirsaleh MR, Meybodi MR (2015) A learning automata-based memetic algorithm. Genet Program Evolvable Mach 16:399–4536
6 Moradabadi B, Meybodi MR (2016) Link prediction based on temporal similarity metrics using continuous action set learning automata. Phys A Stat Mech Appl 460:361–373
7 Vafashoar R, Meybodi MR (2016) Multi swarm bare bones particle swarm optimization with distribution adaption. Appl Soft Comput 47:534–552
泻药。
用RL或者DRL去做参数优化肯定是可以的,且已经有一些相关文献:
https://arxiv.org/pdf/1602.04062.pdfhttp://papers.nips.cc/paper/6461-learning-to-learn-by-gradient-descent-by-gradient-descent.pdf至于意义,我觉得为了超参数优化,去部署一个复杂的RL/DRL模型,有些本末倒置了。再者说,GA,PSO,BAS等一系列的优化算法,他不香吗。
可以,样本效率比进化学习高,但是结果不比进化学习好。
强化学习很关注策略梯度的方差小,因此比较容易快速进入局部最优解。
首先明确,可以。因为强化学习解决的问题本质上就是一类特殊的优化问题。只不过这个优化问题的评估函数并没有很明确,因为我们并不知道真正的最优策略长啥样,实际上我们就是去找这个最优策略来着。怎么找呢?试呗。当然不是盲目的瞎撞,是有目的有规律的撞,撞疼了就回来,没撞到就继续往前撞。如此往复,最终终于撞出一条通天大道。
而其他传统优化算法有什么不一样呢?那是因为它们解决的问题代价函数更加明确,这个解好不好,直接送到函数里面得到适应值,就直接反映了解的好坏,所以目标很明确就是要最大化或者最小化这个值。
到这你就能看到它们的联系了,大家都是要最大化一个什么东西。只不过传统优化问题的评估函数是非常明确的,那就去找解就行了,大家各有策略各施神通。而强化学习里面这个评估函数是不那么明确的,是间接的,曲折的,甚至时延的,总之就是,我当前这一波动作好不代表以后好,当前不好也不代表以后就不好。你就感觉,你在寻找最优策略的同时,其实在部分构建一个更稳定清晰的评估函数,以获得更加清晰的指示。
在这个意义上,传统优化方法由于问题的明确性效率更高。强化学习的问题更曲折不够明确,因而只能妥协用这种类似于试错的方式,效率比较低,但是貌似目前也木有更好的方式。对于这种问题你换成遗传算法,解决起来应该会更加困难。反过来另一层面,用强化学习来解决传统的那种明确的优化问题,效率太低,与进化计算相比。但是这也取决于你的问题类型,如果你的问题非常复杂,还是可以一试的。当然怎么定义复杂,又是另一个话题了,能写好几篇论文。
关于文献,用强化学习干优化这个活,我记不太清了,如果我找到了再说吧。但是进化计算掺和到强化学习里面还是有人干过的。你可以搜一下natural es, OpenAI 搞的进化策略。
啊竟然没有人介绍介绍BAIR几年前Learning to Optimize的框架?
什么意思呢?其实特别简单,假设有一个agent(这是我们要学习的optimizer)在一组objectives所组成的环境中进行探索(为什么是一组objectives而不是一个,因为学习optimizer需要考虑到泛化性,如果只是学习一个objective真的划不来),state就是当前探索到的状态以及可能的走过的轨迹,action自然就是根据当前state下怎么向下走,reward或者cost更显然就是objective有没有下降了。
后续的工作当然很多很杂,题主可以自己查引用了这篇文章的工作 (* ̄︶ ̄)