强化学习(1)

作者: zidea | 来源:发表于2019-09-16 21:12 被阅读0次

    涵盖内容

    • 学会如何把生活中具体问题来强化学习来描述

    • 介绍强化学习的核心内容

    • 经典条件反射

    • 操作条件反射

    • Qlearning

    • DTlearning

    • 更新中

    • 大脑中的强化学习算法

    • 不能不提的 AlphaGo 的实践

    • 实例在游戏中强化学习的应用

    • 实例在无人驾驶中应用强化学习

    导读

    在开始之前我们先介绍一些出现在分享中术语,很好地理解这些术语帮助您更好理解分享内容

    • Agent 是学习主体也就是机器,通过观察环境,观察到就是环境具体的 state ,也就是当前的环境一个快照。AlphaGo 就是 Agent。

    • Environment 环境,这个是 Agent 无法控制,也可以理解为 Agent 的对手,Agent 不断通过跟环境进行抗争来进行学习从而战胜环境。

    • State 就是环境的一个快照,也就是 Agent 所观察到的。

    • Action 是 Agent 根据当前 state 为了获得更高 reward 采取行动

    • Reward 是在某个 state 给予 Agent 反馈,也就是奖罚。

    • Policy 是函数输入 state 输出一个 Action,通常用<mi style="margin: 0px; padding: 0px;">π </mi>来表示,这是一个重点内容。

    什么是强化学习

    一切的学习都是为了解决一个问题,因为问题存在我们才会通过学习找到解决方法。强化学习和我们之前谈到深度学习 CNN 也好,RNN 也好是所有不同的。这里没有训练的数据集,没有通过监督告诉机器什么是好的,什么是不好的。一切都需机器熟悉环境来学习什么是好的,什么是不好的。

    有人夸张地说人工智能就是 AI = RL + DL 强化学习加上深度学习。从现在来看这并不夸张。

    image

    什么是强化学习?我们需要理解好一个基础的概念,帮助我们更好理解深度学习,以及这里概念(术语)之间的关系。然后学习根据 state 采取一定行动 action,然后环境根据 action 和当下 state 给学习者 Agent 一个 reword,也就是环境在当前状态下给 Agent 的 action 的一个反馈,这个反馈可能是奖励也可能惩罚。强化学习就要不断更新策略来得到更好 reward,也就是得到更多奖励。

    经典条件反射

    经典条件反射又称巴甫洛夫条件反射,简单就是一摇铃就给 dog 食物,这样当摇铃即使没有喂 dog 食物,狗也会流口水(这里流口水表示 dog 开心也就是得到 reward)。也就是通过 dog 通过反射方式在摇铃和事物建立关系。

    • State 表示状态例如,也就是一个一个片段,dog 和摇铃就是一个状态,需要花一些心事理解

    • Value 就是表示 us 和 cs 间关系的强弱,这个关系强弱是 dog 建立的,所以是主观。

    • reward 表示 dog 对状态反应,也就是 dog 在这种 state 下是否开心。

      state(s) value(v) reward(r)
      铃,食物 馋 v(铃) >0 好事
      CS US 期望 结果

      |

    • CS(Conditioned stimuli state) 摇铃 state 就是 dog 并不了解的,也就是不是天生会有好感的状态

    • US(Unconditioned stimuli State) 食物就是 US 是 dog 天生就对其有好感的条件刺激

    在这里 state 和 reward 是客观的条件,value 是主观的,可以改变的,这里铃并没有 Reward,因为 dog 不会天生对摇铃有任何感觉。需要定义 value 是通过学习可以改变 Value。我们不断通过摇铃给 dog 食物来更新 value 值。value 表示 US 和 CS 之前关系的强弱。value 是 dog 将食物和铃建立关系,所以是主观的东西。

    RW(Rescorla-Wagner) Model

    image
    • cs us 为是或否

    • A 为学习速率,有关 A 为学习速率应该小于 1 大于 0

    解释一下这个公式吧,这里V(cs)表示对于摇铃的值,默认为 0 因为 dog 对摇铃没有什么感觉,而 V(us) 给事物的值却是 1 表示 dog 喜欢事物,一看到食就会流口水。A 表示学习速率这里取值应该为 0 到 1 之间,也大说明 dog 学习越快,如果为 1 表示 dog 听见一次摇铃给食物后就学会了摇铃会给食物。这显然不对的。这个公式并不难而且很好理解,简单解释一下,V(cs)默认为 0 当摇铃和给食物同时出现 1 * 学习率(例如 0.2) 就会更新 V(cs) 为 0.2 下一次就会更新 0.36 。

    操作性条件反射

    在经典条件反射中 dog 并不需要做任何动作 Action 就可以得到奖励,我们现在进一步思考一下,例如我们都看过马戏团表演,给 dog 数字卡片,如果 dog 能够根据主人或观众说出数字找到对的卡片便可以得到奖赏。这一次 dog 在给卡片的状态下,做出选择正确 action 会根据 action state 得到 reward。

    state(s) action(a) reward(r)
    1 -10 数字卡片 选卡片 食物
    CS US 期望 结果

    介绍一些基本概念,我们分析一下问题找出那些客观条件那些是主观条件

    • 客观(环境) state action reward 定义 reward episode temporal discount

    • episode 表示一个回合

    • temporal discount 表示时间,表示我们训练对时间敏感度,例如下快棋,如果落子时间过长会得到扣分

    • 主观 state value, action value, policy

    • policy 表示如何主观地选择 action

    image

    下面我们研究一个问题,通过问题来学习。上班问题,我们上班总是走一条常规的路开车上班,不过现在有了新的选择通过上外环来避开早高峰来上班,不过在上高速前我们还是需要经过一条小路。我们需要通过评估新路来确定是否以后开车上新路来上班

    这里我们通过尝试走新路,然后通过将新路按小路和高速划分为两个 state 分别为 state1 和 state2 通常我们会用取平均值来求解这个问题,我们这里用 numpy 来解决问题。

    t1 表示每一次通过小路相对于老路同等距离的多花时间,- 号表示多耗的时间

    t2 表示每一次在高速路相对于老快的时间

    t1 = np.array([-5,-8,-2,-3])
    
    s1 小路平均值 -4.5
    
    image

    在小路部分,相比老路是一段比较耗时,所谓 V 为负值

    v1 = 0
    

    我们的到值 -3.3125

    [-2.5, -5.25, -3.625, -3.3125]
    

    接下来我们评估新路高速部分的值。

    v2 = 0
    

    这里得到新路高速部分 V 值为 4.5

    [3.0, 6.0, 7.0, 4.5]
    

    其实我们通常会将小路和高速两端结合在一起进行考虑,因为我们对于小路感受 V 也会受到下一个状态 V 值的影响。

    \gamma 的取值范围,如果 gamma 等于 0 表示我们对未来毫不关心,如果 gamma 等于一个较大的数,就表示我们只在乎明天,小米就是关注未来而华为更看重今天。对于我们普通人我们更关注当前,虽然也注重未来,但是相比于当前,未来显得更加重要。

    image

    其实我们看数据,凭借直觉走小路然后上高速并不是什么不好选择,根据后面高速路的时间我们会选择小路,所以我们对小路感觉V(s)是受到下一个 state 影响,所以需要考虑当前 state 的 V(s‘)也需要考虑进去。

    代码示例

    import pandas as pd
    
    def next_s(s):
    

    next_s 返回下一个 state

    这一部分代码表示相对客观,next_s 会返回下一个 state,我们这里问题小路和高速公路的问题,按路段将 state 分为 2 个 state ,state1 表示小路而 state2 表示高速路。当 s 为 0 表示 state1 作为输入那么他的下一个 state 就是 1 表示高速,如果输入是 1 表示高速返回 -1 表示这一轮结束。

    reward 表示实际耗时,也就是得到奖赏

    state1(小路)耗时比较老路比较多所以 reward 是不好的值,这里用负数表示,相反高速路相对较好返回较大值表示。

    A = .5
    
    V = np.zeros(3)
    
    [-0.92000671  2.628065    0.        ]
    

    相关文章

      网友评论

        本文标题:强化学习(1)

        本文链接:https://www.haomeiwen.com/subject/uivfuctx.html