第1章绪论
近年来,随着互联网技术的高速发展,海量数据应运而生并得以保存。毋庸置疑,大数据中隐含着具有重大价值的信息,对大数据潜在价值的挖掘在社会发展过程中起着不可估量的推动作用。然而,在大数据潜力广阔的背景下,研究者在对数据信息进行深入挖掘的过程中,却发现其中普遍存在着数据维度冗余、特征冗余的问题,这严重影响了数据挖掘的效率和性能。据此,作为数据挖掘的一项重要任务,特征选择(feature selection)被提出并吸引了研究者的关注,迅速成为新的研究热点。
特征选择的基本任务是从高维特征集中找出*有效的特征组合,通过剔除原始数据中不相关的和冗余的特征,降低数据的维度、简化学习模型,进而达到提高数据挖掘性能的效果。然而,特征选择是一项颇具挑战性的任务,主要是因为搜索空间大,对于一个有n个特征的数据集,其可能的解决方案的总数为 。采用简单粗暴的方法,即尝试所有特征组合从而挑出*优的子集特征,非常花时间,所以是不可行的。基于传统搜索的特征选择算法,如完全搜索、贪婪搜索、随机搜索等,也容易陷于局部*优的困境。为此,新型的、更具全局寻优能力的群体智能优化算法开始应用于特征选择。与传统搜索方法相比,群体智能优化算法不需要对搜索空间做任何假设,并能基于群体机制在一次迭代中产生多个解决方案。
群体智能优化算法通过模拟简单携带信息的个体之间的相互作用而产生一种解决问题的能力,群体的概念暗示了多样性和随机性,而智能的概念则在某种程度上暗示了这种解决问题的方法是成功的。这些简单携带信息的个体可以是有生命的、机械的、数学的;可以是昆虫、鸟类或人类;可以是真实的,也可以是想象的。其中,有一种古老的单细胞生物—大肠杆菌,其因旺盛的生命力引起了研究者的关注。在后来的研究中,人们发现大肠杆菌顽强的生命力与菌群独*的觅食和繁衍过程有关,至此开启了关于菌群优化算法的研究。
1.1*优化问题
所谓*优化问题,就是在满足一定的约束条件的情况下,寻找一组参数值,满足*优化度量,即使得系统的某些指标达到*大或*小。以*小化为例,*优化问题的数学表达式如下:其中,g(X)为目标函数,需要求解它的极小值。优化过程就是在定义域内找到合适的X,既使得X能够满足条件约束,又使得目标函数g(X)能够取到*优解。为等式约束。为不等式约束。如果约束函数和所限制的约束空间是整个欧氏空间,那么通过对上述*优化问题进行简化,可以使其转化为无约束的优化问题。除此之外,还可以通过其他方法(如惩罚函数法)将有约束的优化问题转换为无约束的优化问题。
在上述*优化问题中,如果变量X在其定义域内是连续的,并且目标函数g(X)和约束函数、都是线性函数,那么上述问题就被称为线性规划问题。如果目标函数g(X)和约束函数、至少有一个是非线性函数,那么此时的*优化问题被称为非线性规划问题。
上述问题仅为单目标优化问题,实际上,现实中存在大量的多目标优化问题。在解决此类问题时,决策者需要综合考虑多个目标间的关系,以获取*终的方案。多目标优化问题可以表示为
(1-2)
在求解多目标优化问题的过程中,往往很难找到一个合适的解,能够同时使得所有的目标函数都达到*优,因为多个目标函数之间容易存在一定的矛盾和冲突。因此,多目标优化问题往往没有单一的*优解,有的是满足多个目标函数的一组解的集合。
1.2群体智能优化算法
群体智能是指群体中的简单个体通过相互协作而产生的解决问题的能力,具有多样性和随机性。我们对自然界的种群都很熟悉:在种群中,每个成员扮演一个简单的角色,但作为一个整体,这种形式产生了复杂的行为。这些种群在很多方面展示出群体智慧,表现出竞争合作意识与交流学习能力,通过共同努力实现同一目标。
相应地,群体智能优化算法是受群体智能启发而提出的,该算法借助个体的集群行为及它们与环境的局部交互,拥有功能性的全局寻优能力,被应用于解决各类优化问题。群体智能优化算法主要模拟了蚁群、蜂群、鸟群等群体的行为,这些群体根据特定的合作方式寻找食物,群体中的成员通过学习自身和其他成员的经验来不断地改变搜索的方向。
1.2.1蚁群优化算法
蚁群优化(ant colony optimization,ACO)算法是Dorigo于1992年在他的博士论文中提出的,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚂蚁根据信息素浓度进行移动,以此寻找*优的觅食路径。在觅食过程中,蚂蚁会在路径上释放信息素的同时分析其他蚂蚁释放的信息素。
如此一来,蚁群释放的信息素将蚂蚁连接起来,实现了信息的交流和传递,促进了蚂蚁间的协同合作。经过一段时间的搜索,用时较少的路径被蚂蚁识别,它们通过增加该路径的信息素浓度来提高蚂蚁选择该路径的概率,进而促使该路径成为*优路线。图1-1为蚂蚁利用信息素查找*短路径的示意图,图1-1(a)表示蚂蚁在行动开始时随机选择路线,长短不同的路径上均有蚂蚁在前进。图1-1(b)~图1-1(c)表示行进过程中,蚂蚁根据信息素浓度,开始识别出较短的路径,越来越多的蚂蚁选择较短路径。图1-1(d)表示蚁群*终寻找到*优路径,都沿着该路径觅食。
图1-1 蚂蚁利用信息素查找*短路径的示意图
ACO算法受真实蚂蚁的觅食行为启发而来,其中蕴含的许多理念来源于真实蚁群,该算法中的人工蚂蚁与真实蚂蚁间存在以下相同点:①都存在个体相互交流的机制。真实蚂蚁通过在路径上留下信息素进行交流合作,而人工蚂蚁以“数字信息”模拟信息素,并进行种群传递,以寻找优化方案。②都要完成寻找*短路径的任务。③都会根据当前信息采取路径的随机选择策略。
此外,人工蚂蚁还存在与真实蚂蚁不同的特性:①人工蚂蚁具有记忆能力,可以记录自身以前的行为。②人工蚂蚁在选择路径时并非完全盲目的,会受问题空间特征的启发。③人工蚂蚁存在于离散的时间环境中,其移动实际上是两个状态的转化。
ACO算法的基本框架如下。
1.2.2粒子群优化算法
粒子群优化(particle swarm optimization,PSO)算法于1995年由Kennedy和Eberhart提出,源于对鸟群捕食行为的研究。该算法是受飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型,鸟群觅食过程的模拟图如图1-2所示。PSO算法将每个优化问题的潜在解视作一只鸟,即粒子。每个粒子都具有各自的速度和飞行方向,在遵循自身方向的同时,粒子还会学习并追随当前*优粒子,在解空间中进行搜索。所有粒子通过适应值函数来计算适应值,以此衡量粒子的优劣性。因此,PSO算法的目标就是使所有粒子在多维空间中找到*优解。
图1-2鸟群觅食过程的模拟图
在此过程中,PSO算法中所有粒子的初始位置是随机产生的,在给定空间中赋予其初始速度和方向,然后通过逐步迭代寻求*优解决方案。在标准PSO算法中,粒子在每一次迭代时通过两个*优解来更新自身:一个是粒子本身所找到的*优解,这个解称为个体*优(pbest);另一个是整个种群目前的*优解,即全局*优(gbest)。随着迭代的进行,粒子种群通过探索求解空间和利用已知的有利信息,*终向一个或多个*优点聚集。
如果用数学的方法描述PSO算法,则为:假设在一个E维空间中,是由m个粒子组成的种群,其中第i个粒子的位置为,其速度为,它的个体极值为,种群的全局极值为 。根据追随当前*优粒子的原理,粒子 将按照式(1-3)和式(1-4)改变自己的速度和位置。其中,j=1,2, ,E;i=1,2, ,m;t为当前迭代次数;为在[0,1]区间分布的随机数;和为加速常量,分别用于对向全局*优粒子和个体*优粒子方向飞行的*大步长的调节。如果数值太小,粒子可能会远离目标区域;如果数值太大,则会导致粒子突然飞向或是飞过目标区域。由此可知,合适的 和 能够在加快收敛的同时,避免搜索解集陷入局部*优。粒子在每一维飞行的速度都不能超过一个*大值,即算法设定的*大速度 。当设置一个较大的 时,PSO算法的全局搜索能力可以得到有效提高;而当的数值较小时,则可以加强PSO算法的局部搜索能力。
速度更新式(1-3)由3个部分构成:。其分别代表:①粒子的“惯性”,即粒子原有的速度和方向;②粒子对自身的历史经验进行记忆的能力,即粒子在解空间里有以自己的历史*优解为方向进行搜索的趋势;③粒子基于群体历史经验开展知识共享和协同工作,即粒子在解空间里有以整个领域的历史*优解为方向进行搜索的趋势。因此,PSO算法的寻优方法实际上是基于学习及认知事物的习惯和经验得到的。PSO算法的流程图如图1-3所示。
图1-3 PSO算法的流程图
1.2.3人工蜂群算法
人工蜂群(artificial bee colony,ABC)算法是Karaboga于2005年提出的基于群体智能的全局优化算法,该算法的灵感来源于自然界蜂群的采蜜行为。在采蜜过程中,蜜蜂依据自身分工进行不同的活动,并通过种群内部的信息共享与交流,如跳舞传递信号,分享搜索到的食物源,从而完成花蜜的采集。
ABC算法模拟了真实蜜蜂的这种觅食行为,并用于解决多维和多模态的优化
展开