分类目录:《机器学习中的数学》总目录
相关文章:
· 梯度下降法(Gradient Descent)
· 随机梯度下降(Stochastic Gradient Descent, SGD)
· 牛顿迭代法(Newton‘s Method)
· 拟牛顿法(Quasi-Newton Methods)
· Momentum(Gradient Descent with Momentum, GDM)
· Nesterov Momentum
· AdaGrad
· RMSProp
· Adam(Adaptive Moments)
· 共轭梯度法(Conjugate Gradient)
· 遗传算法(Genetic Algorithm)
· 粒子群算法
\qquad· 基础知识
\qquad· 带惯性权重的粒子群算法
\qquad· 改进的粒子群算法
· 模拟退火算法(Simulated Annealing,SA)


基本粒子群算法存在着很多缺陷,如对环境的变化不敏感,常常会受pbestgbest的影响而陷入非最优区域,算法经常发生早熟收敛等现象,所以很多学者在基本粒子群的基础上,提出了很多类型的改进算法。根据其自身的特点,这些改进算法大致可以分为离散粒子群优化算法、小生境粒子群优化算法、混合粒子群优化算法等类型。

约束优化问题求解

一般来说,约束优化问题由目标函数和约束条件两部分构成,表示为:
min⁡f(x)s.t.gj(x)≤0,j=1,2,⋯,Jhk(x)=0,k=1,2,⋯,K\begin{aligned} \min \quad&f(x)\\ \text{s.t.} \quad&g_j(x)\leq0, \ j=1, 2, \cdots, J\\ &h_k(x)=0, \ k=1, 2, \cdots, K \end{aligned} mins.t.​f(x)gj​(x)≤0, j=1,2,⋯,Jhk​(x)=0, k=1,2,⋯,K​

式中,xxx为nnn维实向量,f(x)f(x)f(x)是目标函数,g(x)g(x)g(x)、h(x)h(x)h(x)为约束条件。将满足所有约束条件的解空间S称为可行域,可行域中的解称为可行解,将可行域中使目标函数取最小值的解称为最优解。对于最大化问题,可转化为最小化问题进行求解。

目前,粒子群算法已被有效应用于约束优化问题求解。例如,可对约束优化问题引入半可行域的概念,提出竞争选择的新规则,井改进基于竞争选择和惩罚函数的进化算法适应度函数,然后结合粒子群算法本身的特点,设计选择算子对半可行域进行操作,从而得到一个利用粒子群算法求解约束优化问题的新的进化算法。粒子群算法还应用于非线性约束优化问题的求解,提出相应的求解非线性约束优化问题的新算法,并通过数值实验验证算法的全局寻优能力。对于约束优化问题,可以先采用惩罚函数法将约束优化问题化为无约束优化问题,或者将约束优化问题转化为最小最大问题,然后对无约束优化问题或最小最大问题,采用粒子群算法进行进化求解。

离散粒子群优化算法

为了将粒子群算法离散化,算法由当前的状态变量决定粒子将被判定为1或0的概率,即有:
P[xik+1=1]=f(xik,vik,xpbestk,xgbestk)P[x_i^{k+1}=1]=f(x_i^k, v_i^k, x_{\text{pbest}}^k, x_{\text{gbest}}^k)P[xik+1​=1]=f(xik​,vik​,xpbestk​,xgbestk​)

离散化函数f(⋅)f(\cdot)f(⋅)需要在离散二进制空间内使粒子趋向于判决选择为0或者1,即由粒子速度决定一个范围在[0,1][0, 1][0,1]之间的概率选择参数sss:若sss接近于1,则粒子将更可能被选择为1,而若sss接近于0,则粒子更可能被选择为0。其表达式如下式所示:
s=Sigmoid(vik)=11+e−viks=\text{Sigmoid}(v_i^k)=\frac{1}{1+e^{-v_i^k}}s=Sigmoid(vik​)=1+e−vik​1​

