大家好
欢迎回来
那么我们这一节开始
基于仿生算法的人工智能系统
那么我们首先来看什么是仿生算法
那么我们会从这几个要点来介绍
什么是仿生算法
首先得给出一个概念
然后为仿生算法举几个例子
最后我们看看仿生算法和一般的算法会有什么样的区别
首先什么是仿生算法
那么就涉及到什么是仿生
那么一说到仿生听起来好像特别的复杂
但是其实仿生很简单
而且仿生的这种功能
或者说仿生的产品
其实大量的出现在我们的日常生活当中
那么比如说像蜜蜂的蜂巢
那么实际上人们通过观察蜜蜂蜂巢的一些优势
比如说结构稳定然后美观
然后学习蜜蜂筑巢的这种方法
然后就会有了很多大结构的这种建筑
比如说在航空建造工程当中的一些蜂窝的结构
那么所以我们说仿生实际上它
就是人类在生产生活当中去模仿生物体
或者说生物系统或者生态系统的
一些功能和他们所表现出来的行为
来建造我们人类社会当中一些
技术系统的这种科学的方法
这就叫做仿生
那么一般来讲
我们在生活当中其实有很多的
这种仿生的作品
或者说仿生的这种工具
比如说现在的飞机
它为了减少空气的阻力
它所采用的这种外部的形体
或者我们在这个照片里头
一个潜艇它模仿了海豚的外形
那么知道这个鱼类或者是大型的这种哺乳动物
它在水底进行游动的时候
前进的时候
它能够特别的快
那么为什么呢
人们总结出
就是因为他们的形体能够充分地减少阻力
所以模仿了海豚的形体来建造
我们的潜艇的外观
那么还比如说爬山和越野的这种汽车
那么我们知道在没有道路的情况下
特别在乱石遍布的这种野外
那么很多的轮子甚至履带可能都会失去作用
那么我们就开始模仿蜘蛛
蜘蛛的八个脚
它爬行的时候又快又稳定
那么模仿蜘蛛的这种爬山越野的汽车
还有像雷达系统当中的电子蛙眼
这样也能够扩大可视的范围
还有在海底航行的时候
这种探测障碍物的声系统
这也是模仿海豚他的生活的状况
那么还有在进行替代人类的内脏当中
在医学当中也有人工肾以及人工心脏
人们基于对于肾脏和心脏的结构的了解
建造出人造的器官
这些所有的各个领域当中
其实我们都可以看到仿生的影子
前面我们更多的是说这些
仿生更多的是利用了或者模仿了生物的外形
内部的结构
或者说这些力学的这种机能
那么有没有能够通过模仿生物的这些智能
来进行我们问题的解决呢
所以这就是仿生算法
那么总的来讲仿生算法它通常是
通过模拟自然生物的群体的进化
或者说是群体有一些社会动物
他是群体的一个社会行为
那么这些量都是很大的
要么是在进化时间特别的长
要是这个群体他的行为数量特别的多
进行随机搜索
这样就能够适用传统算法难以解决的一些大规模的复杂的优化问题
实际上我们在前面提到讲到基于决策树和搜索的人工智能算法的时候
我们已经体会到对于一个决策树来说
稍微复杂一些的这种完全信息零和博弈的这些游戏系统
那么它都会可能构造出非常庞大的决策树出来
那么在决策树当中如何去进行搜索和进行选优
这其实是一个大问题
我们有了一些剪枝的方法
但是它还是需要特别大的计算量
那么我们能不能模仿一些生物的一些功能
或者说社会群体社会性动物的它的群体的行为
来对于我们这在庞大的决策树当中进行搜索有所帮助
这就是仿生算法它所需要解决的问题
那么总的来讲
仿生算法的常见有这么几种
第一是模仿生物进化
那么在漫长的生物演化的历史当中
实际上我们可以看到整个的生物它是从简单一直到复杂
从单一性一直到呈现出能够适应各种各样环境的多样性
那么他们的这种多样性
他们的一些器官的功能
最终它能够去解决环境提出来的一些生存的难题
他是如何做到的
那么在这当中
实际上整个进化论我为我们提供了一个思路
所以我们计算机专家也模仿生物
进化提出了遗传算法
这是第一个遗传算法
那么第二个仿生算法就模仿一些社会性群体的这种动物
比如说蚂蚁蜜蜂
这种群体性的社会动物
模仿蚂蚁寻路的这种蚁群算法
我们知道在很多的决策树或者是很庞大的这种数据网络当中
你要搜寻出一个比较优化的这种路径
一个通路的话
那么这种用传统算法来解决它需要耗费特别大的计算力
在有些时候
当你网络庞大了之后
甚至成为不可行的一个算法
那么这里我们可以试图通过仿生算法
模拟一群的蚂蚁
从起点一直到终点
那么它如何散出去之后
最终能找到一条非常好的一个最短的路径出来
那么这是第二种仿生算法也通称为叫做蚁群算法
那么第三个也跟我们人工智能是相关的
那么人们发现既然这个人的智能
它是由于大脑的结构所产生的
那么我们为什么不去试图
模仿一下大脑本身的结构
我们知道大脑本身是由神经元
有千亿量级的神经元
然后这些神经元之间的相互连接
成一个复杂的网络
然后才能够处理比如说由眼睛所看到的由耳朵所听到的
或者说由触摸所碰到的这些所有的信息
最终能够去探索世界
然后给出行动的决策
所以我们也有了一个模仿神经网络系统的人工神经网络
人工神经网络它作为一个仿生算法
也是我们现在目前人工智能和机器学习当中
一个非常重要的仿生算法
那么仿生算法跟一般算法有什么样的区别
我们说一般性的算法它是基于经验人的经验
或者说我们已知的一些规则
或者说我们已知的数学和逻辑上的这些定理
然后针对一些特定的输入
这样能够经过一些规则的演变
或者说经过算法步骤的推演
最终能够计算出确定的一些输出的结果
比如说排序
比如说求和
比如说做这个数值的运算
也比如说在一棵建好的决策树上进行搜索
搜索一条通路不通
然后回过头来再尝试另一条路
那么这样的这种一般的这种传统算法
它总是有确定的输入
能够得到确定的输出
当然也有一些复杂的算法
他可能会借助一些随机
比如说我们在基于决策树进行搜索的时候
也提到了剪枝的方法
像蒙特卡罗树搜索
那么它这种搜索也是基于一定的随机数
这样对于算法本身会造成一定的不确定性
但是他对于关于仿生算法还是有本质的区别
我们来看仿生算法
它到底是什么样的呢
我们说仿生算法它主要就是模拟生物在自然界当中的一些行为
以及它的本身的一些生物体的构造
那么通过大量的这种自然演变的模拟
来逐步的逼近我们所需要的结果
那么这种大量的自然演变的模拟
就会涉及到大量的这种随机的过程
当然这个随机过程和一般算法当中
或者说统计方法当中所使用的随机的过程
它的本质的区别就在于说仿生算法里头的随机演变
它是通过我们所认识到的自然法则来进行的
而不是一个统计上的这种随机
那么自然法则是什么
比如说相对于进化来说
自然法则就是优胜劣汰适者生存
那么我们可以想象在仿生算法里头
在遗传进化算法里边
什么是优胜劣汰
什么是适者生存
是不是最后
逐步的符合我们问题解的这些答案
他最后能够生存下来
而不符合我们问题解的答案
在漫长的进化的过程当中
他逐步的会被淘汰掉
所以实际上仿生算法它是模拟自然的一些法则来进行的
那么这个跟一般算法或者统计上的算法
它还是有一些本质上的区别
所以这个是我们所说的仿生算法与一般算法的区别
那么我们最后总结一下
所谓的仿生算法
它就是一类模拟自然的生物的进化
或者说一些社会性动物的群体的社会行为进行随机搜索的方法的统称
通过这些模拟自然演化
或者说模拟社会动物的在自然环境当中进行随机探索的
这么一个过程
那么我们最终能够逐渐的通过漫长的随机过程
逐渐的逼近我们所需要问题的解
那么到最终我们当我们发现这个解如果足够好了
好
我们就可以停止进行随机的演变
而得到这个结果
当然仿生算法既然它是一个随机又是模拟自然演化
可能他最终的结果也许不能够尽如人意
甚至有可能它不如一般算法那样
它虽然慢但是能够得到确定的结果
也许仿生算法做了大量的计算之后
最后你发现什么都得不到
这也是有可能的
因为毕竟这也是自然的法则
那么所以我们从仿生到仿生算法
其实我们也领悟到人们借用大自然当中
既然在地球发展漫长的演变历史时期
过去了以后能够幸存在目前地球上的这些生物
那显然它都是大自然选择的结果
它能够幸存下来
就说明他在应付自然变化和适应环境方面会有很强的能力
会有一定的优势
所以我们尽量去向大自然去学习
然后作出各种各样的这种科技发明
使得我们的社会使得我们的生活
更加的方便和便捷