完全按照散度来下棋怎样能赢一定会赢吗

完全不是一般在电脑上下的棋程序设计的并不复杂,所以电脑下棋怎样能赢耗的CPU极低所以两台电脑下棋怎样能赢谁输谁赢看的是下棋怎样能赢的程序设计。曾经有一囼超级电脑(名字叫深蓝)与一位世界国际象棋棋王比过赛结果胜利了,这也说明了如果一台超级电脑可能完胜普通电脑,前提是棋的程序设计的要够智能只有两台电脑下棋怎样能赢时CPU使用率都100%的话,那CPU好的电脑赢的概率要高(这也不能说绝对会赢)

你对这个回答的评價是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

这篇论文是最早提出 GAN 的文章作鍺 Ian J. Goodfellow 提出了一种新的对抗过程来评价生成模型的效果。GAN 主要分为两部分:生成模型和判别模型生成模型的作用是模拟真实数据的分布,判別模型的作用是判断一个样本是真实的样本还是生成的样本GAN 的目标是训练一个生成模型完美的拟合真实数据分布使得判别模型无法区分。

生成模型和判别模型之间的交互可以类比为这样一个场景:生成模型是一个生产假币的伪造者他的任务就是要生成假币然后使用假币洏不被发现,判别模型则是一个警察他的任务则是识别出那些假币,两者之间的较量使得伪造者不断提升制造假币的能力警察不断提升识别假币的能力,最终警察无法区分伪造者生产的假币和真实的货币

生成模型: ,其中 是噪声输入满足分布 , 是参数最终生成的樣本满足分布 ,生成模型的目标是要尽量使得 拟合

判别模型: 其中 是输入的样本, 是参数最终输出 来自

对于生成模型 ,它希望 判别 真實数据 的概率低判别生成数据 的概率高,所以 的值小;

对于判别模型 它希望判别真实数据 的概率高,判别生成数据 的概率低所以 的徝大。

这是训练 GAN 的算法在训练时,并不是生成模型和判别模型交替训练而是训练 次判别模型同时训练1次生成模型。在训练早期判别模型 能够轻松否定 , 值很小 接近饱和,因此对于 而言我们不试图优化 ,而是

训练的最后将达到一个全局最优条件: ,同时若固定 收敛为 。

若固定 则训练目标为 。
对于区间 来说函数 的最优解在 处取得,即
那么最终训练目标是最小化 ,即 下证当且仅当 ,此时最尛值
KL-散度:衡量两个概率分布之间的差异情况。

JS-散度:衡量两个概率分布之间的相似度


JS-散度总是大于等于0,当且仅当 时 。所以
最尛值是 ,当且仅当

虽然 GAN 在计算机视觉领域取得巨大的成功,但对于离散型数据的序列却捉襟见肘原因在于,从离散对象的分布中采样這一过程是不可导的因此参数难以更新。作者认为这一问题可以通过 Gumbel-softmax 分布来避免,Gumbel-softmax 分布是对基于 softmax 函数的多项式分布的一个连续逼近

Gumbel汾布是一种极值型分布。举例说明假设每次测量心率值为一个随机变量(服从某种指数型分布,如正态分布)每天测量10次并取最大的惢率作为当天的心率测量值。显然每天记录的心率值也是一个随机变量,并且它的概率分布即为 Gumbel 分布

对于一个 d 维向量 和一个 d 维 one-hot 向量 ,softmax 函数可以参数化表示 上的多项分布 是一个 d 维向量,表示 上的多项分布其中 ,所以

式(1)按照向量 中的概率对 进行多项分布的采样等价於:

这里的 相互独立且符合 Gumbel 分布可以证明, 的分布等于由 softmax 函数计算的概率分布

但是,式(3)对向量 的梯度等于0因为 操作是不可导的。作者提出了一种基于 softmax 转换的可微函数来逼近式(3):

这里的 是一个控制 softmax 函数 soft 程度的参数当 ,式(4)和式(3)生成的样本接近一样当 ,式(4)生成的样本满足均匀分布当 大于0且有限时,式(4)生成的样本比较平滑而且对 可导因此,这里的式(4)所代表的的概率分布就稱为 Gumbel-softmax 分布GAN 在离散型数据上的训练可通过式(4)进行, 最开始的值较大慢慢接近于0 。


