赞
踩
一般机器学习分为有监督学习和无监督学习,它们的区分依据是用于训练的数据集中是否提供预期输出来指导学习。而强化学习不属于这两种里面的任何一个,因为他不需要事先准备数据集,而是通过与环境交互获取训练数据,然后通过一种称为奖励的概念来指导学习。
建议先了解神经网络、梯度下降。
首先约定一下符号。学习过程开始后,智能体观察环境所获得状态记为 s1,然后根据当前状态 s1,采取行为 a1。行为作用到环境,导致状态发生变化,记为 s1 变为 s2。同时环境反馈奖励 。这是第一轮学习。
第二轮中,智能体观察到状态 s2,采取行为 a2,获得奖励 r2,状态由 s2 变为 s3。后续循环这个过程,数字表示轮次。
则一整个学习过程可记为如下:
τ 中共有 T 次操作。
如果以打手机游戏为例,s 为屏幕像素,r 为释放技能或走位,击杀基于奖励 r 为 10,赢得游戏给予奖励 1000,输掉游戏给予奖励 -1000。τ 为一局游戏的整个过程。
记第 n 局游戏为:
要学习什么呢?学习根据当前状态,判断采取尽可能好的行为的能力。可以通过神经网络或其他算法采取行动。那么这里就需要学习你所使用的算法中的参数,这里统一把参数记为 θ。简单起见,我们就以感知机作为决策模型,那么 θ 就是下面的参数。
学习目标是使得奖励最大化。用公式表示如下:
解释一下这个公式。
θ 为当前参数数值;P(τ|θ) 为打出游戏状况为 τ 的概率;R(τ) 为 τ 中获得的奖励总和,即 r1+r2+…。那么根据数学期望知,当前智能体打完所有的可能的游戏对局情况 τ,所得到的平均奖励可记为:
但是一般情况下,不可能让智能体打完所有的对局情况的,所以这个公式没办法计算。退一步讲,我们可以使用大数定律。即,让智能体打 N 局游戏,N 足够大,那么就近似为平均奖励为:
我们的目标就是让这个平均奖励尽可能大。那么这个函数可以理解为损失函数,我们需要通过调整 θ 对这个函数进行优化。
怎么做呢?我们可以使用梯度下降来更新参数 θ。即求解如下:
接下来推导一下如何更新 θ:
假设我们当前已经学习了若干组 τ,记第 i 组为
一组 τ 中由若干轮游戏对局情况,每轮记为
根据梯度下降,对于第 i 组 τ,θ 更新规则如下:
其中,η 是学习率,▽ 为梯度。
那么梯度怎么求?如下:
这个梯度公式不难理解。由于只有 P(τ|θ) 中包含 θ,因此▽可以直接挪到 P(τ|θ) 前。
然后我们进而求解 ▽P(τ|θ):
这里通过 log 将乘法转换为加法,方便求解。
进一步我们知:
我们上面说不可能让智能体打完所有的对局情况,因此:
到这一步,怎么求 ▽logP(τ|θ) ?我们可按照全概率公式先将 P(τ|θ) 展开。我们这里简单一些,展开如下:
按照全概率公式展开的话,并不是这样的。为了避免太复杂,我们这里考虑每次状态变化不受行为影响,完全独立,来简化一下。
然后我们知道:
最后整理一下:
然后我们就可以更新 θ 了,也就是说我们可以使用强化学习来学习模型了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。