强化学习(2)

作者: zidea | 来源:发表于2019-09-17 19:59 被阅读0次

Policy Learning

首先 policy 是函数,是函数就需要有输入和输出,在 Policy 函数中输入 state 输出执行 action 的概率分布,相同输入 state 而因为 Policy 输出不一定一直某一个 Action。之前我们考虑的情况老路和新路是相对独立,没有关系,我们没有 action 也就是没有选择,如果走小路就一定进入高速。不过我们现在可以从老路切换到高速也是可能。也就是事件不是相对独立,在当前 state 做出 action 会影响下一个 state,反过来下一个 state 还会影响当前的 state。根据我们的行为策略,来确定当前状态有多好

image

最佳的行动策略是什么,现在我们就进入控制论的领域,我们现在变成了网格问题,也就是 Agent 找出口问题,类似密室逃脱问题。Agent 在 2D 平面密室中有上下左右移动来找到最快逃脱的路径。通常将问题转换为强化学习问题,首先确定目标也就是 Agent 需要学到什么,然后区分客观条件和主观条件,主观条件也就是我们能够学到东西。

  • 目标: 用最少步数走到目的。

  • reward reward 是关于 state 函数,reward = R(s)。reward 是可以有变化的但是不会依赖于学习者,不要将 reward 与 Agent 的采用行为相关联。reward 应该是环境个东西而且直观。这里我们将目标的 reward 定义为 1 其他都定义为 -1

  • state 每一个格式就是 state,

  • action 可以上下左右走

  • 已知条件 state action episode

  • temporal discount

现在我们的 state 值不仅因为 state 位置,即使我们 state 离出口很近而 Agent 采取 Action 而导致 Agent 没有走向出口。所以现在 V 不仅因受到 state 影响,还需要考虑到 policy 的影响。这里我们先从简单 policy 入手也就是一个采用等概率随机 Action。我们知道 policy 是 Action 的概率分布。也就是每一个 state 的概率是等同。所以我们在 V 暂时无需考虑 action,所以我们依旧可以用 action 来评估方法来解决问题。之前公式依旧适用该问题。

gsize = [4,4]

我们对密室进行抽象,在左上角和右下角设置出口,在矩阵中用 1 表示密室出口,Agent 每一次可以移动一个格子。

[[1. 0. 0. 0.]

代码没有什么特比的,gsize 就是为了控制 Agent 移动范围。做个游戏开发对于这个算法应该不会陌生。

def state_act(state,action,gsize):
def reward(state, gw):

在 reward 当 Agent 到达出口 state 就会得到 0 reward 其他 state 都是 -1

A = .1

我们这里 gamma 表示未来对当下有多重要,这里设置 1 表示未来和当下同样重要。这里使用随机函数表示 policy 随机等概率输出一个 action

episode = 10
    if k %20 == 0:
[[ 0.  -0.1 -0.3 -0.3]

我们看一看强化学习结果,我们随机找到一个位置[1,2] 也就是矩阵中的 -12.600012 然后看其上下左右值,选择最小 -10 向下移动 agent 然后在 [2,2]位置看其上下左右的值

找出最小值 -8 来到了 [2,3] 然后向下移动一个就到到了出口,也就是 [1,2][2,2][2,3][3,3]

相关文章

网友评论

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

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