AI For Trading: Character-wise RNNs (97)

在本课中,我们将实现一个字符型 RNN,也就是说此网络将通过每一次学习一个字符来学习一些文本,然后再一次一个字符生成新的文本。

Character-wise RNNs

假设我们想生成新的莎士比亚台词,例如:“To be or not to be”, 我们将一次一个字符将此序列传入我们的 RNN,训练后,此网络将根据它看到的字符,预测下一个字符,以此来生成新的文本。那么,要训练此网络,我们要预测输入序列中的下一个字符,这样,网络将生成与原文本大致一样的一系列字符,我们来看看这个网络的架构是怎样的。

file

Sequence Batching

我们使用数据序列训练 RNN 比如文本、股价、音频等,通过取一个序列,并将其拆分成多个较短的序列,我们可以通过矩阵运算来提高训练的效率,事实上,RNN是对多个序列并行进行训练的,我们来看一个简单的例子, 从 1 到 12 的数字序列,我们可以将它们作为一个序列传给RNN,为了更好地训练,我们可以将它拆为两部分,传入两个序列,[1 2 3 4 5 6] 和 [7 8 9 10 11 12],批量大小对应于我们使用的序列数,所以我们说这里的批量大小为 2,除批量大小外,我们还要选择馈送给网络的序列的长度,例如我们考虑使用 3 为序列长度,那么我们传入网络的第一批数据将是每个小序列的前 3 个值,下一批将包含之后的三个值依次类推,直到到达数据的末尾,我们可以保留一个批量的隐藏状态,并在下一批的开头使用它,这样每个小序列的序列信息将在不同批量之间传递。

为者常成,行者常至