作者简介:范力欣博士是诺基亚技术 (Nokia Techonologies) 的 Principal scientist。他的研究领域包括机器学习、计算机视觉、图像视频处理、大数据处理、增强现实和虚拟现实、移动计算和普适计算等。他发表了 50 多篇论文和近百篇专利申请。加入诺基亚以前,范力欣博士曾在施乐欧洲研究中心 (XRCE) 工作,其合作的 Visual categorization with Bags of keywords 论文,获得广泛关注和引用。
将模糊逻辑与深度学习进行融合的动机
深度学习发展到今天,很大程度上依然是一个「实验主导」的、「先有实验结果再找可能解释」的学科。对实验结果的理论解释,争议不断,而且随着时间的推移,研究者们给出的解释也不断在发展——换言之,这是一个尚未出现坚实理论基础的学科。
而深度学习的可解释性之所以重要,是因为,如果试图将神经网络用于医学诊断或无人车驾驶等涉及伦理决策的任务中,决定的路径必须是清晰的,而且对决策的解释权仍然需要把握在人手中。2013 年左右,以 Hinton 为代表的科学家试图以决策树模型的逻辑决策来解释神经网络,在保留性能的同时提高可解释性。而在 2017 年的 NIPS 上,也有两个 workshop 以可解释性为主题,探讨为神经网络引入可解释性的不同路径。
模糊逻辑,作为一种基于逻辑推理规则的人工智能方法,其优点是可解释性强,决策机制容易被人理解。所以,从 80 年代就有研究提出,将模糊逻辑比较好的解释性,与神经网络的学习能力相结合,组成模糊神经网络 (fuzzy neural network FNN)。而我近期的工作,则是在深度学习的基础上,重新定义模糊神经网络 [1]。研究目的仍然是取长补短,用逻辑推理规则,来解释和规范神经网络的学习机制。可喜的是,从模糊逻辑的角度来看,很多基于经验的深度学习方法,都有了合理的解释。
回顾人工智能的历史,从上世纪 60 年代开始引人注目的模糊逻辑 (fuzzy logic),发展历程中经历了一个完整的从经验主导到夯实理论基础,从大规模投入应用到日渐式微的过程。「你所经历的我都经历过」,让模糊逻辑相对于深度学习有了极大的借鉴意义。模糊逻辑或许并不为今天的深度学习研究者所熟知,但查询谷歌趋势,我们可以看到直至 2016 年以前,模糊逻辑的关键词搜索量都是超过深度学习的。如果把时间轴拉得更长,我们可以看到模糊逻辑的关注度从 70 年代到 90 年代后期,经历了一次大幅度的增长,而当时的深度学习则「养在深闺人未识」。
当时的模糊逻辑,一方面,仍然面对其数学基础薄弱、理论支撑不足的批评。但是另一方面,以日本为主的电器厂商,将基于模糊逻辑的模糊控制广泛应用在了冰箱、彩电等各种家电中。而业界的大范围应用进一步资助和推动了学界对模糊逻辑理论的深入研究。可惜的是,从 90 年代开始,模糊逻辑和整个人工智能领域的研究都进入了寒冬期。现实里「能解决的问题都解决了,解决不了的仍然解决不了」,导致模糊逻辑研究的范围越来越窄,逐渐与实际应用脱节,关注度也日渐式微。
什么是模糊逻辑
模糊逻辑是用于处理部分真实的逻辑概念和推理规则。数学上,模糊逻辑用连续的真实度来扩展二值化的布尔真值。所以模糊逻辑的陈述更接近于日常人们的问题和语意陈述,因为「真实性」在语言沟通中多数时候是部分(非二元)的,不精确的(不准确的,不清晰的,模糊的)和主观的。
举个例子,命题 1:「小明是一个高个男生。」如果是一个二值原理场景,那么命题 1 只能是真的或者假的。模糊逻辑可以更好地模拟命题中的不确定性部分:多高算高?与谁相比?如果我们设定门限(threshold):认为 180cm 以上的毋庸置疑是高个男人,S(height ≥ 180)= 1,170 以下的毋庸置疑是矮个男人,S(height ≤ 170)= 0。并且建立一个线性的隶属函数,那么我们就可以得到,S(height = 175)= 0.5,这样一个判断:「身高 175 的小明是一个高个男生」的真实性为 0.5。当然,如果用不同的隶属函数,就代表了不同的逻辑判断。
简而言之,模糊逻辑是将二值逻辑中的二值替换成多值(多值可以是三值、多值、有限多有理数、无限多有理数)。模糊逻辑更好地模拟了人的思维与交流过程中的不确定性,也同时保留了逻辑推理的可重复和可解释性。从发展历史来说,模糊逻辑 (fuzzy logic) 这个术语是 UC Berkeley 的教授 Lotfi Aliasker Zadeh 于 1965 在他的论文「Fuzzy sets」中提出。而多值逻辑的数学概念,从上世纪二十年代开始,已经有卢卡西维茨 (Łukasiewicz),哥德尔 (Gödel),塔斯基 (Tarski) 等数理逻辑学家做了深入研究。
重新定义模糊神经网络
在 90 年代初,就存在对模糊神经网络的充分研究。在明年一月,IEEE 的期刊 Transactions on Fuzzy Systems 会推出深度学习特刊。模糊逻辑和神经网络有多种结合方式,在前深度学习时代,有的方式把模糊逻辑和神经网络模块拼接或并行,还有一些把每一个神经元的运算模糊化 ([2])。
我最近的工作 Generalized Hamming Network(GHN)在网络结构上属于上图(i)这类,即对每个神经元进行模糊化的类型。而与传统 FNN 的区别,在于不需要刻意添加模糊过程,而是对一般的神经元计算进行规范,使之遵循模糊逻辑的「异或」运算规则。具体的运算公式也很简洁 (如下),很容易验证,这个公式在输入 0 或 1 时,就退化为一般的二值异或运算。而下图中的红蓝函数曲面,可以看作是扩展到实数域的真值表。其中,偏红或蓝的部分,代表确定性高的判断,而白色接近 0.5 的区域则包含了比较模糊,不确定的判断 (细节见 [1])。
类比于深度学习的图像卷积运算,将异或运算当作一个滤波算子,作用于输入图像:
则可以推导出, 只要 bias term 严格按照以下公式设定:
那么每一个神经元的输出就是对输入 X 和神经元参数 W 做模糊异或非的逻辑运算结果。注意,这里 bias term 是受参数 W 和输入 X 约束而直接设定的,不需要通过学习算法来优化。
从逻辑异或的角度,神经元的运算可以解释为对 X 和 W 的相似度测量, 也就是计算两者之间的泛化汉明距离 (generalized hamming distance GHD)。沿着这个思路,Rectified Linear Unit (ReLU) 一类的激活函数,事实上是对测得的汉明距离设定门限。进一步说,由于 GHD 是有正有负的,ReLU 其实只是截取了在正数端一半的信息,而屏蔽掉了另一半负数端的信息。我们的实验表明,保留正负两端的信息 (double-thresholding),是能够提高学习效率和识别准确率的。
广泛采用的 batch normalization(BN 批归一化),事实上是用优化学习的方法来约束 bias term 使之与参数 W 一同变化,从而达到防止参数梯度爆炸的目的。而在 GHN 中,按公式计算的偏置项是受参数 W 和输入 X 控制的,与参数同步增加(减少),但符号相反。所以,按公式计算的偏置项自然会有控制输出、使其不会无限制地增加的特点,即使是使用较大的学习率时,也可以有效避免梯度爆炸。相比于批归一化,GHN 的优势在于它是按逻辑关系推导出来的,没有经过任何启发式过程,具有批归一化所没有的可解释性。
必须要说明的是,在学习效率上,GHN 计算出来的偏置项在一些实验中不如批归一化优化出来的偏置项。我们的看法是,先验的逻辑异或关系(XOR)不一定是实际数据中的最优。逻辑关系本身,也应该按实际数据呈现的关系进行优化,这也是我们近期的研究工作之一。
接下来的研究
结合模糊逻辑和深度学习的研究才刚刚起步,打比方说,去年的成果相当于在两座相对的山峰之间,建立了一个空中索道。接下来,还需要建立更扎实的基础和引入更广泛的应用。长远来看,我们希望能够通过这方面的研究,将人工智能的两大流派,即基于逻辑关系的符号学派和基于概率统计的连接学派,结合起来取长补短。
这些进一步的工作,一方面体现在我们近期的研究中。另一方面,也希望有更多年轻的学者和同学,加入到这个行列里面来。所以我们在七月份瑞典举行的 IJCAI,组织了这样一个题为「Toward Interpretable Deep Learning Via Fuzzy Logic」的 tutorial[3], 而在八月份的北京 ICPR 上也会再讲一次同样题目的 tutorial[4]. 欢迎大家报名参加,交流学习。
References:
[1] L. Fan. (2017) "Revisit Fuzzy Neural Network: Demystifying Batch Normalization and ReLU with Generalized Hamming Network", NIPS 2017.
[2] Takagi, H. (2000). Fusion Technology of Neural Networks and Fuzzy
Systems : A Chronicled Progression from the Laboratory to Our Daily Lives.
Journal of Applied Mathematics, 10(4):120.
[3] IJCAI 2018 Tutorial: Toward Interpretable Deep Learning via Fuzzy Logic, http://web.fsktm.um.edu.my/~cschan/ijcai2018
[4] ICPR 2018 Tutorial: Toward Interpretable Deep Learning Via Fuzzy Logic, http://www.icpr2018.org/index.php?m=content&c=index&a=show&catid=47&id=9