为什么人工智能要用python-人工智能的原理是什么?为什么用Python写?

泻药。

通俗一点的话,我觉得比较好的方式是进行类比,我们人类在学习和成长的过程中是怎么掌握“人类智能”的。回忆一下,小时候我们怎么学会说话、走路,以及学生时代如何学习知识和方法。

举个例子,一般婴儿第一个学会的词汇应该是妈妈或者爸爸,怎么学会的呢?母亲天天在你耳边说呗,次数多了婴儿就记住有一个“物体”(对广大母亲表示抱歉,婴儿那时候分不出男性女性,就是个物体的轮廓)天天发出mama的声音,基于模仿的本能也就慢慢学会控制声带发出类似的声音,久而久之就有了一个习惯——看到这个“物体”就喊妈妈。这种学习,抽象出来其实就是一种规则,婴儿也不知道为什么,总之记住了一点“if 这个物体出现在眼前,then 喊妈妈”。OK,现在人们觉得无比神奇的人工智能在上世纪六七十年代就是这么个玩意——基于知识穷举的推理和搜索的人工智能,其实就是把人类能够掌握的一些存在规则的知识用程序写成非常多个if ... then ... else if ... then ...。当然这种方式局限非常多,人们发现人工智能有超级多的问题解决不了,然后发展就陷入困境了。

再举个例子,人在学生时代,总要学习很多很多知识,我们经常称之为“知识点”。知识点很多存在着关联,比如说“同位角相等”、“内错角相等”、“同旁内角互补”这三个定理在欧式几何里可以互相推导,人在学习、理解和记忆的时候应当把它们放在一起,这样才不会把知识和概念孤立起来。人工智能的发展在上文所述陷入困境之后,人们开始研究概念和知识之间的关联和如何描述知识,并认为这是让人工智能“理解”知识的必要途径,这类研究被称之为“本体论”研究。当然,后来的结果不容乐观,知识描述的困难超出科学家们的想象,这类人工智能最后产出了一些智能问答机器人,有一定的商业价值,但是离人类智力还差得很远。

再举个例子,人在学习和实践过程中,除了各种公理定理之外,还有一类非常重要的收获——经验。所谓的经验,也是知识,广义上来说前面讲的看到妈妈喊妈妈,看到同位角就知道它们相等也是一种经验。抽象一点说,经验其实是客观世界历史上发生过的事情在人脑中的一种反映,人们会用概率的方式来处理经验。永远是100%概率的经验人们就当成真理、公理、定理了,不管这个经验是自己归纳的还是别人告诉你的,不是100%概率的经验,人们也会给它设定一个自己认可的概率,比如说“燕子低飞会下雨”,就是说如果发现燕子飞得很低,之后大概率会有降雨。这种经验不需要研究燕子飞得低是因为它们要捕捉的昆虫飞得低,昆虫飞得低是因为空气湿度大导致它们翅膀沾了水飞不高,而空气湿度大和下雨是有一定因果关系的。那么,如果让人工智能学习了大量的经验,然后人工智能是不是也能计算出概率然后像人一样得到这个经验并且付诸实践呢?答案是肯定的,所谓的机器学习就是这样的,有一大堆数据作为输入,然后由一系列算法处理后让人工智能得到有概率的经验。比如输入了许许多多的关于天气的数据,包括很多描述信息(比如包括几点、周几、地点的经纬度、这个地方是不是首都、燕子飞得高还是低……,以及下没下雨),当有无数条这种信息被机器学习学到之后,人工智能就发现“这个地方是不是首都”跟下不下雨没有相关性,而“燕子非得高还是低”有。机器学习的本质就是用一系列向量抽象描述现实,然后用向量之间的距离和角度等信息来描述相关性,最后得到一些概率上的经验(可能是100%,那就成了规则),用以推测还未发生的事情。

其实你会发现人工智能其实也可以算作是一种仿生学的产物,毕竟人工嘛,科学家研究如何创造智能最直接的办法当然是对着人类自己来“抄袭”。现代的人工智能,已经发展到了机器学习的下半场——深度学习。说到这就不得不提一下阿尔法狗,人类坚信不会被AI攻破的围棋也凉凉了,那么人类当时的蜜汁自信怎么来的?其实是因为围棋是一种无法穷举的游戏,比国际象棋要难出好多个宇宙来,结果还是被深度学习和蒙特卡洛法给攻破了。所谓蒙特卡洛法也很简单,说白了就是统计胜率,在围棋要落下一子之前,根据经验(机器学习学来的)可以有几个选择,然后AI就狂算模拟往后面走XX步,统计一下每种可能性带来局势上的变化导致的胜率的变化,然后走那一个让统计胜率最高的最优解——其实这就是一种AI的思考和随机应变,还是跟人类(生物)学的,趋利避害嘛,只不过是基于概率的。

到这里,笔者认为算是把人工智能截止到目前人工智能发展的一些阶段和成果,对照题目和问题里的东西用比较直白的方式描述了一些。当然人工智能这门学科已经发展了几十年,有非常多的分支,也有非常多的未解决的困难。对于机器学习乃至于深度学习当前有哪些算法,哪些突破,哪些尚未解决的难题,就不一一详述了。真正的人工智能专家,对AI马上能解决一切的观点是嗤之以鼻的,AI还很新,局限仍然非常大,搞清楚它当下的边界(它能做什么还不能做什么),而不是无脑吹无脑黑,是正确理解和认识人工智能的方式。

至于为什么用Python写,这个就深刻了。Python这门语言未必非常优秀,据我所知numpy(一个开源的基于python的高维度和矩阵计算库)这个库的贡献非常大。上面说了机器学习是要算向量和概率的,向量的计算就是矩阵计算,numpy这个库太好用了,以至于后来很多机器学习的算法和开源库都基于此做了开发并且开源出来,社区和爱好者就都用了,出现了sklearn和word2vec等优秀的机器学习开源库,最后Google的tensorflow也用Python写了,嗯,算是一统江湖。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值