我应该使用什么类型的神经网络?

时间:2017-12-20 22:44:40

标签: machine-learning neural-network deep-learning lstm recurrent-neural-network

我正在开始一个使用神经网络生成音乐的项目。考虑到我的样本规格,我想知道我应该考虑什么类型的网络。这是我正在使用的。

我正在训练的音乐是作为经典任天堂音响的指令集播放的。所以,显然,我的训练集采用相同的格式。以下是一行说明:

  

行00:E-1 00 F P80 V00 ......:B-0 00 F P80 V00 ......:D-5 00。 P80:1-#00 F V00

我基本上可以解析为与所使用的某些乐器的音高和音量相对应的值。即,我们可以将其更改为像

这样的数组
  

[16,15,11,15,90,1,15]

或其他什么,只是在停球。无论如何,这些指令以非常快的速度被送入音响芯片模拟器(对于3首歌曲来说就是256)。因此,整首歌曲可以表示为一个 2-D阵列。

在我所读到的内容中,LSTM是一种非常流行的音乐制作策略,但我想知道我是否可以做一些像最小化代表整首歌的二维数组丢失的东西?由于每首歌曲发送的指令太多,使用LSTM是否合理?我是否应该从训练完整的歌曲转变为一次制作一些措施?

我也想从头开始做这个项目,而不使用库。我希望做一个现实的神经网络创建是困难和忠实的,但我不希望它疯狂。谢谢。如果您有任何关于如何处理此类事情的资源,请告诉我们!

2 个答案:

答案 0 :(得分:3)

我建议使用递归神经网络(或LSTM)来解决这个问题,因为它是最合适的选择。不要传入整首歌曲,最好将你的输入标记为一定长度的序列,这样可以提高训练的效率。

以下是我在该主题中找到的一些有用资源:

答案 1 :(得分:1)

我曾经在一个与音乐生成有关的项目上工作过,所以有一些想法:

  1. RNN确实是预测音乐的最佳方式。
  2. 我试图通过原始刻度检测批次(但你需要弄清楚你将如何从一个刻度线转到另一个刻度线)
  3. 我在网络上找到了一个更多的想法并与之合作:我分割了音符序列(间隙)和长度。
  4. 上一个答案中的链接是一个良好的开端。

    如果你想让它变得非常困难:将阵列分成笔记间隙和长度;分成批次;为间隙广告长度添加2个RNN图层;训练你的数据。有时模型可以堆叠和零间隙(预测一个注释)但这里的数据清理可能有所帮助。

    祝你万事如意!