强化学习
强化学习与监督学习的区别:训练数据中没有标签,只有奖励函数
训练数据不是线程给定,而是由行为获得。
现在的行为不仅影响后续训练数据的获得,也影响奖励函数的取值。
训练的目的是构建一个“状态->行为”的函数
状态:描述了目前内部与外部的环境。要使这个智能体(Agent)通过这个函数,决定此时应该采取的行为,最终获得最大的奖励函数值
Rₜ:t时刻的奖励函数值
Sₜ:t时刻的状态
Aₜ:t时刻的行为
我们假设状态数有限,行为数有限
在强化学习中,我们经常运用以下假设:
(1)马尔可夫假设:
(2)下一个时刻的状态只与这一时刻的状态以及这一时刻的行为有关:
(3)下一个时刻的奖励函数值只与这一时刻的状态及这一时刻的行为有关:
强化学习的过程:
(1)在t=0时,环境给出一个初始状态S0~p(S0)
(2)for t=0:end
--智能体(Agent)根据π(s,a)=P(Aₜ=a|Sₜ=s)选择行为aₜ
--环境采样奖励函数:rₜ~R(.|sₜ,aₜ)
--环境产生下一个状态:
--智能体获得奖励函数rₜ和下一个状态
需要学习一个策略(Policy)π(s,a)。这是一个从状态到行为的映射函数
增强学习中以及直到的函数时:
增强学习中需要学习函数是:
强化学习中的待优化目标函数是累积奖励,即一段时间内的奖励函数加权平均值
在这里,GAMMA γ是一个衰减项
决策机制
指定一个决策机制,根据机制获得一条路径,由S0产生a0,由S0和a0产生r0,由S0和a0产生s1……
定义1:估值函数是衡量某个状态最终能获得多少累计奖励的函数:
定义2:Q函数是衡量某个状态下采取某个行为后,最终能获得多少累计奖励的函数:
需要知道π(s,a)和
而需要知道
并不确定和π(s,a)
强化学习算法:
预设π(s,a)的值都为1/A
循环得出,接着用得出,通过再更近π(s,a),如此循环下去,直到和都收敛为止
改一下累积奖励的定义:
因此式子,可以得到Q-Learning算法
核心思想:
重复迭代求取Q(S,A)
得到稳定Q(S,A)后,可以得到
Q-learing算法假设是环境不变
但实际是可能变得。因此要在Q-learning算法中加入探索和利用机制
探索:稍微偏离目前的最好策略,以便达到搜索更好策略的目的
利用:运用目前的最好策略获取较高的奖赏
探索和利用:epsilon-greedy算法:以概率epsilon做探索,以概率1-epsilon做利用
算法流程:
以EPSION的概率随机的选择行为,以1-EPSION的概率选择目前带来最大收益的行为,更新收益函数,完成学习流程