5月29日,我们将开始
Python神经网络课程,该课程讨论深度机器学习,并教您如何解决由深度学习工程师管理的最复杂的任务。 为了展示机器学习领域中有趣且多方面的工作,我们建议您熟悉一系列有关Python中神经网络的文章的翻译。

什么是MuseNet?
我们创建了MuseNet并将其呈现给您-MuseNet-一个深度神经网络,可以使用十种不同的乐器创作四分钟的音乐作品。 MuseNet通过结合不同的音乐风格进行实验:从乡村音乐到莫扎特的杰作,再到披头士乐队的不朽作品。
网络的基础并不是我们对音乐的理解和理解,而是在数十万个MIDI文件中找到和声,节奏和风格样本的能力,然后创建自己的作品。 MuseNet神经网络使用与GPT-2相同的技术-经过训练的大型模型,可以预测文本和音频中的最佳序列。 知道许多风格后,网络就可以创建不同世代音乐的完全独特的组合。
作曲者和工具代币
我们为作曲家和各种乐器创建了令牌,以使MuseNet对网络创建的样本具有最大的控制权。 在培训期间,将作曲家和乐器的代币添加到每个样本中,这有助于网络学习在预测中使用此信息。
长期结构
MuseNet使用
Sparse Transformer的重新计算和优化的内核来训练72级网络。 我们认为,音乐生成是测试和开发稀疏变压器功能的非常成功的利基市场。
数据收集与处理
我们收集了各种来源的MuseNet培训数据。
ClassicalArchives和
BitMidi项目为我们提供了很多帮助,他们
将其庞大的收藏品
交给了我们。 我们还使用了Internet上各种音乐的集合:爵士,流行音乐,非洲,印度和阿拉伯音乐。 此外,我们使用了
MAESTRO系列。
在考虑到令牌集的情况下,对串行数据进行培训,我们要求网络预测下一个令牌。 我们尝试使用几种不同的方法来编码MIDI文件。 首先,我们考虑了和弦方法,该方法将同时听起来的每个音符组合作为一个独立的和弦并分配了相应的音符。 我们还尝试压缩音乐模式,重点放在每个音符的开头。
bach piano_strings start tempo90 piano:v72:G1 piano:v72:G2 piano:v72:B4 piano:v72:D4 violin:v80:G4 piano:v72:G4 piano:v72:B5 piano:v72:D5 wait:12 piano:v0:B5 wait:5 piano:v72:D5 wait:12 piano:v0:D5 wait:4 piano:v0:G1 piano:v0:G2 piano:v0:B4 piano:v0:D4 violin:v0:G4 piano:v0:G4 wait:1 piano:v72:G5 wait:12 piano:v0:G5 wait:5 piano:v72:D5 wait:12 piano:v0:D5 wait:5 piano:v72:B5 wait:12
在培训期间,我们:
- 我们以音高的音阶移动音符(在训练过程中,移调的数量减少);
- 我们增加和减少整体声音和单个样本的声音;
- 我们按时工作:我们加快和减慢构图的各个片段;
- 我们曾经使用过混合令牌。
此外,我们使用类似内置音乐评论器的方法:请他评估乐曲,并确定此样本是根据提供的数据创建的还是旧的。 这样的估计使得有可能在生成过程中选择样本。
整合性
为了使模型具有更结构化的上下文,我们添加了集成。 除了标准的位置积分外,我们还添加了可跟踪样本中时间流逝的积分。 这使您可以正确并同时嵌入同时发声的音符。 我们还添加了两个结构集成,使MuseNet可以了解特定样本应位于总体组成的哪个部分。
MuseNet已经举办了音乐会
那些感兴趣的人可以熟悉MuseNet的工作,神经网络甚至已经
在Twitch上发布了自己的在线音乐会 。 对于那些对在Python和深度机器学习中创建神经网络感兴趣的人,我们举办
了一个开放式网络研讨会 ,讨论课程计划和学生将获得的技能。