This repository has been archived on 2020-04-25. You can view files and clone it, but cannot push or open issues or pull requests.
ml/rl/README.md

58 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 强化学习
[强化学习详解讲解](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)
### 强化学习和监督式学习的区别
监督式学习就好比你在学习的时候,有一个导师在旁边指点,他知道怎么是对的怎么是错的,但在很多实际问题中,例如 chessgo
这种有成千上万种组合方式的情况,不可能有一个导师知道所有可能的结果。
而这时,强化学习会在没有任何标签的情况下,通过先尝试做出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整之前的行
为,就这样不断的调整,算法能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。
## 强化学习主要有哪些算法
强化学习不需要监督信号,可以在模型未知的环境中平衡探索和利用, 其主要算法有蒙特卡罗强化学习, 时间差分(temporal difference:
TD)学习, 策略梯度等。典型的深度强化学习算法特点及性能比较如下图所示:
![pic](https://img.zeekling.cn/images/2020/04/25/c3cdddc76f913cf3204f1ec01d15330f.png)
除了上述深度强化学习算法,还有深度迁移强化学习、分层深度强化学习、深度记忆强化学习以及多智能体强化学习等算法。