强化学习-Q learning
强化学习与神经网络的异同
在线学习与离线学习(online learning and offline learning)
内容 | online | offline |
---|---|---|
理解1 | 一次使用一个数据,一个数据点训练完了直接更新权重 | 一次使用所有数据,一个batch(训练操作)训练完才更新权重 |
理解2 | 定义一个模型,并在把这个模型放入实际操作中,每一次放入一个数据,不断更新模型,模型每一次训练完都可以直接使用,只是训练次数越多模型肯定越准确 | 模型在训练期间就要使用所有数据,然后才能使用 |
优点 | 快 | 精确 |
缺点 | 每次更新权重可能导致某些权重不正确,误导之后的训练或使用 | 需要更大的记忆空间 |
实现方法 | 用一个智能体不断与环境交互,学习如何动作 | 根据已知的数据,利用梯度下降法不断求导,不断逼近0 |
下面这个链接讲的比较清楚
链接: 机器学习中的在线学习与离线学习.
明确第一点:强化学习是一种在线学习,模型的训练是一个不断交互的过程;神经网络是离线学习,一次性放入大量数据进行计算
强化学习的用途
理论: 如果一个问题可以化简为做出一系列连续的决定,而且这个问题可以提炼出环境、状态、回报三个要素,就可以使用强化学习找出一个最优策略
实用:
- 电玩游戏,AlphaGoZero等
- 无人驾驶,换道、超车、加速减速?
- 金融贸易,是否购买股票?
- 。。。。。。
代码集合
ε贪婪策略
深度强化学习DQL
这篇文章非常详细,下面只取用一部分我需要的内容: 深度强化学习与 Deep Q-Learning(DQN).
DQL伪代码:
初始化经验存储器D为容量N
用随机权重θ初始化Q函数
用权重θ‘=θ初始化目标Q函数
循环 episode=1,M:
初始化状态序列S1={x1}和预处理序列ϕ1=ϕ(S1)
循环 t=1,T:
智能体根据当前状态ϕt选择动作at(ε原则)
环境进入下一个状态ϕt+1,给出奖励rt
在存储器D中存储(ϕt,at,rt,ϕt+1)
从存储器D中随机选择出样本小批量的(ϕt,at,rt,ϕt+1)
根据公式计算yj
对(yj−Q(ϕj,aj,θ))^2使用梯度下降法,训练神经网络
每C步重置θ’=θ