基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类——附代码

2023-11-02

目录

摘要:

1.蜜蜂优化算法:

2. 卷积神经网络(CNN)

输入层

隐含层

输出层

​3. 本文Matlab代码:​


摘要:

本文通过蜜蜂优化算法,优化了卷积神经网络(CNN)中的超参数,主要是网络的权重和偏差等关键参数,使CNN可以达到更加优秀的性能表现,通过使用优化后的CNN进行图像分类任务,从所得结果可以看出,蜜蜂优化算法对CNN的分类准确度的提升很大,在训练过程中CNN的分类准确度甚至可以达到100%,充分展示了本文所提方法的有效性。

程序已做标准化处理,使用者可以通过替换原始数据为自己的数据,从而实现需要的功能。

1.蜜蜂优化算法:

蜜蜂算法是受自然界中蜜蜂的觅食行为启发而提出的一种优化算法。算法中食物源位置代表优化 问题的一组解,由食物源位置及其近邻域形成一个 小的搜索区域,称为花丛。

在搜索食物的过程中,蜜蜂群首先派出侦察蜂 进行搜索,侦察蜂不断地从一个食物源飞往另一个 食物源,搜索所有可能的食物源。当搜索到食物源 的收益度( 比如糖的含量) 超过一定量时,侦察蜂返 回蜂巢,卸下蜂蜜并在“跳舞板”上跳一种神奇的“摇 摆舞”。这种“摇摆舞”是蜜蜂群进行信息交流的必 要工具,能使整个蜂群了解到所发现食物源的方位、 到蜂巢的距离和收益度。跳完舞后的侦察蜂带领守 候在蜂巢外面的跟随蜂飞回到相应的食物源采蜜, 并且收益度高的食物源将会招募到更多的跟随蜂前 往采蜜。在采蜜过程中,采蜜蜂计算其正在采蜜的 食物源的收益度,并返回蜂巢跳“摇摆舞”,给蜂群传 递当前食物源收益度的信息。如果食物源收益度仍 然较高,将会招募更多的跟随蜂前往采蜜;

该算法需要设置一些参数,即侦察蜂的数量 n,n 个被搜索的食物源中被选中食物源的数量 m,m 个 食物源中最好食物源的数量 e,为最好 e 个食物源招 募的蜜蜂数量 nep,为其它 m - e 个食物源招募的蜜 蜂数量 nsp,食物源近邻搜索半径 ngh 和算法的终止 条件。蜜蜂算法的伪代码如下:

( 1) 初始化种群的随机解; ( 2) 评价种群的适应度; ( 3) 当停止准则不满足时,产生新的种群; ( 4) 为近邻搜索选择食物源; ( 5) 招募蜜蜂到选择的食物源( 为最好的 e 个食 物源招募更多的蜜蜂) 并评价其适应度; ( 6) 从每个花丛中选择适应度最高的蜜蜂; ( 7) 派遣其余的搜索蜂进行随机搜索并评价其 适应度; ( 8) 结束循环

2. 卷积神经网络(CNN)

卷积神经网络是一种多层非线性前馈神经网 络,最初被用于复杂图像的特征识别和提取,以解决 传统图像识别技术仅能提取图像浅层特征的问题, 实现对复杂图像的自动化处理。典型的卷积神经网 络包括输入层、卷积层、激活层、池化层、全连接层和 输出层,如图所示:

求解网络模型参数时,给出损失函数沿网络模 型反向在各层关于模型参数的梯度,并使参数沿梯 度方向更新直至误差收敛,此方法被称为随机梯度下降法等。

输入层

卷积神经网络的输入层可以处理多维数据,常见地,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组;三维卷积神经网络的输入层接收四维数组。由于卷积神经网络在域应用较广,因此许多研究在介绍其结构时预先假设了三维输入数据,即平面上的二维像素点和RGB通道。

隐含层

卷积神经网络的隐含层包含卷积层、池化层和全连接层3类常见构筑,在一些更为现代的算法中可能有Inception模块、残差块(residual block)等复杂构筑。在常见构筑中,卷积层和池化层为卷积神经网络特有。卷积层中的卷积核包含权重系数,而池化层不包含权重系数,因此在文献中,池化层可能不被认为是独立的层。以LeNet-5为例,3类常见构筑在隐含层中的顺序通常为:输入-卷积层-池化层-全连接层-输出。

输出层

卷积神经网络中输出层的上游通常是全连接层,因此其结构和工作原理与传统前馈神经网络中的输出层相同。对于图像分类问题,输出层使用逻辑函数或归一化指数函数(softmax function)输出分类标签。在物体识别(object detection)问题中,输出层可设计为输出物体的中心坐标、大小和分类。在图像语义分割中,输出层直接输出每个像素的分类结果。

3. 求解结果:

3. 本文Matlab代码:​

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类——附代码 的相关文章

