作者| Alexander Osipenko
编译|专知、小事
整理|Yingying
【导读】C-RNN-GAN是一种连续递归神经网络,它在深度LSTM的基础上进行对抗训练,因此它可以很好地处理连续时间序列数据,例如音乐!
C-RNN-GAN如何工作?
C-RNN_GAN是具有对抗训练的递归神经网络。 模型中有两种不同的深度递归神经模型,即生成器(G)和判别器(D)。 训练生成器以生成与实际数据无法区分的数据,同时训练判别器以识别生成的数据。这是一个博弈问题,达到纳什均衡即当生成器产生判别器无法从实际数据中分辨出来的数据时。 我们定义了以下损失函数LD和LG:
C-RNN-GAN使用特征匹配的方法来鼓励G的更大变化,并通过替换标准生成器损失LG来避免判别器过度拟合。 通常,生成器的目标是最大化判别器所产生的误差,但是通过特征匹配,目标变成了在判别器中的某个级别产生与实际数据匹配的内部表示。
使用C-RNN-GAN生成音乐
现在我们使用GAN来生成音乐!我使用了这个GitHub存储库中的代码:https://github.com/olofmogren/c-rnn-gan/,它基于原始论文。生成的音乐:
https://soundcloud.com/girqw3wvsr4p/c-rnn-gan-my-results原始论文中生成的音乐:https://soundcloud.com/girqw3wvsr4p/c-rnn-gan-sample
用简单的RNN生成的音乐
与此形成对比的是,用简单的RNN也能生成音乐,即使它仍然听起来并不像。https://soundcloud.com/girqw3wvsr4p/music-generated-with-rnn代码:https://github.com/subpath/Keras_music_gereration
结论
GAN因为是一种特别难以训练的网络而闻名,如果你想要取得一些令人印象深刻的结果。即使我喜欢GAN的想法,我更喜欢用RNN生成的版本 - 模型更小,代码更清晰。与产生图像的GAN相比,音乐模型仍然需要大量开发,以便产生类似于人类制作的音乐的东西。
为您推荐
领取专属 10元无门槛券
私享最新 技术干货