咱们说一个技术性的话题。你可能听说过一个名词叫“模糊逻辑” —— 国内也经常称之为“模糊数学”,我记得以前曾经一度是个流行话题。如果你从事自动控制之类的专业,你想必已经对模糊逻辑有所了解。而以我之见,这个思想也值得外行知道:这其实是一个把人的思维,量化成机械化操作的方法。
系统学习模糊逻辑有专门的教科书和课程,最好自己动手编程,实战操作一个项目。但是如果说其中最基本的原理和思想,我尽量十二分钟给你说明白。

我们考虑这么一个问题 [1]。比如你在路上开车,你的正前方有一辆车停下来了,你要踩刹车。那这个刹车应该怎么踩呢?
这显然跟你距离前车的距离,和你当前的车速有关。我们假设刹车有四种踩法,分别是猛踩、中踩、轻踩、不踩。有充分驾驶经验的你,知道应该用下面这一系列规则去踩刹车 ——
• 如果距离很近,车速很快,就猛踩;
• 如果距离很远,车速不是很低,就轻踩;
• 如果距离中等或者较近,同时车速正常,就中踩;
• 其他情况,不踩。
我这么一说你完全能明白。那请问,如果我们要设计一个机械化的自动刹车系统,应该怎么让它执行这些规则呢?
机器不懂人类语言中的快慢远近是什么意思。机器只知道实际数值是多少。解决这个问题有两个思路。
一个思路是干脆不要管那套人类的规则。刹车无非就是距离和速度这两个变量的函数,我们弄一个数学模型,随时根据距离和速度计算刹车值不就行了吗?是可以,但有时候那个函数不好弄。比如现在就请你写一个刹车作为距离和速度的函数,我估计你很难写。
另一个思路是把人类那套规则给量化。比如什么叫距离近?你可以规定,50米以内叫“近”。这个定义简单粗暴,但是在工程上有个可行性问题。
比如我们要做一个自动的空调开关。如果你规定20摄氏度是理想温度,室温高于20度就开空调,低于20度就关,你猜会怎样?你的空调会在20.001度开启。空调一开启,室温马上降下来,而室温一到19.999度,空调又关上。然后温度就会上升,然后空调再开。你的空调会开关个不停!
当然空调还好办,毕竟只有一个参数,你可以设定一个比如说从19度到21度的温度范围,只在这个范围之外开关。可是像刹车系统至少要考虑距离和速度两个参数,这个设定范围的方法就不好办了。这就是“模糊逻辑(fuzzy logic)”登场的时刻。

“模糊逻辑”是加州大学伯克利分校的数学家罗特夫·扎德(Lotfi Zadeh)在1965年提出的理论。他其实是要用数学语言去描写人类的形容词。
下面这张图定义了“冷”、“暖”、“热”三种温度 [2] ——

如果温度非常低,那就是绝对的“冷”,温度在华氏70度附近是绝对的“暖”,在很高的地方是绝对的“热”。而在中间那些斜线地带,则是模糊的定义。
比如图中黑色竖线所在的位置,就即可以说是冷,也可以说是暖。根据竖线和两条斜线的交点,我们说那个温度既是“0.6的冷”,也是“0.5的暖”。
这就是模糊逻辑。传统逻辑 —— 我们这里称之为明确逻辑(crisp logic)—— 的逻辑数值只有0或者1:真就是1,假就是0。而模糊逻辑允许“半真半假”存在。这个温度冷不冷?0.6的冷。那暖吗?0.5的暖。
有了这个定义,你就可以平滑地描写一个温度的变化了,也更符合人的思维习惯。“现在很冷 —— 现在只是有点冷,也有点暖 —— 现在比较暖”,这个说法就完全可以翻译成数学。模糊逻辑把人类语言翻译成机器语言,也把人类设想的控制规则翻译成机器运算。
具体的做法,咱们还是用一个例子 [3] 说明。