修改后的离散粒子群优化算法与基本粒子群优化算法流程相类似,但粒子速度和位置的更新公式修改为:
vik+1=wvidk+c1r1(xpbestk−xik)+c2v2(xgbestk−xik)vik+1={1,ρ<Sigmoid(vik)0,其它v_{i}^{k+1}=wv_{id}^k+c_1r_1(x_{\text{pbest}}^k-x_i^k)+c_2v_2(x_{\text{gbest}}^k-x_i^k)\\ \ \\ v_i^{k+1}=\left\{\begin{aligned} 1, \quad&\rho<\text{Sigmoid}(v_i^k)\\ 0, \quad&\text{其它} \end{aligned}\right.vik+1​=wvidk​+c1​r1​(xpbestk​−xik​)+c2​v2​(xgbestk​−xik​) vik+1​={1,0,​ρ<Sigmoid(vik​)其它​

其中,ρ是[0,1]之间的随机数,算法中其他参数都和基本粒子群优化算法内的参数相同。二进制离散粒子群优化算法采用五个基准测试函数进行搜索运算。算法在每个测试函数上运算20次,取最优一次的算法进化曲线作为算法结果参考。

混合粒子群优化算法

用进化计算中的选择机制来改善粒子群优化算法。通常在解决复杂非线性函数时,基于群体的优化算法在快速寻找最优值方面有一定的优势。基于群体的优化算法可定义如下:
p′=m(f(p))p'=m(f(p))p′=m(f(p))

上式中,ppp是搜索空间中的一组位置,称为群体;fff是适应值函数,其返回一组值,从而表明群体中每个成员的优化效果;mmm是群体修改函数,其返回一组新的群体。从父代中直接得到的信息,或者搜索动态过程中隐含的信息,都能够给予子代一定的指导。粒子群算法正是如上式方程形式的基于群体的优化算法。其修改函数是基于昆虫的群体行为,每个个体包含在搜索空间中的当前位置、当前速度、自身搜索到的最好位置。它们通过基本粒子群操作(速度更新公式和位置更新公式)而得到新的群体。进化算法是另一种形式的基于群体的搜索方法,定义如下:
p′=μ(s(f(p)))p'=\mu(s(f(p)))p′=μ(s(f(p)))

上式中,μ\muμ是突变函数,其随机改变群体中的部分个体;sss是选择函数,用其他群体成员的复制体(称为父代)代替表现差的粒子。这个选择机制使得搜索能够倾向于之前所走过的具有相对优势的位置。选择对群体起着集中的作用,分布有限的资源使得搜索倾向于具有最大效益的已知区域。

Angeline提出了混合群体(Hybird Swarm),其结合了类似于传统进化计算算法中的选择机制。混合群体和粒子群在各方面都很相似,除了它结合了进化计算中的锦标选择算子(Tournament Selection Method)。锦标选择算子可描述如下:

  1. 个个体基于当前未知的适应值与其他个个体的适应值进行比较,如果当前个体的适应值优于某个个体的适应值,则每次授予该个体一分。对每个个体重复这个过程。
  2. 根据前一步计算所得的分数对种群中的个体进行从大到小的排列。
  3. 各级种群中顶部的一半个体,并对它们进行复制,取代种群底部的一半个体,在此过程中最佳个体的适应度并未改变。

此选择过程在粒子修改群体前执行。通过增加这个选择过程,在每一代中,一半的个体将会被移动到当前位置具有相对优势的位置上。移动后的个体将仍然保持它们的个体最优位置。可见混合群体和粒子群体的区别是很小的,区别仅仅在于带选择机制的混合群体比粒子群具有更多的开发能力,即在已具有的信息的基础上继续搜索的能力。

机器学习中的数学——粒子群算法(Particle Swarm Optimization, PSO)(三):改进的粒子群算法相关推荐

  1. 人工神经网络(Artificial Neural Netwroks)笔记-粒子群优化(Partical Swarm Optimization - PSO)...

    关于粒子群优化的内容可以通过搜索得到. 下面主要是个人对于粒子群优化的一点理解,以及应用于BP神经网络中做权重的调整 原文在: http://baike.baidu.com/view/1531379. ...

  2. 【MATLAB第6期】基于MATLAB的粒子群及若干改进的粒子群算法原理介绍 持续更新

    一.经典粒子群PSO算法 1 思想来源 粒子群优化(Particle Swarm Optimization,PSO) 作为进化计算的一个分支,是由 Eberhart 和 Kennedy 于 1995 ...

  3. matlab优化算法案例分析与应用_最优化计算与matlab实现(18)——粒子群优化算法——权重改进的粒子群算法...

    参考资料 <精通MATLAB最优化计算(第二版)> 编程工具 Matlab 2019a 目录 石中居士:最优化计算与Matlab实现--目录​zhuanlan.zhihu.com 权重改进 ...

  4. 基于莱维飞行改进的粒子群算法输电线桩路径优化,粒子群算法通过shubert函数测试效果,混沌粒子群

    摘要 环境保护,节能减排,减少碳排放越来越受到现代社会的重视,本文利用莱维飞行改进的粒子群算法优化输电线桩路径,对输电线路路径进行优化设计并加以合理选择,有助于构建稳定.高效的输电网络,保证电能供给质 ...

  5. 【聚类算法】基于matlab改进的粒子群算法优化K-means算法【含Matlab源码 1946期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[聚类算法]基于matlab改进的粒子群算法优化K-means算法[含Matlab源码 1946期] 点击上面蓝色字体,直接付费下载,即可 ...

  6. 粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解

    01 算法起源 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 ...

  7. 一文搞懂什么是粒子群优化算法(Particle Swarm Optimization,PSO)【附应用举例】

    Python代码链接放文末. 本文参考了很多张军老师<计算智能>的第六章知识. 本文来源:https://blog.csdn.net/qq_44186838/article/details ...

  8. 【路径规划】改进的粒子群算法路径规划【含Matlab源码 491期】

    ⛄一.粒子群算法简介 1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在.生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都 ...

  9. 【数据聚类】基于改进的粒子群算法优化K-means算法实现数据分类含Matlab源码

    1 简介 针对传统的K-means算法对初始聚类中心的选取敏感,容易收敛到局部最优的缺点,提出一种基于改进粒子群优化算法(PSO)的K-means优化聚类算法.该算法利用PSO算法强大的全局搜索能力对 ...

最新文章

  1. iOS动画系列之九:实现点赞的动画及播放起伏指示器
  2. centos7下nginx配置
  3. java不要在常量和变量中出现易混淆的字母
  4. 有谁用过sendinput摸拟一个鼠标击键?
  5. servlet加载资源两种方式-内外(初始化参数).properties文件
  6. windwos cakephp mysql apache_配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
  7. [图]礼仪大赛策划方案:使用PPT,如何打造一场专业而又经济的礼仪大赛呢?
  8. 【IOS账号分享】《帕斯卡契约》
  9. 【Hadoop】之 实验一(过滤、合并文件)
  10. 台式计算机红外线端口,台式电脑的红外线端口在哪?
  11. three.js绘制墙体,通过不规则路径生成墙体,3D墙体绘制
  12. 如何舒服的在电视上操作电脑
  13. h5+MUI移动APP和普通H5之间的区别有哪些?
  14. 比较基因组学常用分析软件和分析方法
  15. 【0】uC/OS-III应用开发————uC/OS-III的几个重要特性
  16. MATLAB在线测试
  17. 使用struts2框架来实现前台与后台的交互
  18. ECB(Electronic Code Book)电子密码本模式(分组密码)
  19. 关于涉密信息系统分级保护的几个问题
  20. Ubuntu win7双系统后遇到的问题。时间和引导顺序

热门文章

  1. 执行xp_cmdshell时发生错误--xpsql.cpp: 错误 5 来自 CreateProcess
  2. Tools-文库怎么下载方法汇总
  3. 6-4 输出月份英文名 (15分)
  4. linux中yum源在那个目录下,Linux ---各种yum源配置详解
  5. c语言2级成绩时间,二级c语言考试时间
  6. Android中的单例模式(java单例模式详解,Glide,EventBus,LayoutInfalter的源码单例模式详解)
  7. python美观代码_为什么Python 代码要写得美观而明确
  8. 为什么手机里的小爱音响app里搜不到家里的小爱音箱_小米随身版小爱蓝牙音箱【开箱体验】,49的小爱音箱,值了...
  9. C语言开发环境,请查收
  10. 第七十篇 数据处理与分析 Numpy