美文网首页
对话系统-强化学习的介绍

对话系统-强化学习的介绍

作者: 又双叒叕苟了一天 | 来源:发表于2018-11-18 15:54 被阅读0次

    原文:https://arxiv.org/abs/1805.09461?context=stat.ML

    强化学习

    ​ 在 RL 中,我们考虑一个顺序决策的过程。在该过程中,一个代理(agent)在时间 t 和环境 \varepsilon 交互。代理的目标是做一份特定的工作,例如:移动一个物体, play Go,一个 Atari 游戏或从新闻概括中选择最好的单词。

    其观点就是:给出 t 时刻的环境状态 s_t ,代理根据策略(policy) \pi(\hat y_t|s_t) 选择一个行为(action) \hat y\in \mathcal A=\{1,\cdots,|\mathcal A|\}\mathcal A为输入输出共享的词汇表)并观察该行为的奖励(reward) r_t

    ​ 拿 seq2seq 举例,就是代理根据策略(\hat y_{t'}=\underset{y}{\arg \max}\pi_\theta(y|\hat y_t,s_{t'}))采取行为(一个单词),最终通过像 ROUGE 这样的离散度量产生奖励作为反馈。

    ​ 代理的目标是最大化奖励 R_t=\sum_{\tau=t}^T\gamma^{\tau=t}r_t,其中 \gamma\in [0,1] 为折中直接和未来奖励的折扣元素。

    在策略 \pi下,我们能够定义 Q(s_t,y_t)V(s_t)如下:
    \begin{align} Q_\pi(s_t,y_t)=\mathbb E[r_t|s=s_t,y=y_t]\\ V_\pi(s_t)=\mathbb E_{y\sim\pi(s)}[Q_\pi(s_t,y=y_t)] \end{align}\tag{6}
    于是 Q 函数就能够通过递归来计算:
    Q_\pi(s_t,y_t)=\mathbb E_{s_{t'}}[r_t+\underbrace{\gamma \mathbb E_{y_{t'}\sim\pi(s_{t'})}[Q_\pi(s_{t'},y_{t'})]}_{V_\pi(s_{t'})}]\tag{7}
    给出了上述定义,我们就能够定义一个 advantage 函数将 V 函数和 Q 函数联系起来:
    \begin{align} A_\pi(s_t,y_t)=Q_\pi(s_t,y_t)-V_\pi(s_t)=\\ r_t+\gamma E_{s_{t'}\sim\pi(s_{t'}|s_t)}[V_\pi(s_{t'})]-V_\pi(s_t) \end{align}\tag{8}
    其中,对于一个决定性的策略 \mathbb E_{y\sim\pi(s)}[A_\pi(s,y)]=0。因为在确定性策略中(seq2seq),选择的策略为 y^*=\underset{y}{\arg\max}Q(s,y) 。所以此时,在状态 s_t 下选择的行为只有 y*,所以:
    V_\pi(s_t)=\mathbb E_{y\sim\pi(s)}[Q_\pi(s_t,y=y_t)]=Q_\pi(s_t,y=y^*)\\ A(s,y*)=Q(s,y*)-V(s)=0
    确定性策略:根据一个状态选择行为的方式固定,例如:选择概率最大的那个行为。相反,一些行为,例如:根据行为概率的大小随机选择行为,或者设定一个概率,例如:95% 选择概率最大的行为,5% 随机选择剩余行为,那么这个策略就存在不确定性。seq2seq 策略一般都是选择概率最大的行为,所以是确定性的。

    Q 函数表示的是,在状态 s_t 下选择行为 y_t 期望的奖励。V 函数表示的是在状态 s_t 的情况下,根据策略 \pi 选择一列行为期望奖励的期望。直觉上,V 函数度量了模型能在特定状态 s 下能表现的有多好。而 Q 函数度量了在该状态下选择一个特定行为有多好

    ​ 通过这两个函数,我们就能够获得捕获每个行为重要性的 advantage 函数,通过相减,即式子(8)。它能反映我们在该状态下选择的行为所获得期望奖励,是否能够达到在该状态下,所有根据策略可以采取行为的期望奖励的平均水平

    action 的定义:举个例子就像是文本概括任务中,为一个概括选择下个词,在问答任务中,就像是回答的起始和结束的 index。

    奖励函数的定义:随着任务不同而不同。例如文本概括中的 ROUGE 和 BLEU 度量,图像说明中的 CIDEr 和METEOR。

    state 的定义:通常定义为 decoder 每个时刻的输出状态,可以看看最顶上的图片。

    所以,我们使用 decoder 每个时刻的输出状态 作为模型的当前状态并用它计算我们的 Q,V 和 advantage 函数。

    强化学习的方法

    强化学习中,代理与环境的交互目标是最大化action中reward的期望。于是我们尝试最大化下列目标函数之一:
    Maximize\mathbb E_{\hat y_1,\cdots,\hat y_T \sim\pi_\theta(\hat y_1,\cdots,\hat y_T)}[r(\hat y_1,\cdots,\hat y_T)]\tag{9}

    Maximize_yA_\pi(s_t,y_t)\tag{10}

    Maximize_yA_\pi(s_t,y_t)\rightarrow Maximize_yQ_\pi(s_t,y_t)\tag{11}

    Policy Gradient (PG) ,优化(9)。

    Actor-Critic (AC) ,优化(10)。

    Q-learning models ,通过(7)优化(11),来改善 PG 和 AC 模型。
    Q_\pi(s_t,y_t)=\mathbb E_{s_{t'}}[r_t+\underbrace{\gamma E_{y_{t'}\sim\pi(s_{t'})}[Q_\pi(s_{t'},y_{t'})]}_{V_\pi(s_{t'})}]\tag{7}

    相关文章

      网友评论

          本文标题:对话系统-强化学习的介绍

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