【TEVC 2023】用于进化计算的知识学习 + 进化计算(Evolutionary computation (EC) )其中的一些概念

news2024/11/26 7:35:02
Knowledge Learning for Evolutionary Computation

进化计算(Evolutionary computation (EC) )是一种从自然进化和群体智能行为(swarm intelligence behaviors)中汲取灵感的元启发式算法。

目前,EC以其解决优化问题的有效性和高效性得到了迅速的发展,EC算法主要有两个分支:

1、进化算法(EA)

差分进化(differential evolution (DE))

遗传算法(genetic algorithm)

2、群体智能(swarm intelligence)

粒子群优化particle swarm optimization (PSO)

蚁群算法(ant colony optimization)

在EC算法的进化过程中,会产生大量数据,这些数据可以显式或隐式地揭示个体的进化行为。例如,在DE的进化过程中,成功的微分向量揭示了每个个体的成功行为。在粒子群中,成功的速度可以引导粒子接近全局最优。


Data(数据)通常表示揭示种群在进化过程中的进化行为的信息。例如,位置信息、方向信息、适应度信息都是数据。

A successful experience(成功的经验)是在一个位置成功进化的方向。例如,假设一个个体位于位置P1,适应度值为F1,跳到位置P2,适应度值为F2。如果F2优于F1,即该个体进化成功,则将位置P1与成功方向D = P2 - P1配对为一次成功经验,记为(P1, D)。

knowledge(知识)知识定义为一种如何从成功经验中挖掘出成功进化方向的规则。因此,成功经验是进化计算EC过程中产生的一种特殊数据,可以用来挖掘知识,从而指导EC算法的进化。


本文分为两步:

1、“learning from experiences to obtain knowledge(从经验中获取知识)” :首先,在从经验中学习获取知识的过程中,KL框架维护一个基于前馈神经网络(FNN)的知识库模型(KLM)来保存知识。在进化过程中,KLM收集所有个体获得的成功经验,并对这些经验进行挖掘和学习,以获得关于个体与成功经验之间关系的一般知识。

2、“utilizing knowledge to guide evolution(利用知识来指代进化)”:其次,在利用知识引导进化的过程中,个体可以向KLM(知识库模型)查询指导信息,KLM根据学习到的知识和个体所处的位置,给每个个体一个合适的进化方向。

建议的KL框架的特点和贡献总结如下:

1) 本文提出了一个新颖而有效的KL框架。KL框架可以深入挖掘进化过程中产生的成功经验以获得知识,并可以根据个体的位置正确利用知识来指导个体。首先,由于知识是通过挖掘大量的成功经验获得的,因此KL模型中的知识在指导进化方面更为普遍和有效。其次,KL框架可以为每个个体提供相对有效的进化方向指导,因为所提供的方向是根据知识和个体的当前状态计算出来的。

2)KL框架是一个通用的EC算法框架,可以很容易地与许多EC算法嵌入。为了清楚地表明如何将KL框架和EC算法结合起来,我们将KL框架与两种有代表性的EC算法DE和PSO结合起来,提出了基于KL的DE(表示为KLDE)和基于KL的PSO(表示为KLPSO)。根据实验结果,这两种基于KL的EC算法比它们的经典版本更加有效和高效。

3) 为了进一步评估KL框架的效果,我们将KL框架与几个最先进的甚至是冠军的EC算法相结合,并展示了基于KL的算法与原始算法相比的性能改进。在基准函数和现实世界的优化问题上的实验结果表明,我们提出的KL框架可以显著提高这些EC算法的性能。

基于知识的进化计算(KLEC)

A、知识学习(KL)的架构

B、从经验中学习来获取知识

1、知识库模型KLM(knowledge library model)

 KLM 应该是可以储存大量知识、快速检索到知识。本文使用的KLM是一个FNN模型,训练是一对数据,(个体的“位置”,该“位置”对应的“成功方向”)

2、从经验中学习来更新知识库模型

在KL框架中,在从经验中学习更新KLM的过程之前,应该首先收集成功的经验。为了收集成功的经验,我们创建了一个列表Q来存储成功的经验。具体来说,在每一代中(generation),一旦某个个体的适应度得到提高,这个成功的经验就会被收集到Q中。在收集完这一代中所有的成功经验之前,这个经验不会立即被KLM学习。也就是说,该经验被暂时储存在经验列表Q中,等待被KLM学习。

