• 强化学习基本概念


    强化学习基本概念

    本文介绍强化学习的一些基础概念,通过这篇博客梳理后续学习中需要用到的一些名词,主要包括,智能体、环境、状态、动作、奖励、回报、动作价值函数、状态价值函数等,希望能够加深对这些概念的理解。

    1.智能体
    我们每个人都是一个智能体,无时无刻地与真实世界作者交互。智能体可以想象为处在某个环境下的一个动作发出者,如马里奥游戏,智能体就是马里奥,马里奥面对各个障碍时,需要选择(1)跳(2)前进(3)后退(4)朝下,等动作,最终达到终点。我们将智能体记作agent

    2.环境
    环境是与智能体交互的载体,如马里奥游戏的关卡,当智能体做出响应时,环境会不断给智能体发出新的状态,一个状态可以想象成游戏中的一帧画面,整个游戏就是由多帧画面组成的。值的注意的是,t时刻的画面可能有多种,它与智能体选择的动作有关,因此,状态具有随机性。我们将t时刻的状态记作St。

    3.动作
    动作是智能体与环境交互时所发出的,好的动作能够使智能体适应环境,从而获取较高的奖励,而坏的动作可能使得智能体在游戏局中失败,如马里奥在面对一个迎面而来的蘑菇
    时,选择向上跳的动作,而不是往前走,一个时刻的动作也有多种选择,因此,动作也具有随机性。将t时刻的动作记作at。

    4.奖励
    当智能体做出一个动作时,环境给智能体返回下一时刻的状态st, 同时也会给智能体一个奖励,来表示当前时刻智能体所做动作的好坏。比如在马里奥游戏中,迎面而来的蘑菇
    时,选择向上跳的动作,成功躲避障碍物,奖励值为1, 而碰到障碍物奖励值为-100, 游戏结束。
    奖励的作用是使得智能体能在相同的状态下做出动作的修正,以使得它能够更好地去适应环境,奖励的设计会决定游戏的公平和智能体是否能够通过游戏。

    5.回报
    回报是指智能体站在某一状态下,或者关系到未来多个状态奖励的总和,即t时刻的回报是由当前时刻的回报加上t后续时刻回报的总和,且越是后续时刻的回报对当前回报的作用也就越小,可以使用衰减因子对t时刻以后的回报进行加权。举个简单的例子,今天给你100块钱和明天给你200块钱,那肯定是今天给100块的影响更大,因为明天的事情还存在不确定性。因此,今天的回报 = 100 + r 200, 其中r属于[0,1]是衰减因子,表示后续的回报重要性更低。我们将t时刻的回报记作Ut。
    6.策略
    称之为policy,用 π \pi π来表示,策略用于指导动作, π t \pi_t πt是一个概率分布,每个动作,都有不同的概率
    7.动作价值函数
    在同一个状态下,智能体可能选择不同的动作,每个动作所获得的回报是不一样的,比如t时刻,马里奥遇到蘑菇障碍时,选择向上跳的回报是100,而后退的回报是20, 往前的回报是-100,往下蹲的回报是0。动作价值表示的是这些动作所获得的奖励的期望值,即平均值,因此,t时刻的动作价值可以表示为:
    t时刻的动作价值 = [往上跳的回报+往后退的回报+向前的回报+往下蹲的回报]/4, 给定状态St。可以形式化为
    Q ( s t , a t ) = E [ u t ∣ S t = s t , A t = a t ] Q(s_t,a_t) = E[u_t|S_t = s_t,A_t = a_t] Q(st,at)=E[utSt=st,At=at]
    其中, Q ( s t , a t ) Q(s_t,a_t) Q(st,at)表示t时刻的动作价值函数, u t u_t ut表示回报, s t s_t st为t时刻的状态, a t a_t at为t时刻的动作, Q ( s t , a t ) Q(s_t,a_t) Q(st,at)就表示给定状态 s t s_t st下,所有动作回报的平均。 Q ( s t , a t ) Q(s_t,a_t) Q(st,at)可以评估当前状态 s t s_t st下,选择动作 a t a_t at的好坏。我们也可以由动作价值函数可以找t时刻价值最高的动作
    a t = a r g m a x π Q ∗ ( s t , a t ) a_t = argmax_{\pi}Q^*(s_t,a_t) at=argmaxπQ(st,at)
    8.状态价值函数
    状态价值是用来表征在每个状态下,智能体所能获得的回报的平均,它是动作价值的期望,从而消去动作 A t A_t At,形式化如下:
    对于离散型的动作
    V ( s t ) = E a [ Q ( s T , a t ) ] = ( Q ( s t , a 1 ) + Q ( s t , a 2 ) + . . . + Q ( s t , a n ) ) / n V(s_t) = E_a[Q(s_T,a_t)] = (Q(s_t,a_1)+Q(s_t,a_2)+...+Q(s_t,a_n))/n V(st)=Ea[Q(sT,at)]=(Q(st,a1)+Q(st,a2)+...+Q(st,an))/n
    对于连续型的动作,则对 a a a进行积分
    ∫ a Q ( S t , a ) d a \int_a{Q(S_t,a)}da aQ(St,a)da
    9.状态转移
    我们将智能体与环境的一些列交互表示为以下的序列
    s 1 , a 1 , s 2 , a 2 , r 2 , s 3 , a 3 , r 3 , . . . , s t , a t , r t s1,a1,s2,a2,r2,s3,a3,r3,...,st,at,rt s1,a1,s2,a2,r2,s3,a3,r3,...,st,at,rt

  • 相关阅读:
    传输大文件小工具:bypy
    排序算法大总结
    连接虚拟机报错 Could not connect to ‘192.168.xxx.xxx‘ (port 22): Connection failed.
    hadoop04--Kafka集群环境搭建
    无穷级数(数学一)
    奇葩需求记录 各个系统取数据联表展示
    Operations Management: What Is It and Why Does It Matter?
    MCM箱模型建模方法及大气O3来源解析
    微服务注册中心技术选型:5种主流注册中心,哪个最香?
    中创人民云|党管数据是如何保证国家数据安全的
  • 原文地址:https://blog.csdn.net/CCSUXWZ/article/details/126259226