这些领域都是可以归到序列类的方法。
7、智能回复
智能回复是另一个序列类的例子。在手机上你如何更快回复邮件,打字很累。
Gmail组开发了一个系统能够去预测邮件回复。第一步就是训练小量模型去预测如果消息是某一类的,如何做简短回复。如果是一个更大,计算能力更强的模型会把消息作为一个序列,尝试预测序列的反应词。比如对于感恩节邀请,最可能的三个答复是“算上我们”,“我们会去的”,“对不起,我们有事没发去”
8、看图说话
把之前开发的图片模型与序列类模型结合一起。图片模型作为输入。这里就不是阅读英文句子了,而是看图片的像素。
接下来就是训练生成字幕。训练集有5个由不同的人写的不同的字幕。总共100万图片,70万条语句。效果如下
两个模型翻译的都不错:1)一个小孩紧紧的抱住毛绒玩具;2)一个宝宝在泰迪熊旁边睡着了。
上面是一些好玩的出错语句,为啥会错,其实你自己看了也明白。
9、机器视觉和翻译结合
翻译团队写了一个app,使用计算机视觉来识别镜头中文字,再翻译成文本,最后再图片本身覆盖翻译好的文字。模型足够小可以运行在所有设备上。
直接在手机上跑一些模型中的重要方法。智能化将转移到设备端,这样不会依赖远程云端的大脑。
研究上的努力和成果转化
Google非常在乎研究转化效率。就是要快速训练模型,理解那些做的好的和不好的,再想下一步实验。模型应该再分钟或者小时,而不是几天或者几周。这样让每个人都做研究更高效。
机器学习发展会更好,更快。Jeff说机器学习社区发展得特别快。人们发布了一篇论文,一周内就有很多研究小组跟进,下载阅读,理解实现,再发布他们自己的扩展。这跟以前的计算机期刊投稿完全不同,等6个月才知道是否被接收,然后再过3个月最后发表。而现在把时间从一年压缩到一周,真不得了。
如何快速训练大量模型
模型的并行化
神经网络有很多固有的并行化,所有不同的神经元与其他的也是保持独立,特别本地接纳的,神经元仅仅接受一小部分比它更低的神经元作为输入。
在不同的GPU上和不同机器上可以做并行。只有边界上的数据需要通信。
数据并行化
优化的模型参数集不应该在一台机器上或者一台中心服务器上,应该有多个模型拷贝,这样协作区优化参数。
在训练过程中读取数据的不同随机部分。每一个拷贝在模型中获取当前的参数集,读取在当前梯度下的一点数据,找到想要的参数调整,在发送调整到中心的参数服务器中。这个参数服务器会对参数做调整。整个过程重复,这个也会在很多拷贝中进行。有些使用500份在500台不同机器上的拷贝,为了快速优化参数并处理大量数据。
一种方式是异步的,每一个都有自己的循环,取得参数,计算梯度,发送它们,不需要任何控制和跟其他的同步,不好的是当梯度返回到参数可能在计算结束后都被移走了。对有些例子可能有50到100的拷贝。还有一种是同步,一个控制器控制所有的拷贝。
TensorFlow
在过去的几年间,我们已经建立了两代用于训练和部署神经网络的计算机系统,并且将这些系统应用于解决很多在传统上来说对计算机而言很难的问题。我们对许多这些领域的最新技术做了很大的改进。
第一代系统DistBeliet在可扩缩性上表现很好,但在用于研究时灵活性达不到预期。对问题空间的更深理解让我们可以做出一些大幅度的简化。
本文来源:不详 作者:佚名