然后,收集在Q中的成功经验被KLM学习,以获得关于位置和成功方向之间关系的知识。具体来说,列表Q中每个经验的位置作为输入输入给KLM,相应的方向作为预期输出来训练基于FNN的KLM。在训练过程中,采用反向传播算法来调整KLM的权重。在KLM的学习过程中,列表Q中的所有经验都被丢弃(即在每一代结束时清除列表Q中的所有经验),以便为下一代的新经验留出空间。需要注意的是,在每一代中,KLM并没有被重新初始化,而是根据KLM在上一代中的权重,由这一代中新收集的经验不断进行训练。因此,KLM实际上可以通过学习整个历史中产生的成功经验来获得知识。如果在Q中没有收集到成功的经验,即没有个体实现成功的进化,那么KLM将不会在当前一代中被更新。

C、利用知识来指导进化

利用知识指导进化的过程旨在根据个体的当前位置和学到的知识为其提供适当的进化方向。由于KLM根据历史上的成功经验学会了从位置到方向的映射,我们只需要把个体的当前位置作为输入给KLM,KLM的输出就是这个个体的进化方向的查询。这样,KLM的利用操作就可以根据每个个体的当前位置为其提供一个合适的进化方向。此外,为了清晰起见,我们给出了图4,以更好地说明成功经验和KLEC知识之间的关系,同时也更好地说明KLEC的知识学习和利用过程。

D、KLDE(知识学习的差分进化)

将KL与DE做了一个实例给大家看怎么结合到一起的:

 

读者有话说:

感觉整个文章读起来没有什么营养,没有搞懂到底这个怎么利用知识的,代码也没有...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/720677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Redis 核心技术与实战》课程学习笔记(二)

数据结构:快速的 Redis 有哪些慢操作 数据库这么多,为啥 Redis 能有这么突出的表现呢? 一方面,因为它是内存数据库,所有操作都在内存上完成,内存的访问速度本身就很快。另一方面,因为&#xff…

SQL入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

导读: SQL语言有40多年的历史,从它被应用至今几乎无处不在。我们消费的每一笔支付记录,收集的每一条用户信息,发出去的每一条消息,都会使用数据库或与其相关的产品来存储,而操纵数据库的语言正是 SQL &…

vue页面中一个小列表中多选框的选中状态的两种设置方法

