作家
登录

我们分析了最流行的歌词,教你用RNN写词编曲(附代码)

作者: 来源: 2018-03-16 11:55:43 阅读 我要评论

有奖调研 | 人脸辨认功能在互联网行业认知度情况


此文┞饭示了基于RNN的生成模型在歌词和钢琴音乐上的应用。

序列长度和相干问题

介绍

在这篇博文中,我们将在歌词数据集上练习RNN字符级说话模型,数据集来自最受迎接以及最新宣布的艺术家的作品。模型练习好之后,我们会选出几首歌曲,这些歌曲将会是不合风格的不合艺术家的有趣混淆。之后,我们将更新模型使之成为一个前提字符级RNN,使我们可以或许大年夜艺术家的歌曲中采样。最后,我们经由过程对钢琴曲的midi数据集的练习来总结。

在解决这些义务的同时,我们将扼要地商量一些有关RNN练习和揣摸的有趣概念,如字符级RNN,前提字符级RNN,大年夜RNN采样,经由时光截断的反向传播和梯度检查点。

所有的代码和练习模型都已在 github 上开源,并经由过程 PyTorch 实现。这篇博文同样也可用jupyter notebook 浏览。如不雅你已经熟悉字符级说话模型和轮回神经收集,可以随便跳过各个部分或直接进入结不雅部分。

字符级说话模型

我们分析了最风行的歌词,教你用RNN写词编曲(附代码)

在选择模型前,让我们细心看看我们的义务。基于现有的字母和所有之前的字母,我们将猜测下一?字符。在练习过程中,我们只应用一个序列,除了最后一个字符外,序列中的其他字符将作为输入,并大年夜第二个字符开端,作为groundtruth(见上图:源)。我们将大年夜最简单的模型开端,在进行猜测时忽视所有前面的字符,然后改良这个模型使其只推敲必定命量的前面的字符,最后获得一个推敲所有前面的字符的模型。

我们的说话模型定义在字符级别。我们将创建一个包含所有英文字符和一些特别符号(如句号,逗号和行尾符号)的字典。每个字符将被表示为一个独热编码的┞放量。有关字符级模型和示例的更多信息,推荐此资本。

有了字符后,我们可以生成字符序列。即使是如今,也可以经由过程随机抽样字符和固定概率p(any letter)=1和字典大年夜小p(any letter)=1dictionary size来生成句子。这是最简单的字符级说话模型。可以做得更好吗?当然可以,我们可以大年夜练习语料库上钩算每个字母的出现概率(一个字母出现的次数除以我们的数据集的大年夜小),并且用这些概率随机抽样。这个模型更好然则它完全忽视了每个字母的相对地位。

举个例子,留意你是若何浏览单词典:你大年夜第一个字母开端,这平日很难猜测,然则当你达到一个单词典末尾时,你有时会猜到下一?字母。当你浏览任何单词时,你都隐含地应用了一些规矩,经由过程浏览其他文本进修:例如,你大年夜单词中读到的每一个额外的字母,空格字符的概率就会增长(真正很长的单词是罕有的),或者在字母"r"之后的出现辅音的概率就会变低,因为它平日跟随元音。有很多类似的规矩,我们欲望我们的模许可以或许大年夜数据中进修。为了让我们的模型有机会进修这些规矩,我们须要扩大它。

我们想要建模的其实是p(current letter|all previous letters)。起先,这个义务看起来很棘手,因为前面的字母数量是可变的,在长序列的情况下它可能变得异常大年夜。结不雅注解,在必定程度上,应用共享权重和固定大年夜小的隐蔽状况,轮回神经收集可以解决这个问题,是以引出下一?评论辩论RNNs的部分。

轮回神经收集

我们分析了最风行的歌词,教你用RNN写词编曲(附代码)

轮回神经收集是一族用于处理序列数据的神经收集,与前馈神经收集不合,RNNs可以应用其内部存储器来处理随便率性输入序列。

培养音高程度的钢琴音乐模型

因为随便率性大年夜小的输入序列,它们被简洁地描述为一个具有轮回周期的图(见上图:源)。然则如不雅已知输入序列的大年夜小,则可以"展开"。定义一个非线性映射,大年夜当前输入xt 和先前隐蔽状况 st−1 到输出ot 和隐蔽状况 st。隐蔽状况大年夜小具有预定义的大年夜小,存储在每一步更新的特点,并影响映射的结不雅。

如今,将字符级说话模型的前一张图片与已折叠的RNN图片对齐,以懂得我们若何应用RNN模型来进修字符级说话模型。

固然图片描述了Vanilla RNN,然则我们在工作中应用LSTM,因为它更轻易练习,平日可以获得更好的结不雅。

歌词数据集

在实验中,我们选择了55000+ Song Lyrics Kaggle dataset,个中包含了很多近期的艺术家和更多经典的好作品。它存储为pandas文件,并用python包装,以便用于培训。为了应用我们的代码,你须要自行下载。

为了可以或许更好地解释结不雅,我选择了一些我稍微熟悉的艺术家:

  • artists = [
  • 'ABBA',
  • 'Ace Of Base',
  • 'Aerosmith',
  • 'Avril Lavigne',
  • 'Backstreet Boys',
  • 'Bob Marley',
  • 'Bon Jovi',
  • 'Britney Spears',
  • 'Bruno Mars',
  • 'Coldplay',
  • 'Def Leppard',
  • 'Depeche Mode',
  • 'Ed Sheeran',
  • 'Elton John',
  • 'Elvis Presley',
  • 'Eminem',
  • 'Enrique Iglesias',
  • 'Evanescence',
  • 'Fall Out Boy',
  • 'Foo Fighters',
  • 'Green Day',
  • 'HIM',
  • 'Imagine Dragons',
  • 'Incubus',
  • 'Jimi Hendrix',
  • 'Justin Bieber',
  • 'Justin Timberlake',

      推荐阅读

      10个公有云实践成功经验

    因为Seidita的团队已经大年夜云中收集了最佳实践,并将其应用于MetLife本身的数据中间,是以迁徙到Azure和Softlayer能获得额外的好处。“我们已经可以或许在内部和外部应用同样的才能来实现主动化>>>详细阅读


    本文标题:我们分析了最流行的歌词,教你用RNN写词编曲(附代码)

    地址:http://www.17bianji.com/lsqh/40773.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)