# 强化学习 [强化学习详解讲解](https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/) ## 强化学习的特点 - 基本是以一个闭环形式 - 不会直接指示哪种行为 - 一系列的actions和奖励信号都会影响之后较长时间 ## 定义 它主要包含四个元素,agent,环境状态,行动,奖励, 强化学习的目标就是获得最多的累计奖励。 我们列举几个形象的例子: 小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左 腿还是右腿,迈出一步后还要迈出下一步。 小孩就是 agent,他试图通过采取行动(即行走)来操纵环境(行走的表面),并且从一个 状态转变到另一个状态(即他走的每一步),当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),并且当他不能 走路时,就不会给巧克力。 ![pic](https://img.zeekling.cn/images/2020/04/25/4a709ecd87121eb9adab776e4e2108f1.png) 上图中agent代表自身,如果是自动驾驶,agent就是车;无人驾驶的action就是车左转、右转或刹车等等,它无时无刻都在与环境产生交 互,action会反馈给环境,进而改变环境; 反馈又两种方式: - 做的好(reward)即正反馈 - 做得不好(punishment惩罚)即负反馈 Agent可能做得好,也可能做的不好,环境始终都会给它反馈,agent会尽量去做对自身有利的决策,通过反反复复这样的一个循环, agent会越来越做的好,就像孩子在成长过程中会逐渐明辨是非,这就是强化学习。 ## 强化学习和监督式学习、非监督式学习的区别 当前的机器学习算法可以分为3种:有监督的学习(Supervised Learning)、无监督的学习(Unsupervised Learning)和强化学习 (Reinforcement Learning),结构图如下所示: ![pic](https://img.zeekling.cn/images/2020/04/25/aad795aadc89c31cca4c142079e6c6ab.png) ### 强化学习和监督式学习的区别 监督式学习就好比你在学习的时候,有一个导师在旁边指点,他知道怎么是对的怎么是错的,但在很多实际问题中,例如 chess,go, 这种有成千上万种组合方式的情况,不可能有一个导师知道所有可能的结果。 而这时,强化学习会在没有任何标签的情况下,通过先尝试做出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整之前的行 为,就这样不断的调整,算法能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。 ## 强化学习主要有哪些算法 强化学习不需要监督信号,可以在模型未知的环境中平衡探索和利用, 其主要算法有蒙特卡罗强化学习, 时间差分(temporal difference: TD)学习, 策略梯度等。典型的深度强化学习算法特点及性能比较如下图所示: ![pic](https://img.zeekling.cn/images/2020/04/25/c3cdddc76f913cf3204f1ec01d15330f.png) 除了上述深度强化学习算法,还有深度迁移强化学习、分层深度强化学习、深度记忆强化学习以及多智能体强化学习等算法。