内容简介:使用机器学习探索神经网络架构
Google 致力于用更好的产品与服务来切实改善人们的生活,并藉此解决一些世界范围内的问题。因此,Google 不仅在学术层面上进行着对人工智能的研究,也成功地将工程师和科学家团队精心设计的深度学习模型投入实际应用。
例如,搭载了神经网络机器翻译的 Google 翻译,通过不再将句子中的词和短语独立翻译,而是对完整句子整体处理,将翻译误差降低了 55% ~ 85%。而 Google 强大的深度学习模型也在医疗等领域日益发挥着重要作用。
人工设计机器学习模型的过程非常困难,因为所有可能模型的搜索空间十分庞大-通常包括10层网络、约1010个候选网络!因此,设计此类网络往往需要拥有丰富机器学习经验的专家花费大量时间,并开展多次实验。
GoogleNet 架构的设计需要基于卷积架构的初始版本进行多年的仔细实验和细化。
为使机器学习模型的设计过程更易于使用,Google 始终在探索如何实现机器学习模型设计的自动化。在 Google 研究的诸多算法中,进化算法和强化学习算法已经展现了巨大的发展前景。不过本篇将重点介绍强化学习算法以及目前取得的成果。
在 Google 的算法(AutoML)中,控制神经网络可以提出“子”模型架构,然后针对特定任务进行训练与质量评估,并通过评估反馈告知控制器如何在下一轮中改进。接下来,这个过程将重复数千次--生成新架构,测试架构,向控制器提供反馈供其学习。 最终,控制器习得以下做法:对于在留存验证数据集上获得较高精确度评分的架构空间,赋以高可能性;对于评分较低的架构空间,赋以低可能性。下图描述了控制器的学习过程:
Google 已经将这种方法应用于深度学习中的两种重要基准数据集:使用 CIFAR-10 进行图像识别,以及使用 Penn Treebank 进行语言建模。在这两种数据集中,Google 的算法设计出的模型精度可以与机器学习专家(包括 Google 团队专家)设计的最先进的模型相媲美。
那么,它能产生什么样的神经网络?举一个例子:训练一种递归架构,用于预测 Penn Treebank 数据集中的下一个单词。下方左图是人类专家设计的神经网络,右图是通过 Google 的算法创建的递归架构:
机器选择的架构确实与人工设计的架构具有若干共同特征, 例如用添加的方式来对输入内容与此前的隐藏状态进行组合。但是机器选择的架构还拥有一些显著的 新特性--例如包含乘法组合(右图中最左侧的蓝色节点,标记为“elem_mult”)。这种组合对于递归网络而言并不常见,可能是因为研究人员认为采用这种组合并无明显优势。有趣的是,人类设计师最近也提出了这种算法的简化版本,他们认为这种乘法组合实际上能够缓解“梯度消失/爆炸”问题,这表明机器选择的架构能够发现有用的新型神经网络架构。
这种方法也能够解释为何特定类型的神经网络运行效果更好。上图中右侧的架构拥有多条通道,使梯度得以向后流动,这有助于解释为什么 LSTM RNNs (一种人造复发神经网络架构) 的运行效果优于标准 RNNs (一类人造神经网络,其中单元之间的连接形成定向循环)。
未来, Google 将认真分析并测试这些机器生成的架构,进而深入理解这些架构。Google 认为,如果取得成功,这些架构将为研究新型神经网络带来启发,使得专家以外的人士也能够根据自己的特定需求创建神经网络,从而使机器学习能够对所有人都产生深远影响。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。