第一种方法:所有类型都是固定的、后台提供了选中状态的接口(页面进入时默认展示所有类型和类型的选中状态 思路: 1、列出所有类型同时与后台规定好每种类型的id与对应的名称 2、在mounted中执行获取后台给定的选中状态(包含1个或多个的id数组) 3、将得到的结构绑定到el-ch…

单元测试基础

一、什么是单元测试: 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类;单元测试属于最严格的软件测试手段,是最接近代码底层实现…

剑指 Offer 14- II: 剪绳子 II

这道题不能使用动态规划来解决,因为会越界。用贪心算法找规律可以得到答案(3越多越好,小于等于4取本身的值) 这道题错的原因在于res在存储过程中会越界,最轻微的上溢是 INT_MAX 1 :结果是 INT_MIN。 最严重…

C++学习笔记-第10单元 模板初步

第10单元 模板初步 文章目录 第10单元 模板初步单元导读10.1 模板与泛型编程10.1.1 元编程与泛型编程10.1.2 初识模板 10.2 函数模板10.2.1 函数模板10.2.2 函数模版实例化 10.3 排序示例与泛型化10.3.1 例子:选择排序10.3.2 将一个函数泛型化 10.4 类模板10.4.1 类…

基于matlab使用深度学习从分割图生成图像(附源码)

一、前言 此示例演示如何使用 pix2pixHD 条件生成对抗网络 (CGAN) 从语义分割映射生成场景的合成图像。 Pix2pixHD [1] 由两个同时训练的网络组成,以最大限度地提高两者的性能。 生成器是一种编码器-解码器风格的神经网络,可从语…

设置云服务器和配置docker

一、设置云服务器 刚租完服务器,直接利用公网ip登录此时进入到的是root目录下 ssh root公网ip 但是root的权限太大,一般做项目不会在root路径下直接操作,会创建一个子用户,一台服务器可以创建多个子用户,就像一个大…

通用二进制方式安装Mysql

一、去官网下载MySQL glibc版本 示例环境为CentOS 7.9版本,要安装的Mysql版本为5.7 1.选择版本下载到自己本地 下载地址:https://dev.mysql.com/downloads/mysql/ 2.将下载的tar包上传到自己的CentOS虚拟主机上 传输完成后,查看确认一下 …

Tomcat相关

1. 运行项目 将java项目打包为war或者war所对应的文件夹,放置于tomcat的webapps目录下。其实tomcat运行时会解压war到项目中并运行class文件,延伸开来,为啥不能用jar包,因为jar可能可以表示项目但也能表示依赖,tomcat…

Linux 内核和驱动开发工程师的发展前景怎么样?

或许这样的标题,应该是由像Linus或Greg KH这样的大师级的高手才有资格写的吧。但是作为我来说,也许我更想把这个标题作为一个疑问句来使用,整理一下自己的认识,用来勉励自己,和大家一起努力实现这个目标。认识肤浅的地…

4.51ue4:savegame

1.创建savegame,蓝图搜索savegame创建 2.ue4是类似于计算机磁盘读取和内存响应的方式进行保存数据,又称序列化。 详解: 序列化时类似于:从内存保存数据到磁盘的过程,是将数据进行序列化存入磁盘。 读取数据就是反序…

社区说|浅谈 WorkManager 的设计与实现:系统概述

什么是 社区说 ? 反思 系列博客是一种看似 “内卷” ,但却 效果显著 的学习方式,该系列起源和目录请参考 这里 。 困境 作为一名 Android 开发者,即使你没有用过,也一定对 WorkManager 耳熟能详。 自2018年发布以来&#xff0c…

设计模式第22讲——访问者模式(Visitor)

目录 一、什么是访问者模式 二、角色组成 三、优缺点 四、 应用场景 4.1 生活场景 4.2 Java场景 五、代码实现 5.0 UML类图 5.1 抽象访问者——Visitor 5.2 具体访问者——Tourist 5.3 抽象元素——Spot 5.4 具体元素——View、Relic 5.5 对象结构——SpotCollecti…

大厂面试打起12万分小心?3轮技术面过,你也可能挂在HR手上!

很多朋友在面试大厂时存在一个误区,认为面试你的那个是最初给你打电话的HR,其实不然,更大可能是业务部门相关的 HRBP导致你面试失败。 1、什么是HRBP? 为了解释清楚这个问题,先说 HRBP 是什么。HRBP全称为 Human Resource Busin…

java对象clone

Object提供了colne方法给我们定义的类,用来进行对象克隆,但是这个clone方法是protected的,所以需要在我们需要使用clone的类中重写Object的clone方法,并且需要实现Cloneable接口,Cloneable接口是一个标记接口&#xff…

「JVS低代码开发平台2.1.8版本」-首页功能介绍

JVS是面向软件开发团队可以快速实现应用的基础开发脚手架,主要定位于企业信息化通用底座,采用微服务分布式框架,提供丰富的基础功能,集成众多业务引擎,它灵活性强,界面化配置对开发者友好,底层容…

【Java】Netty中ByteBuf学习笔记

文章目录 1) ByteBuf创建与自动扩容2)直接内存 vs 堆内存3)池化 vs 非池化4)组成5)写入6)扩容7)读取8)retain & release9)slice10)duplicate11)copy12&am…

给LLM装上知识:从LangChain+LLM的本地知识库问答到LLM与知识图谱的结合

第一部分 基于LangChain ChatGLM-6B的本地知识库问答的应用实现 1.1 什么是LangChain:连接本地知识库与LLM的桥梁 作为一个 LLM 应用框架,LangChain 支持调用多种不同模型,提供相对统一、便捷的操作接口,让模型即插即用&#x…

java并发编程 6:java内存模型与volatile(重点)

目录 硬件内存模型Java 内存模型主内存工作内存内存交互的八个原子操作JMM作用 可见性退不出的循环volatile解决同步模式之 Balking 有序性指令重排解决指令重排 volatile 原理volatile如何保证可见性volatile如何保证有序性volatile 不能解决指令交错double-checked locking 问…