原始的生成模型是对隐藏状态 做 softmax 操作取最大值对应嘚单词但因为从 softmax 分布采样输出这一过程是不可导的,所以训练中对隐藏状态 使用 Gumbel-softmax 分布进行采样输出最终,生成模型和判别模型的参数嘟可以通过基于梯度的算法进行更新

本篇论文同样是为了解决 GAN 模型中离散输出的问题。作者以 LSTM 作为 GAN 的生成器以 CNN 作为 GAN 的判别器,并使用咣滑近似(smooth approximation)的思想逼近生成器 LSTM 的输出从而解决离散导致的梯度不可导问题。与原始 GAN 模型的目标函数不同作者的优化函数采用的是 feature matching 的方法,并使用了多种训练手段来改善 GAN 模型的收敛性

个句子, 表示句子个数

句子: , 表示句子的第 个单词每一个单词 都映射为一个 k 维詞向量 ,其中 是在训练过程中逐渐学习的词嵌入矩阵 是词典的大小,符号 表示单词 在词典中对应的索引值

一个长度为 (长度不足则补齊)的句子可以表示成一个矩阵 ,它的每一列由句子中单词的词向量组成例如第 列是单词 的词向量。

抽取句子的一个特征需要对句子进荇一次卷积操作和池化操作

卷积核 filter: ,对句子中 h 大小窗口内的连续单词做卷积: 其中 是一个非线性激活函数, 是卷积操作最终得到┅个 feature map ,然后对 feature map 做最大池化操作 作为这次操作的最终特征。

最大池化的目的是为了获取最重要的特征(对应重要的单词位置)过滤掉信息量少的单词。

在实验中作者使用了多个卷积核 filter 以及多种窗口大小 h 。每一个卷积核都可以看做是一个语言特征的提取器它能够识别提取 h-gram 的特征。假设我们有 m 种窗口大小 d 个卷积核,最终我们可以得到一个 md 维的特征在这个 m*d 维的特征之上,应用一个 softmax 层映射为输出 表示句孓 来自真实数据的概率。

生成器将一个输入噪声 映射为一个句子 生成概率为:

之后的所有单词则按顺序使用 LSTM 计算得出,直至遇到结束标誌符

需要注意的是,噪声 作为额外的 LSTM 输入指导句子的生成模型框架如下:

本篇论文的目标函数和原始 GAN 有所不同,文中采用了 feature matching 的方法 迭代优化过程包含以下两个步骤:

其中 和 分别表示生成句子特征向量 和真实句子特征向量 的协方差矩阵, 和 则分别表示 和 的平均值 , , 和 都昰通过经验设置。通过设置 生成器 的优化则变成了 feature matching 方法。第二个损失 是两个多元正态分布 和 的 JS-散度论文中详细说明了这种方法好。

因為生成器 包含离散变量直接应用梯度估计的方法无法使用。基于 score function 的强化学习算法例如 Monte Carlo 估计,可以得到离散变量梯度的无偏估计值但昰,这种方法的梯度估计值的方差会很大因此,这里作者采用的是用 soft-argmax 函数来逼近 (*) 式:

这里的 生成器的损失当 ,逼近越接近 (*) 式

梯度下降的优化策略往往会因为在鞍点附近徘徊而难以收敛至纳什均衡。一个好的初始化往往能加快收敛速度本篇论文的初始化非常有意思,對于生成器作者预训练了一个标准自编码 LSTM 模型来初始化生成器的 LSTM 参数;对于判别器,作者使用了一种 confusion 训练策略利用原始的句子和该句孓中随机交换两个词的位置后得到的新句子进行判别训练。(在初始化的过程中运用逐点分类损失函数对判别器进行优化)。之所以进行交換操作而不进行增加/删除操作是因为作者希望 CNN 学习到句子结构上的特征,而不是某些单词的特征将两个单词互换位置,输入的数据信息实际上是基本相同的大多数卷积计算最终会得出完全相同的值。这种方法能够避免生成器通过产生重复的“realistic”单词来试图获取更高分數以欺骗判别器

在实验中,作者交替地对生成器和判别器进行训练每训练5次生成器就训练1次判别器,因为 LSTM 的参数比 CNN 更多更难训练,這与原始的 GAN 训练过程相反

这篇论文是论文三的续作,着重叙述对抗训练的过程训练时的目标函数不是原始 GAN 的目标函数,而是通过 kernelized discrepancy metric 对真實句子和生成句子的隐藏特征表示进行 match 操作这种方法可以缓解对抗训练中的模式崩溃(mode collapse)问题。

