2.3 深入浅出强化学习
首先一条就是主线,前面已经介绍,强化学习的主线就是作为主角智能体,与作为舞台的环境所作的各种交互。交互过程衍生了三个概念,听起来复杂,其实玩马里奥兄弟游戏非常相像,完全可以一对一比照。回想一下,游戏里的马里奥想要通关,第一步需要干什么呢?前进后退还是蹦蹦跳跳?都不对,首先需要观察。你得先看一下周围环境,看看前面到底蘑菇还是乌龟,才能决定接下来的行动。观察环境,获取当前的状态信息了,才决定下一步行动对不对?强化学习也一样,主角智能体通过前面介绍的第三个重要概念“观察”,来获得当前时刻的各种状态信息,一般记为s(t)。掌握了状态信息,游戏里的马里奥开始跃跃欲试,准备做出反应了。强化学习也一样,我们将s(t)作为智能体的输入,智能体会略加思索,接着就能做出“动作”。这里的动作,就是前面介绍的第四个重要概念。智能体能做出哪些动作呢?这和具体的场景有关,譬如在马里奥游戏中,动作就是指“顶蘑菇”或者“踩乌龟”,一般记为a(t)。
最后一个重要概念是“奖励”。这个好理解,前面我们一再强调,强化学习的主线是智能体与环境的各种交互,那现在当智能体做出某个动作后,环境当然也得有所表示,得有个反馈信息,这就是奖励。譬如马里奥游戏中,马里奥“吃到金币”后,相应的游戏得分就会增加,这就是奖励。需要说明一点,强化学习的“奖励”和我们日常所习惯的用法略有不同,强调的是环境对智能体的反馈。上面说的得分增加,这是一种好的反馈,当然也有坏的反馈,譬如做了什么动作被扣分了,但无论是好的反馈,还是坏的反馈,在强化学习这里都统一称为“奖励”。至此,智能体就完成了一轮强化学习。不断重复这轮流程,智能体就能顺利地与环境交互下去。听起来是不是很简单?不过,魔鬼都藏在细节里。2.4 强化学习方向分类
不知道大家在阅读时,有没有注意到强化学习的一个非常重要的问题,上面却一笔带过?没错,就是从获取s(t)到做出a(t)之间的“略加思索”。作为输入的状态信息,和作为输出的待选动作,都是给定好的,但二者的映射关系如何,也就是输入什么样的状态信息该对应输出什么样的动作反应,也就是智能体应该如何进行思考。这是强化学习最核心的问题。有了问题,自然就会产生各种脑洞。我们说强化学习的五个概念像是五线谱,演奏出无数美妙旋律,这绝对不是艺术化的比喻,而是实情。为了解决强化学习这个核心问题,研究人员是真真切切地开了无数的脑洞,总的来说,主要是朝着两大方向开脑洞。第一个大方向叫基于价值(Value-Based)的强化学习。机器学习都有个目标函数的概念,而基于价值的强化学习,它的目标函数就是累计奖励最大化,也就是当前哪个动作能让得分更高就选择做哪个动作。这很符合我们的直觉认知,比较容易理解。那怎么达到这个目标呢?不同的算法各有不同,基于价值(Value-Based)的强化学习算法中,最有名气的算法应该数Q-Learning,也有人称为Q学习,通过不断计算和更新动作价值函数Q来实现奖励最大化。第二个大方向叫基于策略(Policy-Based)的强化学习。基于价值虽然符合直觉,但这种走一步看一步,每次都要用价值函数量一下才能行动的做法,难免让人有种“无头苍蝇瞎转”的无力感,而基于策略的强化学习最大的特点就是果断抛弃了价值函数,尝试找到每个状态对应的最佳动作,从而形成一套动作策略,每走一步策略都能直接给出最佳的下一步动作。当然,除了这两大方向,强化学习还有其它的脑洞方向,譬如基于模型(Model-Based)的强化学习,不过由于成本和难度较高,用得比较少。而这两大方向都各自包含了大量的具体实现算法,即使方向相同,各个算法在细节上仍然有很大差异。
三、深度学习与强化学习的结合最后一个问题是,深度学习是怎样和强化学习结合,成为深度强化学习的呢?前面我们说,深度强化学习,强化学习是骨架,深度学习是灵魂,这是什么意思呢?深度强化学习的主要运行机制,其实与强化学习是基本一致的,也都是根据输入的s(t),找到对应的输出a(t),只不过使用了深度神经网络来完成这一过程。更有甚者,有的深度强化学习算法,干脆直接在现成的强化学习算法上,通过添加深度神经网络来实现一套新的深度强化学习算法,非常有名的深度强化学习算法DQN就是典型的例子。前面我们介绍基于价值的强化学习算法中介绍了Q-Learning算法,有一个重要的步骤是计算Q值,而传统的Q-Learning算法是通过Q表来完成计算的,但表格存在一个明显的局限性,状态-动作空间越大,Q表就越膨胀,而且是大一点就膨胀好几圈。这样下去不行的,早晚是要河边见的……那怎么改善呢?研究人员一想,现在大热的深度神经网络不是最擅长干这事吗?于是一拍大腿,不����,��ֵ再需要劳驾Q表您老人家来记录Q值了,统本文电子版 后台回复 深度强化学习 获取