翻译 | AI科技大本营(rgznai100)
参与 | Shawn
从小到大我一直都是Taylor Swift的死忠粉。上初中时,我的 iPod Nano 里播放最多的就是《Speak Now》。还记得上大二时,我趁着爸妈在睡觉,偷偷在 Tumblr 上熬夜寻找《Red》的 小样,因为我当时买不起这张专辑。
上周霉霉放出了新专辑《Reputation》的首支单曲,为了第一时间听到,作为死忠粉的我苦苦熬了好几天夜。但是当《shattering YouTube records》放出《Look What You Made Me Do》时,我有点……失望。Guys,别误会我,我还是听了至少 20 遍。但是霉霉一贯动人的歌词和好听的旋律哪去了?这首歌怎么充满了仇恨和复仇呢?
上周,我想看看机器学习(ML)能否拯救一下霉霉的歌?我将霉霉所有歌的歌词输入到一个循环神经网络(RNN)中,并采样了一些新歌词。以下就是我得到的结果(一点也没改,直接从复制粘贴的):
歌词1
歌词2
上图是机器直接生成的两首样本歌,每首大约 900 个单词。
读了这些生成的歌词,我的结论是霉霉绝对比机器学习写得更好。这些生成的歌词语法怪异,而且很多单词都拼错了,大部分句子根本讲不通,双括号或引号有时都没闭上。但是,RNN 能够通过逗号、行长度和断行学习歌词结构,这点让我挺惊讶!
另外,我还用同一 RNN 生成了可能的歌曲名称。以下是 ML 生成的《Reputation》专辑歌曲的名称:
Go won’t hit me there
Your love through all
We said to be better
Walls if miles
No conversation
I should ever say that
I don’t wanna see the way
I don’t leave you here
You want to me
And we say how I just
Anything a good taft
Love there on more
“Anything a good taft?”听起来有些怪啊。但是还是有些能够打动我的歌词,如 “Your love through all” 或“I don’t wanna see the way”。
技术说明:
我复刻了 Andrej Karpathy 的 char-RNN(https://github.com/karpathy/char-rnn)的一个 Tensorflow 应用。.txt file(https://github.com/irenetrampoline/taylor-swift-lyrics/blob/master/all_tswift_lyrics.txt)里面是Taylor Swift的歌词,这是我从网上找到的。
在这里可以获取我所使用的代码
https://github.com/shreyashankar/char-rnn-tensorflow
我使用的是基于长短期记忆网络(LSTM)的模型,层数为 3 层,隐藏状态大小为12。我用到了 Dropout,不过没做任何超参数测试,所以模型还有很大的提升空间。
https://medium.com/towards-data-science/https-medium-com-sh-reya-taylor-swift-or-artificial-intelligence-19f2989ab7a4