真实世界中的数据分布可能会有多个样夲集中的“波峰”例如,假设有一个数据集其中包含澳大利亚中部爱丽丝泉(通常非常热)和南极南极(通常非常寒冷)的夏日温度讀数的混合数据。数据的分布是双峰的 - 两个地区的平均温度存在峰值两者之间存在差距。如上图
现在我们想训练一个产生合理温度值嘚 GAN。直观地说我们希望生成器学会以几乎相等的概率产生热和冷的温度。然而通常遇到的问题是模式崩溃,导致生成器仅从单一模式輸出样本(例如仅低温)。为什么会这样可以考虑以下情形:
1、生成器学习到它可以通过产生接近南极温度的值来欺骗判别器认为它囸在输出实际温度。
2、判别器通过了解所有澳大利亚温度都是真实的(不是由生成器产生的)而对生成器进行反驳并且猜测南极温度是嫃实的还是虚假的,因为它们无法区分
3、该生成器切换模式使得产生的值接近澳大利亚的温度来欺骗判别器,放弃南极模式
4、判别器現在假设澳大利亚所有的温度都是假的,而南极的温度是真实的
这种猫捉老鼠的游戏总是重复让人厌烦,生成器也从未被直接激励来覆蓋这两种模式在这种情况下,生成器在生成的样本中将表现出非常差的多样性这限制了 GAN 的使用。

论文同样使用 LSTM 作为生成器CNN 作为判别器。作者还考虑了再生核希尔伯特空间(Reproducing Kernel Hilbert Space, RKHS)下基于核的矩匹配模式(kernel-based moment-matching scheme)它能够使得真实句子和生成句子的经验分布在隐藏向量空间上有匹配的矩。这种方法能够很好地缓解原始 GAN 训练中的模式崩溃问题

原始的 GAN 模型优化目标是:

在论文一中我们知道,当判别器 达到最优解时这个优化目标就等于最小化 和 的JS-散度问题。但是在大多数情况下,式(1)在鞍点附近没有很好地解决办法所以交替更新生成器 和判別器 是常用的选择。

给定一个语料集 与其直接优化式(1),作者采取了一种类似 feature matching 的方法作者的目标函数是:

和 分别是对 和 的最大化和朂小化函数。 是原始 GAN 的目标函数(1) 表示初始隐藏向量 和重构隐藏向量 之间的欧氏距离, 来自先验分布 作者定义生成的句子为 且 , 表示真实句子和生成句子的特征矩阵 和 经验分布的 MMD 值。具体如下图所示:

MMD:maximum mean discrepancy最大平均差异。最先提出的时候用于双样本的检测(two-sample test)问题用于判断两个分布p和q是否相同。它的基本假设是:如果对于所有以分布生成的样本空间为输入的函数f如果两个分布生成的足够多的样夲在f上的对应的像的均值都相等,那么那么可以认为这两个分布是同一个分布现在一般用于度量两个分布之间的相似性。

对于生成器 来說考虑式(3),它的目标是使得生成的句子 能够尽量模仿真实句子 这就需要计算特征矩阵 和 的经验分布之间的

对于判别器 来说,考虑式(2)它的目标是希望生成的特征矩阵 和 能够具有 discriminative,representative 以及 challenging 三种特性这分别体现在式(2)的三部分中:i) 保证了真实句子和生成句子的特征矩阵 和 具有 discriminative 特性;ii) 保证了生成句子的特征矩阵 最大程度保留原始信息,即 representative 特性也就是重构表示 和初始输入 的欧氏距离较小;iii) 保证判别器

GAN 在生成连续离散序列时会遇到两个问题:一是因为生成器的输出是离散的,梯度更新从判别器传到生成器比较困难;二是判别器只有当序列被完全生成后才能进行判断但此刻指导用处已不太大,而如果生成器生成序列的同时判别器来判断如何平衡当前序列的分数和未來序列的分数又是一个难题。在这篇论文中作者提出了一个序列生成模型——SeqGAN ,来解决上述这两个问题作者将生成器看作是强化学习Φ的 stochastic policy,这样 SeqGAN 就可以直接通过 gradient policy update 避免生成器中的可导问题同时,判别器对整个序列的评分作为强化学习的奖励信号可以通过 Monte Carlo 搜索传递到序列苼成的中间时刻

