正文

人工智能扫盲帖

(2017-12-18 11:54:34) 下一个

最近朋友闲谈,常常谈到AI将会改变世界,纷纷表示,要让孩子早些学AI,以免输在起跑线上。我这个二把刀“科学家”,也常常(错误地)被请教AI如何。我的确不是AI的专家,只是20年前,上大学的时候,自己开发过人工神经网络的应用,近年也偶尔应用机器学习算法,所以冒胆写了个扫盲帖。您看着顺眼,赞一下当赏钱;您看着哪里错了,指正我就好了,但别骂我:)

我们所说的AI,也就是人工智能,到底是什么,我们有能用它来做什么?人工智能应该是一个大众都能理解的术语---基本上就是电脑可以干人脑的活,可以思考,可以分析。人工智能的优势在于电脑比人脑算得快,电脑记性好,不会忘事。

人工智能听起来很好,可是人工智能到底怎么实现的呢?归根到底,还是数学和数据,外加上越来越快的计算机。人们研究一个现象,一个事物,一个问题,往往都从前因和后果进行分析。从开发数学模型的角度来看,前因,就是模型的输入,后果,就是模型的输出。开发模型的本质,就是建立前因(输入)和后果(输出)的关系。比如说,地上有一块石头,你踢了一脚,石头一下子飞起来。要是想知道,你用了多大劲,石头飞多远,我们肯定会用牛顿的力学方程,比如F=ma去分析。通过一系列的联立方程,可以建立一个你用的力气(F)和石头飞的距离(S)之间的数学模型。当我们研究简单的问题的时候,物理模型或者化学模型,能够帮我们连接前因(输入)和后果(输出)。也就是说,我们很清楚,有了前因,必然会有这样的后果。这种简单问题,我们不需要人工智能。我们在中学学得数学和物理知识,就能够解决问题了。

当问题变得更复杂一些,比如说,我们想了解今年粮食的产量,会涉及到很多个因素。挑几个重要的,可以假设平均气温(T),平均降水(P)和平均日照(S)会影响粮食产量(Y)。考虑到问题的复杂性,如果我们把所有的物理,化学,生物的知识考虑进去,我们没办法完美地建立一个基于规律的模型。为了解决问题,大家往往考虑统计模型。统计模型只关心输入和输出的数量上的联系,而不考虑他们之间存在着怎样的物理,化学和生物规律。这样,我们建议一个统计模型 Y = a1 * T + a2 * P + a3 * S。我们在应用这个模型之前,得先去确定模型中的参数a1, a2, 和a3。这样我们需要数据。通过数据,来确定模型参数,在人工智能里面,叫做训练模型。这个问题,也不复杂,有了高中和一些大学的数学知识,就可以解决这样的问题了。但是,要注意,因为我们不是百分百清楚,前因是怎样导致后果的,我们只能靠着数据来训练模型。所以,我们需要数据。模型越复杂,我们需要的数据越多。

现实生活中,有很多非常复杂的问题。比如说,炒股票,炒黄金。影响黄金价格的因素实在太多,而因素之间,又是相互作用的。对着这相互作用,我们大概其懂点,又不全懂。我们很可能确定几十个会影响黄金股票价位的因素,怎样把这些因素和黄金股票的未来价格联系在一起呢。我们没办法建立一个基于因果关系的模型,因为因素太多了,好多相互之间的因果关系,我们也不那么清楚。当然,你可以考虑建立一个统计模型,很可惜,统计模型往往要求因素之间是相互独立的。我们面临的问题,明显不符合这个条件。那么,有没有一种方法,或者模型,能够自己去处理因素之间的相互作用,同时又能够用于预报股票价钱呢?

在已过的20年里,蓬勃发展的人工神经网络,就能干这样复杂的工作。人工神经网络,模拟人类(或者动物)的神经元,通过神经元之间或强或弱的相互作用,来模拟复杂因素之间,或者是牵制,或者是促进的相互关系。一个神经网络模型,里面有大量的神经元,分在不过的逻辑层次里面,不同层次之间的神经元又两两相连,每一个连接之间的强度,都是一个参数,需要通过训练来确定。一个神经网络的规模越大,神经元越多,训练时候所需的数据越大。之所以现在人工神经网络应用越来越广泛,就是因为在其应用领域所积累的数据越来越多,满足了训练神经网络的需要。谷歌的alpha go,用的就是人工神经网络模型,估计是用几十万个棋局来训练出来的。

说到底,人工智能,和前面提到的中学生和大学生建立的物理模型和统计模型一样,都是在找前因(输入)和后果(输出)之间的关系。只是人工智能,可以处理非常复杂,因素众多的前因和后果。人工智能的背后,其实就是机器学习(machine learning)和大数据。两者缺一不可。机器学习,研究的是怎样用计算机来建立前因和后果之间的关系。大数据,是为了训练机器学习的模型和算法。一旦机器学习的模型通过大数据训练好了,就可以用来做预报,指导业务操作了。

