drwuHUST的个人博客分享 http://blog.sciencenet.cn/u/drwuHUST

博文

针对大数据的TSK模糊系统回归和分类模型训练方法

已有 552 次阅读 2019-8-22 09:20 |个人分类:计算智能|系统分类:论文交流

前文“TSK模糊系统与神经网络、混合专家模型、分类回归树CARTstacking集成学习的等价性”介绍了TSK模糊系统的 一些基础知识,并指出了其与神经网络、混合专家模型、分类回归树CARTstacking集成学习等常见的机器学习方法的函数等价性。基于此,我们进一步把其等价模型的训练方法,特别是神经网络(深度学习)的优化方法,推广到基于大数据的TSK模糊系统回归和分类模型训练当中,大大提高了训练速度和泛化能力。个人认为这是我们近期最有价值的工作之一,有望成为TSK模糊系统训练的新标准。

模糊系统常用的有两种规则:Zadeh(加州大学伯克利分校教授,模糊逻辑创始人)规则,其中规则后置是模糊集,和Takagi-Sugeno-Kang (简称TSKSugeno为日本东京工业大学教授)规则,其中模糊后置是输入的函数。一个TSK规则通常具有如下形式:

TSK.png

其中x_1, …, x_dd维的输入,X_{k,1}, …, X_{k,d} 为第k条规则中各个输入对应的模糊集(这些模糊集可以随规则不同而变化),y_k(x)为该规则的输出,它是关于输入的一个线性函数(也可以是复杂的非线性函数,但是线性函数用得最多;有时候y_k(x)就是一个简单的常数,即只使用b_k)。

Zadeh模糊系统(也称为Mamdani模糊系统。Mamdani为英国帝国理工学院教授)由4个部分组成:模糊化,规则库,推理机,和去模糊化。模糊化把每个输入映射成模糊集,推理机基于规则库进行推理来得到一个新的模糊集,然后去模糊化把模糊集映射成一个数值化输出。

TSK模糊系统不需要去模糊化,因为推理机的输出直接就是清晰的数值。近年来,TSK模糊系统比Zadeh模糊系统更为流行,因为其结构和计算更简单,但是表达能力更强,尤其适用于数据驱动的建模。这里我们只考虑TSK模糊系统。

FLS.png


优化一个TSK模糊系统需要如下几个步骤:

1.       选择一个合理的目标函数

2.       初始化模型参数(隶属度函数参数,和规则后置的参数)

3.       根据目标函数,进一步优化模型参数。其中至少有3个问题需要考虑:

1)      如何处理大数据?大数据有很多特点,这里我们只考虑样本多和维度高这两个特性。

2)      如何加速训练?

3)      如何提高泛化能力?

下面我们针对TSK模糊系统的回归问题和分类问题,分别回答这几个问题。

 

回归问题:

1.       选择一个合理的目标函数:我们在传统的均方误差损失项上引入了对规则后置系数的L2正则化。这是机器学习中的常见方法,一般用来提高泛化能力。

2.       初始化模型参数(隶属度函数参数,和规则后置的参数):我们使用半随机初始化。高斯隶属度函数的均值在对应变量的取值范围内随机选取,方差采用对应变量的方差。规则后置系数都初始化为0.

3.       根据目标函数,进一步优化模型参数。

1)      如何处理大数据?借用深度学习中常用的Mini-batch gradient descent (MBGD)

2)      如何加速训练?学习率对训练速度影响很大。目前深度学习中最流行的自适应学习率调整方法是AdamAdam的一个问题是,自适应调节后的学习率可能很大或很小,都不利于训练。我们实验发现最近提出的AdaBound(为Adam的学习率加上一个区间限制,让其不能过大或过小)比Adam的效果更好一些,所以这里采用AdaBound来自动调整学习率。

