在PythonPi基于人脸检测的行车控制中我们介绍了PythonPi的目标驱动型控制.但这个目标驱动型控制在控制小车的时候,怎么看怎么难受:就这么前前后后、磨磨唧唧的挪来挪去的,这效率也太低了些吧:(
目标驱动控制是应用反馈控制的原理来简化控制的分析与实现过程,降低了控制的难度。但正由于这种简化,所以其控制过程不够精细、效率也不太高。还记得我们的那个控制系统的通用框架吗?
目标驱动型控制是用来解决预置知识比较难时该如何进行控制的,所以如果我们想提高控制效率,就应该想办法增加预置知识。
我们今天就来介绍一种PythonPi平台中比较高大上的控制功能:模糊控制。
预置知识比较难是由于计算机只能使用精确的、形式化的知识,而人类的知识,有时很难形式化,尤其是对于现场控制非常有用的操作经验。幸运的是,针对这种非常有用、但难以准确描述出来的经验型知识,人类发明了模糊数学来进行处理。
传统IT所使用的数学是用来处理确定性问题的,其基石是所谓的逻辑学三(五)大定律:
同一律:A就是A,不管你怎么动、怎么说,它是不变的。也就是说我们讨论某个问题时,这个问题的主要特征是双方所公认的、稳定的,不变的。我们中国人很多时候的争论根本就是自说自话,比如很多人和我讨论儒学复兴的问题,结果呢,我说的是我想象中的儒学,他说的是他想象中的儒学,两人竟然还能吵半天:)
矛盾律:其实应该是不矛盾律,即A与非A不能同时成立,这两者是势不两立的,用逻辑公式表示就是:A and 非A = 0
排中律:即要么是A,要么是非A,也就是我们常说的非黑即白、非此即彼、两者必居其一,用逻辑公式表示就是:A or 非A = 1
因果律:有因必有果,原因决定了结果
充足理由律:事物存在必有其存在的理由
前三个定律是人类逻辑思维的基石,为所有逻辑学家所公认,而后两个则存在一定的争论
遵守排中律,我们就能对事物进行明确的分类,就能识别出各类事物的显著特征,就能坚信属于某类事物的某物体一定具备该类事物的普遍特征和能力。这是人类得以识别、处理未知事物的基础,是人类知识的巨大威力所在。而模糊则是说某事物既具有A的部分特征也具有非A的部分特征,这就违背了排中律,也就动摇了这一切。
首先,我们得认识到:由于没有完全一模一样的事物,所以分类的过程其实就是抽取事物主要特征、简化次要特征、四舍五入以归并特征值的过程,所以模糊其实才是世界的基本属性,而排中律只是模糊背景下的特殊性。
其次,排中律的成立其实是在模糊性比较弱的前提下的简化处理。也就是说,当事物非常模糊,以至于无法区分时,我们是无法用科学进行处理的。而人类认识水平的提高,就是我们对事物的认识越来越清晰的过程,就是模糊性逐渐减弱的过程。
因此,我们把模糊性视为普遍性规律,而把精确知识视为模糊条件下的简化。为了打通这两者,模糊数学引入了隶属度的概念:即某类事物中各事物符合本类事物主要特征的程度。那么:
A:隶属度为1,意即确定无疑的属于A类事物
非A:隶属度为0,意即确定无疑的不属于A类事物
其它:隶属度在0和1之间的实数:u,即u属于【0,1】(u大于等于0而小于等于1),意即属于A类事物的可能性是u
而排中律就只有0和1。由于大家习惯了排中律的非此即彼,所以在理解模糊这个概念时最大的障碍可能就是这个隶属度了。我们举个例子:多和少,从1、2、3、4、5就这五个数来看:
1百分之百的算少,完全不可能算多
2应该以0.9的可能算少,但同时还以0.1的可能算多
3应该以0.5的可能算少,但同时还以0.5的可能算多
4应该以0.1的可能算少,但同时还以0.9的可能算多
5完全不可能算少,百分之百的算多
这是为什么呢?!不为什么,是你必须得克服非此即彼的想法。
什么叫模糊,就是某个事物既带有这个类属的部分特征,还带有那个类属的部分特征,使得我们无法明确的说这个事物到底应该属于这个类还是那个类。这就象辨认一张不太清晰的照片是不是某人,看起来似象非象的,说是吧还有部分不太象,说不是吧,又有部分象。所以这种情况下,我们就用哪些符合的部分特征来表示事物和本类的相似程度:如果有10个特征值可以用来刻画本类事物,a有三个特征符合,就说a对本类的隶属度是0.3;而a还有四个特征符合B类的特征取值,就说a对B的隶属度是0.4。
所以,什么是隶属度,简略的说就是符合本类特征刻画的那些特征值的数量和本类所有区别于其它类的特征值总数的比,就是衡量某事物和本类相似程度大小的。
在引入了隶属度之后,基于经典集合论的传统精确数学就可以转换为隶属度如何计算的处理,这就基本实现了对模糊性质的问题的科学化处理。如果说,科学是:
通过分析(从已知中选择)、假设来设定基本事实
然后通过逻辑推理根据基本事实推断出一个结论
最后则是通过实验来验证这个结论的正确性
在这个过程中,基于三大定律的传统数学是用来确保从事实到结论的可靠性的。这就意味着:由于逻辑推理确保了真值传递是可靠的,所以如果基本事实是可信的,则推导出的结论就是可信的。这就是人类科学的威力!即便是我们没有经历过的、甚至从没见过的事物,我们都可以推断其存在、判定其性质、推测其规律。
由于这个过程中,为了确保真值传递的可靠性,如果有多个假设时,只有这些假设都为真,才会将真值传递过去,而这未免过于严格。在引入模糊性的思路后,所传递的就不在是真值了,而是可能性的传递,也就是说,当我们对当前所了解到的事实并没有百分之百的把握时,仍然可以得到一个不太可靠的结果。而这恰恰是我们在处理日常事务时的常态:
嗯,这件事涉及到方方面面,环节有多,有点复杂,我没太大的把握,只有7成的成功可能
7成?!干了!!7成还不干?!!拼了!!!
将隶属度(也可以理解为可能性、把握、概率)缩小到只有0和1,就是传统数学在传递从事实到结论的可靠性;而放大到【0,1】,就是模糊数学在传递从事实到结论的可能性。
顺便说下,通过对上述五大逻辑定律的违背,就出现了相应的五种不确定性:
违反了同一律的是不稳定性,也就是A不一定就是A,比如:出去转了下,唉,怎么手指头破了?!我这刚做好的指纹识别卡不就没用了吗。即被我们选为事物识别特征的特征值不稳定,总是变来变去的
违反了矛盾律的是不一致性
违反了排中律的是模糊性
违反了因果律的是随机性,所谓的随机性,就是事物不符合经验逻辑,比如:它明明不应该出现的啊?!可它怎么竟然就是出现了:(
违反了充足理由律的是不完全性
随机性和模糊性是最主要的不确定性,为了解决随机性所引发的不确定性问题,我们主要采取概率论的手段。而为了解决模糊性所引发的不确定性问题,我们主要采取模糊数学的手段
====================================================================================================
关注我的公众号及时获取推送的最新文章