当前位置: 首页 > 编程学习 > 编程基础 > 编程新手 > 正文

大话人工智能

2018-04-23 来源:csdn博客/张传波

人工智能英文简称为AI,英文全写Artificial Intelligence,中文直译就是人工智能。

人工智能是让人很感兴趣的话题,也是让人很神往的东西,可惜就是人工智能的资料往往是枯涩难懂,希望这里能让大家轻轻松松地了解人工智能的基本知识,为进一步学习打好基础。

在大家日常生活中,在很多地方都存在“人工智能”。现在很多傻瓜相机有脸部优先功能,能自动识别人脸进行对焦,有些还能自动识别笑脸,见到笑脸就自动拍照。空调自动恒温技术、液晶电视亮度自动适应技术等许多家电都应用了人工智能技术。车载卫星导航系统,让你开车开得更爽。如果你喜欢玩电子游戏,你会发现大量的游戏中含有人工智能,让你兴致勃勃地不断挑战游戏中具备智能的“敌人”。在国防、科技探索等领域,更加是大量应用了人工智能技术,如:在火星上的探测车能自动寻路,用超级电脑来模式核爆炸,精确制导炸弹等等。人工智能正在改变世界,人工智能让我们的生活更加精彩!

那什么是人工智能?还真的不好下定义,简单地说就是能模拟人类智慧活动并做出决策的技术。“模拟人类智慧活动”又怎样理解呢?人工智能并不能完全实现人类智慧活动的效果,但有时候又能超越出人类的能力。

人工智能并不能完全实现人类的智慧活动,到目前为止还不能制造出一个跟人类相似程度很高的机器人,现在的机器人要么就是用作某一专业用途,如潜水、拆炸弹等,要么就是用来做展示无实用价值的,如和人类进行简单的交谈。无论是怎样的人工智能,都是人类设计出来的,人工智能不可能超越人类的智慧。

为什么说人工智能有时候能超越人类的能力呢?电脑和人类相比,优势就是运算速度高、不会疲倦、不会出错、不会带感情色彩,人工智能可以一下子识别1000张以上的脸,从中找出犯罪嫌疑人,如果用人来判断的话是耗时费力且不准确的工作。

人工智能分为两类:定性AI(deterministic),非定性AI(nondeterministic)。

定性AI(deterministic)的特征是既定的可预测的,如:某物体以时速10公里的速度前进,那么两小时后该物体将行进20公里。定性AI往往会利用一些数学公式、物理公式进行运算,一般来说比较容易实现。

非定性AI(nondeterministic)的特点就是具备某种程度的不确定性,具备一定的人类模糊思维、归纳推演、学习等思维特征。如:不少象棋软件能下赢很多人,甚至还具备学习能力,不会因为相同的原因再次输给你。非定性AI非常有意思,但要掌握却相当不容易。

下面简单介绍一些常见的人工智能算法:(以下都是非定性的AI)

贝叶斯算法

贝叶斯算法是一种根据历史事件发生的概率来推测将来的算法,由伟大的数学家Thomas Bayes所创建的。Thomas Bayes,1702年出生于英国伦敦。

该算法的原理是这样的:如果事情A、事情B、事情C、...、这些事情发生了,那么事情X发生的几率是多少。前面这些事情叫做前提事情,可以是一个到多个,前提事情越多分析起来就越复杂但会更加准确。

举个例子:据说麦当劳当年发现,如果顾客购买了汉堡包和薯条,那么顾客再购买可乐的机会是70%,于是麦当劳就将这三个产品捆绑在一起作为套餐,于是销量大增。对于这个案例,前提事件就是购买汉堡包和购买薯条,要预测的是顾客会不会买可乐,预测结果就是有70%机会会买。

模糊逻辑

计算机程序做判断往往是数字化的,看看这代码:

If 玩家.Power < 100 Then 攻击玩家

这是动作游戏中由电脑控制的敌人决定是否攻击玩家控制的角色的代码,该敌人明显就是欺软怕硬,见到你的Power低于100就执行攻击。但这样的判断逻辑也太简单了,你玩多了就会发现这个规律,就会觉得游戏太固定化了,没啥意思!

再看看下面这段空调恒温程序是这样写的:

If 当前室温 > 指定温度 Then 制冷

Else 停止制冷

这段程序的目的是当前室温大于指定温度时,空调制冷让室温降低,当前温度低于指定温度则停止制冷,希望通过这样能让室温稳定在指定温度。如果按这样的程序写了,问题就来了,空调会时开时停,省不了电并且会很快让你的空调报销。

人类就比计算机聪明多了,人类的判断一般不会数字化。比方说你在玩一场篮球比赛,你的对手在前面挡住你,你要决定过还是不过他,你的判断依据是他的高大程度、他的敏捷程度、他的速度情况等等,这些都是在电光火石之间在你脑袋中一闪而过,然后你会做出决定。你肯定不会这样判断的,他的高度是不是大于180cm,他的速度是不是大于10米/秒。

