手把手写深度学习——用RNN循环神经网络自动生成歌词之理论篇

Posted 沉迷单车的追风少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手写深度学习——用RNN循环神经网络自动生成歌词之理论篇相关的知识,希望对你有一定的参考价值。

前言:RNN的出现,解决了CNN在处理时空序列上的糟糕表现。所谓时空序列可以简单理解上前后的输入是有联系的,比如自然语言处理,我们说的前一句话和后一句话之间是有联系的;智能视频处理,每一帧的前后是有联系的;雷达信号,每个信号之间是有联系的……传统的图像处理,图像中的每个像素点,这些像素值之间是没有联系的。我们利用RNN做一个自动歌词生成器,本文先介绍一下RNN的理论基础。

目录

语言模型

RNN原理和网络结构

参考


语言模型

语言模型(language model)是计算一个句子的概率的模型。自然语言处理中最常见的数据是文本数据。我们可以把一段自然语言文本看作一段离散的时间序列。假设一段长度为TT的文本中的词依次为w1,w2,…,wTw1,w2,…,wT,那么在离散的时间序列中,wt(1≤t≤T)可看作在时间步(time step)t的输出或标签。给定一个长度为TT的词的序列w1,w2,…,wTw1,w2,…,wT,语言模型将计算该序列的概率:

P(w1,w2,…,wT)

如果句子中的每一个词都是独立出现的,那么我们就可以把概率写成:

但是我们前言中说了,自然语言中,每个词肯定相互之间有联系的,如果这个词出现依赖前一个词,这就是二元语法:

 

 同理,一个词出现依赖前两个词,这就是三元语法:

因此,一个词出现依赖于前N-1个次,就是N元语法:

RNN原理和网络结构

  • x是一个向量,它表示输入层的值。
  • s是一个向量,它表示隐藏层的值。
  • U是输入层到隐藏层的权重矩阵
  • o也是一个向量,它表示输出层的值。
  • V是隐藏层到输出层的权重矩阵
  • W是权重矩阵。循环神经网络隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。

将刚才那个抽象图画成具体图:

 按照时间线展开就是:

最后我们用公式表示:

好了,RNN理论能理解这些就够了,后面开始写代码。

参考

以上是关于手把手写深度学习——用RNN循环神经网络自动生成歌词之理论篇的主要内容,如果未能解决你的问题,请参考以下文章

手把手写深度学习——用RNN循环神经网络自动生成歌词之理论篇

手把手写深度学习——用RNN循环神经网络自动生成歌词之理论篇

手把手写深度学习——Pytorch+RNN自动生成邓紫棋风格歌词

手把手写深度学习——Pytorch+RNN自动生成邓紫棋风格歌词

手把手写深度学习——用LSTM生成手写英文文章

手把手写深度学习——用LSTM生成手写英文文章