思维导图:
监督学习也称有导师学习,给定系统一组输入时,需要给定一组对应的输出,系统在一种已知输入-输出数据集的环境习学习。与监督学习相反的是无监督学习,也称无导师学习。无监督学习中,只需要给定一组输出,不需要给定对应的输出,系统自动根据给定输入的内部结构来进行学习。
强化学习主要是主动对环境进行试探,并根据试探后,环境反馈回来的结果进行评价、总结,以改进和调整自身的行为,然后环境会根据新的行为作出新的反馈,持续调整的学习过程,体现这一思想的学习模式在机器学习领域称为强化学习(Reinforcement Learning, RL),又称增强学习。因此,强化学习是一种痛有监督学习、无监督学习并列的机器学习模式。
强化学习有稀疏并延迟的标签(当前的行为,未来会得到奖励),标签即奖励
1、强化学习的难点
(1)信用分配问题
- 这一时刻的动作和得分,和前一时刻的动作没有直接关系
(2)探索-利用困境
- 当前的奖励不仅是与上一行为有关,还可能来自之前的行为
- 应该满主要当前的得分还是去探索更多的可能性
2、定义强化学习
- 操作者或智能体(agent)
- 状态
当前观察到的东西,比如横杆的位置,球的位置,球的方向,当前环境中的砖块等等 - 动作
比如向左或者向右移动横杆 - 奖励
比如分数的增加 - 策略
在state下采取行动的原则,动力
3、强化学习如何将眼光放长远
马尔可夫决策过程(MDP)
假设下一状态只和现在所处的状态和做的动作有关,和之前的状态和动作没有关系,降低了关系的依赖性
打折的未来奖励
一个马尔可夫决策过程,它对应的奖励总和:
t时刻的未来奖励:
我们知道,在不同的时间采取相同的动作,agent不一定能够得到相同的奖励,未来有不确定性,而且时间间隔较大,影响也会越小,即为打折的未来奖励:
gamma是一个0到1的值,使得我们更少的考虑那些更长远未来的奖励,及时行乐
Rt可以用Rt+1来表示,写成递推式:
以上就是贝尔曼公式。
3、强化学习预估未来收益
Q-learning的定义
Q(s,a0)表示agent在s状态下采用a动作并在之后能够获得最好的打折的未来奖励
假设得到了Q函数,你只要选择Q函数值最大的动作
我们可以采用与打折的未来奖励相同的方式定义这一状态下的Q函数
对于某一状态来说,最大化未来奖励,相当于最大化即刻奖励和下一状态的最大未来奖励之和,通俗讲就是从现在开始把以后的每一件事做好(最大化未来奖励),相当于最大化现在这个时间点的奖励和之后的奖励(下一状态的最大未来奖励之和)。
Q-learning的核心思想
核心思想就是:我们能够通过贝尔曼公式迭代地近似Q函数
最简单的近似方式就是采用一种填表方式学习Q函数,这个表包含状态空间大小的行,以及动作个数大小的列
例如我们有个游戏,从0到4随机的选一个房间,如何通过优化填表,得到每一个房间以最优路径走到房间5的方法
将房间转换成以下的连通图,当你呆在一个房间的时候,是不知道如何走的,所以初始化每一条路径都是0,只有通到 5 才能得到分数
我们能够得到
一、Reward矩阵:状态为行,动作为列(-1为不通,其它值为得分)
二、Q-table:与Reward矩阵维度相同,初始化为0
当我们在第3房间的时候,通过观察reward矩阵能够知道3房间能够通入1、2、4,所以通过Q函数计算:
*R(3,1)为从3进入1,max内为执行3进入1之后的行为(由1进入3,由1进入5)能够得到的奖励,即最大化未来奖励
更新table:
最终收敛为(继续训练会为恒等的Qtable):
将其规范化:
这样沿着最大的方向走,就能找到最优的路径
4、技巧:经验回放
我们可以用Q-learning的算法估计未来奖励,当状态非常多的时候,可以用卷积神经网络近似Q函数
但使用Q值近似非线性的Q函数可能非常不稳定。
最重要的技巧是经验回放
- 在玩游戏的过程中,所有经历都被记录起来
- 训练神经网络时,从记录中随机选取一些mini-batch作为训练数据训练,而不是按照时序的选取一些连续的记录
- 按时序选取,训练实例之间相似性较大,网络很容易收敛到局部最小值
随机选取,其主要作用是克服经验数据的相关性(correlated data)和非平稳分布(non-stationary distribution)问题。它的做法是从以往的状态转移(经验)中随机采样进行训练。这样至少有两个好处:1. 数据利用率高,因为一个样本被多次使用。2. 连续样本的相关性会使参数更新的方差(variance)比较大,该机制可减少这种相关性。
5、算法改进:
- Q-learning算法尝试解决信用分配问题
通过Q-learning,奖励被回馈到关键的决策时刻,因为随着Q-table的收敛,每条路径的奖励会回馈到表中,观察表即可做出决策 - 但依旧存在的问题是:探索-利用困境
在游戏开始阶段,Q-table或Q-network是随机初始化的,它给出的Q值最高的动作是完全随机的,智能体agent表现出的是随机的“探索‘
当Q函数收敛时,要选择的方向会越明确,随机”探索’的情况减少。所以,Q-learning中包含“探索”的成分。但是这种探索是“贪心”的,它只会探索当前模型认为的最好的策略 - 改进技巧
以epsilon的概率选取随机的动作作为下一步动作,1-epsilon的概率选取分数最高的动作
epslion随着时间从1减少到0.1,这意味着开始时,系统完全随机探索空间,最后以固定的概率探索。即总结经验
6、总结
- 首先通过马尔可夫决策过程假设下一状态只和现在所处的状态和做的动作有关,和之前的状态和动作没有关系,降低了关系的依赖性。
- 由贝尔曼公式定义知道当前动作会影响未来的奖励,最大化当前动作的奖励就是最大化未来奖励
- 从而得到Q-learning,即最大化未来奖励
- Q-learning即最大化未来奖励就是我们要优化的目标
(1)我们先初始化每个动作的奖励为0
(2)然后不断尝试(探索)每个动作,并得到奖励(当前奖励和未来奖励),记录在Q-tabel中
(3)因为当前的每一步都采取得到最大奖励的动作,这样不断迭代,收敛得到近似的Q-learning - 这样即可知道在某一状态下我们应该做出什么样的决策,采取东西。