强化学习概念

与传统的有监督学习和无监督学习不同,强化学习重点研究在交互中学习的计算性方法。学习者不会被告知应该采取什么动作,而是必须自己通过尝试去发现哪些动作会产生最丰厚的收益。同时,动作往往会影响的不仅仅是即时收益,也会影响下一个情景,从而影响随后的收益。试错延迟收益是强化学习两个最重要最显著的特征。

 强化学习要素

1. 策略 - policy

策略是智能体在特定时间的行为方式,是环境状态到动作的映射。策略可能是一个简单的函数或查询表,或者可能涉及大量的计算,如搜索过程。一般来说,策略可能是环境所在状态和智能体所采取的动作的随机函数。

2. 收益信号

强化学习的最终目标是最大化长期总收益。在每一步中,环境向强化学习智能体发送一个标量数值。因此收益信号是改变策略的主要基础。如果策略选择的动作导致了低收益,那么可能会改变策略。一般来说,收益信号可能是环境状态和在此基础上所采取的动作的随机函数。

3. 价值函数

收益信号表明在短时间内什么是好的,而价值函数表示了从长远的角度看什么是好的。

一个状态的价值是一个智能体从这个状态开始,对将来累积的总收益的期望。(Bellman Expectation Function)

因此,我们在制定和评估策略时最重要的是价值,收益是环境直接给予的,但是价值必须综合评估,并根据智能体在整个过程中观察到的收益序列重新估计。

4. 环境模型(可选)

对环境建立的模型是对环境反应模式的模拟。给定一个状态动作,模型就可以预测外部环境的下一个状态下一个收益。model-based方法是指使用环境模型和规划解决问题,规划是指在真正经历之前,先考虑未来可能发生的各种情景,从而预先决定采取何种动作。model-free方法无需建立环境模型,而是直接地试错。

多臂赌博机问题 

问题定义

你要重复地在k个选项和动作中进行选择,每次做出选择之后,你都会得到一定数值的收益,收益由你选择的动作决定的平稳概率分布产生,目标是在某一段时间内最大化总收益的期望。通过多次的重复动作选择,你要学会将动作集中到最好的控制杆上,从而最大化你的奖金。

开发与试探

如果你持续对动作的价值进行估计,那么在任一时刻都会至少有一个动作的估计是最高的,我们将这些对应最高估计价值的动作称为贪心动作。当你从这些动作中选择时,我们称此为“开发”当前你所知道的关于动作的价值的知识。如果不是选择贪心的动作,我们称此为“试探”。“开发”对于最大化当前这一时刻的期望收益是正确的做法,但是“试探”从长远看可以带来总体收益的最大化。试探与开发的选择依赖于我们得到的函数估计、不确定性以及剩余时刻的精确数值。

动作 - 价值方法1 —— 采样平均方法

动作价值的真实值是选择这个动作时的期望收益,一种估计动作价值的方式就是计算实际收益的平均值,这种方法被称为采样平均方法。公式中 

强化学习在策略上加入一项loss与在设置奖励有什么区别_强化学习

 表示随机变量,当predicate为真时其值为1,反之为0。当分母为0时,

强化学习在策略上加入一项loss与在设置奖励有什么区别_python_02

 被定义成默认值,比如0。

                                                         

 贪心是最简单的动作选择规则,即选择具有最高估计值的动作,记作 

强化学习在策略上加入一项loss与在设置奖励有什么区别_随机函数_03

强化学习在策略上加入一项loss与在设置奖励有什么区别_python_04

 - 贪心算法是一种解决开发与试探平衡问题的算法,大部分时间都表现得很贪心,但以一个很小的

强化学习在策略上加入一项loss与在设置奖励有什么区别_python_04

 概率从所有的动作中等概率随机地做出选择。这种方法的优点是如果时刻可以无限长,则每个动作都会被无限次采样,根据大数定律,确保所有的 

强化学习在策略上加入一项loss与在设置奖励有什么区别_python_02

 收敛到 

强化学习在策略上加入一项loss与在设置奖励有什么区别_贪心算法_07

,也意味着最优动作的概率会收敛到大于 1 -

强化学习在策略上加入一项loss与在设置奖励有什么区别_python_04

 。

增量式实现均值计算

计算动作价值的公式可以通过维护所有收益信号的记录来实现,但随着收益越来越多,内存和计算量会随着时间增长,每增加一次收益就需要更多内存存储和计算资源对分子求和。这其实不是必须的,我们可以设计增量式公式以小而恒定的计算来更新平均值。

                                                   

强化学习在策略上加入一项loss与在设置奖励有什么区别_人工智能_09

                                       新估计值 

强化学习在策略上加入一项loss与在设置奖励有什么区别_贪心算法_10

 旧估计值 + 步长 * [目标 - 旧估计值]