参加
程序员培训成为程序员经常会感受到科技对人们生活带来改版,近期有消息,googleAutoML系统居然自己写了一串机器学习代码,其效率竟然超过了专业的研发工程师。这让我们人类的优越感何存?这些机器人学生啊,学习能力怎么如此强呢?
人工智能可谓是目前最热门的行业,与此同时,相关人才的身价也跟着水涨船高,这也是越来越
多程序员培训选择人工智能专业的原因。根据拉勾网的数据,2017年,人工智能招聘领域,2000人以上大公司平均薪酬25.2k。
在高需求和高薪资的双重刺激下,不管是学生物的,还是学材料的,想要转战AI的人越来越多,这也从侧面验证了为什么吴恩达等AI大牛每次推出新的在线课程都能引发一轮"集体高潮"。
不过,想要转行的同学要抓紧了,AI既然可以速记员,取代翻译,未来有没有可能取代程序员呢?
之前,谷歌开发出的AI自主设计的深度学习模型已经比创造它的工程师还要好了,如今这个AI系统又更进一步,在某些复杂任务上的表现也超越了人类工程师。在人工智能的浪潮下,深度学习模型已经广泛应用于语音识别、机器翻译、图像识别等诸多领域,并取得了非常不错的成果。但是深度学习模型的设计却是一个艰辛且繁复的过程,因为所有可能组合模型背后的搜索空间非常庞大,比如一个典型的10层神经网络就有非常多种神经网络组合,为了应对这样庞大的数量级,神经网络的设计不仅耗时,而且需要机器学习专家积累大量的先验知识。
在人工智能顶级人才匮乏的情况下,为了让机器学习模型的设计过程更加简单,提升研发效率,谷歌于今年5月推出了"AutoML",顾名思义,AutoML实际上就是一种让模型设计过程自动化的机器学习软件,该系统会进行数千次模拟来确定代码的哪些方面可以作出改进,并在改变后继续该过程,直到达成目标。
为了测试AutoML,谷歌将其自行设计的模型用在了专注图像识别的CIFAR-10与语言建模的PennTreebank两大数据集上。实验证明,AutoML设计的模型的性能表现与目前机器学习专家所设计的先进模型不相上下。令人尴尬的是,有些模型甚至还是AutoML团队的成员设计的,也就是说,AutoML在某种程度上超越了自己的缔造者。
5个月过后,AutoML又往前迈进了一部。据外媒TheNextWeb报导,在某个图像识别任务中,AutoML设计的模型实现了创纪录的82%的准确率。即使在一些复杂的人工智能任务中,其自创建的代码也比人类程序员更好,比如,在为图像标记多个对象的位置这一任务中,它的准确率达到了42%;作为对比,人类打造的软件只有39%。
AutoML的进展超出了很多人的预期,那么为何机器在设计深度学习模型这一任务上表现的如此出色?先让我们来了解下AutoML的工作原理。
作为AI领域的领头羊,谷歌其实暗地里做了不少尝试,包括进化算法(evolutionaryalgorithms)和强化学习算法(reinforcementlearningalgorithms)等,并且都展现了不错的前景,而AutoML则是谷歌大脑团队利用强化学习取得的成果。
在AutoML架构中,有一个名为"thecontroller(控制器)"的RNN(循环神经网络),它可以设计出一种被称为"child"的模型架构(子模型),而这个"子模型"在训练后可以通过特定任务来进行质量评估。随后,反馈的结果返回到控制器中,以此来帮助提升下一次循环中的训练设定。生成新的架构、测试、把反馈传送给控制器以吸取经验--这一过程将重复几千次,最终,控制器会倾向于设计那些在数据集上取得更好的准确性的架构。
AI工程师古筱凡表示,AutoML的运作过程实际上可以分成以下两部分:元学习的热启动:在机器学习框架中寻找效果好的算法;计算不同数据集之间的相似度,相似的数据可以采取类似的超参数。
超参数优化,算法包括:Hyperopt(TPE算法);SMAC(基于随机森林);Spearmint。输入不同的超参数为,以损失函数为准确率,调优器会在随机选择一些值的基础上,利用贪心算法去寻优。
谷歌团队表示,机器自行选择架构的过程其实和人类设计模型架构的过程是有共通之处的,比如两者都采用了合并输入,并借鉴了前向的隐藏层。不过,AutoML也有一些值得一提的亮点,比如机器选择的架构包含了乘法组合(multiplicativecombination),比如上图中AutoML设计的模型的最左边的"elem_mult"。对RNN而言,出现这种组合的情况并不常见,可能是因为研究人员并没有发现这种组合有什么明显优势。但是有意思的地方在于,近来正好有人提议过这种方法,并认为乘法组合能够有效缓解梯度消失/爆炸的问题。这意味着,机器选择的架构对探索新的神经网络架构有很大的帮助。
此外,这种方法或许还能教会人类:为何某些特定类型神经网络的效果更好?比如上图右边的架构有非常多的channels,因此梯度可以向后传递,这也解释了为何LSTMRNNs的表现比标准RNNs的性能更好。
现如今,AI专家必须通过本能和试错来不断调试神经网络的内部架构。加州大学伯克利分校研究员RobertoCalandra表示:"工程师的很大一部分工作本质上非常无聊,需要尝试各种配置来看哪些(神经网络)效果更好。"Calandra认为,因为要解决的问题越来越难,神经网络也越来越深,未来设计一个深度学习模型的将会是一个艰巨的挑战。
而从理论上来讲,AutoML未来设计一个深度神经网络所耗费的时间,与人类专家相比几乎可以忽略不计,而且这个由机器设计的模型的效果也会更好,显然AutoML将大有可为。
但是,这并不意味着AutoML会将人类从AI系统的开发过程中剔除出去。所以说参加程序员培训的朋友也无需担心,人类工程师在很多地方还是不可替代的。
实际上,AutoML的主要目的会降低机器学习的门槛,促进AI的民主化。要知道,即便实力雄厚如谷歌,也不敢说自己已经拥有足够的AI人才,因此降低门槛,提高效率,对AI行业的发展至关重要。
谷歌首席执行官SundarPichai在发布会上表示:"如今,这些(AI系统)都是机器学习专家亲手搭建的,而全世界只有几千名科学家能够做到这一点。我们希望让成千上万的开发者也能够做到这一点。"
因此,虽然AutoML可能没有继承谷歌顶尖工程师的理论基础和数学才华,但是它却可以帮助AI工程师节省时间,或者启发他们,为他们提供灵感。
古筱凡也认为,AutoML是真正的机器学习,它把经验性的工作自动化,现在的机器学习只是半成品。AutoML能极大地降低未来机器学习的门槛,将是普通人使用机器学习的利器。
据悉,AutoML团队将会对机器所设计的架构进行深入的分析和测试,帮助AI工程师重新审视自身对这些架构的理解。如果谷歌成功,这意味着AutoML将有可能引发新的神经网络类型的诞生,也能让一些非专业研究人员根据自己的需要创造神经网络,造福全人类,这对于正在进行
程序员培训通往AI工程师的人们无疑也是一个好消息。
未来,AutoML可能不会取代AI工程师,但是机器都这么努力了,你还有什么借口偷懒呢!