下面这个例子稍微有点烧脑,必须结合图形才能看懂。如果你不愿意费工夫的话,看看大概的思路就行。
我们设想这么一个情景。你把一支铅笔竖在手掌中心,铅笔会向一侧倒,而你要通过手掌在水平方向上的移动来控制它,让它始终不倒,搞一个动态平衡。简单起见,我们设想铅笔和你的手掌都只能往左、右两个方向移动,你移动速度的大小要由铅笔和手掌之间的角度,和那个角度变化的速度(简称角速度)决定。
用人的语言来说,你的操作规则应该是下面这样 ——
• 如果铅笔角度是0,角速度也是0,那么手掌移动速度就是0;
• 如果角度是0,角速度是低速,那么移动速度是低速;
• ……
用模糊逻辑处理这个问题,分为三步:模糊化、规则计算、去模糊化。
1.模糊化
我们要把两个输入变量(铅笔的角度和角速度)和一个输出变量(手移动的速度)都用模糊逻辑描写。
比如说,铅笔的角度总共分为五挡:负高、负低、零、正高、正低。这是人的语言,换成机器语言,多高算高,多低算低呢?我们使用下面这个图形把它模糊化(Fuzzification) ——

这种三角形的函数是模糊逻辑算法所常用的。这五个代表“负高、负低、零、正高、正低”的函数称为“隶属度函数(membershipt functions)”。
那我们设想现在机器读取了当前精确的角度值,就是图中黑色竖线所在的角度。变成模糊逻辑,现在角度的输入就是0.75的“零”(红色),也是0.25的“正低”(蓝色)。
类似地,把角速度也模糊化,就是下面这张图 ——

当前输入的这个角速度是0.4的“零”,也是0.6的“负低”。
2.规则运算
在模糊逻辑中,“如果……那么……”这个规则,是需要一条条运算出来的。通常的算法是“如果 A and B”的话,“那么……”后面的赋值是 A 和 B 二者中的最小值。
前面说了,角度有0.75的“零”,角速度有0.4的“零”,那么“如果铅笔角度是0,角速度也是0,那么手掌移动速度就是0”这条规则的计算结果,就取0.75和0.4的最小值,也就是0.4 —— 这就是这条规则对移动速度的赋值:移动速度有0.4的“零”。如下图 ——

但是角度和角速度还分别有“正低”和“负低”的逻辑值,所以下面这些逻辑规则也都要做相关的计算 ——
• 如果角度是0,角速度是负低,那么速度是负低;
• 如果角度是正低,角速度是0,那么速度是正低;
• 如果角度是正低,角速度是负低,那么速度是0;
这三条规则又给速度计算出三个新的逻辑值来 ——

加上前面那个,我们把速度的所有四个逻辑值计算结果叠加在一起,是下面这样的 ——

这是一个模糊逻辑下的速度分布图。那速度输出到底应该是多少呢?这就需要“去模糊化(Defuzzification)”
3.去模糊化
如果一个速度是0.6的负低,0.4的零,0.25的零和0.25的正低,那这个速度到底是多少呢?去模糊化的方法有很多种,常用的一种是把它们叠加在一起,然后取图形的“重心”所在的位置,如下图 ——

图中那个红点的位置,就是我们这个模糊逻辑控制系统最终的输出。
总而言之,机器读取的输入是精确数值,角度和角速度是多少就是多少。可人的思考是模糊的,我们只知道高、低、左、右、零这些判断。所以我们必须先把精确值变成模糊值。然后根据人凭直觉想到的处理规则,对模糊值直接操作,得到一个输出结果 —— 也就是手掌移动速度 —— 的模糊值。可是具体操作又不能模糊,所以必须再把输出值给去模糊化。
可以说,这一波操作是灰度认知、灰度决策、黑白执行。

你看这个操作是不是非常符合人的思维习惯。主教练说,“如果对方后卫逼的比较紧,你们就多传球多跑动;如果他们搞区域防守,你们就可以自己带带球……”那你说什么叫“紧”、什么叫“多”呢?这就是操作方法。
那些隶属度函数的具体数值,由工程师在实践中总结。
这个方法的一个好处是它的控制非常平滑,不会一惊一乍做突然的动作。更重要的是,它把人类的模糊思维翻译成了精确的机器语言。这在人工智能时代就非常可贵了,我们可以先按照人的思路搭建好模糊计算规则,然后用训练的方法得到哪些参数,这就是所谓“模糊专家系统”。模糊专家系统的稳健性特别好。
上世纪八十年代,很多日本公司在家电、火车控制等等的领域使用了模糊逻辑的控制方法,模糊逻辑的第一个正式应用就是仙台市的地铁系统。美国公司倒是用的不多。