模糊逻辑就是计算机模拟人类这种模糊思维方式的一种算法,模糊逻辑判断结果会更加人性化。游戏中应用模糊逻辑,敌人的判断会更合理,并且具备不可预测性,玩家玩起来会觉得更有挑战。而应用了模糊逻辑的空调,温度调节是平滑进行的,不会一会关一会开。

神经网络

人脑其实是由数量庞大的神经细胞组成的,神经细胞庞大的数量及复杂的结构,让人类充满了智慧。人一出世,脑袋是一片空白的,当我们学会了某样东西的时候,我们会对起进行推演和归纳。比方说我们认识了这是一条狗,当我们见到另外一条不同品种狗的时候,我们会判断这也是一条狗。而计算机的判断一般来说就比较死板了,如果有细微的偏差就会认不出来。

神经网络算法其实就是通过计算机来构造类似于人脑的神经细胞网络(当然该网络无论如何不能跟人脑相比),通过一些训练,能让该网络能识别某一类事物。文字识别、指纹识别等都是应用了神经网络技术的。

遗传算法

这是模拟达尔文的进化论的一种算法,我们先说说进化论。

地球上的物种会通过父母结合的方式产生下一代,而下一代有一定的几率会基因突变,突变后的物种可能是更好的也可能是更差的,最后这些物种能否繁衍下来,就要看这些物种对环境的适应性了,这就是所谓的适者生存、优胜劣汰。对环境适应性好的物种,会继续繁衍后代,而对环境适应性差的物种就会逐渐消退甚至灭绝。这样经过很长很长时间以后,地球上剩下的物种大体上就是比较好计较优秀的了。现在人类主导地球,这也是地球上物种进化的结果。

那遗传算法有什么用呢?模拟这个进化过程有什么意思?其实地球物种在进化过程中,就是不断地在回答哪个物种的适应性更好的问题。我们再抽象一层,其实我们现实生活中要研究的很多问题,都是在思考哪个解是最合适的解的问题,如果我们能模拟一个“生态系统”,让这些解不断进化,最后留下来的解很可能是我们需要的答案了。

遗传算法是一种模拟进化过程寻找合理解的算法,用遗传算法不一定能找到全局最优解,很可能得到局部最优解。举一个例子,需要你巡游在全中国的100个城市,要求是每个城市只走一次并且总路程最短,你怎样设计你的路线?要走完100个城市,走法有很多种,最完美的求解办法就是穷举所有走法,然后找出最短的。但这样的计算运算量超大,如果城市数量是1000个呢?运算量更加几何级增长。这时我们可以考虑用遗传算法,找出合理解,当然这个解不一定是最短路线。遗传算法可以用比较少的运算次数来找到合理解。

蚁群算法

一块空地上有一粒米饭,有一只蚂蚁在该空地上觅食,该蚂蚁可能找了好久也不会找到该米饭。可是如果有一群蚂蚁呢?你会发现很快就会有蚂蚁找到该米饭,并且如果食物分量足够大,最终会引来浩浩荡荡的蚂蚁群。当一大群蚂蚁在搬动一份食物的时候,我们同时又在附近放置一份更大的食物,开始无蚁问津,后来就会有蚂蚁发现该食物,然后又形成一条浩浩荡荡的蚂蚁群,食物分量大的那边蚁群会更大一些。

在我们日常生活中,你在家里面不小心丢下任何食物残渣,最终都会引来一群蚂蚁,蚂蚁是怎样发现这些食物的呢?蚁群觅食有以下特点:

1.最开始时,蚂蚁的走动是随机走动的,不过它会留下“气味”。

2.当蚂蚁发现食物时,会留下发现食物的“气味”,没有发现食物则留下没有食物的“气味”。

3.蚂蚁感觉到发现食物气味时,会趋向有食物气味的方向移动,当它发现食物时,也会留下发现食物气味,这样将加强这种气味。

4.发现食物的气味越强烈,蚂蚁趋向该方向移动的欲望更强烈,反之没有食物的气味越强烈,蚂蚁不向该方向移动几率也越大。

蚂蚁觅食其实是一种很特殊的搜索办法,数量众多的蚂蚁同时进行搜索,但它们之间很少会重复搜索同一个地方,并且更多的蚂蚁会在更有可能有食物的地区搜索。这样的搜索办法是高效的,从概率上说找到理想食物的机会很大。但也有可能扔会忽略掉一些地方,从而漏掉更有价值的食物。但会随着时间的延长,搜索到更好食物的机会也会越大。

和遗传算法类似,蚁群算法也是一种寻求合理解的一种算法,得到的结果可能是局部最优解而不是全局最优解。

我们可以利用蚁群算法的原理来优化某些搜索算法。