一文了解人工智能背后的工作流程及最新进展
时间:2020-07-29 15:01

  学霸君的人工智能程序Aidam以134分的成绩拿下了2017年的数学高考,而且更令人吃惊的是,Aidam仅仅用不到10分钟就完成了所有的考题。这是继AlphaGo挑战柯洁之后人工智能再一次成功吸引了大众的眼球,所有这些触动我们神经的事件都在一次次地向我们表明,人工智能的确已经取得了突飞猛进的发展。首先,在读题阶段,Aidam需要读取试卷上的题目。而试卷上所有题目的表述都是运用我们人类的自然语言,但是这对于机器来说却是一个很大的挑战,他需要能够将自然语言转述成计算机能够理解的符号语言。事实上,这是整个解题过程最大的挑战。Aidam之所以还是有16分的失分,就是因为它没有读懂题意。其次,在读题完成之后,所有的数学题就全部变成了机器可以理解的形式符号语言了。接下来,机器就开始进行它非常擅长的自动推理阶段。其实,自动推理、自动证明虽然在我们普通人看来是一件非常困难的事情,但是对于机器来说却是相对容易的。我们知道,早在1956年人工智能诞生的时候,机器已经可以进行数学的自动证明了。当时,Newell和Simon等人编制的程序“逻辑理论家”可以自动证明罗素的数学经典著作《数学原理》第二章中的38条;而到了1958年,美籍逻辑学家王浩在IBM 704计算机上以3-5分钟的时间证明了《数学原理》中的370条。可以说,自动证明是人工智能发展最早的一个领域。那么,相比较《数学原理》中的艰涩,高考数学题自然也是不在话下的。最后一个环节就是要把机器自动推理得到的结论再次转换类能够理解的自然语言输出出来,它相当于把形式语言再次类的自然语言。这种自然语言的合成相对来说也并不算特别困难,因为形式语言不像人类语言那样具有任意性,而回答问题的自然语言本身也不过是对形式语言进行描述,并让阅卷人能够读懂回答,因此即使输出的话不太像我们人类的表述也并不妨碍整个结果。所以,总体来说,真正的难点就是在第一步,即把题目的自然语言表述成机器能够理解的形式化语言。学霸君是如何完成这的一步的呢?答案就在于机器学习。与AlphaGo一样,学霸君耗费了大量的计算资源来训练一个所谓的RNN人工神经网络,从而完成了从自然语言到形式语言的。据学霸君的CEO张凯磊说,他们用了400台至强十二核64G内存的服务器加上1000台左右的辅助服务器,共同按成了每天30万至50万道题的训练,才有了今天的战绩。无论是AlphaGo还是人工智能高考,虽然它们都有新闻炒作的嫌疑,但从这些事件的背后,我们却能都到有关人工智能的最新发展趋势,这就是深度学习技术与传统的搜索技术的深度结合!事实上,人工智能的发展可谓一波三折,但总体可以归纳为两个大的发展阶段,第一阶段的人工智能的代表就是战胜人类世界国际象棋冠军卡斯帕罗夫的深蓝(Deep Blue)。这一代的人工智能主要运用自动推理和搜索技术,配备上超大规模的知识库完成了令人称奇的计算。第二代人工智能技术是以人工神经网络模型为代表。如果我们将传统第一代人工智能比喻成只会填鸭式获得知识的自动推理器,那么人工神经网络则更像是在“素质教育”下长大的小孩。它的所有知识并不需要人类的,而是它自己学习而来。这两种人工智能各有利弊。第一代AI虽然学习很死板,无法进行举一反三,但是它的所有推理和知识表述都是透明的,我们人类可以读取并理解。但是,神经网络的知识表述方式却是的,人类很难看懂网络中大量权重的含义。而人工智能最新的进展就是将这两派人工智能进行深度的耦合。这样,新型的AI机器将会既具备超强的模式识别能力和举一反三的泛化的能力;同时机器也能够完成深度的思考和推理。例如,著名的AlphaGo就是一个典型的混血儿。在正式比赛之前,AlphaGo将主要调用其强大的自学习功能,通过一种“左右互搏”的方式完成上千万次的对局,从而训练两个深度神经网络:走棋网络和估值网络。走棋网络可以将任意棋局映射为每一个允许落子格点的落子概率;而价值网络则将棋局映射为一个局势评估数值,它们都是通过大量的训练而得到的。在真正比赛的时候,AlphaGo则主要采取所谓的蒙特卡洛搜索技术来完成大量棋局的模拟与规划,并结合走棋网络和估值网络的最终训练结果,完成最终的落子。棋局的搜索就属于第一代人工智能技术,它的本质就是在一个非常的棋局空间之中进行大量的下棋模拟,从而找到一种能够赢棋的走法。蒙特卡洛搜索则是对经典搜索技术的扩展,使得搜索技术可以更好地融合第二代人工智能机器学习框架。最终的结果大家是有目共睹的。如果单纯地依靠机器学习、神经网络,则AlphaGo虽然可以有很好的表现,但仍然无法完成复杂局面的绞杀;如果单纯地依靠搜索技术,则AlphaGo就会失去所谓的大局观,从而导致在局势尚不明朗的时候不知道如何落子。我们可想象一只蚂蚁在一条纸袋上爬来爬去,并是不是地会把纸袋上的黑白状态进行涂写改变。所有者一些都是输入给蚂蚁的指令代码来控制的,这就是图灵机。它是经典人工智能的鼻祖,能够模拟任何强大的计算程序。神经图灵机则是谷歌工程师们发明的一种装置,它将经典的图灵机模型成了“软化而柔性”的版本,每一个部件(例如读写纸袋)都可以用一个神经网络来控制。这样的好处是我们可以对其进行训练,因此这套东西又称为“可微分计算机”,意思是我们可以用反向算法来训练里面的人工神经网络,它的样子如下图所示:这种神经图灵机的功能非常强大,它不仅可以像经典的LSTM神经网络一样完成各式各样的序列生成、翻译等任务,还可以进行复杂问题的规划,甚至自己编程序。神经网络虽然很强大,但是它往往具有一堆不好调的超参数,比如一共有多少层,每层有多少个神经元等等。那么,能否用人工智能的方式自动搜索这些参数呢?我们知道,搜索是经典人工智能的一种非常重要的任务,它可以在一个很大的参数空间中找到我们想要的参数。Google的工程师们探索了一种途径可以利用强化学习算法来实现对神经网络超参数空间的搜索。用强化学习的方法训练一个控制器网络,它是一个RNN,可以用于生成子网络的超参数(例如卷积神经网络中每一个层中的神经单元个数),然后让子网络在这个超参数下去完成一个图像分类的任务,从而得到精确度R。然后利用这个R再来训练控制器。也就是说,我们将控制器作为主体,将子网络当作是,子网络的表现(精度R)作为回报反馈给主体,从而让主体设计出越来越好的超参数。利用这种强化学习的模式我们可以更加有效地对超参数空间进行搜索,从而设计出远高于现有网络表现的超参数集合。规划又是一个经典的人工智能任务,它可以指导机器人完成复杂的序列化的任务。在经典人工智能中,我们是通过搜索来完成规划策略的制定的,然而它的弊端是规划出来的策略很难具有应付多样性的灵活性。于是,人们寻求一种能够用神经网络来自动规划的方案。UC伯克利的一个人工智能团队用卷积神经网络完成了“柔性规划”,并具有非常好的泛化能力。他们的基本想法是将经典的强化学习算法中的价值迭代算法类比为一个多层次的卷积神经网络,从而用深层的网络对应了多步价值迭代的能力。经过训练之后,这个价值迭代网络不仅能够指导着主体完成动态规划,而且还能够具备非常强大的规划能力,这要比单纯依赖CNN的算法更好。总之,现在的人工智能技术发展的前沿就是将经典的人工智能和最新的深度学习、人工神经网络进行完美的融合。这种融合不仅可以让人工智能程序能够进行比较“深”的思考能力,而且又可以具备一定的柔性和适应能力,这是我们通往强人工智能的一个必经阶段。