热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

泛统计理论初探——初探粒子群算法

神经网络学习-初探粒子群算法理解粒子群算法思路在上一篇介绍搜索的文章中,我们谈到了关于模拟退火算法的思路和算法实现步骤,模拟退火算法是一种启发式的搜索

神经网络学习-初探粒子群算法

理解粒子群算法思路
   在上一篇介绍搜索的文章中,我们谈到了关于模拟退火算法的思路和算法实现步骤,模拟退火算法是一种启发式的搜索方法,可以使用在各个领域。本次文章中需要介绍的是粒子群算法,该算法是一种基于鸟类群体寻找食物的算法,因而也称之为“鸟群算法”,通过整个鸟群的集体搜索,找出全局的最优点,因此该算法其实也是一种启发式搜索算法,并且是类似“群智感知”的一种处理思路。该算法的核心思路其实是通过信息的共享,根据群体的最优和个体的最优进行选择,反复进行位置的移动,最终寻找到全局的最优点。在粒子群算法的解决过程中,每一个可能的可行解都是搜索空间的一个粒子,或者说是一只鸟,而整个问题的最优解就是整个鸟群寻找的食物所在地。
   粒子群算法中每一个粒子都有两个特征,第一个是速度特征、第二个是位置特征;其中速度特征是决定粒子在下一次的移动方向和速度,而位置特征是决定粒子在整个空间的位置,可以用三维空间去理解这个思路,但实际的问题特征维度较高,可能是几十个维度或者几百个维度,所以初学者只需要理解三维空间粒子的移动即可。每一次粒子的移动都是根据目标移动公式去计算当前的目标值,最终的目标是群体的目标值最小或者是最大,整个粒子群在移动的时候,每个粒子可以根据自己历史的位置信息进行学习,也可以根据群体的最优粒子经验去学习,以此去综合考虑下一次移动的方向和速度,经过反复的迭代或者说移动,最终整个群体的粒子就会收敛稳定在一个最优解的位置。
在这里插入图片描述
   对于粒子群算法的大致步骤,我们可以进行一个总结,主要是分为以下5个步骤:
   1、相关参数设置初始化与群体粒子信息初始化,通过随机初始化的方法,并且根据初始化的信息进行计算当前群体的全局最优位置和每个个体的最优位置。
   2、设置好迭代次数和迭代终止条件,并且确定初始化后当前的迭代次数是1次。
   3、速度信息和位置信息更新,即对于每一个粒子来说,去更新它们的速度向量和位置向量。
   4、计算局部位置和全局位置的向量,更新每个粒子的局部最优解和整体粒子群的全局最优解。
   5、判断是否满足终止条件,即如果满足最大迭代次数或者满足终止条件就跳出循环;否则继续进行迭代,继续跳转到步骤3。
根据基本步骤的理解后,我们对于具体的速度向量和位置向量的计算公式来进行分析和介绍,计算公式如下所示。
在这里插入图片描述
   在上面的公式,下标i表示第i个粒子,上标d表示第d个维度的值;w是惯性因子,是一个非负数;r1和r2是[0,1]范围内变化的随机数,α是约束因子。从上述公式我们可以发现,首先是对速度的计算,每个粒子的速度都可以被pi所影响,也就是该粒子的历史最优信息;同时也可以被pg所影响,也就是群体的最优信息。在计算了速度后,通过第二个公式可以计算出下一步的移动位置,从而按照公式进行迭代和计算。
   对于上述的参数,我们在设定初始化参数的时候需要进行确定,一般来说,粒子数量设为20到50个,对于一些计算资源宽裕的情况或者问题复杂的情况,需要设定100到300个粒子。显然粒子的数量越大,搜索的范围就越大,也容易找到全局的最优解,但是非常消耗资源并且计算的时间较长。对于惯性因子w,可以取0.6至0.8范围的值,该参数值对于整个算法的收敛效果有较大的影响,如果设置的较大会使得粒子有很大的惯性,也就是很难改变方向,并且收敛较为困难,所以w设置的较大可以帮助全局搜索、设置的较小可以促进局部搜索。对于常数c1和c2的设定是要看问题而定,一般来说将c1和c2设定的大小一样都是等于2,也就是默认了在粒子迭代的过程中,自身经验和群体经验在迭代步骤的重要性是基本等同的。
   总的来说,粒子群算法是一种适用于不同搜索问题的智能启发式搜索方法,通过对于参数的设置,可以决定是看重于全局的搜索或者是局部的搜索。而该方法还有延伸的方法,也就是所谓的局部粒子群算法,通俗来说就是设定公式中的群体是部分群体,选中的可以被称之为“骨干”,这种方法也被称之为骨干粒子群算法。初学者在学习粒子群算法的过程中,需要理解迭代的公式和里面的参数含义,该算法受到参数的控制影响较大,所以通常需要使用不同的参数进行多次搜索才可以。


推荐阅读
  • 1.组合最优化问题定义:是通过数学方法的研究去寻找离散事件的最优编排、分组、次序或筛选等。描述:最优化问题的数学模型的一般描述是,x为决策 ... [详细]
  • 读手语图像识别论文笔记2
    文章目录一、前言二、笔记1.名词解释2.流程分析上一篇快速门:读手语图像识别论文笔记1(手语识别背景和方法)一、前言一句:“做完了&#x ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
author-avatar
老陈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有