如何看待OpenAi的evolution strategy和增强学习同样有效而且方法更简单?

Elon Musk’s OpenAI has unveiled an unusual approach to building smarter mac…
关注者
230
被浏览
14,047
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

Evolution Strategy (后面简称 ES) 是一种使用到进化理论思想的算法, 如果套用一个神经网络框架的话, 它不使用反向传播梯度的算法, 所以在更新神经网络的时候会明显比计算梯度的神经网络要快. 原理理解起来也会比计算梯度的要简单.


其实 ES 算法很早就已经有了, 只是以前 ES 算法只能用在一些小型的问题上, 不过 OpenAI 拿它来做大规模强化学习的确是一个突破. 我也很看好这条路径的发展. 毕竟历史中, 简单的方法总是比复杂的方法传承更久远. 我们先来看看在强化学习中, ES 到底是怎么用的.


OpenAI 将 ES 加上了 神经网络, 让 ES 能处理大规模的非线性问题, ES 的精辟就是下图(来自 OpenAI blog)

我在自己做的的 ES Python 系列教程 当中也提到过, 这种方法就是要让这些点滑动到最红的地方, 一个 global 或者 local minima, 从而找到一个解决问题的参数组. 我们的梯度下降方式的神经网络, 是通过在计算一下路径上的梯度, 再朝着梯度下降的方向移动. 但是 ES 不一样, 他是在原始点附近"生宝宝", 有的宝宝比原始的好, 有的坏, 那 ES 就改变参数的时候, 改变得更接近那些 "好宝宝" 的参数. 这就是 ES 和梯度下降法 用神经网络的最大不同了.

不过我能想到的 ES 有一个不足的地方,

  • 必须是依靠并行计算, 像上图中, 必须在自己附近 "生很多宝宝", 用宝宝来更新自己的网络参数. 如果运用到实际生活中的强化学习, 往往是不可行的. 这种强化学习必须有一套虚拟的环境, 不然不能有效模拟这种并行运算.

开始很看好这种发展趋势, 之后肯定会有一些基于这种 ES 的强化学习方法.

如果想自己手动尝试一下用 Python 编写这样的强化学习, 在 莫烦Python 有一个用 Gym 实践的教程可以参考.