字符串生成分布均匀_手把手教你写一个文档生成工具

人工智能模拟人类思维过程的可能性,并不局限于被动性任务(比如目标识别)和大多数反应性任务(比如驾驶汽车),它还包括创造性活动。

到目为止,我们见到的人上智能艺术作品的水平述很低。人工智能述远远比本上人类编剧、画家和作曲家。但是,替代人类始终都不是我们要谈论的主题,人工智能不会替代我们自己的智能,而是会为我们的生活和工作带来更多的智能,即另一种类型的智能。本文,我将使用LSTM来对文本写作做一该要.

生成式循环网络简史

截至 2014 年年底,还没什么人见过 LSTM 这一缩写,即使在机器学习领域也不常见。用循环网络生成序列数据的成功应用在 2016 年才开始出现在主流领域。但是,这些技术都有着相当长的历史,最早的是 1997 年开发的 LSTM 算法。这一新算法早期用于逐字符地生成文本。

如何生成序列数据

用深度学习生成序列数据的通用方法,就是使用前面的标记作为输入,训练一个网络(通常是循环神经网络或卷积神经网络)来预测序列中接下来的一个或多个标记。例如,给定输入 he cat is on the ma,训练网络来预测目标 t,即下一个字符。与前面处理文本数据时一样,标记(token)通常是单词或字符,给定前面的标记,能够对下一个标记的概率进行建模的任何网络都叫作语言模型(language model)。语言模型能够捕捉到语言的潜在空间(latent space),即语言的统计结构。

一旦训练好了这样一个语言模型,就可以从中采样(sample,即生成新序列)。向模型中输入一个初始文本字符串【即条件数据(conditioning data)】,要求模型生成下一个字符或下一个单词(甚至可以同时生成多个标记),然后将生成的输出添加到输入数据中,并多次重复这一过程。这个循环可以生成任意长度的序列,这些序列反映了模型训练数据的结构,它们与人类书写的句子几乎相同。在本节的示例中,我们将会用到一个 LSTM 层,向其输入从文本语料中提取的 N 个字符组成的字符串,然后训练模型来生成第 M+1 个字符。模型的输出是对所有可能的字符做 softmax,得到下一个字符的概率分布。这个 LSTM 叫作字符级的神经语言模型.

采样策略的重要性

生成文本时,如何选择下一个字符至关重要。一种简单的方法是贪婪采样(greedy sampling),就是始终选择可能性最大的下一个字符。但这种方法会得到重复的、可预测的字符串,看起来不像是连贯的语言。一种更有趣的方法是做出稍显意外的选择:在采样过程中引人随机性,即从下一个字符的概率分布中进行采样。这叫作随机采样(stochastic sampling, stochasticity 在这个领域中就是“随机”的意思)。在这种情况下,根据模型结果,如果下一个字符是 e 的概率为 0.3, 那么你会有 30%的概率选择它。注意,贪婪采样也可以被看作从一个概率分布中进行采样,即某个字符的概率为 1, 其他所有字符的概率都是 0。

从模型的 softmax 输出中进行概率采样是一种很巧妙的方法,它甚至可以在某些时候采样到不常见的字符,从而生成看起来更加有趣的句子,而且有时会得到训练数据中没有的、听起来像是真实存在的新单词,从而表现出创造性。但这种方法有一个问题,就是它在采样过程中无法控制随机性的大小

为什么需要有一定的随机性?考虑一个极端的例子一纯随机采样,即从均匀概率分布中抽取下一个字符,其中每个字符的概率相同。这种方案具有最大的随机性,换句话说,这种概率分布具有最大的熵。当然,它不会生成任何有趣的内容。再来看另一个极端一一贪婪采样。贪婪采样也不会生成任何有趣的内容,它没有任何随机性,即相应的概率分布具有最小的熵。从“真实”概率分布(即模型 softmax 函数输出的分布)中进行采样,是这两个极端之间的个中间点。但是,还有许多其他中间点具有更大或更小的熵,你可能希望都研究一下。更小的熵可以让生成的序列具有更加可预测的结构(因此可能看起来更真实),而更大的熵会得到更加出人意料且更有创造性的序列。从生成式模型中进行采样时,在生成过程中探索不同的随机性大小总是好的做法。我们人类是生成数据是否有趣的最终判断者,所以有趣是非常主观的,我们无法提前知道最佳熵的位置。

为了在采样过程中控制随机性的大小,我们引人一个叫作 softmax 温度(softmax temperature)的参数,用于表示采样概率分布的熵,即表示所选择的下一个字符会有多么出人意料或多么可预测。给定一个 temperature 值,将按照下列方法对原始概率分布(即模型的 softmax 输出)

在下一篇文章中,我将以代码的形式表述.

f4193eac79a567510ebb58ef4b591760.png

码龙社

一个有趣,有料,专注于技术,产品,管理,会友的公众号,入群公众号后台回复jq.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值