【导读】C-RNN-GAN是一种连续递归神经网络,它在深度LSTM的基础上进行对抗训练,因此它可以很好地处理连续时间序列数据,例如音乐!
C-RNN_GAN是具有对抗训练的递归神经网络。 模型中有两种不同的深度递归神经模型,即生成器(G)和判别器(D)。 训练生成器以生成与实际数据无法区分的数据,同时训练判别器以识别生成的数据。这是一个博弈问题,达到纳什均衡即当生成器产生判别器无法从实际数据中分辨出来的数据时。 我们定义了以下损失函数LD和LG:
C-RNN-GAN使用特征匹配的方法来鼓励G的更大变化,并通过替换标准生成器损失LG来避免判别器过度拟合。 通常,生成器的目标是最大化判别器所产生的误差,但是通过特征匹配,目标变成了在判别器中的某个级别产生与实际数据匹配的内部表示。
现在我们使用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也能生成音乐,即使它仍然听起来并不像。
https://soundcloud.com/girqw3wvsr4p/music-generated-with-rnn
代码:
https://github.com/subpath/Keras_music_gereration
GAN因为是一种特别难以训练的网络而闻名,如果你想要取得一些令人印象深刻的结果。
即使我喜欢GAN的想法,我更喜欢用RNN生成的版本 - 模型更小,代码更清晰。
与产生图像的GAN相比,音乐模型仍然需要大量开发,以便产生类似于人类制作的音乐的东西。
为您推荐
哟,写Bug呢?Facebook发布AI代码调试工具SapFix
简单粗暴 TensorFlow Eager 教程
【机器学习】损失函数?损失函数!
称霸Kaggle的十大深度学习技巧
教程 | PyTorch经验指南:技巧与陷阱
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ step-by-step: 夕小瑶版神经网络调参指南(上)01/04
- ♥ 神经网络检测:一种自配置的医学目标检测方法01/16
- ♥ 不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络01/03
- ♥ 一般化机器学习与神经网络12/29
- ♥ 深度解析LSTM神经网络的设计原理01/03
- ♥ BP算法是从天上掉下来的吗?12/29
内容反馈