当前位置:首页 > IT攻略 > 正文

蚁群算法、遗传算法、模拟退火算法等真的是人工智能吗?

简介这依赖于对「人工智能算法」的定义,从广义的角度来看,它们当然也都属于人工智能的算法。「人工智能」这个词的强调的是人类通过设计方法来达成智能的效果,而不是要求「通过用人类的方法来实现智能」,只要最后能实现看起来「智能」的效果,那么用怎样的算法...

这依赖于对「人工智能算法」的定义,从广义的角度来看,它们当然也都属于人工智能的算法。「人工智能」这个词的强调的是人类通过设计方法来达成智能的效果,而不是要求「通过用人类的方法来实现智能」,只要最后能实现看起来「智能」的效果,那么用怎样的算法其实是不重要的。例如一个分类问题,我们可以用神经网络来实现,也可以用支持向量机实现,还可以用决策树或者随机森林来实现……如果这些方法都实现的是分类的同样效果,那么它们就都属于人工智能的算法。

蚁群算法、遗传算法、模拟退火算法等真的是人工智能吗?

可能也有人会指出,这些算法与近年来大家提到的人工智能算法看起来有些不同,因为这些算法解决的问题都只是优化问题,这些优化问题与人工智能研究关心的问题之间仍然有一定的距离。事实上,优化问题是人工智能研究的基础,在机器学习问题中,不管是监督学习还是无监督学习,都可能遇到各种优化问题(例如最小化损失函数,最大化互信息……),蚁群算法、遗传算法和模拟退火算法就可以为这些优化问题提供解决方案。人工智能「算法」真正重要的一点就在于我们怎样将看起来是「智能」的一些现象,翻译成具体的「优化问题」。举个例子来说,我们很可能需要用人工智能的方法来预测一些事情,「预测」看起来是一件很智能的事情,尽管预测问题本身很难解决,我们可以考虑将其变成变成「拟合」问题,然后把点到曲线的距离定义为损失,最小化这个损失函数。怎样去最小化这个损失函数呢?那么就可以采用蚁群算法、遗传算法、模拟退火算法等等算法了。

我在研究生期间就是做粒子群,蚁群以及学习自动机算法研究的,并且也主动了解过和上述算法相近的遗传算法以及模拟退火算法。可以说,与普通算法比起来,题主说的这些算是人工智能算法,接下来我们通过介绍原理来说明为什么它们属于智能算法。

人工智能

人工智能是通过大量数据,通过确定不同的模型,分类规则进行学习,从而模拟人类的行为与思考,看起来就好像机器具有了人类的能力一样。人工智能的基础是数学,经济学,计算机工程,控制论,语言学等等学科,被广泛应用在生活中的方方面面。而人工智能算法的四大分支,目前公认的有模式识别,机器学习,数据挖掘以及智能算法。

那么上面的算法的原理分别是什么呢?

蚁群算法

蚁群算法的提出者是意大利人,他们发现单个蚂蚁觅食的轨迹非常简单,但是当群体行动的时候,却可以表现出一种智能行为——蚂蚁之间就会通过交流信息素来达到“即便不走遍全场,也知道东南方向没有食物”这样一个效果。这样的过程如果抽象成数学其实就是用蚂蚁的行走路径表示待优化问题的最优解,而最优解自然就是最好的食物,在蚂蚁的探索过程中,可以学习到其他蚂蚁留下的信息素经验(参数),达到(半)了解全场的效果。这样的描述也许就清晰了,蚂蚁将其它成员的经验知识应用在自己的行为优化上,而且自己的行为又能影响全体,这就是一种智能算法。

模拟退火算法

模拟退火算法的灵感来自固体退火原理,是一种与概率论息息相关的算法。它基于****迭代求解策略的随机寻优算法,假设从某一较高初温出发,伴随温度不断下降,利用概率突跳特性,在解空间中随机寻找目标函数的全局最优解(相当于蚂蚁找到最大最好吃的食物),与蚁群算法比起来,模拟退火算法的分子之间并没有信息素的交流,更多的是依赖了数学经验。由于其核心思想具有启发式的特点,因此也算是一种智能算法。

遗传算法

遗传算法就非常有趣了,它模拟达尔文生物进化论中的自然选择与遗传学中DNA的概念。从有代表问题解的种群开始,每个种群中的个体都有由不同的DNA决定,每次迭代都会尽量将父辈的优秀的DNA传递给下一代,同时又引入一定概率的基因突变,即保证了多样性,实现了交叉与变异,产生下一代解集,通过多次迭代,不断驱使解集像最优解靠拢。从这个描述中可以看出,遗传算法也是具有启发式的特点,通过不断的自我优化,来模拟了高等生物的行为与思想。

根据上面的介绍,想必大家都了解了为什么这三个算法属于人工智能算法了。如果你觉得有点启发,欢迎给我点个赞或者留下你的评论。

我是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。

我是人工智能的小白,不能告诉你这几个算法是否是人工智能,不过碰巧多年前学习优化算法时,接触过这些算法。在这里分享几个关于算法的故事吧。

货郎担问题

有个快递小哥要跑遍全城送货,您打算帮他规划一条最短的路线。该怎么做呢,最直接的办法是穷举法。罗列出所有可能的线路,计算出每条线路的距离,寻求最短的路径。看起来很简单吧。可是在实际的路网上,路线组合是非常多的。如果有15个目的地,组合的数量至少是15的阶乘。更何况还要考虑路况,收费免费,时间段等各种条件的组合,这样的计算量恐怕是量子计算机也不能在可接受的时间里完成。这象是对条件不足多元方程组求解,要从无穷多的解中找出最接近期望值的解。于是,人们想出了许多快速逼近最优解的办法。

蚂蚁算法

蚂蚁出来觅食时,先是向四面八方出动,发现食物的蚂蚁会掉头回来通知其它的蚂蚁。接到通知的蚂蚁就会向食物的方向移动。蚂蚁移动时会在路线上留下气味。这样在通向食物的路线上气味就越来越浓,后面的蚂蚁不用直接接到信息,只要追着最浓的气味就可以找到食物。人们受到这个现象的启发,设立出来先按随机条件计算,在小范围内找到局部最优解之后,就为这些条件加分。一定时间后就围绕着分数高的条件计算,不断反复后得到的解被当作近似最优解。这就是蚂蚁算法的原理。

神经网络

和蚂蚁算法类似,人的记忆是通过神经元的突出建立起联系实现的。类似的**会使联系增强。达到一定**量之后,就可以形成长久的记忆。模仿这一过程,人们把各种约束条件当作神经元,随机选取路线,输入各种条件,当路径倾向于缩短时,就按照权重给各条件加分,反之就给条件减分,然后,根据分数,以最有利于优化的条件为主重新选择路线,反复该过程直到达到边界条件时,就认为得到了近似最优解。遗传算法,模拟退火算法,也都是用一定的方法,缩小计算范围,通过求局部最优解逼近最优解的。就不啰嗦了。

人工智能和优化算法

优化算法实际上是从早期人工智能的研究发展起来的,从这个意义上说,这些算法也可以说是人工智能吧。

最新文章