• 【Reinforcement Learning】强化学习基础内容有哪些?


    强化学习基础内容有哪些?此处笔记根据B站课程,王树森老师的强化学习记录而来。【比啃书效果好多了!】一生推!不愧是王树森教授!6小时带我搞明白了【深度强化学习完整版】草履虫都能看懂的!收藏起来慢慢学!(人工智能/深度学习/AI/强化学习)_哔哩哔哩_bilibili

    1.概率论相关的数学知识 Math

    Random Variable随机变量:

            eg:抛硬币,X={x=1,x=2},其中X是随机变量,x是随机变量的观测值

    Probability Density Function (PDF)概率密度函数:(连续的、离散的)

            eg:高斯分布,  概率密度函数如下:

             离散的分布,概率密度如下:

             两个性质:

     Exception期望:(连续的、离散的)

           

     Random Sampling随机抽样:

            eg:抽球游戏(红2,绿5,蓝3)重复多次后,含有统计意义,抽到各色球的概率大致为0.2,0.5,0.3

     

    2.专业术语 Terminologies 

    形象化解释——超级玛丽

     

     

     

     

    State s状态
    Action a动作代理做出动作
    Agent代理
    Policy Π决策策略

    根据观测到的state,决策下一步action,控制agent运动。

    策略函数Π实际上就是概率密度函数,动作的选择是随机的。

    Reward R奖励自定义,奖励函数的好坏,影响强化学习的质量。获得的奖励和要尽可能的高。
    state transition状态转移状态转移可以固定,可以随机。随机性来自于环境,状态转移函数是条件概率密度P(s'|s,a)
    agent environment interaction代理的环境交互

    ________>Agent__________

    |                     ^                        |

    State s(t+1)    |reward r(t)        Action a(t)

    |                      |                        |

    ————Environment<-——---

    2个随机性的来源:

    Actions的随机性:根据策略函数Π,action是随机抽样来的,为什么这样呢?比如,两个人猜拳,如果一个人的选择是固定的,另一个人就很容易预测,他要出什么,那么他就会输。只有随机,别人猜不出,你才有可能赢。
    State transitions的随机性,算出条件概率P,随机抽样下一个状态。

    轨迹trajectory:

    3. Reward and Return

       

    U(t)Return 回报,cumlative future reward,未来累计奖励,随机变量,R(t)的加权和
    R(t)t时刻的奖励,随机变量,不同的action导致不同的reward

         未来累计奖励:U(t)=R(t)+R(t+1)+R(t+2)+……,U(t)越大越好

            R(t)与R(t+1)之间,当前奖励与未来奖励是否同等重要,引入r折扣回报,eg:未来奖励不如当前奖励重要,则R(t)的权重应大于R(t+1)

            Discount Return 折扣回报

            U(t)=R(t)+r*R(t+1)+r^2*R(t+2)+……,U(t)是不同时刻R的加权和

            R(t),U(t)都是随机变量,即R(t)具有随机性,不同的action导致不同的reward

            随机性来自下面两个方面:

            测率函数Π: P[A=a|S=s]=Π(a|s),根据当前状态选择下一动作

            状态转移函数:P[S'=s'|S=s,A=a]=P(s'|s,a),根据当前状态s和action转移至下一状态s'

            在i>=t时,S(i)和A(i)决定了R(i),U(t)与所有的(A(t),A(t+1)……)和(S(t),S(t+1),……)有关

    4.价值函数value function

    U(t)未来奖励总和,随机变量
    Action-value function(QΠ)动作价值函数,评价当前动作好不好。U(t)的期望。去除随机性。与Π函数有关,不同的Π采取不同的策略,对应不同的QΠ。
    Optimal action-value function最优动作价值函数。(QΠ)对Π取最大值。消掉Π
    State-value function状态价值函数,判断当前状态好不好,QΠ对A求期望,消掉A

    U(t)越大越好,知道U(t)就知道快赢了还是快输了?

    U(t)是个随机变量,t时刻,根本不知道U(t)是什么。为了评估当前形势,对U(t)求期望。

    Action-value function动作价值函数

            U(t)是随机变量,依赖于(A(t),A(t+1)……)和(S(t),S(t+1),……),为了消除其随机性,求解期望

            QΠ(s(t),a(t))=E[U(t)|S(t)=s(t),A(t)=a(t)]

             该函数对action打分,判断当前动作好不好,s(t),a(t)是观测值

             进一步的,对Π函数取最大化,则有

            Optimal action-value function最优动作价值函数

            Q*(s(t),a(t))=maxΠ QΠ(s(t),a(t))

    State-value function状态价值函数

            判断当前状态好不好。QΠ对A求期望,消掉A。A符合概率密度函数Π(.|s(t))

            VΠ(s(t))=EA[QΠ (s(t),A)],Π越好,VΠ的平均值越大

    5.强化学习如何控制agent采取合适的action达到最好的state?

            policy Π(a|s):  根据s(t),a(t)~Π(.|s(t)),为agent选择合适的动作——策略学习

            optimal action-value function Q*(s,a): 根据s(t)评价每个动作,at=argmax a  Q*(s(t),a),最大化价值,选择合适的动作——价值学习

    6.Open AI Gym强化学习最常用的标准库

            https://gym.openai.com/

            有以下几类问题:经典控制问题、Atari Game、连续控制问题(模拟控制问题)

    例子:

    1. '''
    2. 强化学习的一个小例子,控制小车受力的运动,使杆子能够垂直立起来。
    3. 这里使一个简单的sample采取动作,小车运动效果并不好。
    4. '''
    5. import gym
    6. def cartPole():
    7. #获取CartPole 的环境,‘env’提供states和reward.
    8. env = gym.make('CartPole-v0')
    9. state = env.reset()
    10. for t in range(1000):
    11. #A window pops up rendering cartpole
    12. #pip install gym[classic_control]
    13. env.render()
    14. print(state)
    15. #随机采取行动
    16. action = env.action_space.sample()
    17. state, reward, done, info = env.step(action)
    18. #done=1时,意味着结束(赢或者输)
    19. if done:
    20. print('Finished')
    21. break
    22. env.close()
    23. if __name__=='__main__':
    24. cartPole()

     Summary

     

     

     

     

     

            

  • 相关阅读:
    基于衰减因子和动态学习的改进樽海鞘群算法-附代码
    【工作记录】springboot集成aop实现日志@20230918
    angular 测试 api 说明
    300以内的开放耳机哪款好、300以内神级耳机推荐
    Java SubList 类 Java subList方法 Java ArrayList$SubList 方法特点 SubList 用法
    判断两个时间段交集、时间重叠问题
    IDEA 中使用maven从nexus中下载jar包 图文教程
    802.11局域网的 MAC 帧
    Waves插件
    【Java】方法
  • 原文地址:https://blog.csdn.net/lt_BeiMo/article/details/126567224