back up与converge
RL中的back up是什么意思呢?google了一圈也没搜出来,后来在Sutton的书中找到了。
AI的本质是search,RL可以看成一棵树,每一个node是某一个state或action,每一层表示一个时刻t,则下一层表示t+1.从根,也就是s0,走到target state的叶子结点,就完成了一个episode,每走一步就是一个step,那么back up是什么呢?
Bellman function Vπ(s)表示的是agent在状态s下,以π这个策略,得到的平均累积回报是多少,策略是什么呢?就是在一个状态下应该采取什么action,可以是deterministic,也可以是probabilistic的,因为存在P(s'|s,a),所以才有π(a|s),否则直接定义π(s0)={a0,a1,a2,...,an}即可。不确定性造成了AI的难度。
(式1)
st表示t时刻的状态,st+1表示t时刻,s状态下,执行a后,t+1时刻agent的状态,也就是t+1时刻状态的value会影响t时刻状态的value,这就是backup。
V(s)<-V(s)+α(V(s')-V(s))
用greedy move后的状态的value去update原来state的value,称为backup,原来状态的现在的value和s'的value更相近,
式1就是大名鼎鼎的bellman equation,终极目的就是把它解出来,当然是最快的,矩阵形式:
(式2)
qπ(s,a)表示的是在(s,a)这个状态,动作对,之后执行π策略得到的累积回报的期望,gamma是衰减因子,好像和value function差不多。
接着讲一下Q learning。
(式3)
式3表示的就是Q learning,和式1的形式很像呀,也可以体现backup,那backup和converge有什么关系呢?
(式4)
如果learned value=old value,那么Q value就收敛了。
继续学习一下value iteration和Q learning的关系:
value iteration:
Q learning应该是value iteration的一种,但是Q learning是model free的,也就是不知道转移概率T,应该是现实中大多情况都是model free的,而value iteration是知道转移概率T的。这应该也可以算作Q learning和MDP的区别。
Q learning是RL的一种,RL是P和R都未知,想得到policy,MDP是<S,A,P,R,gamma>都已知。
policy reuse 那篇论文中的实验可能不是严格的MDP,因为它在每一步都引入噪声(x,y coordinate +random value),这个噪声会累积,所以不是Markov.
顺便学习一下policy iteration:
policy iteration 分为两步,先进行policy evaluation,再进行policy improvement。policy evaluation是什么呢?就是第一个公式,在给出policy时,让你求value function。上面用解线性方程的办法,也可以用迭代的办法
那么在reuse past policy的过程中没有进行policy evaluation,因为它本质是value iteration,Q learning。
policy improvement是根据新得到的value function,再得到新的policy。就是policy iteration中的第二个公式。
policy iteration是对policy进行更新,value iteration是对value进行更新;policy iteration循环到policy不变了,value iteration循环到policy is good enough。good enough这个词就很有意思了。他们都属于DP方法。除此之外还可以用线性规划法,MC Tree等等。那他们哪个的收敛速度快呢?
规模比较小的 MDP: 策略一般能够更快地收敛。
规模很大(状态很多)MDP:值迭代比较容易(不用求线性方程组)。
线性规划和动态规划都是精确求解,异步动态规划是近似解法。
back up与converge相关推荐
- glm.fit Warning Messages in R: algorithm didn’t converge probabilities 0/1
glm.fit Warning Messages in R: algorithm didn't converge & probabilities 0/1 # 仿真数据 set.seed(652 ...
- sklearn警告:ConvergenceWarning: lbfgs failed to converge (status=1):
问题 这个警告是训练逻辑回归模型的时候出来的. model=LogisticRegression() train_model("logistic regression",model ...
- 解决在使用numpy.polyfit 时出现的 raise LinAlgError(“SVD did not converge in Linear Least Squares“)错误
numpy.linalg.svd converge #测试talib模块 import talib import numpy as np import pandas as pd import matp ...
- 成功解决ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED L
成功解决ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED L ...
- 成功解决coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to inc
成功解决coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to inc ...
- 【Python】处理ConvergenceWarning: lbfgs failed to converge (status=1):STOP: ...
又是红了一大片: D:\PyCharm\machine_learning_py_codes\venv\lib\site-packages\sklearn\linear_model_logistic.p ...
- 【机器学习】`ConvergenceWarning: Liblinear failed to converge, increase the number of iterations`问题记录
项目场景:机器学习SVC进行训练 手游用户流失预测 问题描述 利用LinearSVC进行训练时,报错: ConvergenceWarning: Liblinear failed to converge ...
- 【预训练GAN】Projected GANs Converge Faster
收敛更快的投影GAN PDF:https://www.cvlibs.net/publications/Sauer2021NEURIPS.pdf Supplementary :https://www.c ...
- :762: ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED
目录 问题描述 原理 问题解决 问题描述 D:\PyCharm\machine_learning_py_codes\venv\lib\site-packages\sklearn\linear_mode ...
- 逻辑回归报错解决方案ConvergenceWarning: lbfgs failed to converge
最近有多名学员反馈执行逻辑回归代码后logist=LogisticRegression()报错,错误提示如下: Anaconda3\lib\site-packages\sklearn\linear_m ...
最新文章
- BM22 比较版本号
- echarts热力背景图_Echarts 图表中设置背景图片
- 常见排序算法(C实现)
- Qt文档阅读笔记-Custom Items Example解析
- PLSQL创建用户及权限分配
- 统计挖掘那些事(六)——强大的逻辑回归(理论+案例)
- 图片命名html,网页切图div+css命名规则
- Fedora 9安装vmware tools解决方案
- java如何对一个表达式开根号_java实现开根号的运算
- wireshark抓包分析怎么看进程_教大家wireshark抓包数据怎么看
- java打开教程,jar文件打开教程
- eclipse debug 多线程
- 计算机网络里面ap是什么,网络ap是什么意思
- CUE 文件及其格式说明
- Android 自定义锁屏图案 View
- GPS基带P码处理总结——P码处理的要素及方法
- 【Unity入门教程】 第八章 人工智能【中国大学MOOC游戏引擎原理及应用】
- 如何使用select()函数
- 在codesys中通过EtherCAT总线驱动IO模块
- echarts 数据区域缩放
热门文章
- 爬虫状态码412状态
- 在Linux下使用“360随身WiFi 2”
- MySQL 更新执行的过程
- SpringSecurity整合OAuth2.0
- Python学习之路 (五)爬虫(四)正则表示式爬去名言网
- 技术前沿与经典文章34:杨振宁国科大演讲全文版
- Golang import 包问题相关详解
- N95口罩的测试用例
- 打包报错:Multiple chunks emit assets to the same filename static/js/chunk-6c337256.33476c81.js
- 转行设计师肺腑之言:离开建筑设计行业的9大理由