写在前面—— ——对于强化学习的建议
- 不要有追求速成的想法
- 对于自己的目标要分类合理的时间
Introduction
经典书籍
课程目的
贝尔曼公式
通过计算state value来评价策略的好坏
动作价值函数
从下面的几个公式可以看出,state value 和action value 是可以相互推导的
贝尔曼最优公式
我们要去求解这个优化问题,得到最优的$\pi$
定理求解
$$x=f(x)$$
虽然下面例子中,策略已经达到最优,但是state value还没有达到最优,所以需要继续迭代
迭代不能无穷的进行下去,所以需要有终止条件,常见的是$|v_k-v_{k+1}|<\epsilon$
最优策略的不变性
只考虑相对价值的大小
一般为了防止绕远路,每一步会给$r=-1$,但其实,这个不止和$r$有关,和$\gamma$也有关系
值迭代与策略迭代
有一个现象:接近目标的状态策略会先变好
蒙特卡洛方法
蒙特卡洛估计
大数定律是根本保证
MC Basic
MC Exploring Starts
如果一个状态在一个序列中出现了多次,该怎么处理?这里对应两种方法,一种是只计算这个状态在序列中第一次出现的累积奖励,这种方法称为”first-visit MC method”;另一种方法是这个状态每次出现时都计算积累奖励,再取平均,称为”every-visit MC method”。
MC Epsilon-Greedy
一开始$\epsilon$比较大,探索性比较强,然后$\epsilon$ 逐渐减小,到结束时$\epsilon=0$,这是就能得到一个比较优的策略
随机近似与随机梯度下降
SA
练习:求解$(x-1)^2-1=0$
int main(){
auto g = [=](double x) -> double{return (x-1)*(x-1)-1;};
double w = 8,a = 100;
for (int i = 1;i <= 1000;++ i){
double w_t = w;
w = w_t - (1./a)*g(w_t);
printf("%.4lf\n",w);
// a += 1;
}
}
SGD
当$w_k和w^*$比较远的时候,sgd基本等同于gd;而比较近的时候sgd呈现出较大的随机性误差
时序差分方法
TD to estimate state value
Sarsa
Q-learning
q-learning 的behavior policy 和 target policy可以相同也可以不同
一开始的探索性应该比较强,然后逐渐减小
值函数近似(value function approximation)
开始的时候波动还比较大,随着访问次数的增多,曲线趋于平稳。曲线最后的星号代表着理论值,也就是说我们不通过运行很多次来找到$d_{\pi}$
$P_{\pi}$是状态转移矩阵,$d_{\pi}$是$P_{\pi}$特征值为1的特征向量
feature vector 中变量的顺序是可以调整的
相比之前的Sarsa,这里value update 是更新的parameter $w$
与原论文中的有些出入,原论文中用了更多的技巧,效果也更好些