前言
强化学习这个概念是2017年Alpha Go战胜了当时世界排名第一的柯洁而被大众知道,后面随着强化学习在各大游戏比如王者荣耀中被应用,而被越来越多人熟知。王者荣耀AI团队,甚至在顶级期刊AAAI上发表过强化学习在王者荣耀中应用的论文。
什么是强化学习
强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题 。
强化学习:基于环境的反馈而行动,通过不断与环境的交互,试错,最终完成特定目的或者使得整体行动收益最大化。强化学习不需要训练数据的label,但是它需要每一步行动环境给予的反馈,是激励还是惩罚,反馈可以量化,基于反馈不断调整调整训练对象的行为。
以上是两个不同的定义,一个来自百度,一个来自某个博客。
比如AlphaGo下围棋,AlphaGo就是强化学习的训练对象,AlphaGo走的每一步不存在对错之分,但是存在“好坏”之分。当前这个棋面下,下的“好”,这是一步好棋。下的“坏”,这是一步臭棋。强化学习的训练基础在于AlphaGo的每一步行动环境都能给予明确的反馈,是“好”是“坏”?“好”“坏”具体是多少,可以量化。强化学习在AlphaGo这个场景中最终训练目的就是让棋子占领棋面上更多的区域,赢得最后的胜利。
打一个不是很恰当的比喻,有点像马戏团训猴一样。驯兽师敲锣,训练猴站立敬礼,猴是我们的训练对象。如果猴完成了站立敬礼的动作,就会获得一定的食物奖励,如果没有完成或者完成的不对,就没有食物奖励甚至是鞭子抽打。时间久了,每当驯兽师敲锣,猴子自然而然地就知道要站立敬礼,因为这个动作是当前环境下获得收益最大的动作,其他动作就不会有食物,甚至还要被鞭子抽打。
强化学习的灵感来源
强化学习的灵感来源于心理学里的行为主义理论:
-
一切学习都是通过条件作用,在刺激和反应之间建立直接联结的过程。
-
强化在刺激一反应之间的建立过程中起着重要的作用。在刺激一反应联结中,个体学到的是习惯,而习惯是反复练习与强化的结果。
-
习惯一旦形成,只要原来的或类似的刺激情境出现,习得的习惯性反应就会自动出现。
那基于上述理论,强化学习就是训练对象如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。
强化学习的主要特点
-
试错学习: 强化学习需要训练对象不停地和环境进行交互,通过试错的方式去总结出每一步的最佳行为决策,整个过程没有任何的指导,只有冰冷的反馈。所有的学习基于环境反馈,训练对象去调整自己的行为决策。
-
延迟反馈: 强化学习训练过程中,训练对象的“试错”行为获得环境的反馈,有时候可能需要等到整个训练结束以后才会得到一个反馈,比如Game Over或者是Win。当然这种情况,我们在训练时候一般都是进行拆解的,尽量将反馈分解到每一步。
-
时间是强化学习的一个重要因素:强化学习的一系列环境状态的变化和环境反馈等都是和时间强挂钩,整个强化学习的训练过程是一个随着时间变化,而状态&反馈也在不停变化的,所以时间是强化学习的一个重要因素。
-
当前的行为影响后续接收到的数据:为什么单独把该特点提出来,也是为了和监督学习&半监督学习进行区分。在监督学习&半监督学习中,每条训练数据都是独立的,相互之间没有任何关联。但是强化学习中并不是这样,当前状态以及采取的行动,将会影响下一步接收到的状态。数据与数据之间存在一定的关联性。
强化学习实际开展中的难点
我们实际在应用强化学习去训练时,经常会遇到各类问题。虽然强化学习很强大,但是有时候很多问题很棘手无从下手。
Reward的设置: 如何去设置Reward函数,如何将环境的反馈量化是一个非常棘手的问题。比如在AlphaGo里面,如何去衡量每一步棋下的“好”与“坏”,并且最终量化,这是一个非常棘手的问题。有些场景下的Reward函数是很难设置的。
采样训练耗时过长,实际工业届应用难: 强化学习需要对每一个State下的每一个Action都要尽量探索到,然后进行学习。实际应用时,部分场景这是一个十分庞大的数字,对于训练时长,算力开销是十分庞大的。很多时候使用其他的算法也会获得同样的效果,而训练时长,算力开销节约很多。强化学习的上限很高,但如果训练不到位,很多时候下限特别低。
容易陷入局部最优: 部分场景中Agent采取的行动可能是当前局部最优,而不是全局最优。网上经常有人截图爆出打游戏碰到了王者荣耀AI,明明此时推塔或者推水晶是最合理的行为,但是AI却去打小兵,因为AI采取的是一个局部最优的行为。再合理的Reward函数设置都可能陷入局部最优中。
其它
什么是有模型的算法,无模型算法,在线学习?
有模型算法就是站在上帝视角,开了天眼的情况,我甚至可以不需要亲自试验只靠推演就可以知道怎么走。
无模型算法:没有上帝视角的,我是置身于这个迷宫里,只有亲自走了试了才知道具体的情况。
在线学习: 我在这个迷宫里不停的学习,走一步看一步。