那为啥模糊逻辑后来不流行了呢?那当然是因为计算机更强大了。回到我们一开始说的那第一个思路,直接用神经网络机器学习的方法判断输出,对现在的计算能力来说非常简单。
但模糊逻辑仍然有个最大的优势:它“理解”它在做什么,因为它本身就是人类命令的翻译。而对比之下,神经网络完全是个黑盒子 [4]。模糊专家系统,将来也许大有可为。
可我调研中发现一个非常奇怪的现象,有些人认为模糊逻辑是“伪科学” [5]:因为它的计算结果不是唯一的!可这不是完全合理的吗?我们在模糊化和去模糊化的过程中的确可以选择不同类型的函数和方法,但工程上的东西本来就是这样是灵活的,而且我们人类自己控制什么东西不也有自由度吗?如果模糊数学是伪科学,那神经网络算法简直就是神秘主义!
最后,让老师的课得到更广的传播,我们开启了‘课程’,‘众筹’,让更多想学习的人也能好好学习,'薇信’xuexi,17168。

2016至今大量的知识付费平台正在大量的崛起,包括喜马拉雅、得到、网易云课堂、小鹅通、、十点课堂、馒头商学院、插座学院等等。成千上万们付费课程如雨后春笋,不断充斥着这个信息大爆炸的时代。
这些课程价格不菲,少则200元,多则需要花费数千元,随便几次冲动购买的行为,就得花费几千元来埋单!
讨论的是知识,交到的是朋友,收获的是思想。
全网百度云会员包含(所有课程持续更新中)
喜马拉雅FM、得到、混沌大学、唯库、十点课堂、网易云课堂、樊登读书会、36氪专栏、知乎live、充电铺子、馒头商学院、起点学院、插坐学院、一块听听、蜻蜓FM、千聊live、优米网荔枝微课,分答社区,英盛网课程,优米网全集,新生大学等30+平台,2000多套付费栏目,随时随地,听我想听!总花费超过15万。