3)      如何提高泛化能力?DropOut是图灵奖获得者Hinton组提出的提高深度学习模型泛化能力的简单有效方法。这里我们把对应思想推广到TSK模糊系统的训练当中,提出了DropRule,如下图所示。基本思想是在训练的过程中随机丢弃一部分规则。这样每条规则在应对一个新的训练batch时,因为跟其搭配的规则改变了,所以不能太依赖于其他规则(上个batch跟其搭配的其他规则可能表现很好,所以当前规则可以偷懒不干活;但是新的batch里面跟其搭配的规则可能表现很不好,所以当前规则必须调整自己来减小训练误差),迫使每条规则都能得到充分训练并发挥自己的最大潜力。这样有助于提高模型的整体泛化性能。

DropRule.png

 

我们的最终训练方法,Mini-Batch Gradient Descent with Regularization, DropRule, and AdaBound (MBGD-RDA),在9个公共数据集上取得了比标准MBGDMatlab Fuzzy Logic Toolbox中的标准ANFIS优秀很多的性能,如下面两个图所示。


DropRule2.png


MBGD-RDA相对于其他方法性能提高的百分比:


DropRule4.png




分类问题:

1.       选择一个合理的目标函数:我们在传统的交叉熵误差损失项上引入了对规则后置系数的L2正则化,以及Uniform Regularization (UR)UR的目的是让各个规则对输出的贡献大致均衡,缓解rich gets richer现象。这个正则化项的思路感觉跟DropRule有点相近,后面需要进一步比较一下。

2.       初始化模型参数(隶属度函数参数,和规则后置的参数):我们使用随机百分位数初始化(Random percentile initialization, RPI)。对每一个变量,我们计算其若干个百分位数,比如25%75%,然后随机赋给高斯隶属度函数的均值。这个方法很简单,但是鲁棒性很好。

3.       根据目标函数,进一步优化模型参数。

1)      如何处理大数据?再次借用深度学习中常用的Mini-batch gradient descent

2)      如何加速训练?再次采用AdaBound来自动调整学习率。

3)      如何提高泛化能力?批规范化(Batch NormalizationBN)是深度学习中用来解决internal covariate shift(近年来有研究说BN解决的并不是internal covariate shift的问题,但这不是本文的重点;总之BN效果非常好,大家都在用)并提高泛化能力的方法,几乎成了深度神经网络训练的标配。我们把BN从深度学习推广到了TSK模糊系统的训练,如下图所示。当然BN有不同的加入位置和方法,我们的实验发现下图方法的效果最好。具体可参考文末文献。


BN.png


我们的最终训练方法,UR-RPI-BN,在包括MNIST在内的9个公共数据集上取得了很好的分类效果,如下面两个表格所示。


BN1.png


BN2.png



总结:

下表总结了我们提出的新的方法:


BN3.png

    

    当然,分类问题和回归问题不是完全独立的,这里的URBN可能也可以用于回归问题。这是我们后面将要探讨的方向。

 

回归问题的工作由华中科技大学人工智能与自动化学院伍冬睿教授、袁烨教授和谭毅华教授共同完成,目前在IEEE Transactions on Fuzzy SystemsIF=8.759)审稿中:

D. Wu, Y. Yuan and Y. Tan, "Optimize TSK Fuzzy Systems for Big Data Regression Problems: Mini-Batch Gradient Descent with Regularization, DropRule and AdaBound (MBGD-RDA)," IEEE Transactions on Fuzzy Systems, 2019, submitted.

arXiv版本:https://arxiv.org/abs/1903.10951

 

分类问题的工作由二年级博士生崔雨琦同学和伍冬睿教授共同完成,目前在IEEE Transactions on Fuzzy SystemsIF=8.759)审稿中:

Y. Cui and D. Wu*, "Optimize TSK Fuzzy Systems for Big Data Classification Problems: Bag of Tricks," IEEE Trans. on Fuzzy Systems, 2019, submitted.

arXiv版本:https://arxiv.org/abs/1908.00636

 




http://blog.sciencenet.cn/blog-3418535-1194710.html

上一篇:基于多任务深度学习和动态规划的试管婴儿胚胎细胞发育阶段自动分类
下一篇:脑机接口简介

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-9-19 20:41

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部