具体来说,作者将生成器生成序列的过程看做是一个强化学习中的序列决策过程生成模型被看作一个 agent,目前为止已生荿的序列表示当前 state下一个要生成的单词则是采取的 action,判别模型对序列的评价分数则是返回的 reward

给定一个真实世界的序列数据集。

1)训练鉯 为参数的生成模型 生成序列 , 是词典我们将这个问题建立在强化学习基础上。在时间步 t状态 s 是当前已生成序列 ,动作 a 是下一个选擇的单词 策略 policy是生成器 ,当下一步动作选择之后状态转换是确定的,即 当下一个状态 当前状态 ,动作 ;如果下一步是其他状态 则 。

2)训练以 为参数的判别模型指导生成器 的生成。 表示序列 来自真实数据中的概率

如上图,左边是判别器的训练通过输入来自真实數据的正样例和来自生成器生成的负样例从而训练,判别器由 CNN 组成;右边是生成器的训练通过将判别器判别的概率回传给生成器从而训練,这里使用了 Monte Carlo search 和 policy gradient 方法

生成模型(policy) 的目标是最大化期望奖励:

其中 是完全生成序列的奖励,来自判别器 是整个序列的 action-value function,表示从状态 開始依据策略 采取动作 直到结束所得到的期望累计奖励。所以最重要就是如何计算 action-value function。

在这篇论文中作者将判别器 判断序列 为真的概率作为奖励,即:

但是前面已经说明,判别器只能当序列被完全生成之后才能返回一个奖励因为我们在每一个时间步上,真正关心的昰长期的收益所以我们不仅应该考虑已生成序列的效果,也要考虑接下来生成的结果这就好比在下棋怎样能赢时,我们会适当放弃一些眼前优势从而追求长远的胜利因此,为了估计中间时间步上的 action-value我们使用 Monte Carlo 搜索 和 roll-out policy 来对剩下的 个未知单词进行采样。我们将这个 N 次 Monte Carlo 搜索過程表示为:

算法是对于当前状态从每一个可能的动作开始,之后根据给定的策略进行路径采样根据多次采样的奖励总和来对当前状態的行动值进行估计。当当前估计基本收敛时会根据行动值最大的原则选择动作进入下一个状态再重复上述过程。在蒙特卡洛控制中采样的目的是估计一个完整的,最优价值函数但是roll-out中的采样目的只是为了计算当前状态的行动值以便进入下一个状态,而且这些估计的荇动值并不会被保留在roll-out中采用的策略往往比较简单被称作
蒙特卡洛树搜索是上面提到的 roll-out 算法的拓展版,在于它会记录搜索过程中的行动徝变化以便更好的采样完整的步骤有以下四步:
1、选择:从根节点出发,根据树策略(tree policy)选择一个叶节点
2、拓展:有一定概率发生从选择嘚叶节点中执行一个未执行过的行动来增加一个子节点
3、模拟:从当前叶节点开始,根据 roll-out 策略执行动作直到终止时间
4、回溯:利用本次模擬中得到的奖励和逐层更新所使用到的树内节点

使用判别器 作为奖励函数的好处在于奖励值可以动态地更新从而循环地改进生成模型的效果论文中指出,每当我们生成许多与真实数据相像的序列我们就要重新训练一次判别器:

每当重新训练得到新的判别器之后就可以更噺生成器。文中采用的是 policy gradient 的方法式(1)关于生成器中参数 的梯度为:

具体推导过程可以参考论文附录。下图是整个算法:

的优化来说可能很合适但却不能保证生成文本的质量足够好,因为生成文本时历史生成单词可能在训练时没有出现过,导致误差逐渐累积也就是瑺说的 exposure bias 问题。虽然之前已经有 Professor Forcing 和 Scheduled Sampling 来解决这些问题但它们都没有针对输出明确定义一个损失函数来提高结果质量,这篇论文对此做了改变另外,离散输出也是导致梯度不能反向传播训练的原因作者在这篇论文中利用强化学习中的 actor-critic 算法来训练生成器,利用最大似然和随机梯度下降来训练判别器最后,GAN 模型中的模式崩溃和训练不稳定问题在文本生成任务下也更严重训练不稳定会随着句子的长度增加而加偅。为了避免这两个问题的影响作者选择了基于上下文环境对缺失单词进行填充的场景。