随机推荐

  • Sprin boot 加载位置顺序

    配置文件的加载位置 Spring boot 启动会扫描一下位置的application properties或者application yml文件作为Spring boot的默认配置文件 file config 项目根目录下的config文
  • 【数据集制作】VOC2007格式数据集制作和处理教程(Faster-RCNN模型标准输入)

    说明 此次案例是制作VOC2007数据集的制作教程 用于目标检测 此次数据集处理可用于Faster RCNN YOLOv3等网络进行目标检测模型的标准输入 VOC2007数据集结构 VOC2007数据集结构如下 VOC2007 Annota
  • 灵魂拷问!GPT-4来了!人类自媒体博主存在的意义是什么?

    大家有没有想过一个问题 当某某领域大v 的文章或者视频都是GPT 4创作出来的时候 那么我们这些低产能的人类自媒体博主存在的意义又是什么呢 拿什么跟GPT 4进行竞争呢 想到这个问题是不是会有些伤感 GPT 4 VS 人类博主 首先我们先比
  • 左神提升6:暴力递归改动态规划

    内容 讲述暴力递归和动态规划的关系 去重的过程 记忆化搜索 傻缓存 动态规划都可以由暴力递归改进过来 解决动态规划的套路 常见的尝试模型 设计尝试过程的原则 本节是暴力递归到动态规划的总纲 很重要 后续的课都是在讲述这一系列的套路 1 尝试
  • Python多进程写日志ConcurrentLogHandler

    文档 https pypi org project ConcurrentLogHandler 0 9 1 这个类库是通过文件锁实现写日志进程安全的 但是只能通过文件大小控制切割 不能通过时间分割文件 demo import time imp
  • 2023年数据要素交易指数研究报告

    报告紧扣数据要素市场化发展主线 深入分析数据要素交易现状 从构建规范高效的数据交易场所入手 坚持理论指导导向 实践需求导向 共性特征导向 发展趋势导向 围绕数据场内交易需要 分析构建了数据要素交易指数指标体系 并在此基础上提出数据要素交易指
  • zabbix客户端错误:no active checks on server [192.168.1.107:10051]: host [ ] not found

    查看zabbix agentd log时出现下列错误 root www tail var log zabbix zabbix agentd log 10526 20170506 154012 832 no active checks on
  • 解决Maven:com.oracle:ojdbc7-12.1.0.2.jar在pom文件中无法下载问题

    一 pom文件中有ojdbc依赖 但是一直无法下载 导致打包出错 二 解决方法 1 配置Maven的环境变量 此处省略 检查maven配置成功 win R 在doc窗口输入mvn v 如下则说明Maven 的环境变量配置成功 2 自行下载o
  • 【原创】QString 函数 replace()indexOf()、 lastindexOf()

    1 替换函数 示例 QString x Say yes QString y no x replace 4 3 y x Say no 应用 将 002 jpg 7位 替换为 s save002 jpg 1 13位 QString x1 fil
  • swc-loader Segmentation fault “$NODE_EXE“ “$NPM_CLI_JS“ “$@“

    webpack swc swc还不是很稳定 在swcrc 中有配置plugins 时 swc 转换 node modules 会报错 环境 swc cor 1 3 62 swc loader 0 2 3 swc plugin vue jsx
  • python+opencv实现文字颜色识别与标定

    最近接了一个比较简单的图像处理的单子 花了一点时间随便写了一下 数据集客户没有是自己随便创建的 程序如下 Code creation time September 11 2021 Author PanBo Realize function
  • Spring学习心得(6)-- spring DI(依赖注入)

    DI的定义 给配置文件中的bean的属性赋值 方式 一种是利用其属性的setter方法 另外一种是利用构造函数 我们先来讨论第一种 利用属性的setter方法赋值 首先 先创建好类 并且配置到配置文件中 public class Perso
  • 基于上下文的推荐 -- 包括时间衰减算法和位置推荐算法(代码实现)

    基于上下文的推荐 基于时间特征的推荐 时间衰减 基于时间衰减的ItemCF算法 算法核心两部分 都加入了时间衰减项 以movielens数据集实现ItemCF 基于时间衰减的UserCF算法 以movielens数据集实现UserCF 基于
  • java怎么让按钮发挥作用,Java“周年”如何真正发挥作用?

    这是一个简单的错误开始的 我使用的YYYY不是对象的yyyy格式字符串SimpleDateFormat 但是我对使用格式错误的字符串的测试结果完全感到困惑 这段代码 Test public void whatTheHell try Simp
  • Linux——I/O复用(1)——select

    前言 TCP服务器的运行模型 TCP中 第一个客户端和服务器端建立连接 向服务器端不发数据 服务器端就在recv阻塞住 无法继续执行 如果有第二个客户端与服务器端建立连接 就在已完成三次握手的队列中放着 等着accept处理它 由于我们的代
  • 从 TDD 到 BDD

    转自http www cnblogs com lidaobing archive 2010 07 18 1779987 html 最近在学 ruby 也用了 rspec 传统的 xUnit 是 TDD 指导思想下的产物 而 rspec 则算
  • 本地上传文件到Gitee分支--傻瓜式教程

    废话不多说 在本地上传文件到Gitee分支按如下几个步骤走完即可 创建本地仓库 通俗一点就是任意文件夹都可以作为你的本地仓库 这里我在桌面建立了一个新建文件夹作为本地试验仓库 使用git init命令初始化仓库 初始化完成以后 本地仓库会生
  • ETL日志数据采集&商品数据采集

    01 结构化数据模型选择 理解 问题1 原生python中有没有数据库中的表类型 没有 问题2 我们一般会使用什么数据类型存储数据库中读取到的数据值 列表嵌套字典 记录数据和书写数据 非常方便 但是我们需要记住每一个键 字段 的含义 如果字
  • 基于OpenCV的气体泵扫描仪数字识别系统

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 综述 2012年iOS应用商店中发布了一个名为FuelMate的Gas跟踪应用 小伙伴们可以使用该应用程序跟踪汽油行驶里程 以及有一些有趣的功能 例如Apple Watc
  • 基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类——附代码

    目录 摘要 1 蜜蜂优化算法 2 卷积神经网络 CNN 输入层 隐含层 输出层 3 本文Matlab代码 摘要 本文通过蜜蜂优化算法 优化了卷积神经网络 CNN 中的超参数 主要是网络的权重和偏差等关键参数 使CNN可以达到更加优秀的性能表