【每日更新】万维钢精英日课3课程分享笔记:模糊逻辑:灰度认知,灰度决策,黑白执行相关推荐

  1. 「万维钢精英日课」学习总结

    去年年底的时候,有幸加入了一个叫作「罗友学院」的社群,这里的「罗」是罗振宇,得到 APP & 罗辑思维创始人.每一个加入该社群的小伙伴都可以选择一门得到上的课程进行学习,那我选择的课程就是「万 ...

  2. Mixly第32课~第34课,课程学习笔记 | Mixly米思齐纯干货系列

    Mixly 是由北师大米思齐团队开发的图形化编程软件,自发布以来深受国内创客圈的喜爱.Mixly 编程软件采用图形化编程,不用记代码,只需要拖拽.简单设置,就能让你快速完成创意电子编程. 本专栏系列课 ...

  3. Mixly第35课~第37课,课程学习笔记 | Mixly米思齐纯干货系列

    Mixly 是由北师大米思齐团队开发的图形化编程软件,自发布以来深受国内创客圈的喜爱.Mixly 编程软件采用图形化编程,不用记代码,只需要拖拽.简单设置,就能让你快速完成创意电子编程. 本专栏系列课 ...

  4. 〔首届CSDN.南京区程序员聚会〕正式报名情况[每日更新7月19日 17:30]

    截止到目前为止,参加正式报名的共计158人:施晓雨,朱建峰,黄磊,张斌,郭卫东,吴福贵,顾志强,Foxe,牛牧,蒋健华,范绿峰,于艳,,王健,韩辉,刁仁合,占亮,严界兵,程瀚,吴刚,雷,王强,张海山, ...

  5. 精确休息法——《万维钢.精英日课3》笔记

    如果发现自己午睡后效果不好,那就需要对休息进行精确控制: 1,先喝杯咖啡,咖啡因含量200mg 2,手机设定25分钟定时 3,开始睡: 4,25分钟一到马上起来. 原理: 1,为什么不要在下午看病. ...

  6. 李佳琦10月24日美妆节预告,李家琦双十一预告每日更新

    李佳琦10月24日美妆节预告,李家琦双十一预告每日更新 2022年双11预售已经开始了,李家琦将在10月24日20点双11直播,第一天10.24是美妆节,爆款麦庄产品抢先预定,本文小编为姐妹们带来了李 ...

  7. 力扣学习记录(每日更新)

    文章目录 引言 简单 力扣:1 两数之和 力扣:20 有效的括号 力扣:21 合并两个有序链表 力扣:22 括号生成 力扣:27 移除元素 力扣: 35 搜索插入位置 力扣:70 [爬楼梯](http ...

  8. IT招聘(每日更新)

    IT招聘[每日更新] 写在前面 招聘信息 写在前面 招聘职位皆为我公司真实在招职位, 首先声明的是这里的工作都是外派工作[我司为大型外包公司], 外派的单位主要面向国企和一线大厂, 大家如有需求可根据 ...

  9. 送上“曾国藩日课十三条”

    随着年龄的增长,深深的感觉到自己大大不如从前,不管是从生理上还是从心理上. 小时候,每个人都有个梦想,我也是,我的梦想是当一名科学家,走出校园,步入社会后,渐渐离现实近了,所见,所闻,所想,都是残酷的 ...

  10. 2017.2.14 日课

    今天一天做了两件事,上午写天池的口碑预测竞赛,下午读low-rank方面的论文,来寻找dual-camera结构图像对齐的思路.闲书方面,读完了<对冲基金到底是什么>. 天池口碑竞赛 在这 ...

最新文章

  1. TextArea的滚动条看不到了,可能与height有关
  2. 调度策略的测试方法及其自动化
  3. POJ - 2142 The Balance(扩展欧几里得)
  4. python画同心圆程序_python – matplotlib:如何在给定的半径范围内绘制同心圆
  5. Elementui select 设置点击事件,在Change事件前触发
  6. android 480p分辨率,[RK3399][Android7.1] HDMI显示屏(副屏)调试记录小结
  7. linux打开光盘文件怎么打开方式,ISO是什么文件?用什么打开?
  8. clock函数的时间单位_【CUDA 基础】2.2 核函数计时
  9. Jmeter(GUI模式)教程
  10. NVIDIA携大型台湾服务器制造商:为推AI数据中心设计方案
  11. 考试系统分析对比考试系统哪个好
  12. 跪求C-MAPSS下载
  13. 卡方检验的统计量推导_卡方检验如何计算?
  14. linux红帽8怎么安yum,RedHat Linux 8本地Yum源配置方法
  15. linux中查看ruby版本号,Ruby 版本常量
  16. Kubernetes 安全容器技术 kata gvisor
  17. ..\OBJ\Template.axf: Error: L6218E: Undefined symbol FSMC_NORSRAMCmd (referred from lcd.o).
  18. 论职务犯罪案件侦查 z
  19. 随心下载网页中嵌套的视频(各大视频网站并不适用)
  20. 上海大学计算机网络实验四,上海大学计算机网络实验报告4.docx

热门文章

  1. 如何使用JavaWeb实现户籍管理系统?
  2. 迅捷fw313r服务器无响应,FAST迅捷FW313R路由器的固件更新教程
  3. 97、锐捷交换机常用配置命令汇总
  4. 安利一些电子图书下载网站
  5. 初级会计资格-初级会计实务-知识点总结大全
  6. 网易游戏:游戏测试是一个怎样的行业?
  7. Java下载服务器文件
  8. java可视化工作流_强大的java工作流引擎,可视化开发工作流
  9. 基于php和mysql的网上购物系统设计与实现_基于PHP+MySQL的网上购物系统设计与实现...
  10. DOS命令大全(存档自用)