模糊推理是一种基于行为的仿生推理方法, 主要用来解决带有模糊现象的复杂推理问题。由于模糊现象的普遍存在, 模糊推理系统被广泛的应用。模糊推理系统主要由模糊化、模糊规则库、模糊推理方法以及去模糊化组成, 其基本流程如图1所示。
■ 图1 模糊推理流程图
传统的模糊推理是一种基于规则的控制, 它通过语言表达的模糊性控制规则实现对难以精确描述系统的控制, 在设计中不需要建立被控对象的精确数学模型。T-S 模糊推理模型是将正常的模糊推理规则及其推理转换成一种数学表达形式。T-S 模型本质上是将全局非线性系统通过模糊划分建立多个简单的线性关系, 对多个模型的输出再进行模糊推理和判决, 可以表示复杂的非线性关系。
01、T-S 模型的模糊推理过程
T-S 模糊模型基本思想是用线性状态空间模型作为后件表达每条语句对应所表证的局部动态特征, 则全局的模糊模型就由这些线性模型通过隶属度函数综合而成, 全局模型是一个非线性模型, 利用模糊逻辑系统的非线性映射能力, 就可以逼近一个复杂的非线性系统,而且能够对定义在一个致密集上的非线性系统做到任意精度上的一致逼近。
1、多输入多规则模糊推理系统的工作原理:
① 通过模糊化模块将输入的精确量进行模糊化处理, 转换成给定论域上的模糊集合。
② 激活规则库中对应的模糊规则。
③ 选用合适的模糊推理方法, 根据模糊事实推理出结果。
④ 对模糊结果进行去模糊化处理。
2、模糊化的原则及方法:
原则1 : 在精确值处模糊集合的隶属度最大。
原则2: 当输入有干扰时, 模糊化的结果具有一定的抗干扰能力。
原则3 : 模糊化运算应尽可能简单。
各约束的隶属函数为(本实验采用)
当隶属度函数为f(x) 时, 模糊化隶属度函数准则(本实验采用) :
3、模糊规则库(本实验采用) :
IF 科研经费低 AND 人数高 AND 作品数低 AND 获奖数低 THEN 评价差
IF 科研经费高 AND 人数低 AND 作品数低 AND 获奖数高 THEN 评价高
IF 科研经费中 AND 人数中 AND 作品数中 AND 获奖数中 THEN 评价中
IF 科研经费高 AND 人数高 AND 作品数低 AND 获奖数低 THEN 评价差
对于评价的等级高中差分别用3 、2、1 表示。
约束等级划分标准:
4、去模糊化的原则与方法:
原则1 : 所得到的精确值, 能够直观地表达该模糊集合。
原则2: 去模糊化运算要足够简单, 保证模糊推理系统实时使用。
原则3 : 模糊集合的微小变化不会使精确值发生大幅变化。
采用最小法和乘积法进行去模糊化处理(本实验采用) 。
02、T-S 模型的模糊推理实验
具体实现及主要代码如下
import mathW={}MIN={}MUL={}jf=0rs=0zp=0hj=0pj={}class T_S:def fun1(m):#科研经费隶属度函数if m<=5:return 0if m>5 and m<=20:return ((m-5)/15)*((m-5)/15)if m>20:return 1def fun2(m):#人数隶属度函数if m<=5:return 0if m>5 and m<=10:return ((m-5)/5)*((m-5)/5)if m>10:return 1def fun3(m):#作品数隶属度函数if m<=10:return 0if m>10 and m<=30:return ((m-10)/20)*((m-10)/20)if m>30:return 1def fun4(m):#获奖数隶属度函数if m<=5:return 0if m>5 and m<=15:return ((m-5)/10)*((m-5)/10)if m>15:return 1def rule1(self):W[0]=math.sqrt(1-T_S.fun1(jf))W[1] = math.sqrt(T_S.fun2(rs))W[2] = math.sqrt(1 - T_S.fun3(zp))W[3] = math.sqrt(1 - T_S.fun4(hj))pj[0]=1for i in range(4):if(W[i]<0.0000000001):W[i]=0minTemp=999#取小法for i in range(4):if(W[i]!=999):minTemp=min(minTemp,W[i])MIN[0]=minTempmulTemp=1#乘积法for i in range(4):if(W[i]!=999):mulTemp=mulTemp*W[i]MUL[0]=mulTempdef rule2(self):W[0] = math.sqrt(T_S.fun1(jf))W[1] = math.sqrt(1-T_S.fun2(rs))W[2] = math.sqrt(1-T_S.fun3(zp))W[3] = math.sqrt(T_S.fun4(hj))pj[1]=3for i in range(4):if(W[i]<0.0000000001):W[i]=0minTemp=999#取小法for i in range(4):if(W[i]!=999):minTemp=min(minTemp,W[i])MIN[1]=minTempmulTemp=1for i in range(4):if(W[i]!=999):mulTemp=mulTemp*W[i]MUL[1]=mulTempdef rule3(self):W[0] = min(T_S.fun1(jf),1-T_S.fun1(jf))W[1] = min(T_S.fun2(rs),1-T_S.fun2(rs))W[2] = min(T_S.fun3(zp),1-T_S.fun3(zp))W[3] = min(T_S.fun4(hj),1-T_S.fun4(hj))pj[2]=2for i in range(4):if(W[i]<0.0000000001):W[i]=0minTemp=999#取小法for i in range(4):if(W[i]!=999):minTemp=min(minTemp,W[i])MIN[2]=minTempmulTemp=1for i in range(4):if(W[i]!=999):mulTemp=mulTemp*W[i]MUL[2]=mulTempdef rule4(self):W[0] = math.sqrt(T_S.fun1(jf))W[1] = math.sqrt(T_S.fun2(rs))W[2] = math.sqrt(1-T_S.fun3(zp))W[3] = math.sqrt(1-T_S.fun4(hj))pj[3]=1for i in range(4):if(W[i]<0.0000000001):W[i]=0minTemp=999#取小法for i in range(4):if(W[i]!=999):minTemp=min(minTemp,W[i])MIN[3]=minTempmulTemp=1for i in range(4):if(W[i]!=999):mulTemp=mulTemp*W[i]MUL[3]=mulTempif __name__ == '__main__':jf=int(input("经费:"))rs=int(input("人数:"))zp=int(input("作品:"))hj=int(input("获奖:"))T_S.rule1("")T_S.rule2("")T_S.rule3("")T_S.rule4("")MINEVA=0MULEVA=0min_sum1 = min_sum2 = mul_sum1 = mul_sum2 = 0for i in range(4):min_sum1+=MIN[i]*pj[i]min_sum2+=MIN[i]mul_sum1+=MUL[i]*pj[i]mul_sum2+=MUL[i]MINEVA=min_sum1/(min_sum2+0.000000001)MULEVA=mul_sum1/(mul_sum2+0.000000001)print("取小法评价:"+str(MINEVA))print("乘积法评价:" +str(MULEVA))if(MINEVA>=0 and MINEVA<=1.5):print("评价差")elif (MINEVA>1.5 and MINEVA<=2.5):print("评价中")elif (MINEVA>2.5):print("评价高")
实验结果如图2 所示。
■ 图2 实验结果
03、源码
源码Fuzzy_Inference.pyhttps://www.aliyundrive.com/s/dzA5e6VXqQm
04、文末送书
Chat GPT的大热,让人们的视线又一次聚焦于“人工智能”领域。通过与用户持续对话的形式,更加丰富的数据会不断滚动“雪球”,让Chat GPT的回答变得越来越智能,越来越接近用户最想要的答案。
而这一概念,其实在过去广泛引用的app中,早有雏形,比如,淘宝的猜你喜欢,抖音的推荐视频沉浸流等等。而支撑着这些app背后的,就是那个“总能猜中你喜欢的”推荐系统。无论是内容类平台,还是电商类平台,依靠着不断地与用户交互信息,从而提供给用户越来越精准的推荐场景,而当用户在平台的推荐场景内停留,甚至消费时,平台就达到了获取商业价值的目的,例如抖音的天价广告收入、淘宝的巨额商品佣金,或时其他的附加值,都是应用了这一逻辑。
如果你想要了解更多的人工智能算法逻辑,亦或是知悉推荐系统背后的运作规则,又或是探清风云巨变下的互联网巨头的业务思路,这本《业务驱动的推荐系统:方法与实践》将会是你的不二选择!
本书特色
01. 内容另辟蹊径
《业务驱动的推荐系统:方法与实践》是一本不独以推荐算法为上,而是从业务诉求的视角出发,为读者描绘当下主流推荐系统的设计思想和架构全貌。它首次从业务的视角下,解读了推荐系统的架构设计、评估方法、数据工程、算法原理,并揭秘了在千万级DAU下,工业推荐系统的构建和优化奥秘。
目前市面上介绍推荐系统的书比较同质化,内容都以推荐算法和模型为主,堆砌大量SOTA模型,这就很容易让读者误以为掌握了算法就能做好推荐系统,取得商业收益。但事实上,对于推荐算法工程师而言,算法与模型好比一把屠龙宝刀,如果没有掌握与之配合的修炼心法和功法技巧,就往往发挥不出这个宝器的威力。而这个修炼心法就是通常所讲的业务逻辑,唯有掌握业务驱动算法迭代的方法论,将推荐系统植根于业务之上,才能最大限度的发挥出算法与模型的作用。
此外,本书在介绍基于机器学习、深度学习的推荐算法时,重“为什么”而轻“怎么做”,这也是本书与其他同类书的不同之处。推荐算法相关的研究文献浩如烟海,理解算法选型的根因比知道有哪些算法更重要。
它不仅描绘了当下主流推荐系统的设计思想和架构全貌,还重点突出了系统每个模块所需要解决的问题,进而介绍一至两种,在实践中检验普遍有效、且在学术界具备里程碑性质的算法。从日常工作实际会遇到的问题出发,在学术界每年产出的大量新算法研究中去粗取精,真正意义上的帮助读者识别有价值的算法!
02. 作者背景资深
本书作者傅聪,在推荐系统领域有着丰厚的技术沉淀。他曾在阿里担任推荐和搜索方面的算法专家,独立带领团队负责千万DAU下的推荐和搜索场景,同时也是工业级高性能高维数据检索算法NSG、SSG的发明人。
傅聪的本科与博士均毕业于浙江大学计算机学院,曾留美赴南加州大学做访问学者。师从国家优秀青年学者蔡登教授与国家杰出青年学者何晓飞教授。在两位优秀导师的带领下,他在人工智能、推荐系统、数据库、数据挖掘、自然语言处理、神经网络、知识图谱等多个领域都产出了丰富的研究成果。并在计算机顶级会议或期刊TPAMI、KDD、VLDB、IJCAI、EMNLP、CIKM等发表过多篇论文,目前是TKDE、IJCAI、EMNLP、AAAI、Neuron Computing等国际会议的审稿人。
在学术界时,傅聪已经开始致力于推荐系统、搜索引擎前沿技术的研究,并为日后的工作打下了坚实的学术基础;在工业界时,傅聪在千万级DAU的淘宝电商,以及优酷视频业务的场景下,均成功实现了推荐系统、搜索引擎、搜推融合等技术方向的项目落地。可以说,对于推荐业务,傅聪有着丰富的实战经验和扎实的学术根基。
03. 阅读人群广泛
本书适合从事推荐系统相关工作和学术研究的读者阅读,具体包括:在企业中从事推荐系统算法研发、优化的从业者;在企业中从事推荐系统引擎开发、维护的从业者;在企业中与推荐算法和工程开发相关的人员对接的运营人员和产品设计人员;对推荐系统感兴趣的在校学生;从事推荐算法研究的科研工作者。
通过阅读本书,在校学生可以提前从商业、运营、算法、工程视角了解推荐系统,从而对推荐系统有一个更加立体化的认知;科研工作者可以从业务的视角,重新理解召回、排序和决策智能方面的经典算法和学术界有里程碑意义的算法;企业新手可以从技术和业务的双重视角,提前了解并规划工程师的成长路径,以达到事半功倍的效果;企业从业人员可以从业务视角理解推荐系统的顶层设计,掌握业务驱动的推荐系统设计思想、评估方法。
参与方式:文章三连并评论“人生苦短,我用Python”,24小时后程序自动抽奖,抽取4位幸运儿,送出《业务驱动的推荐系统:方法与实践》4本!