目录
另一种办法是学习optimal action value function,最优动作价值函数Q*。
继续拿超级玛丽举例子
如何让强化学习自动训练超级玛丽?
假设我们训练AI玩玩超级玛丽游戏。
我们的目标是操作Mario多吃金币,避开敌人往前走,打赢每一关游戏。
我们想写个程序让AI来控制agent,我们该怎么做呢?
一种办法是学习一个policy函数π
在强化学习里面叫做policy based learning策略学习,假如我们有了policy函数π,我们就可以用π函数来控制agent做动作了。
每观测到一个状态,St就把St作为π函数的输入,π函数会输出每一个动作的概率,然后就用这些概率来做一个随机抽样,得到at。最后agent执行这个动作at。
AI就是用这种方式来控制agent做动作打游戏。
另一种办法是学习optimal action value function,最优动作价值函数Q*。
在强化学习里面叫做value based learning,价值学习,假如我们有了Q*,agent就可以根据Q*函数来做动作了。
Q*函数告诉我们,如果处在状态S,那么做动作a是好还是坏?
每观测到一个状态St,就把St作为Q*函数的输入,让Q*函数对每一个动作都做一个评价,这样我们就知道向左向右向上每一个动作的Q值,假如向上跳这个动作的Q值最大,Agent就应该向上跳。
因为Q值是对未来奖励总和的期望,如果向上的动作的Q值比其他动作的Q值要大,就说明向上跳的动作将在未来获得更多的奖励。
我们想让超级玛丽有吃到更多的金币打赢游戏,所以就应该选择向上跳这个动作。
有了Q*函数,选择让Q*函数值最大化的a作为下一个动作at。
概括一下
有两种方式,用AI控制agent玩游戏,一种是policy函数π,另一种是用optimal action value function,最优动作价值函数Q*,两种方法都可行,所以强化学习的任务就是学习π函数或者学习Q*函数,只要学到两者之一就行了。
强化学习主要就是学习这两个函数。
如果你设计出一种算法,学到了π函数或者是Q*函数,你就可以把算法用在控制问题上,或者用在小游戏上。