我们上学学知识,知识多了,好多问题我们就可以看明白了,看透了。人工智能,是通过数据来学知识,通过大量数据,让电脑搞清楚了前因后果之间的来龙去脉,针对一个输入,就能产生一个输出,以至于,电脑学会了下围棋。说一千道一万,人工智能解决的还是人们关心和思考的前因和后果之间的联系。现在的机器学习技术,还有大数据积累,能让我们考虑更加复杂的问题罢了。在考虑人工智能的应用的时候,我们必须要考虑大数据。在这一行业,如果没有大数据,我们就算开发除了模型,也没办法训练他,然后应用它。至于机器学习的算法,我们跟风谷歌,站在巨人的肩膀上,暂时应该是够用了。



 

[ 打印 ]
阅读 ()评论 (11)
评论
兵团农工 回复 悄悄话 阎立华 2017-12-18 19:49:12 回复 悄悄话 用传统统计模型作用于大数据也叫AI,这个AI比较低能。
AlphaZero不参照任何历史数据,靠规则左右互搏,自己造数据,这个想法就石破天惊了。——————-好像是一个台湾学者为主的团队做出来的。这是一大突破
老马识途 回复 悄悄话 建议帖主读一下数理逻辑中的G?del定理(1st Order Predicate Logic Incompleteness Theorem)。
武胜 回复 悄悄话 回复 '王有财' 的评论 : 指教不敢当,只是讨论。不确定事件指的就是变数会复杂得不可能控制的情况。除了概率事件,还有动态并发事件中时序的不可预测性。
阎立华 回复 悄悄话 用传统统计模型作用于大数据也叫AI,这个AI比较低能。
AlphaZero不参照任何历史数据,靠规则左右互搏,自己造数据,这个想法就石破天惊了。
王有财 回复 悄悄话 回复 '武胜' 的评论 : 谢谢指教。关于不确定性的现象,我偶尔会多琢磨一下。从因果关系上讲,真的会有不确定性的事件吗?我们用随机数学理论,去模拟那些不确定的事件,好多时候,是我们缺乏充分的机理性知识。对于某个发生的事件,我们可能没有机会了解到所有的诱发因素,以及这些因素之间的关系,所以没办法开发机理模型,只能用随机模型去模拟,去解释不确定性。如果我们完全了解建模对象所有的输入和输出,以及内部的系统变量与变化机理,我们完全可以建立一个确定性的模型。世界上很可能没有随机事件,所有现象,都有前因后果,否则能量,动量,和质量守恒都会出问题。所谓随机模型,只是我们在认知不全面的情形下,解决问题的一种方法,希望通过随机模型,抓住主要控制因素。
武胜 回复 悄悄话 回复 '王有财' 的评论 : 虽然不确定性模型问题的因果关系具有不确定性,但它有统计规律性。一种模型方法是随机神经网络。
叼虫小鸡 回复 悄悄话 其实用统计预测的方式去发展人工智能本身在人工智能研究领域就有很大的争议,这样做到底能不能真正实现普通人所认为的有逻辑和推理能力的终极人工智能。比如,你能通过统计我Smart Phone数据,大约几点上班几点下班,因此你能先告知我根据交通状况,几点应出门上班或回家走哪条路。这不是真正的智能或者说跟智能没有太大的关系。当然这么做,有时确实能为人们带来方便,如果你不在乎你的隐私数据被侵犯的话。

AlphaGo就是利用统计来学习挑战人类的,由于机器有近乎无限的计算能力和存储能力,所以再高明的棋手,只要你想赢棋,你基本就不可能战胜机器,因为你的目的定了,机器的统计数据一定能战胜你。这就好比在一条平坦的马路上你和汽车赛跑,你不可能赢。但是如果要跟据实时情况来决定往哪个方向才是目的地,则你就可能跑赢汽车。 现在谷歌用AlphaGo去开发医疗诊断,个人觉得这是很适宜AlphaGo的所谓“人工智能”方向。

离开扎实的数学和物理去谈
王有财 回复 悄悄话 回复 '武胜' 的评论 : 这些挑战,需要AI专家去解决了。 我很好奇,怎样通过数据学习,来训练一个不确定性的模型。指点一下?
武胜 回复 悄悄话 Google是很强,但要说跟风它的算法就“够用了”,这个有点说大了。AlphaGo成功,但它的开发主管哈沙比斯表示这这只是一个确定性模型问题,还有许多不确定性模型问题等待挑战。
elmonte 回复 悄悄话 明白了,谢谢!
菜丝 回复 悄悄话 写的好!
登录后才可评论.