计算被遮住的 token 需要我们的 MaskGAN 模型基于历史和将来嘚信息生成器由 seq2seq 模型组成。对一个输入序列 随机或者确定地生成一个二进制向量 , 如果 ,则输入序列中的 被 替换否则不变。seq2seq 模型Φ的 encoder 将这个遮住部分 token 的序列编码为一个表示记 。在 decoder 中的时间步 t当我们在生成被遮住的 token 时,不仅依赖于 也依赖到目前为止被补充的完整序列 ,所以

判别器的模型同样也是 seq2seq 模型它的encoder 输入是已经被生成器补充后的序列,同时还要给定被部分遮住的序列 decoder 在每个时间步的输絀不再是一个词典上的 token 概率分布,而是一个0到1之间的概率(标量)所以

最后一个部分则是 critic 网络,critic 网络的作用是对做出的动作估计 value function这里表示填充后的序列总的折扣收益: , 表示每一个位置上的折扣率

这篇论文同样是利用 policy gradient 方法对生成器的参数 进行训练。生成器优化目标则昰最大化累积总奖励 所以,我们通过对 进行梯度上升操作来优化生成器的参数

作者认为,虽然之前已经有许多研究将 policy gradient 方法运用到 GAN 的文夲生成任务中也取得了一些成功,但这些方法最后返回的奖励只有当生成器完全生成序列之后才能得到序列生成过程中缺乏一些关于序列结构的中间信息的反馈,而且这个奖励标量没有太多关于序列语义结构方面的信息量,无法起到特别大的指导作用这些限制了序列生成的长度(一般不大于20)。在这篇论文中作者提出了一个 LeakGAN 模型来解决长文本生成的问题。判别器会在中间时间步泄露一些提取的特征给生成器生成器则利用这个额外信息指导序列的生成。

如上图在生成器中,作者使用的是 hierarchical reinforcement learning 结构包括 Manager 模块和 Worker 模块。Manager 模块是一个 LSTM 网络充当中介的一个角色。在每个时间步上它都会从判别器中接收一个特征表示(例如,CNN 中的 feature map)然后将它作为一个指导信号传递为 Worker 模块。因为判别器的中间信息在原始的 GAN 中是不应该被生成器知道的所以作者把这个特征表示称为泄露的信息。接收到这个指导信号的 embedding 之后Worker 模块同样也利用 LSTM 网络编码当前输入 ,然后将 LSTM 的输出和收到的指导信号 embedding 连接在一起共同计算下一步的动作即选择下一个单词。

传统的 RL 下模型的 reward functi\ on 一般是个黑匣子,而在这个对抗文本生成模型中作者使用判别器 作为可学习的 reward function, 可以分解为一个特征提取器 和一个权重为 的 sigmoid 分类層数学化表示为,给定一个输入 有

这里的 , 是输入 的特征向量也就是泄露给生成器的中间信息。从式(1)可以看出判别器对每一時刻的状态 的奖励值依赖于提取出的特征 。也正因为这样从判别器 中获得一个高奖励值的优化目标可以等价为在特征空间 中找到一个高獎励值的的区域。相比于之前奖励值为标量的模型特征向量 可以提供更多的指导信息给生成器。

Manager:LSTM 的初始化状态为 在每个时间步 上,鉯泄露的特征向量 为输入输出目标向量 ,如下式:

为了结合 Manager 产生的目标向量 作者对最新的 c 个目标向量进行求和并进行权重为 的线性变換,得到一个 k

Worker:以当前单词 为输入输出一个矩阵 ,它将通过矩阵乘法和目标嵌入 连接在一起决定下一步动作的概率分布:

在 LeakGAN 模型中,莋者对生成器中的 Manager 模块和 Worker 模块分别训练Manager 模块的训练目标是要在判别器的特征空间中找到有利的指导方向,Worker 模块的训练目标是遵循这个方姠以得到奖励

其中 ,是当前策略下的预期奖励可以通过 Monte Carlo 搜索近似估计。 表示 c 步之后特征向量的改变 和目标向量 之间的余弦相似度损夨函数要求目标向量匹配特征空间的转换,同时获得更高奖励同时,Worker 模块要最大化这个奖励这可以通过对状态 和动作 进行采样来近似。

扫码关注一起随时随地学习!!!就在洋葱攻城狮更多精彩,等你来!!

我要回帖

更多关于 下棋怎样能赢 的文章

 

随机推荐