By Lauren Hannah-Murphy
Program Manager, Google AI
有没有想过如果巴赫玩摇滚的话,他的音乐听起来会是什么样的?探索今天的以人工智能(AI)驱动的谷歌Doodle你就可以得到答案, 我们也想用这样的形式庆祝巴赫——这位有史以来最伟大的作曲家之一的生日并向他留下的音乐瑰宝致敬。巴赫是巴洛克时期的一位音乐家和作曲家,他创作了数百首作品,包括康塔塔,协奏曲,组曲和众赞歌。在今天的Doodle中,你可以创作自己的旋律,通过神奇的机器学习,Doodle将用巴赫的风格演奏你自己的旋律。同时,你也可以通过Doodle来见证这个算法是如何将一些我们都熟悉的旋律“巴赫化”的,亦或者你和巴赫“合作”的乐曲将呈现出怎样更加现代摇滚的风格。
今天的Doodle是由Google Magenta,Doodle和PAIR团队共同完成的。Magenta团队希望通过机器学习帮助用户进行音乐和艺术创作,PAIR团队则希望创造出能够让每个人都能愉快使用机器学习的工具或是体验。
开发这样的Doodle第一步就是创造一个支持它的机器学习模型。机器学习是一种通过展示大量案例,教会计算机自己提出解决方案的过程,而不是像传统的计算机编程那样给出一套计算机需要遵循的规则。在Magenta项目工作的人工智能研究员(AI Resident) Anna Huang开发了Coconet多功能模型,可用于多种音乐任务,例如旋律协调、在音乐不同小节之间平滑过渡以及从零作曲等。
接下来,则是要将模型进行个性化调整使其匹配巴赫的音乐风格。为了达到这样的效果,我们基于巴赫的306首众赞歌训练了Coconet模型。巴赫众赞歌多为四声部,每个声部有着自己的旋律线,一起演奏时就能创造出丰富的和声效果。 这种简洁的结构使其成为机器学习模型的良好训练数据。 因此,当你在Doodle中的模型上创建自己的旋律时,它会将其转换成巴赫风格的旋律。
除了Doodle中的艺术和机器学习元素之外,我们还需要大量服务器以确保来自世界各地的人们都可以使用Doodle。 从过去经验来看,机器学习一直在服务器上运行,即信息从一个人的计算机发送到数据中心,然后再将结果发送回计算机。 如果我们使用相同的方法运行巴赫Doodle,将会产生大量的数据传输流量。
为了避免这种情况,我们使用了PAIR的TensorFlow.js,它能使机器学习全部都在浏览器中进行。 但是,如果遇到用户的计算机或设备无法使用TensorFlow.js运行Doodle的情况,Doodle会启用Google的新的处理单元(TPUs),一种快速处理数据中心机器学习任务的方法。这样一来,今天的Doodle将会是第一个使用TPUs的Doodle。
现在,就请“带领”巴赫前往今天的Doodle,看看你与著名作曲家将会碰撞出怎样的火花!